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

📄 led.lst

📁 利用单片机、HD7279、键盘
💻 LST
📖 第 1 页 / 共 2 页
字号:
 206          
 207          //*****************************开始计时************************************
 208          
 209          void clock()
 210          {
 211   1      
 212   1         hour=key_value[0]*10+key_value[1];
 213   1         min=key_value[2]*10+key_value[3];
 214   1         sec=key_value[4]*10+key_value[5];
 215   1      
 216   1         if(hour>23||min>59||sec>59) 
 217   1         { 
 218   2             key_valueclean(); 
 219   2             Error();
 220   2           
 221   2         }
 222   1         else
 223   1         {
 224   2             while(1)
 225   2             {
 226   3                    if(sec==60)                  //秒为60分进1
 227   3                    {
 228   4                        min++;
 229   4                        sec=0;   
 230   4                        if(min==60)              //分为60时进1
 231   4                           {
 232   5                               hour++;
 233   5                               min=0;
 234   5                               if(hour==24)      //时为24,时为0
 235   5                                   hour=0;
 236   5                          
 237   5                           }
 238   4                    
 239   4                    }
 240   3                  
 241   3               sg=sec%10;                    //显示秒
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 5   

 242   3               ss=sec/10;
 243   3               write7279(0x80,sg);
 244   3               write7279(0x81,ss);
 245   3      
 246   3      
 247   3      
 248   3               mg=min%10;                    //显示分
 249   3               ms=min/10;
 250   3               write7279(0x82,mg);
 251   3               write7279(0x83,ms);
 252   3      
 253   3      
 254   3      
 255   3               hg=hour%10;                   //显示时
 256   3               hs=hour/10;          
 257   3               write7279(0x84,hg);
 258   3               write7279(0x85,hs);
 259   3      
 260   3              
 261   3               
 262   3               
 263   3               delay10ms(100);               //延时1秒
 264   3               sec++;
 265   3      
 266   3               stopkey(); 
 267   3                    
 268   3                 
 269   3        
 270   3            }
 271   2          }
 272   1      }
 273          
 274          
 275          
 276          
 277          
 278          //*************************倒计时函数***********************************************
 279          
 280          
 281          
 282          
 283          void countdowntime()
 284          {
 285   1      
 286   1           hour=key_value[0]*10+key_value[1];
 287   1           min=key_value[2]*10+key_value[3];
 288   1           sec=key_value[4]*10+key_value[5];
 289   1      
 290   1      
 291   1          if(hour>23||min>59||sec>59) 
 292   1          { 
 293   2             key_valueclean(); 
 294   2             Error();
 295   2      
 296   2          }
 297   1          else
 298   1          {
 299   2             while(1)
 300   2             {
 301   3                    if(sec==-1)              //秒记到0时
 302   3                    {
 303   4                        min--;
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 6   

 304   4                        sec=59;   
 305   4                        if(min==-1)          //分记到0时
 306   4                           {
 307   5                               hour--;
 308   5                               min=59;
 309   5      //                         if(hour==-1)  //时记到0时
 310   5      //                             hour=23;
 311   5                          
 312   5                           }
 313   4                    
 314   4                    }
 315   3                  
 316   3               sg=sec%10;                    //显示秒
 317   3               ss=sec/10;
 318   3               write7279(0x80,sg);
 319   3               write7279(0x81,ss);
 320   3      
 321   3      
 322   3      
 323   3               mg=min%10;                    //显示分
 324   3               ms=min/10;
 325   3               write7279(0x82,mg);
 326   3               write7279(0x83,ms);
 327   3      
 328   3      
 329   3      
 330   3               hg=hour%10;                   //显示时
 331   3               hs=hour/10;          
 332   3               write7279(0x84,hg);
 333   3               write7279(0x85,hs);
 334   3      
 335   3              
 336   3               
 337   3               
 338   3               delay10ms(100);               //延时1秒
 339   3               sec--;
 340   3      
 341   3      
 342   3      
 343   3               while(hour==0&min==0&sec==-1) //时间到时,显示要按F键
 344   3               {
 345   4                  write7279(DECODE1,0x0f);
 346   4                  stopkey();
 347   4               } 
 348   3                    
 349   3                 
 350   3        
 351   3            }
 352   2         }
 353   1      
 354   1      
 355   1           
 356   1      } 
 357          
 358          
 359          
 360          //****************************显示错误*********************************
 361          
 362          void Error()
 363          {
 364   1       
 365   1      
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 7   

 366   1                  send_byte(CMD_RESET);         //复位
 367   1                        
 368   1                              write7279(UNDECODE+4, 0x4F);  //E
 369   1                              write7279(UNDECODE+3, 0x05);  //r
 370   1                              write7279(UNDECODE+2, 0x05);  //r
 371   1                              write7279(UNDECODE+1, 0x1D);  //o
 372   1                              write7279(UNDECODE, 0x05);    //r
 373   1      
 374   1                while(1)
 375   1                {
 376   2                 stopkey();
 377   2                } 
 378   1      
 379   1      
 380   1      }
 381          
 382          
 383          
 384          
 385          //**********************************等待停止键**************************************
 386          
 387          
 388          void stopkey(void)
 389          {
 390   1                  if(!key)
 391   1                  {
 392   2                     key_number=read7279(CMD_READ); //按下F键后回到键盘等待状态
 393   2                         if(key_number==KEY_F)
 394   2                     {
 395   3                          a=0;
 396   3                          keycontrol();
 397   3                     }
 398   2                  }
 399   1      }
 400          
 401          
 402          
 403          
 404            


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    976    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     30    ----
   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 + -