📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 09/01/2008 20:48:35 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #include<intrins.h> // 声明了void _nop_(void);
3 #define uchar unsigned char
4 #define uint unsigned int
5 sbit CS = P3^2;
6
7 void Delay(uint t);
8 void Send_command(uchar addr,uchar dat);
9 uchar Read_command(uchar addr);
10 void Send_byte(uchar dat);
11 uchar Read_byte();
12
13 /*******************************************************
14 函数名称:Delay(uint t);
15 功 能:延时
16 参 数:无
17 返 回 值:无
18 ********************************************************/
19 void Delay(uint t){
20 1 while(t--);
21 1
22 1
23 1 }
24
25
26 /*******************************************************
27 函数名称:Send_byte(uchar dat);
28 功 能:发送一个字节
29 参 数:无符号字符型
30 返 回 值:无
31 ********************************************************/
32 void Send_byte(uchar dat){
33 1 TI = 0;
34 1 SBUF = dat;
35 1 while(!TI);
36 1
37 1 }
38
39 /*******************************************************
40 函数名称:Rend_byte();
41 功 能:接收一个字节
42 参 数:无
43 返 回 值:无符号字符型
44 ********************************************************/
45 uchar Read_byte(){
46 1 uchar dat = 0;
47 1 RI = 0;
48 1 dat = SBUF;
49 1 while(!RI);
50 1 return dat;
51 1 }
52
53 /*******************************************************
54 函数名称:Send_command(uchar addr,uchar dat);
55 功 能:发送一个命令
C51 COMPILER V7.06 MAIN 09/01/2008 20:48:35 PAGE 2
56 参 数:无符号字符型 地址 数据
57 返 回 值:无
58 ********************************************************/
59 void Send_command(uchar addr,uchar dat){
60 1 CS = 0;
61 1 Delay(3);
62 1 addr <<= 1;
63 1 addr &= 0x7e; //写
64 1 Send_byte(addr);
65 1 CS = 1;
66 1 Delay(30);
67 1 Send_byte(dat);
68 1 Delay(3);
69 1
70 1
71 1 }
72
73 /*******************************************************
74 函数名称:Rend_command(uchar addr);
75 功 能:接收一个命令
76 参 数:无符号字符型 地址
77 返 回 值:无符号字符型 数据
78 ********************************************************/
79 uchar Read_command(uchar addr){
80 1 uchar dat = 0;
81 1 CS = 0;
82 1 Delay(3);
83 1 addr <<= 1;
84 1 addr &= 0x7e;
85 1 addr += 1; //读
86 1 Send_byte(addr);
87 1 CS = 1;
88 1 Delay(30);
89 1 dat = Read_byte();
90 1 Delay(3);
91 1
92 1 return dat;
93 1 }
94
95
96
97 //产生音调函数
98 void yindiao()
99 {
100 1 Send_command(0x15,0x0c);//选择通道
101 1 Send_command(0x1E,0x00);//复位DSP
102 1 Send_command(0x1D,0x70);//设置接收增益
103 1 Send_command(0x20,0x30);//设置发送增益
104 1 Send_command(0x23,0x59);//写音调系数1
105 1 Send_command(0x24,0xAB);//写音调系数2
106 1 Send_command(0x26,0x10);//写颤音系数
107 1 Send_command(0x1E,0x61);//开始音调编程
108 1 Send_command(0x0E,0x82);//选择扬声器和滤波器
109 1 Send_command(0x1E,0x61);//控制振铃节奏
110 1 }
111 //产生拨号音函数
112 void bohao()
113 {
114 1 Send_command(0x15,0x04);//选择通道
115 1 Send_command(0x1E,0x00);//复位DSP
116 1 Send_command(0x1D,0x22);//设置DTMF接收增益
117 1 Send_command(0x20,0x30);//设置音频发送增益
C51 COMPILER V7.06 MAIN 09/01/2008 20:48:35 PAGE 3
118 1 Send_command(0x21,0x2E);//设置DTMF发送增益
119 1 Send_command(0x23,0x59);//写音调系数1
120 1 Send_command(0x24,0xAB);//写音调系数2
121 1 Send_command(0x1E,0x41);//开始DTMF编程
122 1 Send_command(0x0E,0x82);//选择扬声器和滤波器
123 1
124 1 }
125
126 //听筒通话
127 void tingtong()
128 {
129 1 Send_command(0x15,0x04);//选择通道
130 1 Send_command(0x1E,0x00);//复位DSP
131 1 Send_command(0x1D,0x70);//设置接收增益
132 1 Send_command(0x20,0x30);//设置发送增益
133 1 Send_command(0x1E,0x21);//开始接收增益编程
134 1 Send_command(0x0E,0x99);//选择通话设备和上电 ???不能读出
135 1 Send_command(0x0B,0x04);//设置消侧音增益
136 1 }
137
138 //免提通话
139 void mianti()
140 {
141 1 Send_command(0x15,0x0c);//选择通道 ???默认读出0x08
142 1 Send_command(0x1E,0x00);//复位DSP
143 1 Send_command(0x1D,0x38);//设置接收增益
144 1 Send_command(0x20,0x30);//设置发送增益
145 1 Send_command(0x1E,0x81);//开始免提编程
146 1 Send_command(0x0E,0x1E);//设置消侧音增益
147 1 }
148
149
150
151 void main(){
152 1
153 1 uchar dat = 0;
154 1 SCON = 0x10;
155 1 P0 = 0xf0;
156 1 //yindiao();
157 1 //bohao();
158 1 //mianti();
159 1 //tingtong();
160 1 //Send_command(0x1E,0x00);//复位DSP
161 1 //Send_command(0x15,0x0f);//临时调试命令
162 1
163 1 /****************************调试段*********************************/
164 1
165 1
166 1 /*
167 1 Send_command(0x15,0x0c);//选择通道
168 1 Send_command(0x1E,0x00);//复位DSP
169 1 Send_command(0x1D,0x70);//设置接收增益
170 1 Send_command(0x20,0x30);//设置发送增益
171 1 Send_command(0x23,0x59);//写音调系数1
172 1 Send_command(0x24,0xAB);//写音调系数2
173 1 Send_command(0x26,0x16);//写颤音系数
174 1
175 1
176 1 Send_command(0x1E,0x61);//开始音调编程
177 1 Send_command(0x0E,0x8f);//选择扬声器和滤波器
178 1 Send_command(0x1E,0x61);//控制振铃节奏
179 1 Send_command(0x0B,0x00);//
C51 COMPILER V7.06 MAIN 09/01/2008 20:48:35 PAGE 4
180 1 Send_command(0x0A,0x07);//
181 1 Send_command(0x03,0x61);//
182 1 */
183 1 //Send_command(0x1E,0x00);//复位DSP
184 1
185 1 /*******************************************************************/
186 1
187 1
188 1
189 1
190 1
191 1 while(1){
192 2
193 2 //P0 = ~Read_command(0x15);
194 2 P0 = 0xff;
195 2 _nop_(); // 产生一条NOP指令
196 2 P0 = 0x00;
197 2 //Delay(4);
198 2 //NOP();
199 2
200 2 _nop_(); // 产生一条NOP指令
201 2 _nop_(); // 产生一条NOP指令
202 2 _nop_(); // 产生一条NOP指令
203 2 _nop_(); // 产生一条NOP指令
204 2 _nop_(); // 产生一条NOP指令
205 2 _nop_(); // 产生一条NOP指令
206 2 _nop_(); // 产生一条NOP指令
207 2 _nop_(); // 产生一条NOP指令
208 2 _nop_(); // 产生一条NOP指令
209 2 _nop_(); // 产生一条NOP指令
210 2 _nop_(); // 产生一条NOP指令
211 2 _nop_(); // 产生一条NOP指令
212 2 _nop_(); // 产生一条NOP指令
213 2 _nop_(); // 产生一条NOP指令
214 2 _nop_(); // 产生一条NOP指令
215 2 _nop_(); // 产生一条NOP指令
216 2 _nop_(); // 产生一条NOP指令
217 2 _nop_(); // 产生一条NOP指令
218 2 _nop_(); // 产生一条NOP指令
219 2 _nop_(); // 产生一条NOP指令
220 2 _nop_(); // 产生一条NOP指令
221 2 _nop_(); // 产生一条NOP指令
222 2 _nop_(); // 产生一条NOP指令
223 2 _nop_(); // 产生一条NOP指令
224 2 _nop_(); // 产生一条NOP指令
225 2 _nop_(); // 产生一条NOP指令
226 2 _nop_(); // 产生一条NOP指令
227 2 _nop_(); // 产生一条NOP指令
228 2 _nop_(); // 产生一条NOP指令
229 2 _nop_(); // 产生一条NOP指令
230 2 _nop_(); // 产生一条NOP指令
231 2 _nop_(); // 产生一条NOP指令
232 2 _nop_(); // 产生一条NOP指令
233 2 _nop_(); // 产生一条NOP指令
234 2 _nop_(); // 产生一条NOP指令
235 2 _nop_(); // 产生一条NOP指令
236 2 _nop_(); // 产生一条NOP指令
237 2 _nop_(); // 产生一条NOP指令
238 2 _nop_(); // 产生一条NOP指令
239 2 _nop_(); // 产生一条NOP指令
240 2 _nop_(); // 产生一条NOP指令
241 2 _nop_(); // 产生一条NOP指令
C51 COMPILER V7.06 MAIN 09/01/2008 20:48:35 PAGE 5
242 2 _nop_(); // 产生一条NOP指令
243 2 _nop_(); // 产生一条NOP指令
244 2 _nop_(); // 产生一条NOP指令
245 2 _nop_(); // 产生一条NOP指令
246 2 _nop_(); // 产生一条NOP指令
247 2 _nop_(); // 产生一条NOP指令
248 2 _nop_(); // 产生一条NOP指令
249 2 _nop_(); // 产生一条NOP指令
250 2 _nop_(); // 产生一条NOP指令
251 2 _nop_(); // 产生一条NOP指令
252 2
253 2
254 2
255 2
256 2 }
257 1
258 1
259 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 364 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -