12864液晶显示电子时钟程序设计与实现
4星 · 超过85%的资源 需积分: 10 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显示技术的人来说非常有参考价值。
2021-10-01 上传
104 浏览量
2009-10-21 上传
2024-10-28 上传
2024-10-29 上传
2023-12-13 上传
2024-05-14 上传
2023-12-06 上传
2024-10-29 上传
zxhpl
- 粉丝: 0
- 资源: 4
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍