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

📄 gongcheng28.lst

📁 1602显示DS1302和按键对时源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V9.05   GONGCHENG28                                                           04/01/2012 18:06:48 PAGE 7   

 366   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 367   6                                                              write_ds1302(write_add[2],time_date[2]);
 368   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 369   6                                                              }
 370   5                                                      break;
 371   5                                              case 5:{write_cmd(0x80+4);        //月
 372   6                                                              write_cmd(0x0f);
 373   6                                                              yue++;
 374   6                                                              if(yue>12)
 375   6                                                              {
 376   7                                                                      yue=1;
 377   7                                                              }
 378   6                                                              yue1=yue/10;
 379   6                                                              yue2=yue%10;
 380   6                                                              time_date[1]=yue2+yue1*16;
 381   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 382   6                                                              write_ds1302(write_add[1],time_date[1]);
 383   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 384   6                                                              }
 385   5                                                      break;
 386   5                                              case 6:{write_cmd(0x80+1);
 387   6                                                              write_cmd(0x0f);
 388   6                                                              nian++;
 389   6                                                              if(nian>99)
 390   6                                                              {
 391   7                                                                      nian=0;
 392   7                                                              }
 393   6                                                              nian1=nian/10;
 394   6                                                              nian2=nian%10;
 395   6                                                              time_date[0]=nian2+nian1*16;
 396   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 397   6                                                              write_ds1302(write_add[0],time_date[0]);
 398   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 399   6                                              
 400   6                                                              }
 401   5                                                      break;
 402   5                                              default: break;
 403   5                                              }
 404   4                                              delay(200);
 405   4                                              write_cmd(0x0c);
 406   4                              }
 407   3                      }//增判断结束
 408   2      
 409   2                      if(key2==0)        //减判断
 410   2                      {
 411   3                              delay(10);
 412   3                              if(key2==0)
 413   3                              {       
 414   4                                      beep=0;         //短暂声音提示
 415   4                                      delay(40);
 416   4                                      beep=1;
 417   4                                      while(!key1);
 418   4                                      switch(an_num)
 419   4                                      {
 420   5                                              case 1:{         write_cmd(0x80+0x40+4);
 421   6                                                                       write_cmd(0x0f);
 422   6                                                                              fen2--;
 423   6                                                                              if(fen2<0)
 424   6                                                                              {
 425   7                                                                                      fen2=9;
 426   7                                                                                      fen1--;
 427   7                                                                                      if(fen1<0)
C51 COMPILER V9.05   GONGCHENG28                                                           04/01/2012 18:06:48 PAGE 8   

 428   7                                                                                      fen1=5;
 429   7                                                                              }
 430   6                                                                              time_date[5]=fen2+fen1*16;
 431   6                                                                              write_ds1302(0x8e,0x00);         //去除写保护
 432   6                                                                              write_ds1302(write_add[5],time_date[5]);
 433   6                                                                              write_ds1302(0x8e,0x80);         //加写保护
 434   6                                                              }
 435   5                                                         break;
 436   5                                              case 2:{write_cmd(0x80+0x40+1);         //时
 437   6                                                     write_cmd(0x0f);
 438   6                                                         shi--;
 439   6                                                         if(shi<0)
 440   6                                                         {
 441   7                                                                      shi=23; 
 442   7                                                         }
 443   6                                                         shi1=shi/10;
 444   6                                                         shi2=shi%10;
 445   6                                                         time_date[4]=shi2+shi1*16;
 446   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 447   6                                                              write_ds1302(write_add[4],time_date[4]);
 448   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 449   6                                                              }
 450   5                                                              break;
 451   5                                              case 3:{write_cmd(0x80+12);       //周
 452   6                                                              write_cmd(0x0f);
 453   6                                                              zhou2--;
 454   6                                                              if(zhou2<1)
 455   6                                                              {
 456   7                                                                      zhou2=7;
 457   7                                                              }
 458   6                                                              time_date[3]=zhou2+zhou1*16;
 459   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 460   6                                                              write_ds1302(write_add[3],time_date[3]);
 461   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 462   6                                              
 463   6                                                              }
 464   5                                                      break;
 465   5                                              case 4:{write_cmd(0x80+7);      //日
 466   6                                                              write_cmd(0x0f);
 467   6                                                              ri--;
 468   6                                                              if(ri<1)
 469   6                                                              {
 470   7                                                                      ri=31;
 471   7                                                              }
 472   6                                                              ri1=ri/10;
 473   6                                                              ri2=ri%10;
 474   6                                                              time_date[2]=ri2+ri1*16;
 475   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 476   6                                                              write_ds1302(write_add[2],time_date[2]);
 477   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 478   6                                                              }
 479   5                                                      break;
 480   5                                              case 5:{write_cmd(0x80+4);        //月
 481   6                                                              write_cmd(0x0f);
 482   6                                                              yue--;
 483   6                                                              if(yue<1)
 484   6                                                              {
 485   7                                                                      yue=12;
 486   7                                                              }
 487   6                                                              yue1=yue/10;
 488   6                                                              yue2=yue%10;
 489   6                                                              time_date[1]=yue2+yue1*16;
C51 COMPILER V9.05   GONGCHENG28                                                           04/01/2012 18:06:48 PAGE 9   

 490   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 491   6                                                              write_ds1302(write_add[1],time_date[1]);
 492   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 493   6                                                              }
 494   5                                                      break;
 495   5                                              case 6:{write_cmd(0x80+1);
 496   6                                                              write_cmd(0x0f);
 497   6                                                              nian--;
 498   6                                                              if(nian<0)
 499   6                                                              {
 500   7                                                                      nian=99;
 501   7                                                              }
 502   6                                                              nian1=nian/10;
 503   6                                                              nian2=nian%10;
 504   6                                                              time_date[0]=nian2+nian1*16;
 505   6                                                              write_ds1302(0x8e,0x00);         //去除写保护
 506   6                                                              write_ds1302(write_add[0],time_date[0]);
 507   6                                                              write_ds1302(0x8e,0x80);         //加写保护
 508   6                                              
 509   6                                                              }
 510   5                                                      break;
 511   5                                              default: break;
 512   5                                              }
 513   4                                              delay(200);
 514   4                                              write_cmd(0x0c);
 515   4                              }
 516   3                      }//减判断结束                           
 517   2              }
 518   1      }
 519          
 520          
 521          void main()
 522                  {       
 523   1                      beep=1;
 524   1                      init(); //1602初始化
 525   1                       //set_rtc();
 526   1                               while(1)
 527   1                                       {
 528   2                                       
 529   2                                              read_rtc();
 530   2                                              time_pros0();
 531   2                                              keyscan();
 532   2                                              time_pros();
 533   2                                              display1();
 534   2                                       }
 535   1              }


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