51单片机控制12864液晶C程序带汉字库

5星 · 超过95%的资源 需积分: 10 24 下载量 189 浏览量 更新于2024-10-12 1 收藏 246KB DOC 举报
"这篇资源是关于51系列单片机使用C语言控制12864液晶显示屏的程序,特别适合开发者使用。程序包含了液晶屏的初始化、清除屏幕、发送指令与数据、设置坐标以及打印字符等基本功能,并且带有中文字库。" 在微控制器编程中,12864液晶显示屏是一种常见的显示设备,用于在硬件项目或嵌入式系统中显示文本信息。12864表示该屏幕具有128列和64行的像素点,通常用于显示简单的图形和文本。在51系列单片机中,这种显示屏常通过并行接口进行通信,因为并行接口可以提供更快的数据传输速率。 在提供的代码中,可以看到几个关键函数,这些函数是控制12864液晶屏的基础: 1. `lcd_init(void)`: 这个函数负责初始化液晶屏,设置必要的控制引脚和配置参数,使其进入工作模式。 2. `clr_lcd(void)`: 清除屏幕,将所有像素点设置为非显示状态,即黑色背景。 3. `send_com(unsigned char cmd)`: 发送命令到液晶屏。命令通常包括设置显示模式、光标位置、开/关显示等。 4. `send_data(unsigned char dat)`: 发送数据,如字符或定制的像素值,到液晶屏进行显示。 5. `chek_busy(void)`: 检测液晶屏是否处于忙碌状态,这是并行通信中避免数据冲突的关键步骤。在发送新数据之前,需要确保液晶屏已经处理完上一次的数据传输。 6. `set_xy(unsigned char xpos, unsigned char ypos)`: 设置光标位置,允许在屏幕上的特定位置开始显示。 7. `print(unsigned char x, unsigned char y, char* str)`: 在指定位置打印字符串。 8. `printstr(unsigned char xpos, unsigned char ypos, unsigned char str[], unsigned char k)`: 类似于`print`,但可以打印固定长度的字符串数组。 此外,代码还定义了一些控制引脚的位操作宏,例如`SETB`, `CLRB`, 和 `CHKB`,用于更高效地操作P0和P2口的位。`#define DATAP2` 表示数据线连接到P2口,而`CONTROLP0`表示控制线连接到P0口。`RST3`, `E7`, `RW6`, `RS5`, 和 `PSB4`定义了液晶屏的复位、使能、读写、指令/数据选择和并/串行接口选择等控制信号。 值得注意的是,代码中提到了一个中文字库,这允许在液晶屏上显示汉字。`unsigned char code buf[4]`存储了“欢迎”两字的字库编码,这通常需要配合特定的字库表来实现汉字的显示。 这个程序提供了51系列单片机控制12864液晶屏的基本框架,开发者可以通过这个基础来扩展自己的功能,例如添加图形绘制、动态更新或自定义显示效果。