用C语言写51单片机控制LCD1602的代码
时间: 2023-06-01 09:04:31 浏览: 129
基于51单片机的1602用C语言编程
#include <reg51.h>
//定义LCD1602液晶屏的端口连接
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
//定义数据端口P0连接
sbit D0=P0^0;
sbit D1=P0^1;
sbit D2=P0^2;
sbit D3=P0^3;
sbit D4=P0^4;
sbit D5=P0^5;
sbit D6=P0^6;
sbit D7=P0^7;
void delay(unsigned int x) //延时函数
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<100;j++);
}
void write_com(unsigned char com) //写命令函数
{
RS=0;
RW=0;
P0=com;
EN=1;
delay(1);
EN=0;
}
void write_data(unsigned char dat) //写数据函数
{
RS=1;
RW=0;
P0=dat;
EN=1;
delay(1);
EN=0;
}
void init_lcd() //初始化函数
{
write_com(0x38); //设置16*2显示,5*8点阵,8位数据接口
write_com(0x0c); //开显示,不显示光标,不闪烁
write_com(0x06); //文字不动,光标自动加1
write_com(0x01); //清屏
write_com(0x80); //设置光标在第一行第一列
}
void display(unsigned char x,unsigned char y,unsigned char *s) //显示字符串函数
{
if(x==0)
write_com(0x80+y);
else
write_com(0xc0+y);
while(*s)
write_data(*s++);
}
void main()
{
init_lcd(); //初始化LCD1602
display(0,0,"Hello,World!"); //显示字符串
while(1); //程序结束
}
阅读全文