时钟计时器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
本设计为时钟计时器,用AT89C52单片机及6位7段共阳LED数码管显示时、分、秒,以24小时计时方式运行,能整点提醒(蜂鸣),使用按键开关可实现时、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒(蜂鸣器)的功能。采用11.597MHZ 的晶振,能提高秒计时的精确性。选用的是动态扫描法来实现LED的显示。程序较为复杂:有主调用程序;计时及秒表中断程序;显示子程序;调时与秒表功能程序以及闹钟时间设定程序。
关键词:AT89C52;7段共阳极LED;蜂鸣。
目录
设计要求 (1)
1. 方案论证与对比 (1)
2. 单元电路的设计 (2)
2.1 LED显示电路的设计 (2)
2.2 蜂鸣器电路 (2)
2.3 复位电路 (2)
3. 系统程序的设计 (3)
3.1 主程序 (3)
3.2 显示子程序 (3)
3.3 定时器T0中断服务程序 (4)
3.4 定时器T1中断服务程序 (4)
3.5 调时功能程序 (5)
3.6 秒表功能程序 (5)
3.7 闹钟时间设定功能程序 (5)
4. 调试 (6)
4.1 硬件调试 (6)
4.2 软件调试 (6)
5. 详细仪器清单 (7)
6. 总结及致谢 (8)
6.1 总结 (8)
6.2 致谢 (8)
参考文献 (9)
附录一时钟计时器系统电路图 (10)
附录二时钟计时器源程序 (11)
时钟计时器的设计
设计要求:
时钟计时器要求用单片机及6位LED 数码显示时、分、秒,以24小时计时方式运行,能整点提醒(蜂鸣),使用按键开关可实现时、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒的功能。
1. 方案论证与对比
为了实现LED 显示器的数字显示,可以采用静态扫描和动态扫描显示法两种,但由于静态显示法需要数据锁存器的硬件,接口较复杂,且本设计只要求显示6位,系统也没有其他复杂处理任务,所以决定采用动态扫描法莱实现LED 的显示。
时钟计时器采用AT89C52单片机最小化应用设计;P1口输出段码数据;P3.0~P3.5作列扫描输出;P2.5、P2.6和P2.7接按钮开关,用于调时及功能设置;P2.4接5V 的小蜂鸣器,用于定时提醒和整点到时提醒等;采用11.597MHZ 的晶振。
时钟计时器硬件系统的总体原理框图如图1所示:
单片机控
制器
列驱动
6位LED 显示器
按键开关
蜂鸣器
AT89C52
P1
P3
图1 硬件系统的总体设计框图
2. 单元电路的设计
2.1 LED 显示电路的设计
本设计采用6个7段共阳极LED 显示器,用三极管作电源驱动输出为共阳LED 数码管的列扫描提供驱动电压。如图2所示:
A 1f 2g 3e 4d 5A
6
c 8DP
7
b 9a 10D1Dpy Green-CA
A 1f 2g 3e 4d 5A
6
c 8DP
7
b 9a 10D2Dpy Green-CA
A 1f 2g 3e 4d 5A
6
c 8DP
7
b 9a 10D3Dpy Green-CA
A 1f 2g 3e 4d 5A
6
c 8DP
7
b 9a 10D4Dpy Green-CA
A 1f 2g 3e 4d 5A
6
c 8DP
7
b 9a 10D5Dpy Green-CA
A 1f 2g 3e 4d 5A
6
c 8DP
7
b 9a 10D6Dpy Green-CA
Q1
PNP9015
Q2
PNP9015
Q3
PNP9015
Q4
PNP9015
Q5
PNP9015
Q6
PNP9015
VCC
1K
R31K
R41K
R61K
R51K
R71K
R8
图2 LED 显示电路图
2.2 蜂鸣器电路
本设计的蜂鸣器电路如图3所示:
U11Bell
J21
1K
R29
10Ω
R22
Q8
VCC
图3 蜂鸣器电路
2.3 复位电路
复位电路如图4所示:
S1
SW-PB
2.2uF
C1VCC
1K
R1
图4 复位电路
3. 系统程序的设计
3.1 主程序
本设计中计时采用定时器T0中断完成,秒表使用定时器T1中断完成。主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。其主程序执行流程如图5所示:
初始化
开始调用显示子程序
进入功能程序
键按下?
整点到?
按时间鸣叫次数
N N
Y
Y
图5 主程序流程图
3.2 显示子程序
时间显示子程序每次显示6个连续内存单元的十进制BCD 码数据,首地址在调用显示程序时先指定。内存中50H~55H 为闹钟定时单元,60H~65H 为秒表计时单元,70H~75H 为时钟显示单元。
显示时,先取出内存地址中的数据,然后查得对应的显示用短码从P1口输出,P3口将对应的数码管选中供电,就能显示该地址单元的数据值。为了显示小数点及“—”等特殊字符,在显示班级和计时时应采用不同的显示子程序。