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

📄 ds1302clock.lst

📁 1302时钟1602显示~~分享了·~~希望对大家有用~~
💻 LST
📖 第 1 页 / 共 4 页
字号:
 278   2                              address=0x82; 
 279   2                              max=59;
 280   2                              mini=0;
 281   2                      }    //分钟
 282   1              if(sel==5)  
 283   1                      {
 284   2                              address=0x84; 
 285   2                              max=23;
 286   2                              mini=0;
 287   2                      }    //小时
 288   1              if(sel==3)  
 289   1                      {
 290   2                              address=0x86; 
 291   2                              max=31;
 292   2                              mini=1;
 293   2                      }    //日
 294   1              if(sel==2)  
 295   1                      {
 296   2                              address=0x88; 
 297   2                              max=12;mini=1;
 298   2                      }    //月
 299   1              if(sel==1)  
 300   1                      {
 301   2                              address=0x8c; 
 302   2                              max=99;mini=0;
 303   2                      }    //年
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 6   

 304   1              if(sel==4)  
 305   1                      {
 306   2                              address=0x8a; 
 307   2                              max=7; mini=1;
 308   2                      }    //星期
 309   1        
 310   1              item=R1302(address+1)/16*10+R1302(address+1)%16;
 311   1              if (sel_1==0) 
 312   1                      item++;  
 313   1                      else 
 314   1                              item--;
 315   1              if(item>max) item=mini;   
 316   1              if(item<mini) item=max;
 317   1                 
 318   1              W1302(0x8e,0x00);//允许写操作
 319   1              W1302(address,item/10*16+item%10);
 320   1              W1302(0x8e,0x80);//写保护,禁止写操作  
 321   1      }
 322          
 323          /******************************************************************************************
 324          * 函数名称    :Disp_line1
 325          * 功能描述    :屏幕显示第一行 时间和温度
 326          * 参数        :  参数名称:    输入/输出?     类型            描述
 327          * 
 328          * 返回值      :
 329          * 作者        :
 330          * 创建日期    :2006-12-19
 331          * 全局变量    :
 332          * 全局静态变量:
 333          * 局部静态变量:
 334          *----------------------------------------修改历史------------------------------------------
 335          * 当前版本    :                         修改人:                  修改日期:
 336          * 修改说明    :
 337          ******************************************************************************************/
 338          void Disp_line1(void) 
 339          {  
 340   1              Read_Temperature(10,0); //温度显示
 341   1        //冒号闪烁     
 342   1              if(flag==0)
 343   1              {
 344   2                      DisplayOneChar(3,0,0x3a); 
 345   2                      DisplayOneChar(6,0,0x3a);
 346   2              }
 347   1              else
 348   1              {
 349   2                      DisplayOneChar(3,0,0x20); 
 350   2                      DisplayOneChar(6,0,0x20);
 351   2              }
 352   1      
 353   1              if(sec==1)  //秒闪烁标志位
 354   1              {
 355   2              if(flag==1)
 356   2             {    
 357   3              DisplayOneChar(7,0,R1302(0x81)/16+0x30); //显示秒
 358   3              DisplayOneChar(8,0,R1302(0x81)%16+0x30);        
 359   3             }
 360   2           else
 361   2             {
 362   3              DisplayOneChar(7,0,0x20); //显示秒
 363   3              DisplayOneChar(8,0,0x20);    
 364   3             }
 365   2          } 
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 7   

 366   1        else
 367   1          {
 368   2           DisplayOneChar(7,0,R1302(0x81)/16+0x30); //显示秒
 369   2           DisplayOneChar(8,0,R1302(0x81)%16+0x30);         
 370   2          }    
 371   1         
 372   1        if(min==1)  //分钟闪烁标志位
 373   1          {
 374   2           if(flag==1)
 375   2             {    
 376   3              DisplayOneChar(4,0,R1302(0x83)/16+0x30); //显示分钟
 377   3              DisplayOneChar(5,0,R1302(0x83)%16+0x30);        
 378   3             }
 379   2           else
 380   2             {
 381   3              DisplayOneChar(4,0,0x20); //显示分钟
 382   3              DisplayOneChar(5,0,0x20);    
 383   3             }
 384   2          } 
 385   1        else
 386   1          {
 387   2           DisplayOneChar(4,0,R1302(0x83)/16+0x30); //显示分钟
 388   2           DisplayOneChar(5,0,R1302(0x83)%16+0x30);         
 389   2          } 
 390   1      
 391   1        if(hour==1)  //小时闪烁标志位
 392   1          {
 393   2           if(flag==1)
 394   2             {    
 395   3              DisplayOneChar(1,0,R1302(0x85)/16+0x30);//显示小时
 396   3              DisplayOneChar(2,0,R1302(0x85)%16+0x30); 
 397   3             }
 398   2           else
 399   2             {
 400   3              DisplayOneChar(1,0,0x20); //显示小时
 401   3              DisplayOneChar(2,0,0x20);    
 402   3             }
 403   2          } 
 404   1        else
 405   1         { 
 406   2          DisplayOneChar(1,0,R1302(0x85)/16+0x30);//显示小时
 407   2          DisplayOneChar(2,0,R1302(0x85)%16+0x30);
 408   2         }
 409   1      }
 410          
 411          /******************************************************************************************
 412          * 函数名称    :Disp_line2
 413          * 功能描述    :屏幕显示第二行  日期和星期  
 414          * 参数        :  参数名称:    输入/输出?     类型            描述
 415          * 
 416          * 返回值      :
 417          * 作者        :
 418          * 创建日期    :2006-12-19
 419          * 全局变量    :
 420          * 全局静态变量:
 421          * 局部静态变量:
 422          *----------------------------------------修改历史------------------------------------------
 423          * 当前版本    :                         修改人:                  修改日期:
 424          * 修改说明    :
 425          ******************************************************************************************/ 
 426          void Disp_line2(void)
 427          {
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 8   

 428   1              DisplayOneChar(3,1,0x2f); //显示固定字符
 429   1              DisplayOneChar(6,1,0x2f);
 430   1              DisplayListChar(10,1,week);
 431   1          
 432   1              if(year==1)  //年闪烁标志位
 433   1              {
 434   2           if(flag==1)
 435   2             {    
 436   3              DisplayOneChar(1,1,R1302(0x8d)/16+0x30);//显示年
 437   3              DisplayOneChar(2,1,R1302(0x8d)%16+0x30);
 438   3             }
 439   2           else
 440   2             {
 441   3              DisplayOneChar(1,1,0x20); //显示年
 442   3              DisplayOneChar(2,1,0x20);    
 443   3             }
 444   2          } 
 445   1        else
 446   1          { 
 447   2            DisplayOneChar(1,1,R1302(0x8d)/16+0x30);//显示年
 448   2            DisplayOneChar(2,1,R1302(0x8d)%16+0x30);
 449   2          }
 450   1           
 451   1        if(mon==1)  //月闪烁标志位
 452   1          {
 453   2           if(flag==1)
 454   2             {    
 455   3              DisplayOneChar(4,1,R1302(0x89)/16+0x30);//显示月 
 456   3              DisplayOneChar(5,1,R1302(0x89)%16+0x30);
 457   3             }
 458   2           else
 459   2             {
 460   3              DisplayOneChar(4,1,0x20); //显示月
 461   3              DisplayOneChar(5,1,0x20);    
 462   3             }
 463   2          } 
 464   1        else
 465   1          { 
 466   2            DisplayOneChar(4,1,R1302(0x89)/16+0x30);//显示月 
 467   2            DisplayOneChar(5,1,R1302(0x89)%16+0x30);
 468   2          }   
 469   1      
 470   1        if(day==1)  //日闪烁标志位
 471   1          {
 472   2           if(flag==1)
 473   2             {    
 474   3               DisplayOneChar(7,1,R1302(0x87)/16+0x30);//显示日
 475   3               DisplayOneChar(8,1,R1302(0x87)%16+0x30);
 476   3             }
 477   2           else
 478   2             {
 479   3              DisplayOneChar(7,1,0x20); //显示日
 480   3              DisplayOneChar(8,1,0x20);    
 481   3             }
 482   2          } 
 483   1        else
 484   1          { 
 485   2            DisplayOneChar(7,1,R1302(0x87)/16+0x30);//显示日
 486   2            DisplayOneChar(8,1,R1302(0x87)%16+0x30);
 487   2          }
 488   1          
 489   1         if(weekk==1)  //星期闪烁标志位
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 9   

 490   1          {
 491   2           if(flag==1)
 492   2             {    
 493   3               DisplayOneChar(15,1,R1302(0x8b)%16+0x30);//显示星期
 494   3             }
 495   2           else
 496   2             {
 497   3              DisplayOneChar(15,1,0x20); //显示星期          
 498   3             }
 499   2          } 
 500   1        else
 501   1          { 
 502   2            DisplayOneChar(15,1,R1302(0x8b)%16+0x30);//显示星期
 503   2          }     
 504   1      }
 505          
 506          /******************************************************************************************
 507          * 函数名称    :WriteDataLCM
 508          * 功能描述    :写数据
 509          * 参数        :  参数名称:    输入/输出?     类型            描述
 510          * 
 511          * 返回值      :
 512          * 作者        :
 513          * 创建日期    :2006-12-19
 514          * 全局变量    :
 515          * 全局静态变量:
 516          * 局部静态变量:
 517          *----------------------------------------修改历史------------------------------------------
 518          * 当前版本    :                         修改人:                  修改日期:
 519          * 修改说明    :
 520          ******************************************************************************************/
 521          void WriteDataLCM(uchar WDLCM)
 522          {
 523   1              ReadStatusLCM(); //检测忙
 524   1              LCM_Data = WDLCM;
 525   1              LCM_RS = 1;
 526   1              LCM_RW = 0;
 527   1              LCM_E = 0; //若晶振速度太高可以在这后加小的延时
 528   1              LCM_E = 0; //延时
 529   1              LCM_E = 1;
 530   1      }
 531          
 532          /******************************************************************************************
 533          * 函数名称    :写指令
 534          * 功能描述    :
 535          * 参数        :  参数名称:    输入/输出?     类型            描述
 536          * 
 537          * 返回值      :
 538          * 作者        :
 539          * 创建日期    :2006-12-19
 540          * 全局变量    :
 541          * 全局静态变量:
 542          * 局部静态变量:
 543          *----------------------------------------修改历史------------------------------------------
 544          * 当前版本    :                         修改人:                  修改日期:
 545          * 修改说明    :
 546          ******************************************************************************************/
 547          void WriteCommandLCM(uchar WCLCM,BuysC) //BuysC为0时忽略忙检测
 548          {
 549   1              if(BuysC) ReadStatusLCM(); //根据需要检测忙
 550   1              LCM_Data = WCLCM;
 551   1              LCM_RS = 0;
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 10  

 552   1              LCM_RW = 0; 
 553   1              LCM_E = 0;
 554   1              LCM_E = 0;
 555   1              LCM_E = 1; 
 556   1      }
 557          
 558          /******************************************************************************************
 559          * 函数名称    :ReadStatusLCM
 560          * 功能描述    :读状态
 561          * 参数        :  参数名称:    输入/输出?     类型            描述

⌨️ 快捷键说明

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