一、LCD1602的介绍
RS
RS=1 数据寄存器
RS=0 指令和状态
R/W 读/写
R/W=1 读
R/W=0 写
二、LCD1602显示
1、仿真
排阻
LCD1602
2、代码
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
char code string[]="hello";
char i=0;
void delay(uchar ms)
{
uchar i,j;
for(i=ms;i>0;i--)
for(j=120;j>0;j--);
}
void check_BF()
{
uchar dat;
do
{
RS=0;RW=1;E=0;
E=1;dat=P0;
_nop_();
}while(dat&0x80);
E=0;
}
void write_data(uchar dat)
{
check_BF();
RS=1;RW=0;E=0;
P0=dat;
E=1;
_nop_();
E=0;
delay(1);
}
void write_command(uchar dat)
{
check_BF();
RS=0;RW=0;E=0;
P0=dat;
E=1;
_nop_();
E=0;
delay(1);
}
void lcd_init()
{
write_command(0x38); //功能模式
write_command(0x0c); //开显示
write_command(0x06); //显示方式
write_command(0x01); //清屏
}
void main()
{
lcd_init();
write_command(0x80);
for(i=0;i<5;i++)
{
write_data(string[i]);
delay(1);
}
while(1)
{
}
}
3、仿真结果