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

📄 ds1302+led-c51.lst

📁 这是一个基于51单片机的DS1302_实时时钟驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 226          // 设定值写入DS1302
 227          /**********************************************************/
 228          void  Set_W1302(uchar addr)
 229          {
 230   1         uchar  temp;
 231   1         write_ds1302(0x8e,0x00);
 232   1         temp=(init1[0]<<4)+init1[1];
 233   1         write_ds1302(addr,temp); 
 234   1         write_ds1302(0x8e,0x80);
 235   1         beep();
 236   1      }
 237          
 238          
 239          /**********************************************************/
 240          // 显示当前时间
 241          /**********************************************************/
C51 COMPILER V7.50   DS1302_LED_C51                                                        12/16/2007 13:49:27 PAGE 5   

 242          
 243          void  Play_nowtime()
 244          {
 245   1         read_nowtime(0x81,init,7);   //读出当前时间,读出7个字节
 246   1      
 247   1              if(!K4)
 248   1              {
 249   2                 //显示年
 250   2                 dula=0;
 251   2                 P0=table[init[6]>>4];                
 252   2                 dula=1;
 253   2                 dula=0;
 254   2      
 255   2                 wela=0;
 256   2                 P0=0xfe;
 257   2                 wela=1;
 258   2                 wela=0;
 259   2                 delay();
 260   2      
 261   2                 dula=0;
 262   2                 P0=table[init[6]&0x0f];              
 263   2                 dula=1;
 264   2                 dula=0;
 265   2      
 266   2                 wela=0;
 267   2                 P0=0xfd;
 268   2                 wela=1;
 269   2                 wela=0;
 270   2                 delay();
 271   2      
 272   2                 //显示月
 273   2                 dula=0;
 274   2                 P0=table[init[4]>>4];                
 275   2                 dula=1;
 276   2                 dula=0;
 277   2      
 278   2                 wela=0;
 279   2                 P0=0xfb;
 280   2                 wela=1;
 281   2                 wela=0;
 282   2                 delay();
 283   2      
 284   2                 dula=0;
 285   2                 P0=table[init[4]&0x0f];              
 286   2                 dula=1;
 287   2                 dula=0;
 288   2      
 289   2                 wela=0;
 290   2                 P0=0xf7;
 291   2                 wela=1;
 292   2                 wela=0;
 293   2                 delay();
 294   2                 //显示日
 295   2                 dula=0;
 296   2                 P0=table[init[3]>>4];                
 297   2                 dula=1;
 298   2                 dula=0;
 299   2      
 300   2                 wela=0;
 301   2                 P0=0xef;
 302   2                 wela=1;
 303   2                 wela=0;
C51 COMPILER V7.50   DS1302_LED_C51                                                        12/16/2007 13:49:27 PAGE 6   

 304   2                 delay();
 305   2      
 306   2                 dula=0;
 307   2                 P0=table[init[3]&0x0f];              
 308   2                 dula=1;
 309   2                 dula=0;
 310   2      
 311   2                 wela=0;
 312   2                 P0=0xdf;
 313   2                 wela=1;
 314   2                 wela=0;
 315   2                 delay();
 316   2                 //显示周
 317   2                 dula=0;
 318   2                 P0=table[init[5]>>4];                
 319   2                 dula=1;
 320   2                 dula=0;
 321   2      
 322   2                 wela=0;
 323   2                 P0=0xbf;
 324   2                 wela=1;
 325   2                 wela=0;
 326   2                 delay();
 327   2      
 328   2                 dula=0;
 329   2                 P0=table[init[5]&0x0f];              
 330   2                 dula=1;
 331   2                 dula=0;
 332   2      
 333   2                 wela=0;
 334   2                 P0=0x7f;
 335   2                 wela=1;
 336   2                 wela=0;
 337   2                 delay();
 338   2              }
 339   1              else
 340   1              {
 341   2                 //显示时
 342   2                 dula=0;
 343   2                 P0=table[init[2]>>4];                
 344   2                 dula=1;
 345   2                 dula=0;
 346   2              
 347   2                 wela=0;
 348   2                 P0=0xfb;
 349   2                 wela=1;
 350   2                 wela=0;
 351   2                 delay();
 352   2              
 353   2                 dula=0;
 354   2                 P0=table[init[2]&0x0f];              
 355   2                 dula=1;
 356   2                 dula=0;
 357   2      
 358   2                 wela=0;
 359   2                 P0=0xf7;
 360   2                 wela=1;
 361   2                 wela=0;
 362   2                 delay();
 363   2      
 364   2                 //显示分
 365   2                 dula=0;
C51 COMPILER V7.50   DS1302_LED_C51                                                        12/16/2007 13:49:27 PAGE 7   

 366   2                 P0=table[init[1]>>4];                
 367   2                 dula=1;
 368   2                 dula=0;
 369   2      
 370   2                 wela=0;
 371   2                 P0=0xef;
 372   2                 wela=1;
 373   2                 wela=0;
 374   2                 delay();
 375   2      
 376   2                 dula=0;
 377   2                 P0=table[init[1]&0x0f];              
 378   2                 dula=1;
 379   2                 dula=0;
 380   2      
 381   2                 wela=0;
 382   2                 P0=0xdf;
 383   2                 wela=1;
 384   2                 wela=0;
 385   2                 delay();
 386   2      
 387   2                 //显示秒
 388   2                 dula=0;
 389   2                 P0=table[init[0]>>4];                
 390   2                 dula=1;
 391   2                 dula=0;
 392   2      
 393   2                 wela=0;
 394   2                 P0=0xbf;
 395   2                 wela=1;
 396   2                 wela=0;
 397   2                 delay();
 398   2      
 399   2                 dula=0;
 400   2                 P0=table[init[0]&0x0f];              
 401   2                 dula=1;
 402   2                 dula=0;
 403   2      
 404   2                 wela=0;
 405   2                 P0=0x7f;
 406   2                 wela=1;
 407   2                 wela=0;
 408   2                 delay();
 409   2              }
 410   1      }
 411          /**********************************************************/
 412          // 主函数
 413          /**********************************************************/
 414          void main()
 415          {
 416   1        
 417   1         P1=0xff;
 418   1         TMOD=0x01;
 419   1         TH0=0x4c;          //50ms定时
 420   1         TL0=0x00;
 421   1         EA=1;
 422   1         ET0=1;  
 423   1         TR0=1;
 424   1      
 425   1         init_ds1302();              //初始化ds1302
 426   1      
 427   1      
C51 COMPILER V7.50   DS1302_LED_C51                                                        12/16/2007 13:49:27 PAGE 8   

 428   1         
 429   1         while(1)
 430   1         {
 431   2      //---------------------------------------------------------
 432   2         if(!K1 ||!K2 ||!K3)
 433   2            {
 434   3                    set_ds1302(0x80,init2,7);  //设置初始时间,日期,年月
 435   3                        beep();
 436   3            }
 437   2      
 438   2              Play_nowtime();
 439   2      //      Time_compare();
 440   2         }
 441   1      }
 442          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    650    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     72      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      9    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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