📄 音乐.lst
字号:
C51 COMPILER V7.06 音乐 05/13/2009 14:53:36 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 音乐
OBJECT MODULE PLACED IN 音乐.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 音乐.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*-----------------------------------------------
2 名称:音乐播放
3 公司:上海浩豚电子科技有限公司
4 网站:www.doflye.cn
5 编写:师访
6 日期:2009.5
7 修改:无
8 内容:
9 ------------------------------------------------*/
10 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
11
12 sbit speaker=P1^2; //定义音乐输出端口
13 unsigned char timer0h,timer0l,time;
14 //世上只有妈妈好数据表
15 code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,
16 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
17 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
18 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
19 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0
20 };
21 // 音阶频率表 高八位
22 code unsigned char FREQH[]={
23 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
24 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
25 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
26 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
27 } ;
28 // 音阶频率表 低八位
29 code unsigned char FREQL[]={
30 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
31 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
32 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
33 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
34 };
35 /******************************************************************/
36 /* 延时函数 */
37 /******************************************************************/
38 void delay(unsigned char t)
39 {
40 1 unsigned char t1;
41 1 unsigned long t2;
42 1 for(t1=0;t1<t;t1++)
43 1 {
44 2 for(t2=0;t2<8000;t2++)
45 2 {
46 3 ;
47 3 }
48 2 }
49 1 TR0=0;
50 1 }
51 /******************************************************************/
52 /* 定时器中断函数 */
53 /******************************************************************/
54 void t0int() interrupt 1
55 {
C51 COMPILER V7.06 音乐 05/13/2009 14:53:36 PAGE 2
56 1 TR0=0;
57 1 speaker=!speaker;
58 1 TH0=timer0h;
59 1 TL0=timer0l;
60 1 TR0=1;
61 1 }
62 /******************************************************************/
63 /* 音乐处理函数 */
64 /******************************************************************/
65 void song()
66 {
67 1 TH0=timer0h;
68 1 TL0=timer0l;
69 1 TR0=1;
70 1 delay(time);
71 1 }
72 /******************************************************************/
73 /* 主函数 */
74 /******************************************************************/
75 void main(void)
76 {
77 1 unsigned char k,i;
78 1 TMOD=1; //置CT0定时工作方式1
79 1 EA=1;
80 1 ET0=1;//IE=0x82 //CPU开中断,CT0开中断
81 1 while(1)
82 1 {
83 2 i=0;
84 2 while(i<100){ //音乐数组长度 ,唱完从头再来
85 3 k=sszymmh[i]+7*sszymmh[i+1]-1;
86 3 timer0h=FREQH[k];
87 3 timer0l=FREQL[k];
88 3 time=sszymmh[i+2];
89 3 i=i+3;
90 3 song();
91 3 }
92 2 }
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = 158 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 8
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 + -