51单片机lcd1602显示汉字
时间: 2023-07-02 14:05:35 浏览: 210
51单片机LCD1602滚动显示
5星 · 资源好评率100%
51单片机lcd1602显示汉字需要使用汉字库和lcd1602驱动库。以下是一个简单的代码示例,可以实现在lcd1602上显示“你好”两个汉字:
```
#include <reg52.h>
#include <intrins.h>
sbit RS=P2^0; //定义LCD1602的RS端口
sbit RW=P2^1; //定义LCD1602的RW端口
sbit EN=P2^2; //定义LCD1602的EN端口
void delay(unsigned int i) //延时函数
{
while(i--);
}
void WriteCommand(unsigned char command) //写命令函数
{
RS=0; //设置为写命令模式
RW=0;
P0=command; //将命令写入P0口
EN=1; //使能
delay(5); //延时
EN=0; //禁止
}
void WriteData(unsigned char dat) //写数据函数
{
RS=1; //设置为写数据模式
RW=0;
P0=dat; //将数据写入P0口
EN=1; //使能
delay(5); //延时
EN=0; //禁止
}
void InitLcd1602() //初始化函数
{
WriteCommand(0x38); //设置16*2显示,5*7点阵,8位数据接口
WriteCommand(0x0c); //开显示,无光标,不闪烁
WriteCommand(0x06); //读写指针自动加1,不移动屏幕
WriteCommand(0x01); //清屏
}
void DisplayChinese(unsigned char addr, unsigned char *ptr) //显示汉字函数
{
unsigned char i;
WriteCommand(addr); //设置显示地址
for(i=0;i<16;i++) //循环写入数据
{
WriteData(ptr[i]); //写入汉字数据
}
}
void main()
{
unsigned char Hanzi[]={0x10,0x10,0x10,0x10,0x7c,0x44,0x7c,0x40,0x7e,0x42,0x42,0x7e,0x42,0x42,0x42,0x00}; //“你”的汉字数据
InitLcd1602(); //初始化LCD1602
DisplayChinese(0x80,Hanzi); //在第一行显示“你”字
while(1);
}
```
注意,这个示例代码只是汉字库中的一个汉字“你”,如果需要显示其他汉字,需要修改汉字库相应的数据。
阅读全文