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

📄 cc.lst

📁 此程序是使用ds12887始终芯片实现度时间的显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 261   5                                                key=seat(11,m,dao[m]);                                             
 262   5                                                 }
 263   4                                                 else
 264   4                                                 key=seat(Time[m],m,dao[m]);break;    
 265   4                                      case 2:if(m==6||m==7)
 266   4                                                 {
 267   5                                                      key=seat(11,m,dao[m]);                                       
 268   5                                                      }
 269   4                                                      else
 270   4                                                      key=seat(Time[m],m,dao[m]);break;
 271   4                                      default:for(m=0;m<8;m++)
 272   4                                      {
 273   5                                                              key=seat(Time[m],m,dao[m]);
 274   5                                                      }
 275   4                                                      c=0;
 276   4                                                      REG_A=0x20;
 277   4                                                      REG_B=0x26;
 278   4                                                      break;
 279   4                              }
 280   3                      
 281   3                       
 282   3                              if(key==1)
 283   3                              {
 284   4                              //if(key_count==1)
 285   4                              k++;
 286   4                              key_wait();
 287   4                                      
 288   4                              }
 289   3                        
 290   3                              if(key==2)
 291   3                              {
 292   4                      set_p(add,60);
 293   4                              } 
 294   3                      if(key==3)
 295   3                          set_m(add,60);
 296   3                              if(key==4)
 297   3                         {
 298   4                               c=0;
 299   4                              REG_A=0x20;
 300   4                              REG_B=0x06;
 301   4                         }
 302   3                              if(k==0)
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 6   

 303   3                      add=0;
 304   3                              if(k==1)
 305   3                      add=2;  
 306   3                          if(k==2)            
 307   3                          add=4;
 308   3                              if(k==3)
 309   3                              {
 310   4                                      c=0;
 311   4                                      REG_A=0x20;
 312   4                                      REG_B=0x26;
 313   4                              } 
 314   3                      }
 315   2          }   
 316   1         
 317   1      }        
 318          
 319          void set_dao(uchar a,uchar b)
 320          {
 321   1              if(key==2)
 322   1              {
 323   2               
 324   2                dao_time[a]++;
 325   2                if(dao_time[a]>59+b)
 326   2          dao_time[a]=59+b;
 327   2              } 
 328   1              if(key==3)
 329   1              {
 330   2               
 331   2                if(dao_time[a]>1)
 332   2                 dao_time[a]=dao_time[a]-1;
 333   2                else
 334   2            dao_time[a]=0;
 335   2              }
 336   1      }
 337          void get_dao()
 338          {
 339   1              uchar i,j,m,a;
 340   1               REG_B=0x06;
 341   1                      for(i=80;i>0;i--)
 342   1                      {
 343   2                              read_timebit(0);
 344   2                              for(j=0;j<8;j++)
 345   2                              {
 346   3                                      key=seat(Time[j],j,dao[j]);
 347   3                                      if(key==4)
 348   3                                  k++;
 349   3                                      set_dao(a,0);
 350   3                              }
 351   2                              if(k==0)
 352   2                              a=0;
 353   2                              if(k==1)
 354   2                              a=1;
 355   2                              if(k==2)
 356   2                              a=2;
 357   2                              if(k==3)
 358   2                              {       
 359   3                                      if((!dao_time[0])&&(!dao_time[1])&&(!dao_time[2]))
 360   3                                  REG_B=0x06;
 361   3                                      else
 362   3                                  REG_B=0x36; 
 363   3                                      v=0;
 364   3                              }
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 7   

 365   2                              
 366   2                      }
 367   1                      for(i=80;i>0;i--)
 368   1                      {
 369   2                              read_timebit(0);
 370   2                              for(m=0;m<8;m++)
 371   2                         {    
 372   3                              switch(k)
 373   3                              {
 374   4                                  case 0 :if(m==0||m==1)
 375   4                                                 {
 376   5                                                key=seat(Time[m],m,11);                                            
 377   5                                                 }
 378   4                                                 else
 379   4                                                 key=seat(Time[m],m,dao[m]);break;
 380   4                                      case 1:if(m==3||m==4)
 381   4                                                 {
 382   5                                                key=seat(Time[m],m,11);                                            
 383   5                                                 }
 384   4                                                 else
 385   4                                                 key=seat(Time[m],m,dao[m]);break;    
 386   4                                      case 2:if(m==6||m==7)
 387   4                                                 {
 388   5                                                      key=seat(Time[m],m,11);                                      
 389   5                                                      }
 390   4                                                      else
 391   4                                                      key=seat(Time[m],m,dao[m]);break;
 392   4                                      default:for(m=0;m<8;m++)
 393   4                                      {
 394   5                                                              key=seat(Time[m],m,dao[m]);
 395   5                                                      }
 396   4                                                      c=0;
 397   4                                                      REG_A=0x20;
 398   4                                                      if((!dao_time[0])&&(!dao_time[1])&&(!dao_time[2]))
 399   4                                                      REG_B=0x06;
 400   4                                                      else 
 401   4                                                      REG_B=0x36;
 402   4                                                      break;
 403   4                              }
 404   3                              if(key==4)
 405   3                              k++;
 406   3                              set_dao(a,0);
 407   3                        }
 408   2                              if(k==0)
 409   2                              a=0;
 410   2                              if(k==1)
 411   2                              a=1;
 412   2                              if(k==2)
 413   2                              a=2;
 414   2                              if(k==3)
 415   2                              {
 416   3                                      
 417   3                                      if((!dao_time[0])&&(!dao_time[1])&&(!dao_time[2]))
 418   3                                      REG_B=0x06;
 419   3                                      else
 420   3                                      REG_B=0x36;
 421   3                                  v=0;
 422   3                              }
 423   2                              
 424   2                      }
 425   1      
 426   1      }
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 8   

 427          void main (void)
 428           {
 429   1      
 430   1              uchar i,add=2;
 431   1                 Time[2]= Time[5]=10;
 432   1                 dao[2]=dao[5]=10;
 433   1                 key_count=0;
 434   1                 TMOD=0X01;
 435   1                 TH0=0Xd4;
 436   1                 TL0=0XCC;
 437   1                 EA=1;
 438   1                 ET0=1;
 439   1                 EX0=1;
 440   1                 TR0=0;
 441   1                      scs=0;//DS12887片选--0有效
 442   1             // DS12887_Set0();
 443   1                      REG_A=0x20;
 444   1                      REG_B=0x06;
 445   1                      while(1)
 446   1                      {
 447   2                        read_timebit(1);
 448   2                        for(i=0;i<8;i++)
 449   2                       {
 450   3                          key=seat(Time[i],i,dao[i]);
 451   3                              if(key==1)
 452   3                              { 
 453   4                      //      if(key_count==1)
 454   4                      //{             
 455   4                                      k=0;
 456   4                                      c=1;
 457   4                              //      }
 458   4                              key_wait();                 
 459   4                              }
 460   3                              if(key==4)
 461   3                              {
 462   4                                      k=0;
 463   4                                  v=1;
 464   4                              }
 465   3                       }
 466   2                   if(c==1)
 467   2                   change_0();
 468   2                       if(v==1)
 469   2                       get_dao();
 470   2                      }               
 471   1       
 472   1                      
 473   1      }
 474          void interrupt0(void) interrupt 0
 475          {
 476   1              uchar a;
 477   1              if(dao_time[0]<=0)
 478   1              {  
 479   2                 dao_time[0]=60;
 480   2                 if(dao_time[1]<=0)
 481   2                 {
 482   3                              dao_time[1]=60;
 483   3                              dao_time[2]--;
 484   3                              if(dao_time[2]<0)
 485   3                              dao_time[2]=0;
 486   3                 }
 487   2                 dao_time[1]--;
 488   2              }
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 9   

 489   1              dao_time[0]--;
 490   1              if((!dao_time[0])&&(!dao_time[1])&&(!dao_time[2]))
 491   1              {
 492   2                dao_time[0]=0;
 493   2                dao_time[1]=0;
 494   2                dao_time[2]=0;
 495   2                REG_B=0x0e;
 496   2                REG_A=0x23;
 497   2      
 498   2              }       
 499   1              a= REG_C;
 500   1      }
 501           void timer0(void) interrupt 1
 502           {
 503   1        uchar i;
 504   1                TH0=0Xd4;
 505   1                TL0=0XCC;
 506   1                 for(i=0;i<8;i++)
 507   1                       {
 508   2                          key=seat(11,i,11);
 509   2                        }
 510   1                        for(i=0;i<8;i++)
 511   1                       {
 512   2                          key=seat(Time[i],i,dao[i]);
 513   2                      }
 514   1       }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1555    ----
   CONSTANT SIZE    =     26    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     19      13
   IDATA SIZE       =     19       2
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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