单片机实现24小时可调时钟程序设计
需积分: 29 12 浏览量
更新于2024-11-11
1
收藏 3KB TXT 举报
本资源是一份针对单片机实现24小时可调时钟功能的C语言程序。该程序主要应用于嵌入式开发,使用了8051系列的单片机,如8051或AT89C52等。程序的核心部分包括定时器T1的使用、按键控制和液晶显示模块。
首先,定义了多个变量如`num`, `shi`, `fen`, `miao`, 和 `con`,用于存储小时、分钟、秒钟的数值,以及一个计数器`con`来处理按键操作的连续性。`dula`和`wela`是P2口上的数码管选通引脚,`key1`和`key2`是按键输入引脚,分别对应上下两个操作。
程序引入了`reg52.h`头文件,这是8051系列单片机的标准库,包含了中断、定时器、寄存器定义等。另外,使用了自定义的数据类型`a`和`b`来定义代码表,`table1`和`table2`分别存储了液晶显示的段码,用于驱动7段数码管显示数字和字符。
`display`函数是一个用户自定义函数,它接收6个参数(小时、分钟、秒数的十位和个位),并根据传入的数字和段码,在液晶上正确地显示时间。`delay`函数用于延时,确保按键操作的响应时间。
`main`函数是程序的主入口,初始化了外部中断允许(EA)和定时器T1,设置了定时器工作模式为模式1,然后计算出定时器初值,使其每隔50ms触发一次中断。程序进入一个无限循环,通过检测`key1`和`key2`按键,控制时钟的小时、分钟和秒钟的增加,当按键连续按下三次后,重新设置定时器,防止按键误触发。
如果仅按键`key2`被按下,程序会增加分钟值,当分钟达到60时重置为0;如果`key1`和`key2`同时按下,会增加小时值,同样当小时达到24时重置为0。在每次按键操作后,都会调用`display`函数更新液晶显示的时间。
这个程序展示了如何利用单片机的定时器功能和按键输入,结合液晶显示技术,实现一个基本的可调24小时时钟功能,对于学习和实践嵌入式系统编程具有很好的参考价值。
2227 浏览量
1366 浏览量
169 浏览量
1030 浏览量
193 浏览量
110 浏览量
611 浏览量
161 浏览量
lwk98
- 粉丝: 1
- 资源: 3
最新资源
- 吉菲探索者
- 保险行业培训资料:地县级地区中端福寿连连销售逻辑
- frontend-react
- IEC101-103-104规约分析程序.rar
- 保险行业培训资料:从需求的角度看产品
- rms-list-gen
- DIU:乌苏里奥大学接口处
- tinyMCE:向 WordPress TinyMCE 添加自定义按钮
- 创维电视酷开系统14U系列8S26刷机应用工具包
- hex-to-rgb:将彩色十六进制值转换为rgb
- my-gridsome-app
- nexus-3.20.1-01-win64.rar
- nwis:对 nw.js GUI API 的 IntelliSense 支持
- materiaFramework:项目构建器,基于html POST请求
- IM Café-开源
- conquer_the_world:【打天下篇】工作知识纪要