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

📄 closetest.lst

📁 单片机程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 260   2          lcddata=0x20;
 261   2          write_data();
 262   2          datadr=0x47;//写入新的次数个位
 263   2          write_dr();
 264   2          lcddata=0x30+*(TIMES+1)%10;
 265   2          write_data();
 266   2      
 267   2          datadr=0x4b;//清除以前的小时纪录十位
 268   2          write_dr();
 269   2          lcddata=0x20;
 270   2          write_data();
 271   2          datadr=0x4b;//写入新的小时纪录十位
 272   2          write_dr();
 273   2          lcddata=0x30+(*(TIMES+2)>>4);
 274   2          write_data();
 275   2       
 276   2          datadr=0x4c;//清除以前的小时记录个位
 277   2          write_dr();
 278   2          lcddata=0x20;
 279   2          write_data();
 280   2          datadr=0x4c;//写入新的小时记录个位
 281   2          write_dr();
 282   2          lcddata=0x30+*(TIMES+2)&0x0f;
 283   2          write_data();     
 284   2      
 285   2          datadr=0x4e;//清除以前的分钟记录十位
 286   2          write_dr();
 287   2          lcddata=0x20;
 288   2          write_data();
 289   2          datadr=0x4e;//写入新的分钟记录十位
 290   2          write_dr();
 291   2          lcddata=0x30+(*(TIMES+3)>>4);
 292   2          write_data();
 293   2       
 294   2          datadr=0x4f;//清除以前的分钟记录个位
 295   2          write_dr();
 296   2          lcddata=0x20;
 297   2          write_data();//写入新的分钟记录个位 
 298   2          datadr=0x4f;
 299   2          write_dr();
 300   2          lcddata=0x30+*(TIMES+3)&0x0f;
 301   2          write_data(); 
 302   2          close_flag=1; 
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 6   

 303   2         }
 304   1      }
 305          void start_initstat(){//时钟芯片初始化
 306   1           byte a;
 307   1               MCA=0x20;
 308   1               ACC=MCC;
 309   1               ACC=MCB;
 310   1           MCB=0x80;//时钟芯片时钟存储区处理
 311   1           if((SECOND>>4)>=6)SECOND=SECOND&0x0f;
 312   1           if((SECOND&0x0f)>9)SECOND=((SECOND>>4)<<4);
 313   1               if((MINUTE>>4)>=6)MINUTE=MINUTE&0x0f;
 314   1           if((MINUTE&0x0f)>9)MINUTE=((MINUTE>>4)<<4);
 315   1               if(((HOUR>>4)==2)&&((HOUR&0x0f)>3))HOUR=0x00;
 316   1               else if((HOUR>>4)>0x02)HOUR=(HOUR&0x0f);
 317   1           else if((HOUR&0x0f)>9)HOUR=(HOUR&0xf0);
 318   1               if((DAY>>4)>3)DAY=0x10;
 319   1           if((DAY&0x0f)>9)DAY=1;
 320   1               if(WEEK>=8)WEEK=1; 
 321   1               if((MONTH>>4)>1)MONTH=1;
 322   1               if((MONTH&0x0f)>9)MONTH=1;
 323   1               if((YEAR>>4)>9)YEAR=0;
 324   1               if((YEAR&0x0f)>9)YEAR=0;
 325   1           for(a=0;a<=113;a++){//数据改变否?
 326   2              if(*(TIMES+a)==0xff)
 327   2                 *(TIMES+a)=0;
 328   2           } 
 329   1               //ACC=MCC;
 330   1               //ACC=MCD;
 331   1               MCB=0x02;   
 332   1      }
 333          void main_face(){//通常显示主界面 
 334   1              read_initstat();
 335   1              datadr=0x00;
 336   1                  write_dr();
 337   1                  lcddata=0x30+(YEAR>>4);
 338   1                  write_data();
 339   1      
 340   1              datadr=0x01;
 341   1              write_dr();
 342   1              lcddata=0x30+(YEAR&0x0f);
 343   1              write_data();
 344   1      
 345   1              datadr=0x02;//连接符
 346   1              write_dr();
 347   1              lcddata=0xb0;
 348   1              write_data();
 349   1            
 350   1              datadr=0x03;//月
 351   1              write_dr();
 352   1              lcddata=0x30+(MONTH>>4);
 353   1              write_data();
 354   1           
 355   1              datadr=0x04;
 356   1              write_dr();//;
 357   1              lcddata=0x30+(MONTH&0x0f);
 358   1              write_data();
 359   1      
 360   1              datadr=0x05;
 361   1              write_dr();
 362   1              lcddata=0xb0;//连接符
 363   1              write_data();
 364   1      
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 7   

 365   1              datadr=0x06;//日
 366   1              write_dr();//read_initstat();
 367   1              lcddata=0x30+(DAY>>4);
 368   1              write_data(); 
 369   1      
 370   1              datadr=0x07;
 371   1              write_dr();//read_initstat();
 372   1              lcddata=0x30+(DAY&0x0f);
 373   1              write_data(); 
 374   1      
 375   1              datadr=0x09;//小时
 376   1              write_dr();
 377   1              lcddata=0x30+(HOUR>>4);
 378   1              write_data();
 379   1       
 380   1              datadr=0x0a;
 381   1              write_dr();//read_initstat();
 382   1              lcddata=0x30+(HOUR&0x0f);
 383   1              write_data();
 384   1      
 385   1              datadr=0x0b;//冒号
 386   1              write_dr();
 387   1              if(flash_flag)lcddata=0x3a;
 388   1              else lcddata=0x20;
 389   1              write_data(); 
 390   1          
 391   1              datadr=0x0c;//分
 392   1              write_dr();//read_initstat();
 393   1              lcddata=0x30+(MINUTE>>4);
 394   1              write_data();
 395   1       
 396   1              datadr=0x0d;
 397   1              write_dr();//read_initstat();
 398   1              lcddata=0x30+(MINUTE&0x0f);
 399   1              write_data(); 
 400   1      
 401   1              datadr=0x0f;//星期
 402   1              write_dr();
 403   1              lcddata=0x30+WEEK;
 404   1              write_data(); 
 405   1      
 406   1              datadr=0x40;//T
 407   1              write_dr();
 408   1              lcddata=0x54;
 409   1              write_data(); 
 410   1          
 411   1              datadr=0x41;//I
 412   1              write_dr();
 413   1              lcddata=0x49;
 414   1              write_data();
 415   1       
 416   1              datadr=0x42;//M
 417   1              write_dr();
 418   1              lcddata=0x4d;
 419   1              write_data();
 420   1      
 421   1              datadr=0x43;//E
 422   1              write_dr();
 423   1              lcddata=0x45;
 424   1              write_data(); 
 425   1          
 426   1              datadr=0x44;//S
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 8   

 427   1              write_dr();
 428   1              lcddata=0x53;
 429   1              write_data();
 430   1       
 431   1              datadr=0x45;//冒号
 432   1              write_dr();
 433   1              lcddata=0x3a;
 434   1              write_data();
 435   1      
 436   1              if(*(TIMES+1)!=0){
 437   2                  datadr=0x46;//次数10位
 438   2                  write_dr();
 439   2                  lcddata=0x30+((*(TIMES+1))/10);
 440   2                  write_data();
 441   2                  datadr=0x47;//次数个位
 442   2                  write_dr();
 443   2                  lcddata=0x30+((*(TIMES+1))%10);
 444   2                  write_data();
 445   2              }
 446   1                  else{
 447   2                      datadr=0x46;//次数百位位置在闭合次数为0时写入0
 448   2                  write_dr();
 449   2                  lcddata=0x30;
 450   2                  write_data();
 451   2                  }
 452   1              datadr=0x49;//L:表示上次按下键时间
 453   1              write_dr();
 454   1              lcddata=0x4c;
 455   1              write_data();
 456   1       
 457   1              datadr=0x4a;//冒号
 458   1              write_dr();
 459   1              lcddata=0x3a;
 460   1              write_data();
 461   1      
 462   1              datadr=0x4b;//小时
 463   1              write_dr();
 464   1              lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))))>>4);
 465   1              write_data();
 466   1              datadr=0x4c;
 467   1              write_dr();
 468   1              lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))))&0x0f);
 469   1              write_data();
 470   1      
 471   1              datadr=0x4d;//冒号
 472   1              write_dr();
 473   1              lcddata=0x3a;
 474   1              write_data();
 475   1      
 476   1              datadr=0x4e;//分钟
 477   1              write_dr();
 478   1              lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))+1))>>4);
 479   1              write_data();
 480   1              datadr=0x4f;
 481   1              write_dr();
 482   1              lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))+1))&0x0f);
 483   1              write_data(); 
 484   1      }
 485          void sqw_place(){//2s中断处理
 486   1           byte n,l,p,x,y;
 487   1               //read_initstat();
 488   1           if(!key_flag){
C51 COMPILER V7.05   CLOSETEST                                                             11/25/2003 23:29:19 PAGE 9   

 489   2                   if(*CUR_DAY!=DAY){
 490   3                         if((2*(*PRESS_SUM)+2*(*DAY_SUM))>=110){
 491   4                             for(n=0;n<108;n++){
 492   5                        *(TIMES+109-n)=*(TIMES+109-n-2);
 493   5                     }
 494   4                     l=*(TIMES+2*(*DAY_SUM)+1);
 495   4                     if(l>1){
 496   5                         l--;
 497   5                         *(TIMES+2*(*DAY_SUM)+1)=l;
 498   5                         *TIMES=0;
 499   5                         *(TIMES+1)=0;
 500   5                         y=*DAY_SUM;
 501   5                         y--;
 502   5                         *DAY_SUM=y;
 503   5                         x=*PRESS_SUM;
 504   5                         x--;
 505   5                         *PRESS_SUM=x;
 506   5      
 507   5                     }
 508   4                     else if(l==1){
 509   5                         for(p=0;p<*PRESS_SUM-2;p++){
 510   6                             *(TIMES+2*(*DAY_SUM)+2)=*(TIMES+2*(*DAY_SUM)+4);
 511   6                         }
 512   5                         l--;
 513   5                         *(TIMES+2*(*DAY_SUM)+1)=l;
 514   5                         *TIMES=0;
 515   5                         *(TIMES+1)=0;
 516   5                         y=*DAY_SUM;
 517   5                         y--;
 518   5                         *DAY_SUM=y;
 519   5                         x=*PRESS_SUM;
 520   5                         x--;
 521   5                         *PRESS_SUM=x;
 522   5                    }
 523   4                    else if(l==0){
 524   5                         for(p=0;p<*PRESS_SUM-2;p++){
 525   6                             *(TIMES+2*(*DAY_SUM)+2)=*(TIMES+2*(*DAY_SUM)+4);
 526   6                         }
 527   5                         l--;
 528   5                         *(TIMES+2*(*DAY_SUM)+1)=l;

⌨️ 快捷键说明

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