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

📄 1.lst

📁 液晶时钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
 245   1          if(key2 == 0) { delay(80); if(key2==0)
 246   2                                              {
 247   3                                                key++;
 248   3                                                time[6]=key;                   
 249   3                                                xianshi(11,time[6]/10,time[6]%10); 
 250   3                                                   }
 251   2                                              }
 252   1              if(key1 == 0) { delay(80); if(key1==0)
 253   2                                                  { 
 254   3                                                key--;  
 255   3                                                time[6]=key;                  
 256   3                                                xianshi(11,time[6]/10,time[6]%10);  
 257   3                                                         }
 258   2                                         }
 259   1      }
 260          
 261          void tiaoshi_month(void)          //对月的调整
 262          {  
 263   1         Inhanzi(Chinese05,3,0,2); //调时界面
 264   1         Inhanzi(Chinese01,8,0,3);
 265   1         Inhanzi(Chinese02,16,0,3); 
 266   1         Inhanzi(Chinese03,24,0,3);
 267   1         Inhanzi(Chinese03,24,0,3); 
 268   1         xianshi(12,13,time[4]/10);        
 269   1         xianshi(13,time[4]%10,13);     
 270   1         key=time[4];
 271   1          if(key2 == 0) { delay(80); if(key2==0)
 272   2                                              {
 273   3                                                key++;
 274   3                                                time[4]=key;                  
 275   3                                                xianshi(12,13,time[4]/10);        
 276   3                            xianshi(13,time[4]%10,13);     
 277   3                                                   }
 278   2                                              }
 279   1              if(key1 == 0) { delay(80); if(key1==0)
 280   2                                                  { 
 281   3                                                key--;  
 282   3                                                time[4]=key;                  
 283   3                                                 xianshi(12,13,time[4]/10);        
 284   3                             xianshi(13,time[4]%10,13);  
 285   3                                                         }
 286   2                                         }
 287   1      } 
 288          
 289          void tiaoshi_day(void)        //对日的调整
 290          {  
 291   1         Inhanzi(Chinese05,3,0,2); //调时界面
 292   1         Inhanzi(Chinese01,8,0,3);
 293   1         Inhanzi(Chinese02,16,0,3); 
 294   1         Inhanzi(Chinese03,24,0,3);
 295   1         Inhanzi(Chinese03,24,0,3);
 296   1         xianshi(14,time[3]/10,time[3]%10); 
 297   1         key=time[3];
 298   1          if(key2 == 0) { delay(80); if(key2==0)
 299   2                                              {
 300   3                                                key++;
 301   3                                                time[3]=key;                    
C51 COMPILER V8.01   1                                                                     05/17/2008 12:11:54 PAGE 6   

 302   3                                                xianshi(14,time[3]/10,time[3]%10);
 303   3                                                   }
 304   2                                              }
 305   1              if(key1 == 0) { delay(80); if(key1==0)
 306   2                                                  { 
 307   3                                                key--;  
 308   3                                                time[3]=key;                   
 309   3                                                xianshi(14,time[3]/10,time[3]%10);
 310   3                                                         }
 311   2                                         }
 312   1      } 
 313          
 314          void tiaoshi_hour(void)          //对时的调整
 315          {  
 316   1         Inhanzi(Chinese05,3,0,2); //调时界面
 317   1         Inhanzi(Chinese01,8,0,3);
 318   1         Inhanzi(Chinese02,16,0,3); 
 319   1         Inhanzi(Chinese03,24,0,3);
 320   1         Inhanzi(Chinese03,24,0,3); 
 321   1         xianshi(19,time[2]/10,time[2]%10);
 322   1         key=time[2];
 323   1          if(key2 == 0) { delay(80); if(key2==0)
 324   2                                              {
 325   3                                                key++;
 326   3                                                time[2]=key;                    
 327   3                                                xianshi(19,time[2]/10,time[2]%10); 
 328   3                                                   }
 329   2                                              }
 330   1              if(key1 == 0) { delay(80); if(key1==0)
 331   2                                                  { 
 332   3                                                key--;  
 333   3                                                time[2]=key;                  
 334   3                                                xianshi(19,time[2]/10,time[2]%10); 
 335   3                                                         }
 336   2                                         }
 337   1      }
 338          
 339          void tiaoshi_minute(void)        //对分的调整
 340          { 
 341   1         Inhanzi(Chinese05,3,0,2); //调时界面
 342   1         Inhanzi(Chinese01,8,0,3);
 343   1         Inhanzi(Chinese02,16,0,3); 
 344   1         Inhanzi(Chinese03,24,0,3);
 345   1         Inhanzi(Chinese03,24,0,3);
 346   1         xianshi(20,14,time[1]/10);       
 347   1         xianshi(21,time[1]%10,14);
 348   1         key=time[1];
 349   1          if(key2 == 0) { delay(80); if(key2==0)
 350   2                                              {
 351   3                                                key++;
 352   3                                                time[1]=key;                  
 353   3                                                xianshi(20,14,time[1]/10);       
 354   3                                xianshi(21,time[1]%10,14);       
 355   3                                                   }
 356   2                                              }
 357   1              if(key1 == 0) { delay(80); if(key1==0)
 358   2                                                  { 
 359   3                                                key--;  
 360   3                                                time[1]=key;                           
 361   3                                                xianshi(20,14,time[1]/10);        
 362   3                                xianshi(21,time[1]%10,14);         
 363   3                                                         }
C51 COMPILER V8.01   1                                                                     05/17/2008 12:11:54 PAGE 7   

 364   2                                         }
 365   1      }
 366          
 367          void tiaoshi_week(void)       //对星期的调整 
 368          { 
 369   1         Inhanzi(Chinese05,3,0,2); //调时界面
 370   1         Inhanzi(Chinese01,8,0,3);
 371   1         Inhanzi(Chinese02,16,0,3); 
 372   1         Inhanzi(Chinese03,24,0,3);
 373   1         Inhanzi(Chinese03,24,0,3);
 374   1         xianshi(27,10,time[5]);
 375   1         key=time[5];
 376   1          if(key2 == 0) { delay(80); if(key2==0)
 377   2                                              {
 378   3                                                key++;
 379   3                                                time[5]=key;                   
 380   3                                                xianshi(27,10,time[5]); 
 381   3                                                   }
 382   2                                              }
 383   1              if(key1 == 0) { delay(80); if(key1==0)
 384   2                                                  { 
 385   3                                                key--;  
 386   3                                                time[5]=key;                   
 387   3                                                xianshi(27,10,time[5]); 
 388   3                                                         }
 389   2                                         }
 390   1      } 
 391          /*******************
 392                闹钟调节 
 393          *******************/  
 394          void alarm_clock()
 395          {
 396   1         Inhanzi(Chinese06,3,0,2); //闹钟界面
 397   1         Inhanzi(Chinese01,8,0,3);
 398   1         Inhanzi(Chinese02,16,0,3); 
 399   1         Inhanzi(Chinese03,24,0,3); 
 400   1         xianshi(19,alarm[0]/10,alarm[0]%10);
 401   1         xianshi(20,14,alarm[1]/10);       
 402   1         xianshi(21,alarm[1]%10,14); 
 403   1         if(key2 == 0) { delay(80); if(key2==0)
 404   2                                           {
 405   3                                          key++; if(key==24) key=0; //调节时
 406   3                                              alarm[0]=key;  //存储时                   
 407   3                                              xianshi(19,alarm[0]/10,alarm[0]%10); //显示调节
 408   3                                                   }
 409   2                                         }
 410   1         if(key1 == 0) { delay(80); if(key2==0)
 411   2                                           {
 412   3                                          key++; if(key==60) key=0; //调节分
 413   3                                              alarm[1]=key;  //存储分                 
 414   3                                              xianshi(20,14,alarm[1]/10); //显示调节      
 415   3                              xianshi(21,alarm[1]%10,14);        
 416   3                                                  }
 417   2                                              }
 418   1      
 419   1      }
 420          
 421          /*-------------------------------------------待机状态-----------------------------------------------------
             ----*/
 422          void daiji(void)
 423          { 
 424   1        Inhanzi(Chinese04,3,0,2); //待机界面
C51 COMPILER V8.01   1                                                                     05/17/2008 12:11:54 PAGE 8   

 425   1        Inhanzi(Chinese01,8,0,3);
 426   1        Inhanzi(Chinese02,16,0,3); 
 427   1        Inhanzi(Chinese03,24,0,3); 
 428   1        timexianshi();   //时间显示
 429   1        //检测闹钟
 430   1        if((time[2]==alarm[0])&&(time[1]==alarm[1]))
 431   1          beep=0;                   //闹钟响
 432   1        if(time[1]==alarm[1]+1) 
 433   1          beep=1;               //闹钟响1分钟后停
 434   1      }
 435          
 436          //外中断1 子程序
 437          void INT1_set() interrupt 2 using 0
 438          {
 439   1        delay(80);
 440   1        if(key4==0) set++;            //功能键值递增
 441   1        if(set>=9)set=0;              //键值的范围0~8
 442   1      again:if(key4==0)goto again;    //若按键未释放,则等待
 443   1      }
 444          
 445          /*-----------------------------------------------初始化部分-----------------------------------------------
             ------*/
 446          void initial(void)
 447          {
 448   1         key1=key2=key3=key4=1;
 449   1         beep=1;
 450   1         write_com(0x30); //8BitMCU,基本指令集合
 451   1         write_com(0x03); //AC归0,不改变DDRAM内容
 452   1         write_com(0x0c);     //显示ON,游标OFF,游标位反白OFF
 453   1         write_com(0x01);     //清屏,AC归0
 454   1         write_com(0x06);     //写入时,游标右移动
 455   1         set1302();       //初始化对1302进行设置
 456   1      }
 457                                                                                                                                                                                                                                                  
 458          void main(void)
 459          {
 460   1              initial();  //初始化
 461   1              EA=1;           //开启全局中断
 462   1              PX1=1;          //外中断1 设为最高优先级
 463   1              EX1=1;          //开启外中断1
 464   1          while(1)
 465   1          { 
 466   2                switch(set)  //判断 set 的值
 467   2                {
 468   3                  case 0: daiji();          break;   //待机界面
 469   3      
 470   3                      case 1: tiaoshi_year();   break;   //调时  年
 471   3                      case 2: tiaoshi_month();  break;   //      月    
 472   3                      case 3: tiaoshi_day();    break;   //      日
 473   3                      case 4: tiaoshi_hour();   break;   //      时
 474   3                      case 5: tiaoshi_minute(); break;   //      分
 475   3                      case 6: tiaoshi_week();   break;   //      秒
 476   3                      case 7: alarm_clock();    break;   //调节闹钟
 477   3                      case 8: set1302();        break;   //保存时间
 478   3                      default: break;
 479   3                 }
 480   2           }           
 481   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1794    ----
C51 COMPILER V8.01   1                                                                     05/17/2008 12:11:54 PAGE 9   

   CONSTANT SIZE    =     83    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       8
   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 + -