?? yinyue11.lst
字號(hào):
C51 COMPILER V7.50 YINYUE11 05/22/2008 16:23:47 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE YINYUE11
OBJECT MODULE PLACED IN yinyue11.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE yinyue11.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 unsigned char m; //m為頻率常數(shù)
3 unsigned char n=0; //n為節(jié)拍常數(shù)
4 unsigned char i=0;
5 sbit bell=P1^0;
6 unsigned char code music_tab[] ={
7 0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數(shù), 節(jié)拍常數(shù), 頻率常數(shù), 節(jié)拍常數(shù),
8 0x20, 0x40, 0x1C , 0x10,
9 0x18, 0x10, 0x20 , 0x10,
10 0x1C, 0x10, 0x18 , 0x40,
11 0x1C, 0x20, 0x20 , 0x20,
12 0x1C, 0x20, 0x18 , 0x20,
13 0x20, 0x80, 0xFF , 0x20,
14 0x30, 0x1C, 0x10 , 0x18,
15 0x20, 0x15, 0x20 , 0x1C,
16 0x20, 0x20, 0x20 , 0x26,
17 0x40, 0x20, 0x20 , 0x2B,
18 0x20, 0x26, 0x20 , 0x20,
19 0x20, 0x30, 0x80 , 0xFF,
20 0x20, 0x20, 0x1C , 0x10,
21 0x18, 0x10, 0x20 , 0x20,
22 0x26, 0x20, 0x2B , 0x20,
23 0x30, 0x20, 0x2B , 0x40,
24 0x20, 0x20, 0x1C , 0x10,
25 0x18, 0x10, 0x20 , 0x20,
26 0x26, 0x20, 0x2B , 0x20,
27 0x30, 0x20, 0x2B , 0x40,
28 0x20, 0x30, 0x1C , 0x10,
29 0x18, 0x20, 0x15 , 0x20,
30 0x1C, 0x20, 0x20 , 0x20,
31 0x26, 0x40, 0x20 , 0x20,
32 0x2B, 0x20, 0x26 , 0x20,
33 0x20, 0x20, 0x30 , 0x80,
34 0x20, 0x30, 0x1C , 0x10,
35 0x20, 0x10, 0x1C , 0x10,
36 0x20, 0x20, 0x26 , 0x20,
37 0x2B, 0x20, 0x30 , 0x20,
38 0x2B, 0x40, 0x20 , 0x15,
39 0x1F, 0x05, 0x20 , 0x10,
40 0x1C, 0x10, 0x20 , 0x20,
41 0x26, 0x20, 0x2B , 0x20,
42 0x30, 0x20, 0x2B , 0x40,
43 0x20, 0x30, 0x1C , 0x10,
44 0x18, 0x20, 0x15 , 0x20,
45 0x1C, 0x20, 0x20 , 0x20,
46 0x26, 0x40, 0x20 , 0x20,
47 0x2B, 0x20, 0x26 , 0x20,
48 0x20, 0x20, 0x30 , 0x30,
49 0x20, 0x30, 0x1C , 0x10,
50 0x18, 0x40, 0x1C , 0x20,
51 0x20, 0x20, 0x26 , 0x40,
52 0x13, 0x60, 0x18 , 0x20,
53 0x15, 0x40, 0x13 , 0x40,
54 0x18, 0x80, 0x00
55 };
C51 COMPILER V7.50 YINYUE11 05/22/2008 16:23:47 PAGE 2
56
57 void time0(void) interrupt 1 using 1 //產(chǎn)生10MS精確定時(shí)
58 { TH0=(65536-10000)/256;
59 1 TL0=(65536-10000)%256;
60 1 n--;
61 1 }
62 void delayms(unsigned char a) //微秒延時(shí)程序
63 {
64 1 while(--a);
65 1 }
66 void delay(void) //延遲程序
67 {
68 1 int i,j;
69 1 for(i=50;i--;i>0)
70 1 for(j=10000;j--;j>0)
71 1 ;
72 1 }
73
74
75 void main()
76 {
77 1
78 1 TMOD=(TMOD&0xf0)|0x01;
79 1 TH0=(65536-10000)/256;
80 1 TL0=(65536-10000)%256;
81 1 EA=1;
82 1 ET0=1;
83 1 TR0=0;
84 1 while(1)
85 1 {
86 2 switch(music_tab[i])
87 2 {
88 3 case 0x00:
89 3 i=0;delay(); break; // 曲終停頓一定時(shí)間
90 3 case 0xff:
91 3 i=i+1;delayms(100);break; //遇到休止符停頓一定時(shí)間100微秒,再取下一個(gè)頻率
92 3 default:
93 3 m=music_tab[i++];n=music_tab[i++];//取頻率到m,取節(jié)拍到n
94 3
95 3 TR0=1;
96 3 while(n!=0)
97 3 {
98 4 P1=bell;
99 4 delayms(4*m);//調(diào)整產(chǎn)生的頻率,可以通過(guò)在m前的值來(lái)修正音調(diào)的高低
100 4 bell=!bell;
101 4 }
102 3 TR0=0;
103 3 }
104 2 }
105 1 }
106
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 141 ----
CONSTANT SIZE = 191 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V7.50 YINYUE11 05/22/2008 16:23:47 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -