⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 closetest.lst

📁 单片机程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 529   5                         *TIMES=0;
 530   5                         *(TIMES+1)=0;
 531   5                         y=*DAY_SUM;
 532   5                         y--;
 533   5                         *DAY_SUM=y;
 534   5                    }
 535   4                 }    
 536   3                         else{
 537   4                                  x=*PRESS_SUM;y=*DAY_SUM;
 538   4                                      if(2*x+2*y<=108){
 539   5                                          for(n=0;n<2*x+2*y;n++){
 540   6                                                    *(TIMES+2*x+2*y+1-n)=*(TIMES+2*x+2*y-1-n);
 541   6                                              }
 542   5                                              *TIMES=0;
 543   5                                              *(TIMES+1)=0;
 544   5                                              l=*DAY_SUM;
 545   5                                              if(l<54)l++;
 546   5                                              *DAY_SUM=l;
 547   5                                      }
 548   4                         }
 549   3                         start_initstat();
 550   3              }
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 10  

 551   2                      read_initstat();
 552   2              *CUR_DAY=DAY;   
 553   2                      daycheck_flag=0;
 554   2          }
 555   1      }
 556          
 557          
 558          void change_time(){//修改时间主界面
 559   1           byte i;
 560   1               read_initstat();
 561   1           for(i=0;i<=15;i++){//第二行全写入空白
 562   2               datadr=0x40+i;
 563   2               write_dr();
 564   2               lcddata=0x20;
 565   2               write_data();     
 566   2           }
 567   1           datadr=(0x40+move_num);//写入光标
 568   1           write_dr();
 569   1               //if(flash_flag)
 570   1           lcddata=0xb0;
 571   1               //else lcddata=0x20;
 572   1           write_data();  
 573   1      }
 574          void check_time(){//检查继电器闭合时间及次数子程序
 575   1           byte i;
 576   1               read_initstat();
 577   1           for(i=0;i<=15;i++){//第二行全写入空白
 578   2               datadr=0x40+i;
 579   2               write_dr();
 580   2               lcddata=0x20;
 581   2               write_data();     
 582   2           }
 583   1           if(tiancha==0){
 584   2               datadr=0x40;//T
 585   2               write_dr();
 586   2               lcddata=0x54;
 587   2               write_data();
 588   2               datadr=0x41;//O
 589   2               write_dr();
 590   2               lcddata=0x4f;
 591   2               write_data();
 592   2               datadr=0x42;//D
 593   2               write_dr();
 594   2               lcddata=0x44;
 595   2               write_data();
 596   2               datadr=0x43;//A
 597   2               write_dr();
 598   2               lcddata=0x41;
 599   2               write_data();
 600   2               datadr=0x44;//Y
 601   2               write_dr();
 602   2               lcddata=0x59;
 603   2               write_data();
 604   2      
 605   2               datadr=0x48;//次第
 606   2               write_dr();
 607   2               lcddata=0x30+check_num/10;
 608   2               write_data();
 609   2      
 610   2               datadr=0x49;
 611   2               write_dr();
 612   2               lcddata=0x30+check_num%10;
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 11  

 613   2               write_data();
 614   2      
 615   2               datadr=0x4a;//冒号
 616   2               write_dr();
 617   2               lcddata=0x3a;
 618   2               write_data();
 619   2      
 620   2               datadr=0x4b;//小时
 621   2               write_dr();
 622   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))>>4);
 623   2               write_data();
 624   2      
 625   2               datadr=0x4c;
 626   2               write_dr();
 627   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))&0x0f);
 628   2               write_data();
 629   2      
 630   2               datadr=0x4d;//冒号
 631   2               write_dr();
 632   2               lcddata=0x3a;
 633   2               write_data();
 634   2      
 635   2               datadr=0x4e;//分钟
 636   2               write_dr();
 637   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))>>4);
 638   2               write_data();
 639   2      
 640   2               datadr=0x4f;
 641   2               write_dr();
 642   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))&0x0f);
 643   2               write_data(); 
 644   2           }
 645   1           else{
 646   2               datadr=0x40;//距今天天数
 647   2               write_dr();
 648   2               lcddata=0x30+tiancha/10;
 649   2               write_data();
 650   2               datadr=0x41;
 651   2               write_dr();
 652   2               lcddata=0x30+tiancha%10;
 653   2               write_data();
 654   2               datadr=0x42;//D
 655   2               write_dr();
 656   2               lcddata=0x44;
 657   2               write_data();
 658   2               datadr=0x43;//A
 659   2               write_dr();
 660   2               lcddata=0x41;
 661   2               write_data();
 662   2               datadr=0x44;//Y
 663   2               write_dr();
 664   2               lcddata=0x59;
 665   2               write_data();
 666   2               datadr=0x45;//S
 667   2               write_dr();
 668   2               lcddata=0x53;
 669   2               write_data();
 670   2               datadr=0x46;//B
 671   2               write_dr();
 672   2               lcddata=0x42;
 673   2               write_data();
 674   2               
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 12  

 675   2               datadr=0x48;//次第
 676   2               write_dr();
 677   2               lcddata=0x30+check_num/10;
 678   2               write_data();
 679   2               datadr=0x49;
 680   2               write_dr();
 681   2               lcddata=0x30+check_num%10;
 682   2               write_data();
 683   2               datadr=0x4a;//冒号
 684   2               write_dr();
 685   2               lcddata=0x3a;
 686   2               write_data();
 687   2               datadr=0x4b;//小时
 688   2               write_dr();
 689   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))>>4);
 690   2               write_data();
 691   2               datadr=0x4c;
 692   2               write_dr();
 693   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-2))&0x0f);
 694   2               write_data();
 695   2               datadr=0x4d;//冒号
 696   2               write_dr();
 697   2               lcddata=0x3a;
 698   2               write_data();
 699   2               datadr=0x4e;//分钟
 700   2               write_dr();
 701   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))>>4);
 702   2               write_data();
 703   2               datadr=0x4f;
 704   2               write_dr();
 705   2               lcddata=0x30+((*(TIMES+2*(*DAY_SUM)+move_num*2-1))&0x0f);
 706   2               write_data(); 
 707   2           } 
 708   1      }
 709          void key_stop(){                     /*延时等待按键取消*/
 710   1               byte h;
 711   1               do h=P2&0x0f;
 712   1               while(h!=0x0f);
 713   1      }
 714          
 715          void key_scan(){                                      /*按键检测子程序*/
 716   1             byte i,colcode;
 717   1             colcode=P2&0x0f;
 718   1             if(colcode!=0x0f){    /*判断是否有键按下*/ 
 719   2                  for(i=200;i>0;i--);
 720   2                              colcode=P2&0x0f;
 721   2                  if(colcode!=0x0f){//若有键按下,求其值                              
 722   3                        if(colcode==0x0e){//
 723   4                             key_num=0;
 724   4                             key_flag=1;
 725   4                        }
 726   3                        else if (colcode==0x0d){
 727   4                             key_num=1;
 728   4                             key_flag=1;
 729   4                        } 
 730   3                        else if (colcode==0x0b){
 731   4                             key_num=2;
 732   4                             key_flag=1;
 733   4                        }
 734   3                        else if (colcode==0x07){
 735   4                             key_num=3;     
 736   4                             key_flag=1;
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 13  

 737   4                        }
 738   3                        else key_flag=0;
 739   3                  } 
 740   2             }                     
 741   1      } 
 742          void key_dispose1(){//按键处理子程序
 743   1             byte j,y;
 744   1                 bit alarm_flag=0;
 745   1             read_initstat();
 746   1             switch(key_num){
 747   2                             case 0x00:   if((checktime_flag)||(changetime_flag)){//在修改时间或检查继电器闭合时
             -间界面下,快捷退出
 748   3                                               clr_lcd();
 749   3                                               main_face();
 750   3                                               checktime_flag=0;
 751   3                                               changetime_flag=0;
 752   3                                               move_num=0;
 753   3                                                                                   del_flag=0;
 754   3                                               press_num=0;
 755   3                                               last_num=0;
 756   3                                                                                       //check_flag=0;
 757   3                                          }
 758   2                                                              else if((!checktime_flag)&&(!changetime_flag)){//进入修改时间界面,
 759   3                                               change_time();
 760   3                                               changetime_flag=1;
 761   3                                               move_num=0x00; 
 762   3                                                                               checktime_flag=0;
 763   3                                                                                       del_flag=0;
 764   3                                          }
 765   2                                                                              key_flag=0;
 766   2                                                                              key_stop();
 767   2                                          break;
 768   2                             case 0x01:   if((changetime_flag)&&(!checktime_flag)){//修改时间界面下,移动光标
 769   3                                               datadr=(0x40+move_num);//T
 770   3                                               write_dr();
 771   3                                               lcddata=0x20;
 772   3                                               write_data();
 773   3                                               switch(move_num){
 774   4                                                   case 0: move_num=15;break;
 775   4                                                   case 1: move_num=0;break;
 776   4                                                   case 3: move_num=1;break;
 777   4                                                   case 4: move_num=3;break;
 778   4                                                   case 6: move_num=4;break;
 779   4                                                   case 7: move_num=6;break;
 780   4                                                   case 9: move_num=7;break;
 781   4                                                   case 10: move_num=9;break;
 782   4                                                   case 12: move_num=10;break;
 783   4                                                   case 13: move_num=12;break;
 784   4                                                   case 15: move_num=13;break;
 785   4                                                   default: move_num=0;break;                                   
             -                                                                                                                        
             -                                                                                                      
 786   4                                               }
 787   3                                               datadr=(0x40+move_num);//T
 788   3                                               write_dr();
 789   3                                               lcddata=0xb0;
 790   3                                               write_data();
 791   3                                          } 
 792   2                                          else if(((!changetime_flag)&&(checktime_flag))&&(!del_flag)){//查看继

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -