📄 main.lst
字号:
196 {
197 1 uchar ucTemp;
198 1
199 1 if(RI) //JIE SHOU ZHONG DUAN ;
200 1 {
201 2
202 2 ucTemp=SBUF;
203 2 if((ucTemp&0xF0)==0x50) //kai shi jie shou san zi jie shu ju;
204 2 {
205 3 byte_wei=0;
206 3 databyte[byte_wei++]=ucTemp;
207 3 }
208 2 else
209 2 if(byte_wei>0)
210 2 databyte[byte_wei++]=ucTemp;
211 2 if(byte_wei==3) //fang zhi cheng xu fa sheng cuo wu;
212 2 {
213 3 show_flag=1;
214 3 byte_wei=0;
215 3 ChuLi_Disp_Data();
216 3 }
217 2 RI=0;
218 2 }
219 1 }
220
221
222 // pei zhi t0 ding shi;
223 void t0_init()
224 {
225 1 EA=0;
226 1 TMOD|=0X01; //T0 GONG ZUO ZAI MO SHI 1,16 WEI DING SHI QI
227 1 TMOD&=0XF1;
228 1 TAMOD&=0XFE; //T0M2=0;
229 1 TH0=0XFA; //DING SHI YAN SHI 1ms;(2/FOSC)*2*(-T0)=1ms,fosc=7.3728MHz,
230 1 TL0=0X35; //yi tiao zhi ling XU 2 ge ji qi zhou qi;T0=-1843.2
231 1 TF0=0;
232 1 ET0=1;
233 1 TR0=1; //kai shi ding shi qi T0;
234 1 EA=1;
235 1 }
236
237
238 //ding shi xian shi cheng xu
239 void t0_interrupt() interrupt 1
C51 COMPILER V7.09 MAIN 07/23/2005 16:37:43 PAGE 5
240 {
241 1 //TF0=1; // YING JIAN ZI DONG QING LING;
242 1 //TH0=0XA0;
243 1 //TL0=0X35;
244 1 uchar_disp_wei++;
245 1 switch(uchar_disp_wei)
246 1 {
247 2 case 0x1:
248 2 //if(nearest_juli>=0&&nearest_juli<=3.15)
249 2 if(nearest_juli>=0&&nearest_juli<=3.15) //ju li da yu huo deng yu 0.3m
250 2 {
251 3 // P0=0XFF;
252 3 P0=nearest_juli<0.3?0xfd:disp_data[first_suzi]&0xFE; //xian shi di yi wei shu
-zi,ling jia shang dot xian shi
253 3 }
254 2 P1&=0X7F; //P1.7 ZHI LING
255 2 P1|=0X50;
256 2 break;
257 2 case 0x2:
258 2 // if(nearest_juli<0.3)
259 2 //{
260 2 // P0=0X31; //di er wei xian shi 'p'
261 2 // }
262 2 // else
263 2 if(nearest_juli>=0&&nearest_juli<=3.15)
264 2 {
265 3 P0=nearest_juli<0.3?0x31:disp_data[sec_suzi]; // xian shi di er wei shu
-zi
266 3 }
267 2 P1&=0XBF; //P1.6 ZI LING
268 2 P1|=0X90;
269 2 break;
270 2 case 0x3:
271 2 // if(nearest_juli<0.3)
272 2 // {
273 2 // P0=0XFD; //di san wei xian shi '-'
274 2 // }
275 2 if(nearest_juli>=0&&nearest_juli<=3.15)
276 2 {
277 3 P0=nearest_juli<0.3?0xfd:disp_data[thir_suzi]; //xian shi de san wei shu
-zi
278 3 }
279 2 P1&=0XEF; //P1.4 ZI LING
280 2 P1|=0XC0;
281 2 uchar_disp_wei=0x00;
282 2 break;
283 2 default:
284 2 uchar_disp_wei=0x00;
285 2 break;
286 2 }
287 1 if(nearest_juli>3.15)
288 1 P0=0XFF;
289 1 unSoundSpace++;
290 1 if(unSoundSpace<SOUNDHIGH)
291 1 {
292 2 SPK=ON;
293 2 RED_LED=ON;
294 2 }
295 1 //else
296 1 if(unSoundSpace>SOUNDHIGH&&unSoundSpace<=(SOUNDLOW*sound_flag+SOUNDHIGH))
297 1 {
298 2 SPK=OFF;
C51 COMPILER V7.09 MAIN 07/23/2005 16:37:43 PAGE 6
299 2 RED_LED=OFF;
300 2
301 2 }
302 1 if(unSoundSpace>SOUNDLOW*sound_flag+SOUNDHIGH)
303 1 {unSoundSpace=0;}
304 1 TF0=0;
305 1 TH0=0XFA; //DING SHI YAN SHI 1ms;(2/FOSC)*2*(-T0)=1ms,fosc=7.3728MHz,
306 1 TL0=0X35; //yi tiao zhi ling XU 2 ge ji qi zhou qi;T0=-1843.2
307 1 }
308 //CHU LI JIE SHOU DE SHU JU ,DE CHU YING XIAN SHI DE XIN XI;
309 void ChuLi_Disp_Data()
310 {
311 1 //chu li di yi wei shu ju;
312 1 switch(databyte[0]&0x0c)
313 1 {
314 2 case 0x00:first_char=0x6f;sec_char=0x3f;thir_char=0x3f;forth_char=0x3f; break;
315 2 case 0x04:first_char=0x3f;sec_char=0x6f;thir_char=0x3f;forth_char=0x3f; break;
316 2 case 0x08:first_char=0x3f;sec_char=0x3f;thir_char=0x6f;forth_char=0x3f; break;
317 2 case 0x0c:first_char=0x3f;sec_char=0x3f;thir_char=0x3f;forth_char=0x6f; break;
318 2 }
319 1 switch(databyte[0]&0x03)
320 1 {
321 2 case 0x00:first_detector=0xff;forth_detector=0xff;break;
322 2 case 0x01:first_detector=0xfe;forth_detector=0xff;break;
323 2 case 0x20:first_detector=0xff;forth_detector=0xfd;break;
324 2 case 0x03:first_detector=0xfe;forth_detector=0xfd;break;
325 2
326 2 }
327 1 //chu li di er wei shu ju;
328 1 first_suzi=toint(((databyte[2]&0x60)>>5)+'0');
329 1 sec_suzi=toint(((databyte[2]&0x1E)>>1)+'0');
330 1 thir_suzi=toint((databyte[2]&0x01)+'0')*5;
331 1 nearest_juli=first_suzi+0.1*sec_suzi+0.01*thir_suzi;
332 1 if(nearest_juli<0.25)
333 1 nearest_juli=0.0;
334 1 if(nearest_juli<0.3)
335 1 {sound_flag=tingche; GREEN_LED=OFF;}
336 1 if(nearest_juli>=0.3&&nearest_juli<0.6)
337 1 sound_flag=weixian;
338 1 if(nearest_juli>=0.6&&nearest_juli<=1.2)
339 1 sound_flag=jingshi;
340 1 if(nearest_juli>1.2&&nearest_juli<=3.15)
341 1 {sound_flag=anquan;GREEN_LED=ON;}
342 1 }
343
344 //gao jing fa sheng chengxu
345
346 /***********************************************
347 CS:This Pin use to select a device for enable SPI transfer
348 SCK:use as SPI Pin of timming clock
349 DIN:use as SPI PIN of data output
350 ***********************************************/
351 void DelayNus(int n)
352 {
353 1 int i=0;
354 1 for(i=n; i>0; i--)
355 1 {
356 2 _nop_(); //a machine cycle
357 2 }
358 1 }
359
360 void Transfer16Bit(int sendData) //send 16 bit data function
C51 COMPILER V7.09 MAIN 07/23/2005 16:37:43 PAGE 7
361 {
362 1 unsigned int i=0;
363 1 unsigned int sendValue =sendData;
364 1
365 1 int shift_bit=0x0001;
366 1 to_m35055_no++;//to_m35055实时xian shi xia yi wei di zhi;
367 1 //nCS=0;
368 1 //DelayNus(2);
369 1 for( i=16; i>0; i--)
370 1 {
371 2 SCK=0;
372 2 SIN=(sendValue&shift_bit)?1:0;
373 2
374 2 //SIN=sendValue>>(i-1);
375 2
376 2 DelayNus(2);
377 2 SCK=1;
378 2 shift_bit<<=1;
379 2 DelayNus(5);
380 2 }
381 1 }
382
383
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1588 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 37 2
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -