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

📄 ds1302clock.lst

📁 1302时钟1602显示~~分享了·~~希望对大家有用~~
💻 LST
📖 第 1 页 / 共 4 页
字号:
 562          * 
 563          * 返回值      :
 564          * 作者        :
 565          * 创建日期    :2006-12-19
 566          * 全局变量    :
 567          * 全局静态变量:
 568          * 局部静态变量:
 569          *----------------------------------------修改历史------------------------------------------
 570          * 当前版本    :                         修改人:                  修改日期:
 571          * 修改说明    :
 572          ******************************************************************************************/
 573          uchar ReadStatusLCM(void)
 574          {
 575   1              LCM_Data = 0xFF; 
 576   1              LCM_RS = 0;
 577   1              LCM_RW = 1;
 578   1              LCM_E = 0;
 579   1              LCM_E = 0;
 580   1              LCM_E = 1;
 581   1              while (LCM_Data & Busy); //检测忙信号
 582   1              return(LCM_Data);
 583   1      }
 584          
 585          /******************************************************************************************
 586          * 函数名称    :LCMInit
 587          * 功能描述    :LCM初始化
 588          * 参数        :  参数名称:    输入/输出?     类型            描述
 589          * 
 590          * 返回值      :
 591          * 作者        :
 592          * 创建日期    :2006-12-19
 593          * 全局变量    :
 594          * 全局静态变量:
 595          * 局部静态变量:
 596          *----------------------------------------修改历史------------------------------------------
 597          * 当前版本    :                         修改人:                  修改日期:
 598          * 修改说明    :
 599          ******************************************************************************************/
 600          void LCMInit(void) 
 601          {
 602   1              LCM_Data = 0;
 603   1              WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号
 604   1              Delay5Ms(); 
 605   1              WriteCommandLCM(0x38,0);
 606   1              Delay5Ms(); 
 607   1              WriteCommandLCM(0x38,0);
 608   1              Delay5Ms(); 
 609   1              WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号
 610   1              WriteCommandLCM(0x08,1); //关闭显示
 611   1              WriteCommandLCM(0x01,1); //显示清屏
 612   1              WriteCommandLCM(0x06,1); // 显示光标移动设置
 613   1              WriteCommandLCM(0x0C,1); // 显示开及光标设置
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 11  

 614   1      }
 615          
 616          /******************************************************************************************
 617          * 函数名称    :DisplayOneChar
 618          * 功能描述    :按指定位置显示一个字符
 619          * 参数        :  参数名称:    输入/输出?     类型            描述
 620          * 
 621          * 返回值      :
 622          * 作者        :
 623          * 创建日期    :2006-12-19
 624          * 全局变量    :
 625          * 全局静态变量:
 626          * 局部静态变量:
 627          *----------------------------------------修改历史------------------------------------------
 628          * 当前版本    :                         修改人:                  修改日期:
 629          * 修改说明    :
 630          ******************************************************************************************/
 631          void DisplayOneChar(uchar X, uchar Y, uchar DData)
 632          {
 633   1              Y &= 0x1;
 634   1              X &= 0xF; //限制X不能大于15,Y不能大于1
 635   1              if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;
 636   1              X |= 0x80; //算出指令码
 637   1              WriteCommandLCM(X, 0); //这里不检测忙信号,发送地址码
 638   1              WriteDataLCM(DData);
 639   1      }
 640          
 641          /******************************************************************************************
 642          * 函数名称    :DisplayListChar
 643          * 功能描述    :按指定位置显示一串字符  ***原来的遇到空格0x20就不显示***
 644          * 参数        :  参数名称:    输入/输出?     类型            描述
 645          * 
 646          * 返回值      :
 647          * 作者        :
 648          * 创建日期    :2006-12-19
 649          * 全局变量    :
 650          * 全局静态变量:
 651          * 局部静态变量:
 652          *----------------------------------------修改历史------------------------------------------
 653          * 当前版本    :                         修改人:                  修改日期:
 654          * 修改说明    :
 655          ******************************************************************************************/
 656          void DisplayListChar(uchar X, uchar Y, uchar code *DData)
 657          {
 658   1              uchar ListLength,j;
 659   1              ListLength = strlen(DData);
 660   1              Y &= 0x1;
 661   1              X &= 0xF; //限制X不能大于15,Y不能大于1
 662   1          if (X <= 0xF) //X坐标应小于0xF
 663   1            { 
 664   2                          for(j=0;j<ListLength;j++)
 665   2                            {
 666   3                   DisplayOneChar(X, Y, DData[j]); //显示单个字符
 667   3                   X++;
 668   3                 }
 669   2             }
 670   1      }
 671          
 672          /******************************************************************************************
 673          * 函数名称    :
 674          * 功能描述    :
 675          * 参数        :  参数名称:    输入/输出?     类型            描述
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 12  

 676          * 
 677          * 返回值      :
 678          * 作者        :
 679          * 创建日期    :2006-12-19
 680          * 全局变量    :
 681          * 全局静态变量:
 682          * 局部静态变量:
 683          *----------------------------------------修改历史------------------------------------------
 684          * 当前版本    :                         修改人:                  修改日期:
 685          * 修改说明    :
 686          ******************************************************************************************/
 687          void Delay5Ms(void)
 688          {
 689   1              uint TempCyc = 5552;
 690   1              while(TempCyc--);
 691   1      }
 692          //400ms延时
 693          /******************************************************************************************
 694          * 函数名称    :
 695          * 功能描述    :
 696          * 参数        :  参数名称:    输入/输出?     类型            描述
 697          * 
 698          * 返回值      :
 699          * 作者        :
 700          * 创建日期    :2006-12-19
 701          * 全局变量    :
 702          * 全局静态变量:
 703          * 局部静态变量:
 704          *----------------------------------------修改历史------------------------------------------
 705          * 当前版本    :                         修改人:                  修改日期:
 706          * 修改说明    :
 707          ******************************************************************************************/
 708          void Delay400Ms(void)
 709          {
 710   1              uchar TempCycA = 5;
 711   1              uint TempCycB;
 712   1              while(TempCycA--)
 713   1              {
 714   2              TempCycB=7269;
 715   2              while(TempCycB--);
 716   2              };
 717   1      }
 718          
 719          /******************************************************************************************
 720          * 函数名称    :RTInputByte
 721          * 功能描述    :
 722          * 参数        :  参数名称:    输入/输出?     类型            描述
 723          * 
 724          * 返回值      :
 725          * 作者        :
 726          * 创建日期    :2006-12-19
 727          * 全局变量    :
 728          * 全局静态变量:
 729          * 局部静态变量:
 730          *----------------------------------------修改历史------------------------------------------
 731          * 当前版本    :                         修改人:                  修改日期:
 732          * 修改说明    :
 733          ******************************************************************************************/
 734          void RTInputByte(uchar d) 
 735          { 
 736   1          uchar i;
 737   1          ACC = d;
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 13  

 738   1          for(i=8; i>0; i--)
 739   1          {
 740   2              T_IO = ACC0;           /*相当于汇编中的 RRC */
 741   2              T_CLK = 1;
 742   2              T_CLK = 0;
 743   2              ACC = ACC >> 1; 
 744   2          } 
 745   1      }
 746          /******************************************************************************************
 747          * 函数名称    :RTOutputByte
 748          * 功能描述    :
 749          * 参数        :  参数名称:    输入/输出?     类型            描述
 750          * 
 751          * 返回值      :
 752          * 作者        :
 753          * 创建日期    :2006-12-19
 754          * 全局变量    :
 755          * 全局静态变量:
 756          * 局部静态变量:
 757          *----------------------------------------修改历史------------------------------------------
 758          * 当前版本    :                         修改人:                  修改日期:
 759          * 修改说明    :
 760          ******************************************************************************************/
 761          uchar RTOutputByte(void) 
 762          { 
 763   1          uchar i;
 764   1          for(i=8; i>0; i--)
 765   1          {
 766   2              ACC = ACC >>1;         /*相当于汇编中的 RRC */
 767   2              ACC7 = T_IO;
 768   2              T_CLK = 1;
 769   2              T_CLK = 0;
 770   2          } 
 771   1          return(ACC); 
 772   1      }
 773          /******************************************************************************************
 774          * 函数名称    :W1302
 775          * 功能描述    :
 776          * 参数        :  参数名称:    输入/输出?     类型            描述
 777          * 
 778          * 返回值      :
 779          * 作者        :
 780          * 创建日期    :2006-12-19
 781          * 全局变量    :
 782          * 全局静态变量:
 783          * 局部静态变量:
 784          *----------------------------------------修改历史------------------------------------------
 785          * 当前版本    :                         修改人:                  修改日期:
 786          * 修改说明    :
 787          ******************************************************************************************/
 788          void W1302(uchar ucAddr, uchar ucDa)
 789          {
 790   1          T_RST = 0;
 791   1          T_CLK = 0;
 792   1          T_RST = 1;
 793   1          RTInputByte(ucAddr);       /* 地址,命令 */
 794   1          RTInputByte(ucDa);       /* 写1Byte数据*/
 795   1          T_CLK = 1;
 796   1          T_RST = 0;
 797   1      }
 798          /******************************************************************************************
 799          * 函数名称    :R1302
C51 COMPILER V8.01   DS1302CLOCK                                                           08/16/2008 15:50:11 PAGE 14  

 800          * 功能描述    :
 801          * 参数        :  参数名称:    输入/输出?     类型            描述
 802          * 
 803          * 返回值      :
 804          * 作者        :
 805          * 创建日期    :2006-12-19
 806          * 全局变量    :
 807          * 全局静态变量:
 808          * 局部静态变量:
 809          *----------------------------------------修改历史------------------------------------------
 810          * 当前版本    :                         修改人:                  修改日期:
 811          * 修改说明    :
 812          ******************************************************************************************/
 813          uchar R1302(uchar ucAddr)
 814          {
 815   1          uchar ucData;
 816   1          T_RST = 0;
 817   1          T_CLK = 0;
 818   1          T_RST = 1;
 819   1          RTInputByte(ucAddr);             /* 地址,命令 */
 820   1          ucData = RTOutputByte();         /* 读1Byte数据 */
 821   1          T_CLK = 1;
 822   1          T_RST = 0;
 823   1          return(ucData);
 824   1      }
 825          
 826          /******************************************************************************************
 827          * 函数名称    :Set1302
 828          * 功能描述    :
 829          * 参数        :  参数名称:    输入/输出?     类型            描述
 830          * 
 831          * 返回值      :
 832          * 作者        :
 833          * 创建日期    :2006-12-19
 834          * 全局变量    :
 835          * 全局静态变量:
 836          * 局部静态变量:
 837          *----------------------------------------修改历史------------------------------------------
 838          * 当前版本    :                         修改人:                  修改日期:
 839          * 修改说明    :
 840          ******************************************************************************************/
 841          void Set1302(uchar *pClock) 
 842          {
 843   1          uchar i;
 844   1          uchar ucAddr = 0x80; 
 845   1          W1302(0x8e,0x00);           /* 控制命令,WP=0,写操作?*/
 846   1          for(i =7; i>0; i--)
 847   1          { 

⌨️ 快捷键说明

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