📄 111.lst
字号:
238 1 cs=1;
239 1 lcdbusy();
240 1 sendbyte(sta);
241 1 sendbyte(hdata);
C51 COMPILER V8.02 111 03/12/2009 20:05:27 PAGE 5
242 1 sendbyte(ldata);
243 1 cs=0;
244 1 }
245 //****************************************************************
246 void ex0(void) interrupt 0 using 0
247 {EX0=0;
248 1 TR0=0;
249 1 timeh=TH0;
250 1 timel=TL0;
251 1 TH0=0;
252 1 TL0=0;
253 1 IE0=0;
254 1 ff=1;
255 1 re=0;
256 1 }
257 //****************************************************************
258 void computers(unsigned int v)
259 {unsigned long s;
260 1 unsigned int ss;
261 1 unsigned char i;
262 1 v=v/2;
263 1 s=timeh;
264 1 s=s<<8;
265 1 s=s+timel;
266 1 // s=s*v;
267 1 if(comflag==1) s=s-270; //时间修正-194
268 1 else s=s-142; //-177
269 1 s=s*v;
270 1
271 1 //ss=s/100000;
272 1
273 1 if(14000000<s&&s<19500000) s=s+240000;
274 1 else if(s>=19500000&&s<28500000) s=s+140000;
275 1 else if(s>=36500000&&s<=40000000) s=s-30000;
276 1 else if(s>49500000&&s<59500000) s=s-25000;
277 1 else if(s>=59500000&&s<=69500000) s=s-49000;
278 1 else if(s>69500000) s=s-700000;
279 1 else s=s;
280 1 ss=s/100000;
281 1 disbufs[0]=s/100000000;
282 1 s=s%100000000;
283 1 disbufs[1]=s/10000000;
284 1 s=s%10000000;
285 1 disbufs[3]=s/1000000;
286 1 s=s%1000000;
287 1 disbufs[4]=s/100000;
288 1 s=s%100000;
289 1 disbufs[5]=s/10000;
290 1
291 1
292 1 soubuf[0]=sound[disbufs[0]];
293 1 soubuf[1]=sound[disbufs[1]];
294 1 soubuf[2]=92;
295 1 soubuf[3]=sound[disbufs[3]];
296 1 soubuf[4]=sound[disbufs[4]];
297 1 soubuf[5]=83;
298 1
299 1 for(i=0;i<6;i++)
300 1 disbufs[i]=disbufs[i]|0x30;
301 1 disbufs[2]=0x2e;
302 1 disbufs[6]=0x6d;
303 1
C51 COMPILER V8.02 111 03/12/2009 20:05:27 PAGE 6
304 1 if(ss<=200) pf=0;
305 1 else if(ss>200&&ss<=300) pf=1;
306 1 else if(ss>300) pf=2;
307 1 else pf=3;
308 1 }
309 //***********************************************************
310 void display(void)
311 {unsigned char i;
312 1 wrlcd(0xf8,0x80);
313 1 for(i=0;i<9;i++)
314 1 wrlcd(0xfa,word[i]);
315 1 for(i=0;i<7;i++)
316 1 wrlcd(0xfa,disbufs[i]);
317 1 wrlcd(0xf8,0x92);
318 1 for(i=0;i<8;i++)
319 1 {if(pf==0) {wrlcd(0xfa,wordd[i]);dr=0;sg=1;hy=1;}
320 2 if(pf==1) {wrlcd(0xfa,wordh[i]);hy=0;dr=1;sg=1;}
321 2 if(pf==2) {wrlcd(0xfa,words[i]);sg=0;dr=1;hy=1;}
322 2 }
323 1 wrlcd(0xf8,0x89);
324 1 for(i=0;i<12;i++)
325 1 {if (vc==1) {wrlcd(0xfa,wordpower[i]);dpl=1;}
326 2 if (vc==0) {wrlcd(0xfa,worddrop[i]);dpl=0;}
327 2 }
328 1 wrlcd(0xf8,0x98);
329 1 for(i=0;i<5;i++)
330 1 wrlcd(0xfa,wordt[i]);
331 1 for(i=0;i<8;i++)
332 1 wrlcd(0xfa,disbuft[i]);
333 1 wrlcd(0xf8,0x9e);
334 1 wrlcd(0xfa,0xa1);
335 1 wrlcd(0xfa,0xe6);
336 1 }
337 //******************************************************************
338 void speak(void)
339 {unsigned char i,j,k,h;
340 1 for(i=1;i<6;i++)
341 1 {P1=soubuf[i];
342 2 play=0;
343 2 for(j=5;j>0;j--)
344 2 for(k=255;k>0;k--)
345 2 for(h=250;h>0;h--);
346 2 play=1;
347 2 for(j=190;j>0;j--)
348 2 for(k=255;k>0;k--);
349 2 }
350 1 }
351 //******************************************************
352 void send0(void)
353 {unsigned char i,j;
354 1 EX0=0;
355 1 TH0=0;
356 1 TL0=0;
357 1 //re=1;
358 1 ff=0;
359 1 TR0=1;
360 1 for(i=2;i>0;i--) //20 //2
361 1 {fang=1;
362 2 for(j=5;j>0;j--);
363 2 fang=0;
364 2 for(j=4;j>0;j--);
365 2 }
C51 COMPILER V8.02 111 03/12/2009 20:05:27 PAGE 7
366 1 //TR0=1;
367 1 for(j=8;j>0;j--) //延时消除余震3ms 3,255 //2,255//8,65
368 1 for(i=65;i>0;i--);
369 1 IE0=0;
370 1 EX0=1;
371 1 //等待中断回波
372 1 for(i=139;i>0;i--)
373 1 for(j=255;j>0;j--);
374 1 }
375 //********************************************************************
376 void send1(void)
377 {unsigned char i,j;
378 1 EX0=0;
379 1 TH0=0;
380 1 TL0=0;
381 1 //re=1;
382 1 ff=0;
383 1 TR0=1;
384 1 for(i=20;i>0;i--) //20 //2
385 1 {fang=1;
386 2 for(j=5;j>0;j--);
387 2 fang=0;
388 2 for(j=4;j>0;j--);
389 2 }
390 1 //TR0=1;
391 1 for(j=2;j>0;j--) //延时消除余震3ms 3,255 //2,255//8,65
392 1 for(i=255;i>0;i--);
393 1 IE0=0;
394 1 EX0=1;
395 1 //等待中断回波
396 1 for(i=139;i>0;i--)
397 1 for(j=255;j>0;j--);
398 1 }
399 //******************************************************************
400 void intlcd(void) //初始化LCD
401 {//delay40();
402 1 de750ms();
403 1 wrlcd(0xf8,0x30); //功能设定
404 1 wrlcd(0xf8,0x30); //功能设定
405 1 wrlcd(0xf8,0x30); //功能设定
406 1 wrlcd(0xf8,0x0c); //显示状态
407 1 wrlcd(0xf8,0x06); //显示右移
408 1 }
409 //*****************************************************************
410 void checkself(void)
411 {unsigned char i;
412 1 unsigned char j,k;
413 1 P1=97;
414 1 P2=0x00;
415 1 wrlcd(0xf8,0x81);
416 1 for(i=0;i<13;i++)
417 1 wrlcd(0xfa,check[i]);
418 1
419 1 for(i=0;i<20;i++)
420 1 for(j=0;j<255;j++)
421 1 for(k=0;k<255;k++);
422 1 play=1;
423 1 P2=0x7f;
424 1
425 1 }
426 //***************************************************************
427 void main(void)
C51 COMPILER V8.02 111 03/12/2009 20:05:27 PAGE 8
428 {
429 1 TMOD=0x01;
430 1 TH0=0;
431 1 TL0=0;
432 1 EA=1;
433 1 EX0=0;
434 1 IT0=1;
435 1 IE0=0;
436 1 ff=0;
437 1 comflag=0;
438 1 // ET0=0;
439 1 P2=0xff;
440 1 intlcd();
441 1 // checkself();
442 1 while(1)
443 1 {//se:
444 2 send0();
445 2 if(ff==0) goto se;
446 2 else {comflag=0;goto ne;}
447 2
448 2 se:
449 2 send1();
450 2 if(ff==0) goto se;
451 2 comflag=1;
452 2 ne:
453 2 ff=0;
454 2 gettemper();
455 2 computert();
456 2 re=1;
457 2 computers(computerv());
458 2 display();
459 2 if(ensp==0)
460 2 speak();
461 2 hl:
462 2 if(hold==0) goto hl;
463 2 }
464 1 }
465 //*****************************************************************
466
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2066 ----
CONSTANT SIZE = 85 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 12
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -