📄 msin.lst
字号:
C51 COMPILER V7.09 MSIN 12/11/2006 11:49:07 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE MSIN
OBJECT MODULE PLACED IN msin.OBJ
COMPILER INVOKED BY: F:\软件安装1\软件安装\安装软件\C51\BIN\C51.EXE msin.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //=================================================
2 //创建者:蔡星 QQ:364444296
3 //创建日期:2006年11月12日
4 //项目:ISD4004语音芯片的录放
5 //=================================================
6 #include<reg51.h>
7 #include<intrins.h>
8 #include<head.h>
9
10 #define uchar unsigned char
11 #define uint unsigned int
12 //uint count;
13 uint count=0;
14
15 sbit sclk_4004=P3^5;
16 sbit rac_4004=P3^3;
17 sbit _int_4004=P3^4;
18 sbit ss_4004=P3^0;
19 sbit sda_4004=P3^1;
20 //sbit sda_4004_=P3^1;
21
22 sbit stop_4004=P1^0;//这是51板上的按键
23 sbit Luyin_4004=P1^1;
24 sbit play_4004=P1^2;
25 sbit hang_4004=P1^3;//
26
27 void delay_ISD4004(int i)
28 {
29 1 while(--i);
30 1 }
31
32 void stop()
33 {
34 1 uchar number,i;
35 1 number=0x30;
36 1 ss_4004=1;
37 1 sclk_4004=0;
38 1 ss_4004=0;
39 1 for(i=0;i<8;i++)
40 1 {
41 2 if(number&0x01) sda_4004=1;
42 2 else sda_4004=0;
43 2 sclk_4004=0;
44 2 sclk_4004=1;
45 2 number=number>>1;
46 2 //number>>=1;
47 2 }
48 1 ss_4004=1;
49 1 }
50
51 void power_down()
52 {
53 1 uchar num,i;
54 1 num=0x10;
55 1 ss_4004=1;
C51 COMPILER V7.09 MSIN 12/11/2006 11:49:07 PAGE 2
56 1 sclk_4004=0;
57 1 ss_4004=0;
58 1 for(i=0;i<8;i++)
59 1 {
60 2
61 2 if(num&0x01) sda_4004=1;
62 2 else sda_4004=0;
63 2 sclk_4004=0;
64 2 sclk_4004=1;
65 2 num=num>>1;
66 2 }
67 1 ss_4004=1;
68 1 }
69
70 void power_up()
71 {
72 1 uchar bult,_data_,i;
73 1 bult=0x20;
74 1 ss_4004=1;
75 1 sclk_4004=0;
76 1 ss_4004=0;
77 1 _data_=bult;
78 1 for(i=0;i<8;i++)
79 1 {
80 2
81 2 if(_data_&0x01) sda_4004=1;
82 2 else sda_4004=0;
83 2 sclk_4004=0;
84 2 sclk_4004=1;
85 2 //bult=bult>>1;
86 2 _data_>>=1;
87 2 }
88 1 ss_4004=1;
89 1 }
90
91 void record_4004(uint address)//address:0-2400
92 {
93 1 uchar data_4004,numb,i;
94 1 uint data_mode=0;
95 1 numb=0xa0;
96 1
97 1 power_up();
98 1 delay_ISD4004(5200);//大于25ms
99 1 power_up();
100 1 delay_ISD4004(10400);//是上面延时的两倍
101 1
102 1 ss_4004=1;
103 1 sclk_4004=0;
104 1 ss_4004=0;
105 1 data_mode=address;
106 1 for(i=0;i<16;i++)//16位地址控制位
107 1 {
108 2
109 2 if(data_mode&0x01) sda_4004=1;
110 2 else sda_4004=0;
111 2 sclk_4004=0;
112 2 sclk_4004=1;
113 2 //address=address>>1;
114 2 data_mode>>=1;
115 2 }
116 1 data_4004=numb;
117 1 for(i=0;i<8;i++)
C51 COMPILER V7.09 MSIN 12/11/2006 11:49:07 PAGE 3
118 1 {
119 2 if(data_4004&0x01) sda_4004=1;
120 2 else sda_4004=0;
121 2 sclk_4004=0;
122 2 sclk_4004=1;
123 2 //numb=numb>>1;
124 2 data_4004>>=1;
125 2 }
126 1
127 1 numb=0xb0;
128 1 ss_4004=1;
129 1 sclk_4004=0;
130 1 ss_4004=0;
131 1 for(i=0;i<8;i++)
132 1 {
133 2 if(numb&0x01) sda_4004=1;
134 2 else sda_4004=0;
135 2 sclk_4004=0;
136 2 sclk_4004=1;
137 2 //numb=numb>>1;
138 2 numb>>=1;
139 2 }
140 1 ss_4004=1;
141 1 P3=0xff;
142 1 data_mode=0;
143 1 while(_int_4004==1) //存储地址换行标志
144 1 {
145 2 if(rac_4004)
146 2 {
147 3 delay_ISD4004(20000);
148 3 data_mode++; //记录本次录音所占的行数 就是本次录音有多大
149 3 }
150 2 if(stop_4004==0){stop();return;}
151 2 }
152 1 }
153
154 void audio_out_4004(uint address)
155 {
156 1 uchar _data_4004,_numb,i;
157 1 uint _data_mode;
158 1 _numb=0xe0;
159 1
160 1 power_up();
161 1 delay_ISD4004(5200);
162 1 ss_4004=1;
163 1 sclk_4004=0;
164 1 ss_4004=0;
165 1 _data_mode=address;
166 1 for(i=0;i<16;i++)//16位地址控制位
167 1 {
168 2
169 2 sclk_4004=0;
170 2 if(_data_mode&0x01) sda_4004=1;
171 2 else sda_4004=0;
172 2 //sclk_4004=0;
173 2 sclk_4004=1;
174 2 //address=address>>1;
175 2 _data_mode>>=1;
176 2 }
177 1 _data_4004=_numb;
178 1 for(i=0;i<8;i++)
179 1 {
C51 COMPILER V7.09 MSIN 12/11/2006 11:49:07 PAGE 4
180 2
181 2 sclk_4004=0;
182 2 if(_data_4004&0x01) sda_4004=1;
183 2 else sda_4004=0;
184 2 //sclk_4004=0;
185 2 sclk_4004=1;
186 2 //_numb=_numb>>1;
187 2 _data_4004>>=1;
188 2 }
189 1
190 1 _numb=0xfe;
191 1 ss_4004=1;
192 1 sclk_4004=0;
193 1 ss_4004=0;
194 1 _data_4004=_numb;
195 1 for(i=0;i<8;i++)
196 1 {
197 2 sclk_4004=0;
198 2 if(_data_4004&0x01) sda_4004=1;
199 2 else sda_4004=0;
200 2 //sclk_4004=0;
201 2 sclk_4004=1;
202 2 //_numb=_numb>>1;
203 2 _data_4004>>=1;
204 2 }
205 1 ss_4004=1;
206 1 P3=0xff;
207 1 while(_int_4004==1)
208 1 {
209 2 if(stop_4004==0){stop();return;}
210 2 }
211 1 }
212
213
214
215 main()
216 {
217 1 //uint count=0;
218 1 //delay_ISD4004(100000);
219 1 while(1)
220 1 {
221 2 /*if(Luyin_4004==0)
222 2 {
223 2 P2=0x0f;
224 2 delay_ISD4004(10000);
225 2 record_4004(0);
226 2 P2=0xfd;
227 2 delay_ISD4004(10000);
228 2 }
229 2 if(play_4004==0)
230 2 {
231 2 P2=0xf0;
232 2 delay_ISD4004(10000);
233 2 audio_out_4004(0);
234 2 P2=0xdf;
235 2 delay_ISD4004(10000);
236 2 }*/
237 2 if(hang_4004==0)
238 2 {
239 3 //while(hang_4004==0) delay_ISD4004(100);
240 3 //delay_ISD4004(500);
241 3 count=count++;
C51 COMPILER V7.09 MSIN 12/11/2006 11:49:07 PAGE 5
242 3 display(count);
243 3 //while(hang_4004);
244 3 //delay_ISD4004(1000); co
245 3 if(count>5)
246 3 {
247 4 count=0;
248 4 display(count);
249 4 //delay_ISD4004(1000);
250 4 }
251 3 //while(stop_4004);
252 3 }
253 2
254 2
255 2 if((Luyin_4004==0)&&(count==0))
256 2 {
257 3 display(count);delay_ISD4004(1000);record_4004(0);
258 3 }
259 2 if((play_4004==0)&&(count==0))
260 2 {
261 3 display(count);delay_ISD4004(1000);audio_out_4004(0);
262 3 }
263 2
264 2 if((Luyin_4004==400)&&(count==1))
265 2 {
266 3 display(count);delay_ISD4004(1000);record_4004(0);
267 3 }
268 2 if((play_4004==400)&&(count==1))
269 2 {
270 3 display(count);delay_ISD4004(1000);audio_out_4004(0);
271 3 }
272 2
273 2
274 2 if((Luyin_4004==800)&&(count==2))
275 2 {
276 3 display(count);delay_ISD4004(1000);record_4004(0);
277 3 }
278 2 if((play_4004==800)&&(count==2))
279 2 {
280 3 display(count);delay_ISD4004(1000);audio_out_4004(0);
281 3 }
282 2
283 2 if((Luyin_4004==1200)&&(count==3))
284 2 {
285 3 display(count);delay_ISD4004(1000);record_4004(0);
286 3 }
287 2 if((play_4004==1200)&&(count==3))
288 2 {
289 3 display(count);delay_ISD4004(1000);audio_out_4004(0);
290 3 }
291 2
292 2 if((Luyin_4004==1600)&&(count==4))
293 2 {
294 3 display(count);delay_ISD4004(1000);record_4004(0);
295 3 }
296 2 if((play_4004==1600)&&(count==4))
297 2 {
298 3 display(count);delay_ISD4004(1000);audio_out_4004(0);
299 3 }
300 2
301 2 if((Luyin_4004==2000)&&(count==5))
302 2 {
303 3 display(count);delay_ISD4004(1000);record_4004(0);
C51 COMPILER V7.09 MSIN 12/11/2006 11:49:07 PAGE 6
304 3 }
305 2 if((play_4004==2000)&&(count==5))
306 2 {
307 3 display(count);delay_ISD4004(1000);audio_out_4004(0);
308 3 }
309 2
310 2
311 2 }
312 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 710 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
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 + -