📄 lcd1602.c
字号:
#include <reg52.h>
#define uchar unsigned char
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void delay(uchar t)
{
uchar i;
for(;t>0;t--)
for(i=164;i>0;i--);
}
uchar read(bit cmd_dat,bit rd_wr)
{
uchar rd_dat;
E=0;
RS=cmd_dat;
RW=rd_wr;
E=1;
rd_dat=P0;
return rd_dat;
}
void lcd_write(bit cmd_dat,bit rd_wr,uchar str)
{
uchar rd_dat;
E=0;
rd_dat=0x80;
while(rd_dat & 0x80)
rd_dat=read(0,1); //检测忙标志
E=0;
RS=cmd_dat;
RW=rd_wr;
P0=str;
E=1;
}
void main()
{
uchar i,str[8]={0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00};
delay(10); //lcd和mcu上电复位
lcd_write(0,0,0x38); //功能设置,8位,2行
lcd_write(0,0,0x0c); //开显示
lcd_write(0,0,0x40);
for(i=0;i<8;i++)
lcd_write(1,0,str[i]);
lcd_write(0,0,0x80);
/* while(1)
{
lcd_write(1,0,0x00);
lcd_write(1,0,0x00);
lcd_write(0,0,0x02);
}*/
// lcd_write(0,0,0x18); //移位
i=0;
while(i!=0x0a)
{
lcd_write(1,0,i+0x30); //显示数据
i++;
}
lcd_write(0,0,0x80|0x40);
i=0x61;
while(i!=0x71)
{
lcd_write(1,0,i);
i++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -