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

📄 ds1302+lcd1602-c51.lst

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

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

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

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    662    ----
   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 + -