51单片机lcd1602sgp30显示程序
时间: 2023-10-16 11:10:42 浏览: 109
以下是51单片机使用LCD1602SGP30显示的程序,需要使用Keil C编译器:
```
#include<reg52.h>
#define LCD P2
sbit RS=P3^0;
sbit RW=P3^1;
sbit EN=P3^2;
void delay(unsigned int i) //延时函数
{
unsigned int j;
for(;i>0;i--)
{
for(j=121;j>0;j--);
}
}
void sendcmd(unsigned char cmd) //发送指令函数
{
RS=0;
RW=0;
LCD=cmd;
EN=1;
delay(5);
EN=0;
}
void senddata(unsigned char dat) //发送数据函数
{
RS=1;
RW=0;
LCD=dat;
EN=1;
delay(5);
EN=0;
}
void init() //初始化函数
{
sendcmd(0x38); //16*2显示,5*7点阵,8位数据接口
sendcmd(0x0c); //显示开,光标关,闪烁关
sendcmd(0x06); //光标右移,字符不移动
sendcmd(0x01); //清屏
delay(5);
}
void main()
{
init(); //初始化LCD
while(1)
{
sendcmd(0x80); //设置光标位置为第一行第一列
senddata('H');
senddata('e');
senddata('l');
senddata('l');
senddata('o');
sendcmd(0x8f); //设置光标位置为第二行第六列
senddata('W');
senddata('o');
senddata('r');
senddata('l');
senddata('d');
delay(1000); //延时1秒
sendcmd(0x01); //清屏
delay(5);
}
}
```
在此程序中,我们使用P2口作为LCD1602SGP30的数据口,P3口的0、1、2三个引脚分别作为LCD1602SGP30的RS、RW、EN引脚。在初始化函数中,我们发送一系列指令来设置LCD1602SGP30的显示参数。在主函数中,我们使用sendcmd和senddata函数来分别发送指令和数据,实现在LCD1602SGP30上显示Hello World的效果。
阅读全文