📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 03/08/2006 15:28:06 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg52.h"
2 unsigned char Count;
3 sbit _Speak =P0^0 ; //讯响器控制脚
4
5 unsigned char code SONG[] ={ //祝你平安
6 0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
7 0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
8 0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
9 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
10 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
11 0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
12 0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
13 0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
14 0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
15 0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
16 0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
17 0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
18 0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
19 0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,
20 //路边的野华不要采
21 0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,
22 0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,
23 0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,
24 0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
25 0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
26 0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,
27 0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,
28 0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,
29 0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,
30 0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,
31 0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,
32 0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,
33
34 };
35
36 void Time0_Init()
37 {
38 1 TMOD = 0x01;
39 1 IE = 0x82;
40 1 TH0 = 0xD8;
41 1 TL0 = 0xEF; //12MZ晶振,10ms
42 1 }
43
44 void Time0_Int() interrupt 1
45 {
46 1 TH0 = 0xD8;
47 1 TL0 = 0xEF;
48 1 Count++; //长度加1
49 1 }
50
51 /*-------------------------------------------------
52 功能:1MS延时子程序
53 -------------------------------------------------*/
54 void Delay_xMs(unsigned int x)
55 {
C51 COMPILER V7.06 MAIN 03/08/2006 15:28:06 PAGE 2
56 1 unsigned int i,j;
57 1 for( i =0;i < x;i++ )
58 1 {
59 2 for( j =0;j<3;j++ );
60 2 }
61 1 }
62
63 /*-------------------------------------------------
64 功能:歌曲播放子程序i为播放哪一段曲目
65 -------------------------------------------------*/
66 void Play_Song(unsigned char i)
67 {
68 1 unsigned char Temp1,Temp2;
69 1 unsigned int Addr;
70 1 Count = 0; //中断计数器清0
71 1 Addr = i * 217;
72 1 while(1)
73 1 {
74 2 Temp1 = SONG[Addr++];
75 2 if ( Temp1 == 0xFF ) //休止符
76 2 {
77 3 TR0 = 0;
78 3 Delay_xMs(100);
79 3 }
80 2 else if ( Temp1 == 0x00 ) //歌曲结束符
81 2 {
82 3 return;
83 3 }
84 2 else
85 2 {
86 3 Temp2 = SONG[Addr++];
87 3 TR0 = 1;
88 3 while(1)
89 3 {
90 4 _Speak = ~_Speak;
91 4 Delay_xMs(Temp1);
92 4 if ( Temp2 == Count )
93 4 {
94 5 Count = 0;
95 5 break;
96 5 }
97 4 }
98 3 }
99 2 }
100 1 }
101 /*-------------------------------------------------
102 功能:主程序
103 -------------------------------------------------*/
104 void main()
105 {
106 1 Time0_Init(); //定时器0中断初始化
107 1 while(1)
108 1 {
109 2 Play_Song(0); //播放
110 2 }
111 1 }
112
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 163 ----
CONSTANT SIZE = 407 ----
C51 COMPILER V7.06 MAIN 03/08/2006 15:28:06 PAGE 3
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 + -