51单片机串口通信lcd1602的代码
时间: 2023-05-17 20:07:11 浏览: 162
以下是51单片机串口通信lcd1602的代码:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS = P2^0; //定义RS端口
sbit RW = P2^1; //定义RW端口
sbit EN = P2^2; //定义EN端口
void delay(uint xms) //延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com) //写命令函数
{
RS = 0;
RW = 0;
P0 = com;
delay(5);
EN = 1;
_nop_();
_nop_();
EN = 0;
}
void write_data(uchar dat) //写数据函数
{
RS = 1;
RW = 0;
P0 = dat;
delay(5);
EN = 1;
_nop_();
_nop_();
EN = 0;
}
void init() //初始化函数
{
write_com(0x38); //8位数据接口,2行显示,5*7点阵字符
write_com(0x0c); //显示开,光标关,光标不闪烁
write_com(0x06); //光标右移,字符不移动
write_com(0x01); //清屏
}
void main()
{
uchar i;
init();
write_com(0x80); //设置光标位置为第一行第一列
write_data('H');
write_data('e');
write_data('l');
write_data('l');
write_data('o');
write_data(',');
write_data('W');
write_data('o');
write_data('r');
write_data('l');
write_data('d');
write_com(0xc0); //设置光标位置为第二行第一列
write_data('5');
write_data('1');
write_data('S');
write_data('i');
write_data('m');
write_data('p');
write_data('l');
write_data('e');
write_data('r');
write_data('!');
while(1);
}
阅读全文