📄 hjmcu.lst
字号:
C51 COMPILER V8.05a HJMCU 01/14/2011 13:36:30 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE HJMCU
OBJECT MODULE PLACED IN hjmcu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE hjmcu.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************************************************************************
2 *** 慧净电子1天入门、10天学会、1年精通单片机与C语言视频教程配套程序源码 ***
3 *** 实验板:HJ-1G HJ-3G 开发板 ***
4 *** MCU: STC89C52/AT89C52 部分C源码可以直接用于项目开发、欢迎复制共享、功德无量、没有版权 ***
5 *** 收集整理:慧净助学会员 部分原源来源网络,如有伤害到你的利润请来信,我们的免费助学会员会定期给你删除**
-*
6 *** 编译器:KEIL ***
7 *** 百度交流空间:http://hi.baidu.com/HJMCU WWW.HJMCU.COM ***
8 *** 论坛交流:http://bbs.hjmcu.com 欢迎来论坛一分钱不要下载配套的仿真电路 ***
9 *** 配套的硬件学习板网址:http://shop37031453.taobao.com/ ***
10 *** 日期:2008.8.8 ***
11 *** 目标:用C语言写程序就这么简单、慧争祝你1天入门、10天学会、1年精通单片机与C语言、找个好工作 ***
12 ***************************************************************************************************/
13 #include "reg52.h"
14 unsigned char Count;
15 sbit _Speak =P2^3 ; //讯响器控制脚
16
17 unsigned char code SONG[] ={ //祝你平安
18 0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
19 0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
20 0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
21 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
22 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
23 0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
24 0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
25 0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
26 0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
27 0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
28 0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
29 0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
30 0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
31 0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,
32 //路边的野华不要采
33 0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,
34 0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,
35 0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,
36 0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
37 0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
38 0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,
39 0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,
40 0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,
41 0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,
42 0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,
43 0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,
44 0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,
45
46 };
47
48 void Time0_Init()
49 {
50 1 TMOD = 0x01;
51 1 IE = 0x82;
52 1 TH0 = 0xD8;
53 1 TL0 = 0xEF; //12MZ晶振,10ms
54 1 }
C51 COMPILER V8.05a HJMCU 01/14/2011 13:36:30 PAGE 2
55
56 void Time0_Int() interrupt 1
57 {
58 1 TH0 = 0xD8;
59 1 TL0 = 0xEF;
60 1 Count++; //长度加1
61 1 }
62
63 /*-------------------------------------------------
64 功能:1MS延时子程序
65 -------------------------------------------------*/
66 void Delay_xMs(unsigned int x)
67 {
68 1 unsigned int i,j;
69 1 for( i =0;i < x;i++ )
70 1 {
71 2 for( j =0;j<3;j++ );
72 2 }
73 1 }
74
75 /*-------------------------------------------------
76 功能:歌曲播放子程序i为播放哪一段曲目
77 -------------------------------------------------*/
78 void Play_Song(unsigned char i)
79 {
80 1 unsigned char Temp1,Temp2;
81 1 unsigned int Addr;
82 1 Count = 0; //中断计数器清0
83 1 Addr = i * 217;
84 1 while(1)
85 1 {
86 2 Temp1 = SONG[Addr++];
87 2 if ( Temp1 == 0xFF ) //休止符
88 2 {
89 3 TR0 = 0;
90 3 Delay_xMs(100);
91 3 }
92 2 else if ( Temp1 == 0x00 ) //歌曲结束符
93 2 {
94 3 return;
95 3 }
96 2 else
97 2 {
98 3 Temp2 = SONG[Addr++];
99 3 TR0 = 1;
100 3 while(1)
101 3 {
102 4 _Speak = ~_Speak;
103 4 Delay_xMs(Temp1);
104 4 if ( Temp2 == Count )
105 4 {
106 5 Count = 0;
107 5 break;
108 5 }
109 4 }
110 3 }
111 2 }
112 1 }
113 /*-------------------------------------------------
114 功能:主程序
115 -------------------------------------------------*/
116 void main()
C51 COMPILER V8.05a HJMCU 01/14/2011 13:36:30 PAGE 3
117 {
118 1 Time0_Init(); //定时器0中断初始化
119 1 while(1)
120 1 {
121 2 Play_Song(0); //播放
122 2 }
123 1 }
124
125
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 163 ----
CONSTANT SIZE = 407 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -