12864液晶显示电子时钟程序设计与实现

4星 · 超过85%的资源 需积分: 10 45 下载量 111 浏览量 更新于2024-09-17 1 收藏 35KB DOC 举报
"该资源是一个基于12864汉字液晶显示屏的电子时钟程序,具备闪烁、移位、加一、减一的功能。程序主要包括主程序、LCD初始化、定时程序以及其它辅助函数,用于显示和操作时间。" 在这个程序中,主要涉及到以下几个知识点: 1. **12864液晶显示屏**:这是一种常见的LCD(液晶显示器),具有128行和64列的显示能力,特别适合用于显示汉字和简单的图形。在本程序中,它被用来显示电子时钟的时间。 2. **C语言编程**:程序使用了标准C语言进行编写,通过`#include`指令引入了`reg52.h`和`intrins.h`头文件,前者包含了52系列单片机的寄存器定义,后者可能包含了特定的内联汇编函数。 3. **定义与数据类型**:`uchar`被定义为无符号字符类型,用于处理8位数据。`sbit`定义了位变量,如`cs`, `sid`, 和 `clk`,分别代表液晶屏的片选、数据线和时钟信号。`bit flag`是一个标志位,用作程序中的状态指示。 4. **主程序**:`main()`函数是程序的入口点,其中调用了`lcd_ini()`初始化液晶屏,`ascii_change()`更新ASCII码,`disp()`显示时间,`tkey()`处理按键输入,`shan()`实现闪烁效果,以及`delay()`延迟函数。 5. **定时器**:使用定时器0 (`TMOD=0x01`) 进行定时,通过设置`TL0`和`TH0`来设定初始计数值,中断服务子程序`timer1()`每50ms执行一次,用于更新时间。中断发生时,计数器`count`递减,当达到0时,秒钟加一,并处理分钟和小时的进位。 6. **中断系统**:程序启用了总中断(`EA=1`),定时器0中断(`ET0=1`),且设置为边沿触发(`IT0=1`)。中断服务子程序在中断向量2 (`using 2`) 处理。 7. **LCD操作函数**:`wri_add()`用于写入指令到液晶屏的地址,`wri_dat()`用于写入数据,`delay()`提供延时,这些都是与液晶屏交互的基本步骤。 8. **数据结构**:`uchardataclock[3]`存储了小时、分钟和秒,`ucharcodeclockname[10]`存储了时钟名称的ASCII码,`uchardatanum[6]`可能用于转换和显示数字。 这个程序展示了如何在嵌入式系统中构建一个简单的电子时钟,结合了硬件接口、中断处理和时间管理,对于学习单片机编程和LCD显示技术的人来说非常有参考价值。