📄 timer_thermometer_12864.lst
字号:
345 5 if((yeartmp%4==0&&yeartmp%100!=0)||(yeartmp%400==0)) leaptmp=1;
346 5 else leaptmp=0;
347 5 if(DTTMP[dtn]==28&&DTTMP[dtn-1]==2&&leaptmp==0)
348 5 DTTMP[dtn]=1;
349 5 else if(DTTMP[dtn]==29&&DTTMP[dtn-1]==2&&leaptmp==1)
350 5 DTTMP[dtn]=1;
351 5 else if(DTTMP[dtn]==30&&(DTTMP[dtn-1]==4||DTTMP[dtn-1]==6||DTTMP[dtn-1]==9||DTTMP[dtn-1]
-==11))
352 5 DTTMP[dtn]=1;
353 5 else if(DTTMP[dtn]==31) DTTMP[dtn]=1;
354 5 else DTTMP[dtn]+=1;
355 5 }
356 4 else if(dtn==3)
357 4 {if(DTTMP[dtn]==6)
358 5 DTTMP[dtn]=0;
359 5 else DTTMP[dtn]+=1;
360 5 }
361 4 else if(dtn==4)
362 4 if(DTTMP[dtn]==23) DTTMP[dtn]=0;
363 4 else DTTMP[dtn]+=1;
C51 COMPILER V7.06 TIMER_THERMOMETER_12864 03/22/2007 10:01:19 PAGE 7
364 4 else if(dtn==5||dtn==6)
365 4 if(DTTMP[dtn]==59) DTTMP[dtn]=0;
366 4 else DTTMP[dtn]+=1;
367 4 MSFLAG=20;
368 4 }
369 3 else if(key==DOWN)
370 3 {if(dtn==0)
371 4 if(DTTMP[dtn]==0) DTTMP[dtn]=99;
372 4 else DTTMP[dtn]-=1;
373 4 else if(dtn==1)
374 4 if(DTTMP[dtn]==1) DTTMP[dtn]=12;
375 4 else DTTMP[dtn]-=1;
376 4 else if(dtn==2)
377 4 { yeartmp=DTTMP[dtn-2]+2000;
378 5 if((yeartmp%4==0&&yeartmp%100!=0)||(yeartmp%400==0)) leaptmp=1;
379 5 else leaptmp=0;
380 5 if(DTTMP[dtn]==1&&DTTMP[dtn-1]==2&&leaptmp==0)
381 5 DTTMP[dtn]=28;
382 5 else if(DTTMP[dtn]==1&&DTTMP[dtn-1]==2&&leaptmp==1)
383 5 DTTMP[dtn]=29;
384 5 else if(DTTMP[dtn]==1&&(DTTMP[dtn-1]==4||DTTMP[dtn-1]==6||DTTMP[dtn-1]==9||DTTMP[dtn-1]=
-=11))
385 5 DTTMP[dtn]=30;
386 5 else if(DTTMP[dtn]==1) DTTMP[dtn]=31;
387 5 else DTTMP[dtn]-=1;
388 5
389 5 }
390 4 else if(dtn==3)
391 4 {if(DTTMP[dtn]==0)
392 5 DTTMP[dtn]=6;
393 5 else DTTMP[dtn]-=1;
394 5 }
395 4 else if(dtn==4)
396 4 if(DTTMP[dtn]==0) DTTMP[dtn]=23;
397 4 else DTTMP[dtn]-=1;
398 4 else if(dtn==5||dtn==6)
399 4 if(DTTMP[dtn]==0) DTTMP[dtn]=59;
400 4 else DTTMP[dtn]-=1;
401 4 MSFLAG=20;
402 4 }
403 3 else if(key==ENTER)
404 3 {for(i=0;i<7;i++)
405 4 DTBUF[i]=DTTMP[i];
406 4 back=1;}
407 3 else if(key==CANCEL)
408 3 back=1;
409 3 }
410 2 }
411 1 Clean_Lcd();
412 1 LCD_Initializate();LCD_DateTime_Initializate();
413 1 dp=0; //开中断显示
414 1 pdt=DTBUF;
415 1 }
416 ////////////////////////////////////
417 //中断服务程序
418 void Timer0(void)interrupt 1 using 0
419 { unsigned int year,leap;
420 1 TH0=(65536-TCONST)/256;
421 1 TL0=(65536-TCONST)%256;
422 1 ++TCOUNT;
423 1 if(TCOUNT==10)
424 1 {secf=0;
C51 COMPILER V7.06 TIMER_THERMOMETER_12864 03/22/2007 10:01:19 PAGE 8
425 2 Second_Flash(0);} //秒闪
426 1 else if(TCOUNT==20)
427 1 {DTBUF[6]+=1; //秒单元
428 2 DateTime_Display(pdt,6,1,dp); //void DateTime_Display(unsigned char sn,unsigned char fl)
429 2 TCOUNT=0; //20*50MS计数器
430 2 MSFLAG--; //秒倒计时
431 2 secf=1; Second_Flash(1);
432 2 if(DTBUF[6]%10==0){LCD_Initializate();LCD_DateTime_Initializate();}
433 2 if(DTBUF[6]==60)
434 2 {DTBUF[5]+=1; DTBUF[6]=0;
435 3 DateTime_Display(pdt,6,1,dp); DateTime_Display(pdt,5,1,dp);
436 3 if(DTBUF[5]==60)
437 3 {DTBUF[4]+=1;DTBUF[5]=0;
438 4 DateTime_Display(pdt,5,1,dp);DateTime_Display(pdt,4,1,dp);
439 4 if(DTBUF[4]==24)
440 4 {DTBUF[4]=0; DTBUF[3]+=1; DTBUF[2]+=1;
441 5 DateTime_Display(pdt,4,1,dp); DateTime_Display(pdt,3,1,dp); DateTime_Display(pdt,2
-,1,dp);
442 5 if(DTBUF[3]==7)
443 5 DTBUF[3]=0; DateTime_Display(pdt,3,1,dp);
444 5 year=DTBUF[0]+2000;
445 5 if((year%4==0&&year%100!=0)||(year%400==0)) leap=1;
446 5 if(DTBUF[2]==29&&DTBUF[1]==2&&leap==0)
447 5 {DTBUF[2]=1; DTBUF[1]+=1; }
448 5 else if(DTBUF[2]==30&&DTBUF[1]==2&&leap==1)
449 5 {DTBUF[2]=1; DTBUF[1]+=1;}
450 5 else if(DTBUF[2]==31&&(DTBUF[1]==4||DTBUF[1]==6||DTBUF[1]==9||DTBUF[1]==11))
451 5 {DTBUF[2]=1; DTBUF[1]+=1;}
452 5 else if(DTBUF[2]==32)
453 5 {DTBUF[2]=1; DTBUF[1]+=1;}
454 5 if(DTBUF[1]==13)
455 5 { DTBUF[1]=1; DTBUF[0]+=1;
456 6 DateTime_Display(pdt,1,1,dp); DateTime_Display(pdt,0,1,dp);
457 6 if(DTBUF[0]==100)
458 6 {DTBUF[0]=0; DateTime_Display(pdt,0,1,dp);
459 7 }
460 6 }
461 5 }
462 4 }
463 3 }
464 2 }
465 1 }
466 ///////////////////////////////////////////////////////
467
468 void Main()
469 { unsigned char a;
470 1 pdt=DTBUF;
471 1 IntRst(); //软件复位
472 1 Lcd_On(); //开显示
473 1 Clean_Lcd(); //清屏
474 1 LCD_Initializate();
475 1 LCD_DateTime_Initializate();
476 1 Lcd_Z(0); //设置Z地址为0
477 1 TMOD=0X01;
478 1 TH0=(65536-TCONST)/256;
479 1 TL0=(65536-TCONST)%256;
480 1 EA=1;
481 1 ET0=1;
482 1 TR0=1;
483 1 Tmp_Display();
484 1 while(1)
485 1 { a=GetKey();
C51 COMPILER V7.06 TIMER_THERMOMETER_12864 03/22/2007 10:01:19 PAGE 9
486 2 if(a==SETUP) DateTime_SetUp();
487 2 else if(a==CLEAR) //全屏刷新
488 2 {Clean_Lcd();
489 3 LCD_Initializate();
490 3 LCD_DateTime_Initializate();
491 3 Lcd_Z(0);
492 3 }
493 2
494 2 if(TCOUNT==13)Tmp_Display();
495 2 }
496 1
497 1
498 1 }
499 //Right_Bytes_DaSend( x, y, *loc,bytes)
500 //Left_Bytes_DaSend( x, y, *loc,bytes)
501
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3341 ----
CONSTANT SIZE = 784 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 41
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 + -