89C51与12864液晶屏的C语言驱动与显示控制

需积分: 10 4 下载量 122 浏览量 更新于2024-09-19 收藏 4KB TXT 举报
这段代码是针对89C51单片机与12864液晶显示器配合使用C语言编程的一种示例。主要关注的是如何在液晶屏幕上显示数字信息。89C51是一款经典的51系列单片机,而12864是一种常见的16x24点阵液晶显示器,常用于嵌入式系统中的简单文本和数字显示。 首先,代码导入了几个关键头文件: 1. "reg52.h":这是一个51单片机的标准头文件,提供了对89C51寄存器和功能的定义。 2. "12864drive.h":这个文件可能包含12864液晶显示器的驱动函数,如选择屏幕、设置行和列、写入字符等操作。 3. "code.h":此文件可能包含了其他与程序逻辑相关的宏或变量定义。 变量定义部分: - `unsigned char kz, x=32, y=32`:`kz`用来控制上下移动,x和y分别表示当前要显示的十进制数字的位置。 - `unsigned char x0, y0, changdu`:这些变量可能与屏幕的偏移和大小有关。 - `unsigned char zwjs[36]`:一个数组用于存储要显示的数字字符串,如"1234"。 - `unsigned char i, II, JJ`:循环计数器。 - `unsigned char CDU`:可能用于临时存储字符数据。 - `sbit xia, shang, you, zuo`:定义了P3口的输入引脚,用于控制液晶屏的行选择。 函数定义: 1. `void DisplayLine1()`:这个函数负责在第一行显示字符,通过遍历数组zwjs,并调用WriteByte()函数将字符写入屏幕。 2. `void xianshi(void)`:这是主要的显示函数,根据条件判断是向上还是向下移动,然后更新zwjs数组,调用Displayen()函数(可能是液晶驱动中的一个函数)在指定位置显示数字和分割符。 代码执行流程大致如下: 1. 当上边的引脚`shang`为低电平且没有正在向下移动(kz不等于2)时,开始向上显示数字,将当前数字字符串分解并显示在屏幕上,然后切换到下一行。 2. 同理,当下边的引脚`xia`为低电平且没有正在向上移动(kz不等于1)时,开始向下显示数字。 整体来看,这段代码是基于89C51单片机和12864液晶显示器的C语言编程实践,主要用于实现简单的数字滚动显示,适用于初学者学习单片机硬件接口和C语言基础应用。在使用Proteus仿真器进行验证时,可以结合硬件电路模拟单片机和液晶显示器的连接,并观察程序的执行效果。