st7920serial.lst

来自「这是TOPWAY公司的LCD驱动程序」· LST 代码 · 共 1,211 行 · 第 1/5 页

LST
1,211
字号
 699   1                      clock_clk=0;
 700   1                      clock_Rst=0;
 701   1                      clock_Rst=1;
 702   1                      clock_out(ord);
 703   1                      dd=clock_in();
 704   1                      clock_Rst=0;
 705   1                      clock_clk=1;
 706   1                      return(dd);
 707   1      }
 708          
 709          /******************************************************************************************
 710          * 函数名称    : write_clock
 711          * 功能描述    :
 712          * 参数        :  参数名称:    输入/输出?     类型            描述
 713          * 
 714          * 返回值      :
 715          * 作者        :
 716          * 创建日期    :2006-12-19
 717          * 全局变量    :
 718          * 全局静态变量:
 719          * 局部静态变量:
 720          *----------------------------------------修改历史------------------------------------------
 721          * 当前版本    :                         修改人:                  修改日期:
 722          * 修改说明    :
 723          ******************************************************************************************/
 724          void write_clock(unsigned char ord, unsigned char dd)
 725          {
 726   1                      clock_clk=0;
 727   1                      clock_Rst=0;
 728   1                      clock_Rst=1;
 729   1                      clock_out(ord);
 730   1                      clock_out(dd);
 731   1                      clock_Rst=0;
 732   1                      clock_clk=1;
 733   1      }
 734          
 735          /******************************************************************************************
 736          * 函数名称    :Disp
 737          * 功能描述    :显示和闪烁函数
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 13  

 738          * 参数        :  参数名称:    输入/输出?     类型            描述
 739          * 
 740          * 返回值      :
 741          * 作者        :
 742          * 创建日期    :2006-12-19
 743          * 全局变量    :
 744          * 全局静态变量:
 745          * 局部静态变量:
 746          *----------------------------------------修改历史------------------------------------------
 747          * 当前版本    :                         修改人:                  修改日期:
 748          * 修改说明    :
 749          ******************************************************************************************/
 750          void Disp(void)
 751          {
 752   1                      unsigned int i=0;
 753   1                      unsigned char a=0,b=0,c=0,f=0;
 754   1      
 755   1                      i=ReadTemperature();//读温度并送显
 756   1                      a=i/100;
 757   1      
 758   1                      LCD_set_xy(4,2);
 759   1                      LCD_Write_number(a);
 760   1                      b=i/10-a*10;
 761   1                      LCD_Write_number(b);
 762   1                      LCD_Write_number(12);//.
 763   1                      c=i-a*100-b*10;
 764   1                      LCD_Write_number(c);
 765   1      
 766   1                      if(hour==1)  //小时闪烁标志位
 767   1              {
 768   2                      if(flag==1)
 769   2                      {    
 770   3                              d=read_clock(0x85);//读小时
 771   3                                                      e=d;
 772   3                                                      d=d>>4;
 773   3                                                      e=e&0x0f;
 774   3                                                      LCD_set_xy(3,3);
 775   3                                                      LCD_Write_number(d);
 776   3                                                      LCD_Write_number(e);
 777   3                      }
 778   2                      else
 779   2                      {
 780   3                                                      LCD_set_xy(3,3);
 781   3                              LCD_Write_number(10); //显示空格
 782   3                              LCD_Write_number(10);    
 783   3                              }
 784   2              } 
 785   1              else
 786   1                      { 
 787   2                      d=read_clock(0x85);//读小时
 788   2                                      e=d;
 789   2                                      d=d>>4;
 790   2                                      e=e&0x0f;
 791   2                                      LCD_set_xy(3,3);
 792   2                                      LCD_Write_number(d);
 793   2                                      LCD_Write_number(e);
 794   2                      }
 795   1      
 796   1                      if(flag == 0)
 797   1                              LCD_Write_number(11);//显示:
 798   1                      else 
 799   1                              LCD_Write_number(10);
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 14  

 800   1                      
 801   1                      if(min==1)  //分钟闪烁标志位
 802   1              {
 803   2                      if(flag==1)
 804   2                      {    
 805   3                              d=read_clock(0x83);//读分钟
 806   3                                                      e=d;
 807   3                                                      d=d>>4;
 808   3                                                      e=e&0x0f;
 809   3                                                      LCD_Write_number(d);
 810   3                                                      LCD_Write_number(e);     
 811   3                      }
 812   2                      else
 813   2                      {       
 814   3                              LCD_Write_number(10); //显示空格
 815   3                              LCD_Write_number(10);    
 816   3                      }
 817   2              } 
 818   1                      else
 819   1                      {
 820   2                              d=read_clock(0x83);//读分钟
 821   2                                              e=d;
 822   2                                              d=d>>4;
 823   2                                              e=e&0x0f;
 824   2                                              LCD_Write_number(d);
 825   2                                              LCD_Write_number(e);         
 826   2                      } 
 827   1      
 828   1                      if(flag == 0) 
 829   1                              LCD_Write_number(11);//显示:
 830   1                      else    
 831   1                              LCD_Write_number(10);
 832   1                              
 833   1                      if(sec==1)  //秒闪烁标志位
 834   1                      {
 835   2                      if(flag==1)
 836   2                      {    
 837   3                              d=read_clock(0x81);//读秒
 838   3                                                      e=d;
 839   3                                                      d=d>>4;
 840   3                                                      e=e&0x0f;
 841   3                                                      LCD_Write_number(d);//送显示
 842   3                                                      LCD_Write_number(e);   
 843   3                      }
 844   2                              else
 845   2              {
 846   3                                              LCD_Write_number(10); //显示数字空格
 847   3                      LCD_Write_number(10);    
 848   3              }
 849   2          } 
 850   1                      else
 851   1              {
 852   2                      d=read_clock(0x81);//读秒
 853   2                                      e=d;
 854   2                                      d=d>>4;
 855   2                                      e=e&0x0f;
 856   2                                      LCD_Write_number(d);
 857   2                                      LCD_Write_number(e);          
 858   2              }    
 859   1              
 860   1              if(year==1)  //年闪烁标志位
 861   1          {
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 15  

 862   2              if(flag==1)
 863   2              {    
 864   3                      d=read_clock(0x8d);//读年
 865   3                                              e=d;
 866   3                                              d=d>>4;
 867   3                                              e=e&0x0f;
 868   3                                              LCD_set_xy(2,2);
 869   3                                              LCD_Write_number(d);
 870   3                                              LCD_Write_number(e);
 871   3              }
 872   2              else
 873   2              {
 874   3                                              LCD_set_xy(2,2);
 875   3                      LCD_Write_number(10); //显示空格
 876   3                      LCD_Write_number(10);    
 877   3              }
 878   2          } 
 879   1              else
 880   1          { 
 881   2              d=read_clock(0x8d);//读年
 882   2                              e=d;
 883   2                              d=d>>4;
 884   2                              e=e&0x0f;
 885   2                              LCD_set_xy(2,2);
 886   2                              LCD_Write_number(d);
 887   2                              LCD_Write_number(e);
 888   2          }
 889   1           
 890   1              if(mon==1)  //月闪烁标志位
 891   1          {
 892   2              if(flag==1)
 893   2              {    
 894   3                      d=read_clock(0x89);//读月
 895   3                                              e=d;
 896   3                                              d=d>>4;
 897   3                                              e=e&0x0f;
 898   3                                              LCD_set_xy(2,4);
 899   3                                              LCD_Write_number(d);
 900   3                                              LCD_Write_number(e);
 901   3                      
 902   3              }
 903   2              else
 904   2              {
 905   3                                              LCD_set_xy(2,4);
 906   3                      LCD_Write_number(10); //显示空格
 907   3                      LCD_Write_number(10);    
 908   3              }
 909   2          } 
 910   1              else
 911   1          { 
 912   2              d=read_clock(0x89);//读月
 913   2                                      e=d;
 914   2                                      d=d>>4;
 915   2                                      e=e&0x0f;
 916   2                                      LCD_set_xy(2,4);
 917   2                                      LCD_Write_number(d);
 918   2                                      LCD_Write_number(e);
 919   2          }   
 920   1      
 921   1              if(day==1)  //日闪烁标志位
 922   1          {
 923   2              if(flag==1)
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 16  

 924   2              {  
 925   3                                      d=read_clock(0x87);//读日
 926   3                                              e=d;
 927   3                                              d=d>>4;
 928   3                                              e=e&0x0f;
 929   3                                              LCD_set_xy(2,6);
 930   3                                              LCD_Write_number(d);
 931   3                                              LCD_Write_number(e);
 932   3                      }
 933   2              else

⌨️ 快捷键说明

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