📄 sound.lst
字号:
C51 COMPILER V7.09 SOUND 07/07/2006 14:12:53 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE SOUND
OBJECT MODULE PLACED IN Sound.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Sound.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************************************/
2 /* 文件名称: Sound.C */
3 /* 功能描述: 电子发生实验,演奏"友谊地久天长" */
4 /****************************************************************/
5
6 #include "SST89x5x4.h"
7 sbit POUT = P0^0; //扬声器控制引脚
8 #define Clk 0x070000
9
10 unsigned char data val_H; //计数器高字节
11 unsigned char data val_L; //计数器低字节
12 //频率表
13 unsigned int code freq_list[] = {371,495,495,495,624,556,495,556,624,
14 495,495,624,742,833,833,833,742,624,
15 624,495,556,495,556,624,495,416,416,
16 371,495,833,742,624,624,495,556,495,
17 556,833,742,624,624,742,833,990,742,
18 624,624,495,556,495,556,624,495,416,
19 416,371,495,0};
20 //时间表
21 unsigned char code time_list[]= {4, 6, 2, 4, 4, 6, 2, 4, 4, 6,
22 2, 4, 4,12, 1, 3, 6, 2, 4, 4,
23 6, 2, 4, 4, 6, 2, 4, 4,12, 4,
24 6, 2, 4, 4, 6, 2, 4, 4, 6, 2,
25 4, 4,12, 4, 6, 2, 4, 4, 6, 2,
26 4, 4, 6, 2, 4, 4,12};
27
28 void t0_isr() interrupt 1 //定时器0中断处理程序
29 {
30 1 POUT = ~POUT; //产生方波
31 1 TH0 = val_H; //重新装入计数值
32 1 TL0 = val_L;
33 1 }
34
35 void Delay(unsigned char cnt) //单位延时
36 {
37 1 unsigned char i;
38 1 unsigned int j;
39 1 for(i=0; i<cnt; i++)
40 1 {
41 2 for(j=0; j<0x3600; j++);
42 2 }
43 1 }
44
45 void main(void)
46 {
47 1 unsigned int val;
48 1 unsigned char i;
49 1 TMOD = 0x01; //初始化
50 1 IE = 0x82;
51 1 TR0 = 1;
52 1 while(1)
53 1 {
54 2 i = 0;
55 2 while(freq_list[i]) //频率为0重新开始
C51 COMPILER V7.09 SOUND 07/07/2006 14:12:53 PAGE 2
56 2 {
57 3 val = Clk/(freq_list[i]);
58 3 val = 0xFFFF - val; //计算计数值
59 3 val_H = (val>>8)&0xff;
60 3 val_L = val&0xff;
61 3 TH0 = val_H;
62 3 TL0 = val_L;
63 3 Delay(time_list[i]);
64 3 i++;
65 3 }
66 2 }
67 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 142 ----
CONSTANT SIZE = 173 ----
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 + -