st7920serial.lst

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

LST
1,211
字号
 464   2                                      LCD_Write_string(3,2,wu);
 465   2                                      break;
 466   2                              case 6: 
 467   2                                      LCD_Write_string(3,2,liu);
 468   2                                      break;
 469   2                              case 7: 
 470   2                                      LCD_Write_string(3,2,ri);
 471   2                                      break;
 472   2                              case 8: 
 473   2                                      LCD_Write_string(3,2,space_c);
 474   2                                      break;//显示空格,为调整时间用
 475   2                              default:
 476   2                                      break;
 477   2                      }
 478   1      }
 479          
 480          /******************************************************************************************
 481          * 函数名称    :Delay
 482          * 功能描述    :延时函数
 483          * 参数        :  参数名称:    输入/输出?     类型            描述
 484          * 
 485          * 返回值      :
 486          * 作者        :
 487          * 创建日期    :2006-12-19
 488          * 全局变量    :
 489          * 全局静态变量:
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 9   

 490          * 局部静态变量:
 491          *----------------------------------------修改历史------------------------------------------
 492          * 当前版本    :                         修改人:                  修改日期:
 493          * 修改说明    :
 494          ******************************************************************************************/
 495          void Delay(int num)
 496          {
 497   1                      while(num--);
 498   1      }
 499                  
 500          /******************************************************************************************
 501          * 函数名称    :Init_DS18B20
 502          * 功能描述    :初始化ds1820
 503          * 参数        :  参数名称:    输入/输出?     类型            描述
 504          * 
 505          * 返回值      :
 506          * 作者        :
 507          * 创建日期    :2006-12-19
 508          * 全局变量    :
 509          * 全局静态变量:
 510          * 局部静态变量:
 511          *----------------------------------------修改历史------------------------------------------
 512          * 当前版本    :                         修改人:                  修改日期:
 513          * 修改说明    :
 514          ******************************************************************************************/
 515          void Init_DS18B20(void)//初始化ds1820
 516          {
 517   1                      unsigned char x=0;
 518   1                      DQ = 1;    //DQ复位
 519   1                      Delay(8);  //稍做延时
 520   1                      DQ = 0;    //单片机将DQ拉低
 521   1                      Delay(80); //精确延时 大于 480us
 522   1                      DQ = 1;    //拉高总线
 523   1                      Delay(14);
 524   1                      x=DQ;      //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
 525   1                      Delay(20);
 526   1      }
 527          
 528          /******************************************************************************************
 529          * 函数名称    :ReadOneChar
 530          * 功能描述    :读一个字节
 531          * 参数        :  参数名称:    输入/输出?     类型            描述
 532          * 
 533          * 返回值      :
 534          * 作者        :
 535          * 创建日期    :2006-12-19
 536          * 全局变量    :
 537          * 全局静态变量:
 538          * 局部静态变量:
 539          *----------------------------------------修改历史------------------------------------------
 540          * 当前版本    :                         修改人:                  修改日期:
 541          * 修改说明    :
 542          ******************************************************************************************/
 543          unsigned char ReadOneChar(void)
 544          {
 545   1                      unsigned char i=0;
 546   1                      unsigned char dat = 0;
 547   1                      for (i=8;i>0;i--)
 548   1                      {
 549   2                              DQ = 0; // 给脉冲信号
 550   2                              dat>>=1;
 551   2                              DQ = 1; // 给脉冲信号
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 10  

 552   2                              if(DQ)
 553   2                              dat|=0x80;
 554   2                              Delay(4);
 555   2                      }
 556   1                      return(dat);
 557   1      }
 558          
 559          /******************************************************************************************
 560          * 函数名称    :WriteOneChar
 561          * 功能描述    :写一个字节
 562          * 参数        :  参数名称:    输入/输出?     类型            描述
 563          * 
 564          * 返回值      :
 565          * 作者        :
 566          * 创建日期    :2006-12-19
 567          * 全局变量    :
 568          * 全局静态变量:
 569          * 局部静态变量:
 570          *----------------------------------------修改历史------------------------------------------
 571          * 当前版本    :                         修改人:                  修改日期:
 572          * 修改说明    :
 573          ******************************************************************************************/
 574          void WriteOneChar(unsigned char dat)
 575          {
 576   1                      unsigned char i=0;
 577   1                      for (i=8; i>0; i--)
 578   1                      {
 579   2                              DQ = 0;
 580   2                              DQ = dat&0x01;
 581   2                              Delay(5);
 582   2                              DQ = 1;
 583   2                              dat>>=1;
 584   2                      }
 585   1      }
 586          
 587          /******************************************************************************************
 588          * 函数名称    :ReadTemperature
 589          * 功能描述    :读取温度
 590          * 参数        :  参数名称:    输入/输出?     类型            描述
 591          * 
 592          * 返回值      :
 593          * 作者        :
 594          * 创建日期    :2006-12-19
 595          * 全局变量    :
 596          * 全局静态变量:
 597          * 局部静态变量:
 598          *----------------------------------------修改历史------------------------------------------
 599          * 当前版本    :                         修改人:                  修改日期:
 600          * 修改说明    :
 601          ******************************************************************************************/
 602          unsigned int ReadTemperature(void)
 603          {
 604   1                      unsigned char a=0;
 605   1                      unsigned char b=0;
 606   1                      unsigned int t=0;
 607   1                      float tt=0;
 608   1                      Init_DS18B20();
 609   1                      WriteOneChar(0xCC); // 跳过读序号列号的操作
 610   1                      WriteOneChar(0x44); // 启动温度转换
 611   1                      Init_DS18B20();
 612   1                      WriteOneChar(0xCC); //跳过读序号列号的操作
 613   1                      WriteOneChar(0xBE); //读取温度寄存器
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 11  

 614   1                      a=ReadOneChar();    //读低8位
 615   1                      b=ReadOneChar();    //读高8位
 616   1                      t=b;
 617   1                      t<<=8;
 618   1                      t=t|a;
 619   1                      tt=t*0.0625;
 620   1                      t= tt*10+0.5; //放大10倍输出并四舍五入
 621   1                      return(t);
 622   1      }
 623          
 624          /******************************************************************************************
 625          * 函数名称    :clock_out
 626          * 功能描述    :
 627          * 参数        :  参数名称:    输入/输出?     类型            描述
 628          * 
 629          * 返回值      :
 630          * 作者        :
 631          * 创建日期    :2006-12-19
 632          * 全局变量    :
 633          * 全局静态变量:
 634          * 局部静态变量:
 635          *----------------------------------------修改历史------------------------------------------
 636          * 当前版本    :                         修改人:                  修改日期:
 637          * 修改说明    :
 638          ******************************************************************************************/
 639          void clock_out(unsigned char dd)
 640          {
 641   1                      ACC=dd;
 642   1                      clock_dat=a0; clock_clk=1; clock_clk=0;
 643   1                      clock_dat=a1; clock_clk=1; clock_clk=0;
 644   1                      clock_dat=a2; clock_clk=1; clock_clk=0;
 645   1                      clock_dat=a3; clock_clk=1; clock_clk=0;
 646   1                      clock_dat=a4; clock_clk=1; clock_clk=0;
 647   1                      clock_dat=a5; clock_clk=1; clock_clk=0;
 648   1                      clock_dat=a6; clock_clk=1; clock_clk=0;
 649   1                      clock_dat=a7; clock_clk=1; clock_clk=0;
 650   1      }
 651          
 652          /******************************************************************************************
 653          * 函数名称    :clock_in
 654          * 功能描述    :
 655          * 参数        :  参数名称:    输入/输出?     类型            描述
 656          * 
 657          * 返回值      :
 658          * 作者        :
 659          * 创建日期    :2006-12-19
 660          * 全局变量    :
 661          * 全局静态变量:
 662          * 局部静态变量:
 663          *----------------------------------------修改历史------------------------------------------
 664          * 当前版本    :                         修改人:                  修改日期:
 665          * 修改说明    :
 666          ******************************************************************************************/
 667          unsigned char clock_in(void)
 668          {
 669   1                      clock_dat=1;
 670   1                      a0=clock_dat;
 671   1                      clock_clk=1; clock_clk=0; a1=clock_dat;
 672   1                      clock_clk=1; clock_clk=0; a2=clock_dat;
 673   1                      clock_clk=1; clock_clk=0; a3=clock_dat;
 674   1                      clock_clk=1; clock_clk=0; a4=clock_dat;
 675   1                      clock_clk=1; clock_clk=0; a5=clock_dat;
C51 COMPILER V8.02   ST7920SERIAL                                                          07/24/2007 06:45:27 PAGE 12  

 676   1                      clock_clk=1; clock_clk=0; a6=clock_dat;
 677   1                      clock_clk=1; clock_clk=0; a7=clock_dat;
 678   1                      return(ACC);
 679   1      }
 680          
 681          /******************************************************************************************
 682          * 函数名称    :read_clock
 683          * 功能描述    :
 684          * 参数        :  参数名称:    输入/输出?     类型            描述
 685          * 
 686          * 返回值      :
 687          * 作者        :
 688          * 创建日期    :2006-12-19
 689          * 全局变量    :
 690          * 全局静态变量:
 691          * 局部静态变量:
 692          *----------------------------------------修改历史------------------------------------------
 693          * 当前版本    :                         修改人:                  修改日期:
 694          * 修改说明    :
 695          ******************************************************************************************/
 696          unsigned char read_clock(unsigned char ord)
 697          {
 698   1                      unsigned char dd=0;

⌨️ 快捷键说明

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