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

📄 clock.lst

📁 ds18b20程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 229   2           }
 230   1      }
 231          
 232          void timer_0() interrupt 1 using 2
 233          {
 234   1        EA=0;
 235   1        count_timer0++;
 236   1        if(count_timer0>=10)
 237   1        {
 238   2          TH0=15536/256;
 239   2          TL0=15536%256;
 240   2          count_timer0=0;
 241   2              if(flag_set==1)
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 5   

 242   2                switch(flag_display)
 243   2                {
 244   3                  case 0:flag_display=1;break;
 245   3                      case 1:flag_display=0;break;
 246   3                      default:break;
 247   3                }
 248   2              if(flag_set==2)
 249   2                switch(flag_display)
 250   2                {
 251   3                case 0:flag_display=2;break;
 252   3                case 2:flag_display=0;break;
 253   3                default:break;
 254   3                }
 255   2              if(flag_set==4)
 256   2                switch(flag_display)
 257   2                {
 258   3                case 3:flag_display=4;break;
 259   3                case 4:flag_display=3;break;
 260   3                default:break;
 261   3                }
 262   2              if(flag_set==5)
 263   2                switch(flag_display)
 264   2                {
 265   3                case 3:flag_display=5;break;
 266   3                case 5:flag_display=3;break;
 267   3                default:break;
 268   3                }
 269   2        }
 270   1        EA=1;
 271   1      }
 272          
 273          void timer_1() interrupt 3 using 2
 274          {
 275   1        EA=0;
 276   1        TH1=15536/256;
 277   1        TL1=15536%256;
 278   1        count_rect++;
 279   1        if(bee_flag==1)
 280   1        { 
 281   2          alarm=1;
 282   2              bee=1;
 283   2          if(count_rect>=3)
 284   2                {
 285   3                  bee_flag=0;
 286   3                  bee=0; 
 287   3                  alarm=0;
 288   3                      TR1=0;
 289   3                      count_rect=0;
 290   3                }
 291   2         }
 292   1         else
 293   1         {
 294   2           if(count_rect>=8)
 295   2           {
 296   3            alarm=!alarm;
 297   3            bee=!bee;
 298   3                count_rect=0;
 299   3                count_bee++;
 300   3            if(count_bee>=64)
 301   3            {TR1=0;bee=0;alarm=0;count_bee=0;light_combo=0;}
 302   3            }
 303   2              }
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 6   

 304   1        EA=1;
 305   1      }
 306          
 307          void key_scan(void)
 308          {
 309   1        ptr_key=0;
 310   1        flag_key=0;
 311   1        key0=1;
 312   1        key1=1;
 313   1        if(key0==0){flag_key=1;ptr_key=0;}
 314   1        if(key1==0){flag_key=1;ptr_key=1;}
 315   1      }
 316          
 317          void key_check(void)
 318          {
 319   1        if(flag_key==1)
 320   1        {  
 321   2           TR1=0;
 322   2           bee_flag=1;
 323   2           TR1=1;
 324   2           if(ptr_key==0)
 325   2           {
 326   3                   flag_set++;
 327   3                   flag_set=flag_set%6;
 328   3                   switch(flag_set)
 329   3                     {
 330   4                     case 0: flag_display=0;TR0=0;light_combo=0;break;
 331   4                     case 1: flag_display=0;TR0=1;break;
 332   4                         case 2: flag_display=0;TR0=1;break;
 333   4                         case 3: flag_display=3;TR0=0;light_combo=1;break;
 334   4                         case 4: flag_display=3;TR0=1;break;
 335   4                         case 5: flag_display=3;TR0=1;break;
 336   4                         default:break;
 337   4                     } 
 338   3                     delay(100);
 339   3                     while(key0==0);
 340   3            }
 341   2            else
 342   2                {
 343   3                    DSA=0x0f;
 344   3                    DSB=0x82;
 345   3                    sec_alarm=0;
 346   3                    switch(flag_set)
 347   3                    {
 348   4                       case 0:break;
 349   4                       case 1:{
 350   5                       min_buffer=min;
 351   5                       min_buffer++;
 352   5                       if((min_buffer&0x0f)>=10)
 353   5                       min_buffer=min_buffer+0x06;
 354   5                       if(min_buffer>=96)
 355   5                       min_buffer=0;
 356   5                       min=min_buffer;
 357   5                               break;
 358   5                                  }
 359   4                       case 2:{
 360   5                       hour_buffer=hour;
 361   5                       hour_buffer++;
 362   5                       if((hour_buffer&0x0f)>=10)
 363   5                       hour_buffer=hour_buffer+0x06;
 364   5                       if(hour_buffer>=36)
 365   5                       hour_buffer=0;
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 7   

 366   5                       hour=hour_buffer;
 367   5                               break;
 368   5                                   }
 369   4                           case 3:break;
 370   4                           case 4:{
 371   5                       min_buffer_alarm=min_alarm;
 372   5                       min_buffer_alarm++;
 373   5                       if((min_buffer_alarm&0x0f)>=10)
 374   5                       min_buffer_alarm=min_buffer_alarm+0x06;
 375   5                       if(min_buffer_alarm>=96)
 376   5                       min_buffer_alarm=0;
 377   5                       min_alarm=min_buffer_alarm;
 378   5                               break;
 379   5                                     }
 380   4                           case 5:{
 381   5                       hour_buffer_alarm=hour_alarm;
 382   5                       hour_buffer_alarm++;
 383   5                       if((hour_buffer_alarm&0x0f)>=10)
 384   5                       hour_buffer_alarm=hour_buffer_alarm+0x06;
 385   5                       if(hour_buffer_alarm>=36)
 386   5                       hour_buffer_alarm=0;
 387   5                       hour_alarm=hour_buffer_alarm;
 388   5                               break;
 389   5                                    }       
 390   4                           default:break;
 391   4                      }
 392   3                  DSB=0x22;
 393   3                  DSA=0x2f; 
 394   3                  delay(100);
 395   3                  while(key1==0);   
 396   3              }
 397   2         }
 398   1      }
 399          
 400          
 401          
 402          
 403          
 404          void main(void)
 405          {
 406   1        com0=0;
 407   1        com1=0;
 408   1        com2=0;
 409   1        com3=0;
 410   1      
 411   1        key0=1;
 412   1        key1=1;
 413   1      
 414   1        light0=0;
 415   1        light1=0;
 416   1        light_combo=0;
 417   1        bee=0;
 418   1        alarm=0;
 419   1        count_rect=0;
 420   1        count_bee=0;
 421   1      
 422   1        flag_display=0;
 423   1        count_timer0=0;
 424   1        flag_set=0;
 425   1      
 426   1        TH0=15536/256;
 427   1        TL0=15536%256;
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 8   

 428   1        TH1=15536/256;
 429   1        TL1=15536%256;
 430   1      
 431   1        TMOD=0x11;
 432   1        ET0=1;
 433   1        ET1=1;
 434   1        EA=1;
 435   1      
 436   1        PT0=1;
 437   1        TR0=0;
 438   1        TR1=0;
 439   1        delay(50000);
 440   1      
 441   1        
 442   1        while(1)
 443   1           {
 444   2               scan();
 445   2               key_scan();
 446   2               key_check();
 447   2            }
 448   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1345    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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