📄 text1.lst
字号:
C51 COMPILER V8.02 TEXT1 05/07/2009 23:14:46 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: F:\keil\C51\BIN\C51.EXE Text1 BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2
3 #define uint unsigned int
4 #define uchar unsigned char
5 #define ulong unsigned long
6 sbit beep=P3^7; //蜂鸣器输出引脚
7
8 uchar th0_f; //中断装载T0高8位
9 uchar tl0_f; //T0低8位
10
11 uchar code freq[36*2]={ //音阶码表
12 0xf7,0xd8, //440hz , 1 //0
13 0xf8,0x50, //466hz , 1# //1
14 0xf8,0xbc, //494hz , 2 //2
15 0xf9,0x26, //524hz , 2# //3
16 0xf9,0x85, //554hz , 3 //4
17 0xf9,0xe5, //588hz , 4 //5
18 0xfa,0x3d, //622hz , 4# //6
19 0xfa,0x92, //660hz , 5 //7
20 0xfa,0xdd, //698hz , 5# //8
21 0xfb,0x29, //740hz , 6 //9
22 0xfb,0x70, //784hz , 6# //10
23 0xfb,0xb0, //830hz , 7 //11
24 0xfb,0xef, //880hz , 1 //12
25 0xfc,0x29, //932hz , 1# //13
26 0xfc,0x62, //988hz , 2 //14
27 0xfc,0x95, //1046hz, 2# //15
28 0xfc,0xc7, //1108hz, 3 //16
29 0xfc,0xf5, //1174hz, 4 //17
30 0xfd,0x20, //1244hz, 4# //18
31 0xfd,0x4c, //1318hz, 5 //19
32 0xfd,0x72, //1396hz, 5# //20
33 0xfd,0x97, //1480hz, 6 //21
34 0xfd,0xbb, //1568hz, 6# //22
35 0xfd,0xdc, //1662hz, 7 //23
36 0xfd,0xfb, //1769hz, `1 //24
37 0xfe,0x18, //1864hz, `1# //25
38 0xfe,0x34, //1976hz, `2 //26
39 0xfe,0x4e, //2092hz, `2# //27
40 0xfe,0x67, //2218hz, `3 //28
41 0xfe,0x7d, //2350hz, `4 //29
42 0xfe,0x94, //2488hz, `4# //30
43 0xfe,0xa8, //2639hz, `5 //31
44 0xfe,0xbc, //2794hz, `5# //32
45 0xfe,0xcf, //2960hz, `6 //33
46 0xfe,0xe0, //3136hz, `6# //34
47 0xfe,0xf1, //3322hz, `7 //35
48 };
49
50 uchar code diaodata[30]={ //音调代码
51 0x10,0x0e,0x0c,0x10,0x0e,0x0c,
52 0x10,0x0e,0x10,0x0c,0x10,0x15,
53 0x13,0x10,0x13,0x15,0x15,0x13,
54 0x15,0x13,0x10,0x0e,0x0c,0x0e,
55 0x0e,0x10,0x0e,0x0c,0x0e,0x00};
C51 COMPILER V8.02 TEXT1 05/07/2009 23:14:46 PAGE 2
56
57 uchar code jiedata[30]={ //音长代码
58 0x04,0x04,0x08,0x06,0x02,0x08,
59 0x04,0x04,0x04,0x04,0x02,0x06,
60 0x08,0x02,0x02,0x04,0x04,0x04,
61 0x04,0x08,0x02,0x02,0x04,0x04,
62 0x02,0x02,0x04,0x04,0x0c,0x00};
63
64 void timer0() interrupt 1 //用于产生音符的T0中断服务程序
65 {
66 1 TH0=th0_f;
67 1 TL0=tl0_f;
68 1 beep=~beep; //取反beep引脚,发声
69 1 }
70
71 void main(void)
72 {
73 1 uchar i,j,k=0;
74 1 uint n;
75 1 TMOD=0X01; //T0方式1
76 1 TR0=0; //关闭T0(不发声)
77 1 ET0=1; //允许T0中断
78 1 EA=1; //允许总中断
79 1 while(1)
80 1 {
81 2 TR0=1; //开T0
82 2 for(i=0;diaodata[i]!=0;i++)
83 2 {
84 3 th0_f=freq[diaodata[i]*2];
85 3 tl0_f=freq[diaodata[i]*2+1];
86 3 for(j=0;j<20000;n++); //(jiedata*20000)
87 3 TR0=0;
88 3 for(n=0;n<256;n++); //音符之间的短暂延时
89 3 TR0=1;
90 3 }
91 2 TR0=0;
92 2 }
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 112 ----
CONSTANT SIZE = 132 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 1
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 + -