单片机控制LCD1602显示的代码
时间: 2023-09-04 22:09:37 浏览: 84
以下是一个简单的单片机控制LCD1602显示的代码,使用的MCU为STC89C52:
```
#include <reg52.h>
#define LCD1602_DB P0
sbit LCD1602_RS = P2^0;
sbit LCD1602_RW = P2^1;
sbit LCD1602_EN = P2^2;
void delay(unsigned int t) // 延时函数
{
while (t--);
}
void LCD1602_WriteCmd(unsigned char cmd) // 写命令
{
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_DB = cmd;
LCD1602_EN = 1;
delay(5);
LCD1602_EN = 0;
delay(5);
}
void LCD1602_WriteData(unsigned char dat) // 写数据
{
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DB = dat;
LCD1602_EN = 1;
delay(5);
LCD1602_EN = 0;
delay(5);
}
void LCD1602_Init() // LCD1602初始化
{
LCD1602_WriteCmd(0x38); // 8位数据总线,2行显示,5x8点阵字符
LCD1602_WriteCmd(0x0C); // 显示开,光标不显示
LCD1602_WriteCmd(0x06); // 每次写入后地址自动加1,不移动显示
LCD1602_WriteCmd(0x01); // 清屏
}
void LCD1602_Display(unsigned char x, unsigned char y, unsigned char *str) // 在指定位置显示字符串
{
unsigned char addr;
if (y == 0)
addr = 0x80 + x;
else
addr = 0xC0 + x;
LCD1602_WriteCmd(addr);
while (*str)
LCD1602_WriteData(*str++);
}
void main()
{
LCD1602_Init();
LCD1602_Display(0, 0, "Hello, World!");
while (1);
}
```
注意,这只是一个简单的示例代码,实际应用中需要根据具体情况进行修改和完善。
阅读全文