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

📄 shizhong.lst

📁 主要由AT89S52,lcd1602,ds1302以及4*4键盘的控制是实现的一个简单电子表 适合初学单片机者下载
💻 LST
📖 第 1 页 / 共 2 页
字号:
 215   4                      {delay(10);
 216   5                       if(key_down==0)
 217   5                       {flag=1;   //真正按下则置标志1
 218   6                        while(key_down==0);
 219   6                            }
 220   5                       }
 221   4                         flag_down=flag;
 222   4                         flag=0;
 223   4                         if(flag_down==1)
 224   4                                 {inittime[3]--;
 225   5                                  if(inittime[3]==0x0f)
 226   5                                      {inittime[3]=0x09;}
 227   5                                      if(inittime[3]==0x1f)
 228   5                                      {inittime[3]=0x19;}
 229   5                                      if(inittime[3]==0x2f)
 230   5                                      {inittime[3]=0x29;}
 231   5                                  if(inittime[3]==0xff)
 232   5                                      {inittime[3]=0x31;}
 233   5                                      }
 234   4                                      v_setd1302(inittime);
 235   4                                      break;
 236   4                    case 3: //test(key_up);   // 调时加
 237   4                         if (key_up==0)
 238   4                      {delay(10);
 239   5                       if(key_up==0)
 240   5                        {flag=1;   //真正按下则置标志1
 241   6                      while(key_up==0);
C51 COMPILER V8.05a   SHIZHONG                                                             05/13/2009 17:15:03 PAGE 5   

 242   6       
 243   6                            }
 244   5                      }
 245   4                         flag_up=flag;
 246   4                         flag=0;
 247   4                         if(flag_up==1)     
 248   4                                  { inittime[2]++;
 249   5                                    if(inittime[2]==0x0a) //完成进制的转换
 250   5                                        {inittime[2]=0x10;}
 251   5                                        if(inittime[2]==0x1a)
 252   5                                        {inittime[2]=0x20;}
 253   5                                         if(inittime[2]==0x24)
 254   5                                        {inittime[2]=0;}
 255   5                                      }
 256   4                                 //test(key_down);             //调时减
 257   4                                 if (key_down==0)
 258   4                      {delay(10);
 259   5                        if(key_down==0)
 260   5                         {flag=1;   //真正按下则置标志1
 261   6                          while(key_down==0);
 262   6                              }
 263   5                       }
 264   4                         flag_down=flag;
 265   4                         flag=0;
 266   4                         if(flag_down==1)
 267   4                                  { inittime[2]--;
 268   5                                    if(inittime[2]==0x0f) //完成进制的转换
 269   5                                        {inittime[2]=0x09;}
 270   5                                        if(inittime[2]==0x1f)
 271   5                                        {inittime[2]=0x19;}
 272   5                                          if(inittime[2]==0xff)
 273   5                                        {inittime[2]=0x23;}
 274   5                                      }
 275   4                                      v_setd1302(inittime);
 276   4                                      break;
 277   4                  case 4: //test(key_up);          //调分加
 278   4                                 if (key_up==0)
 279   4                      {delay(10);
 280   5                       if(key_up==0)
 281   5                        {flag=1;   //真正按下则置标志1
 282   6                       while(key_up==0);
 283   6                            }
 284   5                       }
 285   4                         flag_up=flag;
 286   4                         flag=0;
 287   4                         if(flag_up==1)
 288   4                                 {inittime[1]++;
 289   5                                  if(inittime[1]==0x0a)
 290   5                                      {inittime[1]=0x10;}
 291   5                                      if(inittime[1]==0x1a)
 292   5                                      {inittime[1]=0x20;}
 293   5                                      if(inittime[1]==0x2a)
 294   5                                      {inittime[1]=0x30;}
 295   5                                      if(inittime[1]==0x3a)
 296   5                                      {inittime[1]=0x40;}
 297   5                                      if(inittime[1]==0x4a)
 298   5                                      {inittime[1]=0x50;}
 299   5                                  if(inittime[1]==0x5a)
 300   5                                      {inittime[1]=0;}
 301   5                                      }
 302   4                                // test(key_down);       //调分减
 303   4                                      if (key_down==0)
C51 COMPILER V8.05a   SHIZHONG                                                             05/13/2009 17:15:03 PAGE 6   

 304   4                      {delay(10);
 305   5                       if(key_down==0)
 306   5                       {flag=1;   //真正按下则置标志1
 307   6                        while(key_down==0);
 308   6                            }
 309   5                       }
 310   4                         flag_down=flag;
 311   4                         flag=0;
 312   4                         if(flag_down==1)
 313   4                                 {inittime[1]--;
 314   5                                  if(inittime[1]==0x0f)
 315   5                                      {inittime[1]=0x09;}
 316   5                                      if(inittime[1]==0x1f)
 317   5                                      {inittime[1]=0x19;}
 318   5                                      if(inittime[1]==0x2f)
 319   5                                      {inittime[1]=0x29;}
 320   5                                      if(inittime[1]==0x3f)
 321   5                                      {inittime[1]=0x39;}
 322   5                                      if(inittime[1]==0x4f)
 323   5                                      {inittime[1]=0x49;}
 324   5                                  if(inittime[1]==0xff)
 325   5                                      {inittime[1]=0x59;}
 326   5                                  }
 327   4                                      v_setd1302(inittime);
 328   4                                      break;
 329   4                      default: break;         
 330   4                 } 
 331   3                  disp_set();
 332   3                // test(key_set);
 333   3                   if (key_set==0)
 334   3                {delay(10);
 335   4                 if(key_set==0)
 336   4                   {
 337   5                                 flag=1;   //真正按下则置标志1
 338   5                        while(key_set==0);
 339   5                       }
 340   4                }
 341   3                 flag_set=flag;
 342   3                 flag=0;
 343   3                }
 344   2                id=0;
 345   2         flag_set=!flag_set;
 346   2              }
 347   1       }  
 348          void disp_set()
 349          {
 350   1      if(f2==1)
 351   1      {
 352   2      LCD_init();
 353   2      delay(100);
 354   2      f2--;
 355   2      f1=1;
 356   2      }
 357   1      gotoxy(0,1);
 358   1      LCD_display("Date:");
 359   1      gotoxy(0,2);
 360   1      LCD_display("Time:");
 361   1      delay(1);
 362   1      v_Get1302(ucCurtime); 
 363   1      change();
 364   1      gotoxy(5,1);
 365   1      LCD_display(date);      //显示时间
C51 COMPILER V8.05a   SHIZHONG                                                             05/13/2009 17:15:03 PAGE 7   

 366   1      gotoxy(5,2);
 367   1      LCD_display(times);//显示日期
 368   1      gotoxy(15,1);
 369   1      id1[0]=id+'0'; //显示当前处于何种调节
 370   1      LCD_display(id1);
 371   1      }
 372          void disp_time(void)
 373          {
 374   1      if(f1==1)
 375   1      {
 376   2      LCD_init();
 377   2      delay(100);
 378   2      f1--;
 379   2      f2=1;
 380   2      }
 381   1      gotoxy(0,1);
 382   1      LCD_display("Date:");
 383   1      gotoxy(0,2);
 384   1      LCD_display("Time:");
 385   1      delay(1);
 386   1      v_Get1302(ucCurtime); 
 387   1      change();
 388   1      gotoxy(8,1);
 389   1      LCD_display(date);      //显示时间
 390   1      gotoxy(8,2);
 391   1      LCD_display(times);//显示日期
 392   1      gotoxy(2,2);
 393   1      }
 394          void change()//时间显示转换程序
 395          { 
 396   1      // 时 间 的 转 换
 397   1      times[0]=ucCurtime[2]/16+'0';
 398   1      times[1]=ucCurtime[2]%16+'0';
 399   1      times[2]=':';
 400   1      times[3]=ucCurtime[1]/16+'0';
 401   1      times[4]=ucCurtime[1]%16+'0';
 402   1      times[5]=':';
 403   1      times[6]=ucCurtime[0]/16+'0';
 404   1      times[7]=ucCurtime[0]%16+'0';
 405   1      times[8]=' ';
 406   1      times[9]=' ';
 407   1      // 日 期 的 转 换
 408   1      date[0]=ucCurtime[6]/16+'0';
 409   1      date[1]=ucCurtime[6]%16+'0';
 410   1      date[2]='-';
 411   1      date[3]=ucCurtime[4]/16+'0';
 412   1      date[4]=ucCurtime[4]%16+'0';
 413   1      date[5]='-';
 414   1      date[6]=ucCurtime[3]/16+'0';
 415   1      date[7]=ucCurtime[3]%16+'0';
 416   1      date[8]=' ';
 417   1      date[9]=' ';
 418   1      date[10]=' ';
 419   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1698    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     47       4
C51 COMPILER V8.05a   SHIZHONG                                                             05/13/2009 17:15:03 PAGE 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 + -