51单片机12864lcd显示字符
时间: 2023-10-19 22:07:51 浏览: 88
在51单片机上使用12864 LCD显示字符可以通过以下步骤实现:
1. 配置LCD参数。这包括设置LCD的位数、显示方式、显示位置等。
2. 初始化LCD。在此过程中,需要向LCD发送一些初始化命令,例如清屏、设置光标位置等。
3. 发送数据到LCD。在此过程中,需要将要显示的字符或字符串数据转换为LCD能够识别的格式,并将其发送到LCD上进行显示。
4. 关闭LCD。在程序结束时,需要关闭LCD以节省电力。
以下是一个示例代码,演示如何在51单片机上使用12864 LCD显示字符:
```
#include <reg52.h>
// 定义LCD连接端口
#define LCD_DB P0
sbit LCD_RS = P2^6;
sbit LCD_RW = P2^5;
sbit LCD_EN = P2^7;
sbit PSB = P1^0;
// LCD初始化函数
void lcd_init()
{
PSB = 1; // 并口模式
LCD_RS = 0; // 写命令
LCD_RW = 0;
LCD_EN = 0;
delay(15); // 延时15ms
LCD_DB = 0x30; // 发送命令0x30
LCD_EN = 1;
LCD_EN = 0;
delay(5); // 延时5ms
LCD_DB = 0x30; // 发送命令0x30
LCD_EN = 1;
LCD_EN = 0;
delay(1); // 延时1ms
LCD_DB = 0x30; // 发送命令0x30
LCD_EN = 1;
LCD_EN = 0;
delay(1); // 延时1ms
LCD_DB = 0x38; // 设置8位数据总线,2行显示,5x7字体
LCD_EN = 1;
LCD_EN = 0;
delay(1); // 延时1ms
LCD_DB = 0x0C; // 显示开,光标不显示,光标闪烁不显示
LCD_EN = 1;
LCD_EN = 0;
delay(1); // 延时1ms
LCD_DB = 0x06; // 光标右移,字符不移动
LCD_EN = 1;
LCD_EN = 0;
delay(1); // 延时1ms
LCD_DB = 0x01; // 清屏
LCD_EN = 1;
LCD_EN = 0;
delay(1); // 延时1ms
}
// LCD显示字符函数
void lcd_putchar(unsigned char dat, bit isData)
{
LCD_RS = isData;
LCD_RW = 0;
LCD_DB = dat;
LCD_EN = 1;
LCD_EN = 0;
}
// LCD显示字符串函数
void lcd_puts(unsigned char *str)
{
while (*str != '\0')
{
lcd_putchar(*str, 1);
str++;
}
}
// 主函数
void main()
{
lcd_init(); // 初始化LCD
lcd_puts("Hello, world!"); // 在LCD上显示字符串
while (1); // 程序结束
}
```
此代码演示了如何在LCD上显示一个字符串。在主函数中,我们先调用`lcd_init()`函数初始化LCD,然后调用`lcd_puts()`函数将字符串“Hello, world!”显示在LCD上。`lcd_putchar()`函数用于发送单个字符到LCD上,`lcd_puts()`函数用于发送字符串到LCD上。
注意,在实际使用中,需要根据LCD具体型号和连接方式来配置端口和发送命令。
阅读全文