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

📄 lcd1602.c

📁 测温加上时间定时功能
💻 C
字号:
#include"Bit_Define.h"
sbit RS=P1^0;
sbit RW=P1^1;
sbit LCDE=P1^2;
//延时函数
void delay(uint t)
{
while(t--);
}
void delay5ms()
{
 register int i;
 for (i=0;i<1000;i++);
}

void delay50us()
{
 register int i;
 for (i=0;i<20;i++)
 ;
}
wr_com(unsigned char comm)
{
  LCDE=0;
  RS=0;
  RW=0;
  LCDE=1;
  LCD_Data=comm;
  RS=0;
  RW=0;
  LCDE=0;
}

wr_data(unsigned char dat)
{
  LCDE=0;
  RS=0;
  RW=0;
  RS=1;
  RW=0;
  LCDE=1;
  LCD_Data=dat;
  LCDE=0;
  RS=0;
  RW=0;
}


uchar rd_bf()
{
  unsigned char i;
  LCD_Data=0xff;
  LCDE=0;
  RS=0;
  RW=0;
  RS=0;
  RW=1;
  LCDE=1;
  i=LCD_Data;
    LCDE=0;
  return(i);
}
 
void init(void)
{
 uchar in;
 wr_com(0x38);                        //显示模式设置
 delay5ms();
 wr_com(0xff);                        //开显示   关0x0d
 delay5ms();
 wr_com(0x07);///
 delay5ms();
 in=rd_bf();///
 delay5ms();///
 wr_com(0x01);//清屏
 delay5ms();
 in=rd_bf();
 delay5ms();
 wr_com(0x06);  // 显示开光标位置
 delay5ms();
 in=rd_bf();
 delay50us();
 wr_com(0x38);//设置第二行
 delay50us();
 in=rd_bf();
 delay50us();
 wr_com(0x0c);
 delay50us();
 in=rd_bf();
 delay50us();
 wr_com(0x40);  //set cgram address
 delay50us();
 in=rd_bf();
 delay50us();
}
void display_t(float temp,uchar *t)
{
  unsigned char in,i;
  char j;
  wr_com(0x80);  //set ram address
  delay50us();
  in=rd_bf();
  delay(20);
  tempdata[0]=(uchar)(temp)/10+48;  //十位
  tempdata[1]=(uchar)(temp)%10+48; //个位
  tempdata[2]=0x2e;//小数点 .
  tempdata[3]=(uchar)(temp*10)%10+48;
  tempdata[4]=(uchar)(temp*100)%10+48;
 for(j=6;j>=3;j--)
   {
   wr_data(t[j]/10+48);  //display 温度
   delay50us();
   in=rd_bf();   
   wr_data(t[j]%10+48);  //display 温度
   delay50us();
   in=rd_bf();
   wr_data('-');  //display 温度
   delay50us();
   in=rd_bf();
   }
  in=rd_bf();
  delay50us();
  wr_com(0xc0);
  delay50us();
  in=rd_bf();
  delay50us();

for(j=2;j>=1;j--)
  {
   wr_data(t[j]/10+48);  //display 温度
   delay50us();
   in=rd_bf();   
   wr_data(t[j]%10+48);  //display 温度
   delay50us();
   in=rd_bf();   
   wr_data('-');  //display 温度
   delay50us();
   in=rd_bf();
  }
   wr_data(t[j]/10+48);  //display 温度
   delay50us();
   in=rd_bf();   
   wr_data(t[j]%10+48);  //display 温度
   delay50us();
   in=rd_bf();   
  for(i=0;i<3;i++)
  {
   wr_data(0X20);  //display 空格
   delay50us();
   in=rd_bf();
  }

  for(i=0;i<TN;i++)
  {
   wr_data(tempdata[i]);  //display 温度
   delay50us();
   in=rd_bf();
  }
}

⌨️ 快捷键说明

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