80C51 12864液晶屏驱动程序完成并通过测试

需积分: 10 1 下载量 200 浏览量 更新于2024-09-14 收藏 3KB TXT 举报
本资源主要介绍如何使用80C51单片机控制12864液晶显示器的编程。80C51是一种广泛应用的51系列微控制器,而12864是一种常见的字符型液晶显示模块,具有128列×64行的分辨率。在提供的代码片段中,开发者定义了一些宏和变量来简化与LCD的交互。 1. **头文件与定义**: - `#include <reg52.h>`: 这个头文件可能包含了80C51的寄存器定义,以便在程序中操作硬件。 - 宏定义如`uchar`和`uint`用于声明无符号字符型和整型数据,便于后续操作。 - 定义了用于控制LCD引脚的位:`SID`(数据/命令选择线),`SCLK`(时钟线)和`BSP`(背光控制线)。 2. **LCD初始化数据**: - `add[]`数组和`codetable[]`分别存储了LCD的不同段落和字符映射表,用于显示数字和文字。例如,`0x80`至`0x87`对应第一行的汉字符号,`0x88`至`0x8f`对应第二行,以此类推。 - `delayms()`函数是一个延时函数,用于确保操作之间的适当间隔,以防止LCD响应过快或过慢。 3. **LCD通信函数**: - `send_byte()`函数负责发送一个字节到LCD,通过逐位移位和控制SCLK来实现数据的传输。 - `write_com()`函数用于发送控制命令,如设置行地址、列地址等,通常涉及RW(读写)和RS(寄存器选择)信号。 - `write_data()`函数则用于发送数据,如文本字符或颜色控制信息。 4. **LCD初始化**: - `lcd_init()`是主程序中的关键函数,它初始化LCD模块,通过发送特定的命令序列来配置液晶显示模式,以及确保初始化过程足够的时间(约40毫秒)。 这些代码片段展示了如何使用80C51单片机控制12864液晶显示的基本流程,包括设置LCD接口引脚、发送控制信号、数据传输以及必要的延迟。掌握这些技术后,你可以根据实际需求编写完整的应用程序,比如显示数字、文本或者图形。在实际应用中,还需要考虑错误处理和状态检测,以确保LCD正确无误地工作。