基于51单片机用c语言写出串口控制lcd1602显示代码
时间: 2023-12-13 13:06:14 浏览: 93
很高兴回答您的问题!以下是基于51单片机用C语言编写串口控制LCD1602显示的示例代码:
#include <reg51.h>
sbit rs=P2^0; //RS控制位
sbit rw=P2^1; //RW控制位
sbit e=P2^2; //E(EN)控制位
void delay_ms(unsigned int xms) //延时函数
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=114;j>0;j--);
}
void lcd1602_initvoid() //LCD1602初始化
{
rw=0;
rs=0;
e=0;
P0=0x38;
e=1;
delay_ms(5);
e=0;
P0=0x0c;
e=1;
delay_ms(5);
e=0;
P0=0x06;
e=1;
delay_ms(5);
e=0;
P0=0x01;
e=1;
delay_ms(5);
e=0;
}
unsigned char lcd1602_read(unsigned char addr) //读取LCD1602指定地址数据
{
unsigned char da;
rs=0;
rw=1;
e=0;
P0=addr;
e=1;
e=0;
rs=1;
rw=1;
e=0;
da=P0;
e=1;
e=0;
return da;
}
void lcd1602_write(unsigned char dat) //写数据到LCD1602
{
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
e=0;
}
void lcd1602_display(unsigned char addr, unsigned char dat) //在LCD1602指定地址显示数据
{
lcd1602_write(addr);
lcd1602_write(dat);
}
void main() //主函数
{
lcd1602_init();
lcd1602_display(0x80,'H');
lcd1602_display(0x81,'e');
lcd1602_display(0x82,'l');
lcd1602_display(0x83,'l');
lcd1602_display(0x84,'o');
while(1)
{
}
}
希望对您有帮助!
阅读全文