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

📄 main.lst

📁 51写的一个定时时钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
 239   1              counter++;
 240   1       //  if(Bell_Swh == 1)counter1++;//闹钟为?
 241   1        if(counter==10)
C51 COMPILER V7.50   MAIN                                                                  03/04/2001 18:19:09 PAGE 5   

 242   1        {
 243   2         counter=0;
 244   2          flag=~flag;
 245   2              }
 246   1      //       if(counter==20)
 247   1              // {
 248   1              //   counter=0;
 249   1      //      SPK=~SPK;
 250   1       
 251   1                                      
 252   1      }
 253          
 254           /*****初始化定时器***********/
 255           void Init_Timer()
 256           {
 257   1         TMOD=0x11;
 258   1        TH0=0x3c;
 259   1        TL0=0xb1;
 260   1        TH1 =0x3c;
 261   1        TL1 =0xb0;    
 262   1        TR0=1;
 263   1        TR1=1;
 264   1        ET0=1;
 265   1        ET1=1;
 266   1       //  EA=1;
 267   1       }
 268          void main()
 269          {
 270   1        unsigned char  p;
 271   1        unsigned char H_time,M_time,H_24C04,M_24C04,a;
 272   1        unsigned char H_time1,M_time1,H_24C02,M_24C02;
 273   1        //week=6;
 274   1        p=Read_24C04(0x01);
 275   1        year=Read_24C04(0x02);
 276   1        month=Read_24C04(0x03);
 277   1        date=Read_24C04(0x04);
 278   1        hour=Read_24C04(0x05);
 279   1        min=Read_24C04(0x06);
 280   1        sec=Read_24C04(0x07); 
 281   1        Bell_Swh = Read_24C04(0x08);//读取开关的状态
 282   1      
 283   1        Init_Timer();
 284   1        Init_lcd();
 285   1        Clr_Scr();
 286   1        Disp_Img(logo);
 287   1        Delay12864(60000);
 288   1        Delay12864(20000);
 289   1        Lcd_Mark();
 290   1        Delay12864(60000);
 291   1        Lcd_Mark1();
 292   1           EA=1;
 293   1        while(1)
 294   1        {
 295   2          led2=p;
 296   2         if(Dec==0&&Ent==0)
 297   2         {
 298   3          
 299   3           Delay12864(20);
 300   3            if(Dec==0&&Ent==0)
 301   3                {
 302   4                  Lcd_Mark2();
 303   4                      if(Bell_Swh == 0){Mcs=0;Scs=1;Disp_Chinese(2,32,guan);}//关
C51 COMPILER V7.50   MAIN                                                                  03/04/2001 18:19:09 PAGE 6   

 304   4                      else  {Mcs=0;Scs=1;Disp_Chinese(2,32,kai);}
 305   4                        while(1)
 306   4                                      {
 307   5                                        if(Mode==0)
 308   5                                        {
 309   6                                          Delay12864(20);
 310   6                                               if(Mode==0)
 311   6                                               {
 312   7                                                 id1++;
 313   7                                                  if(id1>8)id1=0;
 314   7                                                      while(Mode==0);
 315   7                                                      }
 316   6                                                }
 317   5      
 318   5                        switch(id1)
 319   5                                        {
 320   6                                                      case 0:Disp2();break;//正常显示
 321   6                                                      case 1:Kgb = 1;Add_key2();Disp2();break;//开关
 322   6                                                      case 2:Kgb= 0;Hour2=1;Add_key2();Disp2();break;//
 323   6                                                      case 3:Hour2=0;Min2=1;Add_key2();Disp2();break;
 324   6                                                      case 4:Min2=0;Sec2=1;Add_key2();Disp2();break;
 325   6                                                      case 5:Sec2=0;Hour3=1;Add_key2();Disp2();break;//
 326   6                                                      case 6:Hour3=0;Min3=1;Add_key2();Disp2();break;
 327   6                                                      case 7:Min3=0;Sec3=1;Add_key2();Disp2();break;
 328   6                                                      case 8:Sec3=0;id1 = 0;Lcd_Mark1();goto FF;break;//返回主界面
 329   6                                                      default:break;
 330   6                                              }
 331   5                                      
 332   5                                      }
 333   4                                       if(Ent==0)
 334   4                                         {
 335   5                                         Delay12864(20);
 336   5                                               if(Ent==0)
 337   5                                               {
 338   6                               Lcd_Mark1();
 339   6                                                      while(Ent==0);
 340   6                                                      }
 341   5                                                }
 342   4                               }
 343   3                }
 344   2         FF: 
 345   2         if(flag == 0)
 346   2                      {
 347   3                              Mcs=0;Scs=1;
 348   3                              Disp_Digit(3,8,maohao);// :闪烁 
 349   3                              Disp_Digit(3,32,maohao);
 350   3                      }
 351   2                      else 
 352   2                      {
 353   3                              Mcs=0;Scs=1;
 354   3                              Disp_Digit(3,8,space);//显示空格
 355   3                              Disp_Digit(3,32,space); 
 356   3                      }
 357   2                      if (Mode == 0) // 设置和选择项目键
 358   2              {
 359   3                       Delay12864(20);
 360   3                      if(Mode == 0)
 361   3                              {
 362   4                                      id++;if(id>7)id=0;      
 363   4                              }
 364   3                      while(Mode == 0);//等待键松开    
 365   3              }
C51 COMPILER V7.50   MAIN                                                                  03/04/2001 18:19:09 PAGE 7   

 366   2              switch( id )
 367   2              {
 368   3                      case 0:ET0=1;sec1 = 0;  Disp( );break;//正常显示
 369   3                      case 1:ET0=0;year1 = 1;Add_key1();Disp();break;//年     
 370   3                              case 2:year1=0;month1=1;Add_key1();Disp();break;//月
 371   3                  case 3:month1=0;day1=1;Add_key1();Disp();break;  //日 
 372   3                      case 4:day1=0;week1=1;Add_key1();Disp();break;//星期     
 373   3                      case 5:week1=0;hour1=1;Add_key1();Disp();break;  //小时
 374   3                      case 6:hour1=0;min1=1;Add_key1();Disp();break; //分钟
 375   3                      case 7:min1=0;sec1=1;Add_key1();Disp();break; //秒
 376   3                      default:break;  
 377   3                      }
 378   2                      if(Bell_Swh == 1)//闹钟为开
 379   2                      {
 380   3                              H_24C04=Read_24C04(0x09);//读取2408的
 381   3                              M_24C04=Read_24C04(0x0a);
 382   3                              H_24C02=Read_24C04(0x0c);//读取2408的
 383   3                              M_24C02=Read_24C04(0x0d);
 384   3      
 385   3                              H_time=hour;
 386   3                              M_time=min;
 387   3      
 388   3                  H_time1=hour;
 389   3                              M_time1=min;
 390   3      
 391   3                              if(H_24C04 == H_time)  
 392   3                              {
 393   4                                      if(M_24C04 == M_time)
 394   4                                      {       
 395   5                         
 396   5                                              Clr_Scr();//清屏
 397   5                                              frame();//显示边框
 398   5                                              Mcs=1;Scs=0;
 399   5                                              Disp_Chinese(3,16,nao);//闹钟显示时间到!
 400   5                                              Disp_Chinese(3,32,zhong);
 401   5                                              Disp_Chinese(3,48,shit);
 402   5                                              Mcs=0;Scs=1;
 403   5                                              Disp_Chinese(3,0,jian);
 404   5                                              Disp_Chinese(3,16,dao);
 405   5                                              Disp_Digit(3,40,fh);
 406   5                              
 407   5                                              while(M_24C04 == M_time)//判断是否到闹钟设定时间
 408   5                                              {
 409   6                             for(a=0; a<100; a++)//BELL脉冲输出,驱动蜂鸣器
 410   6                                                      {
 411   7                                                              if(a<50){SPK = 0;Delay(100);}
 412   7                                                              else {SPK = 1;Delay(100);}
 413   7                                                      }
 414   6                                                M_time=min;   
 415   6                          }
 416   5                                              Lcd_Mark1();
 417   5                                      }//if
 418   4                              }
 419   3                        
 420   3                      }//if
 421   2                              if(Bell_Swh == 1)//闹钟为开
 422   2                      {
 423   3                      //      H_24C04=Read_24C04(0x09);//读取2408的
 424   3                      //      M_24C04=Read_24C04(0x0a);
 425   3                              H_24C02=Read_24C04(0x0c);//读取2408的
 426   3                              M_24C02=Read_24C04(0x0d);
 427   3      
C51 COMPILER V7.50   MAIN                                                                  03/04/2001 18:19:09 PAGE 8   

 428   3                              H_time=hour;
 429   3                              M_time=min;
 430   3      
 431   3                  H_time1=hour;
 432   3                              M_time1=min;
 433   3      
 434   3                              if(H_24C02 == H_time1)  
 435   3                              {
 436   4                                      if(M_24C02 == M_time1)
 437   4                                      {       
 438   5                         
 439   5                                              Clr_Scr();//清屏
 440   5                                              frame();//显示边框
 441   5                                              Mcs=1;Scs=0;
 442   5                                              Disp_Chinese(3,16,nao);//闹钟显示时间到!
 443   5                                              Disp_Chinese(3,32,zhong);
 444   5                                              Disp_Chinese(3,48,shit);
 445   5                                              Mcs=0;Scs=1;
 446   5                                              Disp_Chinese(3,0,jian);
 447   5                                              Disp_Chinese(3,16,dao);
 448   5                                              Disp_Digit(3,40,fh);
 449   5                              
 450   5                                              while(M_24C02 == M_time1)//判断是否到闹钟设定时间
 451   5                                              {
 452   6                             for(a=0; a<100; a++)//BELL脉冲输出,驱动蜂鸣器
 453   6                                                      {
 454   7                                                              if(a<50){SPK = 0;Delay(100);}
 455   7                                                              else {SPK = 1;Delay(100);}
 456   7                                                      }
 457   6                                                M_time1=min;  
 458   6                          }
 459   5                                              Lcd_Mark1();
 460   5                                      }//if
 461   4                              }
 462   3                        
 463   3                      }//if
 464   2                      
 465   2               }//while
 466   1          
 467   1        }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4970    ----
   CONSTANT SIZE    =   2669    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15      34
   IDATA SIZE       =   ----    ----
   BIT SIZE         =     16       3
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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