📄 sound.lst
字号:
C51 COMPILER V7.06 SOUND 08/02/2007 16:48:19 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SOUND
OBJECT MODULE PLACED IN Sound.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Sound.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "C89c55.h"
2 void Delay(unsigned int time);
3 //void SendData(uchar address,uchar type,uchar length);
4 void Init();
5 void FeedDog();
6 void Speak();
7
8 unsigned int Clock; // 定时计数值
9 unsigned char SerialFlag; // 串行通讯标志
10 unsigned char SerialData=0; // 串行通讯数据
11 unsigned char SendFlag;
12 unsigned char ComTime;
13 unsigned char SoundHigh;
14 unsigned char SoundLow;
15 unsigned char crc;
16 unsigned char length;
17 unsigned char number;
18 unsigned char *DataAdd;
19 unsigned char DataLength;
20
21 unsigned char idata ReceData[32];
22 unsigned char idata SoundData[30];
23 unsigned char idata NUM=0;
24 unsigned char idata RecPoint=0;
25 unsigned char idata SouPoint=0;
26
27 main()
28 {
29 1 Init();
30 1 while(1)
31 1 {
32 2 Speak();
33 2 FeedDog();
34 2 }
35 1 }
36
37 /******************************************************************************
38 函数名称: // Init()
39 功能描述: // 主要功能各芯片和定时器、串口的初始化
40 被本函数调用的函数清单:
41 调用本函数的函数清单: // main()
42 输入输出参数说明:
43 其它说明: //
44 *****************************************************************************/
45 void Init()
46 {
47 1
48 1 //各芯片工作初始设置
49 1 P1_1 = 0;
50 1 INT0 = 0; //485置接收方式
51 1 //定时器0初始化设置
52 1 TR0 = 0; //停止定时器中断0
53 1 TMOD = 0x21;
54 1 TL0 = 0x66; //1毫秒定时
55 1 TH0 = 0xfc; //
C51 COMPILER V7.06 SOUND 08/02/2007 16:48:19 PAGE 2
56 1 ET0 = 1; //设定时器0开始计数
57 1 TR0 = 1;
58 1 EA =1;
59 1 //串口初始化设置
60 1 SCON = 0x50;
61 1 PCON = 0x00;
62 1 TL1 = 0xFD; //9600 波特率
63 1 TH1 = 0xFD;
64 1 TR1 = 1;
65 1 ES = 1;
66 1 }
67 /******************************************************************************
68 函数名称: //Delay()
69 功能描述: //用于延时
70 被本函数调用的函数清单: //
71 调用本函数的函数清单: //main();singlestate();
72 输入输出参数说明: //time为定时的时间,以1ms为一个单位
73 其它说明: //
74 *****************************************************************************/
75
76 void Delay (unsigned int time)
77 {
78 1
79 1 Clock = time; //延时计数值赋值
80 1 while (Clock) //延时等待
81 1 FeedDog();
82 1 }
83 /******************************************************************************
84 函数名称: //Speak()
85 功能描述: //用于播放语音
86 被本函数调用的函数清单: //
87 调用本函数的函数清单: //main();
88 输入输出参数说明: //
89 其它说明: //放音过程:PD=0,给地址,/CE=0,放音,/CE=1,
90 //放完音,PD=1; 平时状态PD=1,/CE=1。
91 *****************************************************************************/
92
93 void Speak()
94 {
95 1 // P1_1 = 0;
96 1 if(NUM != 0)
97 1 {
98 2 P0 = SoundData[SouPoint++];
99 2 P2 = SoundData[SouPoint++];
100 2 P1_0 = 0;
101 2 P1_0 = 1;
102 2 if(SoundData[SouPoint] == 0xA1)
103 2 {
104 3 Delay(1600);
105 3 P0 = 0xA7;
106 3 P2 = 0x01;
107 3 P1_0 = 0;
108 3 P1_0 = 1;
109 3 }
110 2 if(SoundData[SouPoint] == 0x51)
111 2 {
112 3 Delay(1600);
113 3 P0 = 0x9d;
114 3 P2 = 0x01;
115 3 P1_0 = 0;
116 3 P1_0 = 1;
117 3 }
C51 COMPILER V7.06 SOUND 08/02/2007 16:48:19 PAGE 3
118 2 SouPoint++;
119 2 if(SouPoint>=30)
120 2 SouPoint=0;
121 2 NUM--;
122 2 Delay(1500);
123 2 }
124 1 // P1_1 = 1;
125 1 }
126 /******************************************************************************
127 函数名称: // SendData()
128 功能描述: // 设置发送帧的内容
129 被本函数调用的函数清单: //
130 调用本函数的函数清单: // main()
131 输入输出参数说明: //
132 其它说明: //
133 *****************************************************************************/
134 /*
135 void SendData(uchar address,uchar type,uchar length)
136 {
137 unsigned char i;
138
139 ReceData[0] = 0xeb;
140 ReceData[1] = 0x90;
141 ReceData[2] = 0xeb;
142 ReceData[3] = 0x90;
143 ReceData[4] = address;
144 ReceData[5] = type;
145 ReceData[6] = length;
146 ReceData[length+7] = 0;
147 for(i=0; i<length+7; i++)
148 ReceData[length+7] += ReceData[i];
149 DataAdd = ReceData;
150 DataLength = length + 8;
151 INT0 = 1;
152 SendFlag = 1;
153 }
154 */
155 /******************************************************************************
156 函数名称: // timer_int()
157 功能描述: // 主要功能定时器中断处理,查询按键,计时,计数
158 被本函数调用的函数清单:
159 调用本函数的函数清单:
160 输入输出参数说明: // timer0_tick延时计数值加1输出
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -