秒表时钟计时器设计2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章总体方案的设计及方案比较
1.1总体方案设计
总原理图可以包括以下几个单元电路、电源电路、下载口电路、复位电路、振荡电路、键盘及显示电路
.. 数字钟计时的标准信号应该是频率相当稳定的1HZ脉冲,所以要设置标准时间源。
数字钟计时周期是24小时,因此必须设置24小时计数器,他应由模为60的秒计数器和分计数器及模为24的时计数器组成,秒、分、时由七段数码管显示。
为使数字钟走时与标准时间一致,校时电路是必不可少的。设计中采用开关控制校时直接用秒脉冲先后对“时”“分”“秒”计数器进行校时操作。
使用按键开关可以实现时年调整、秒表/时钟功能的转换关闭显示等功能
1.2方案比较
方案一:采用CPLD作为主控制器控制外围电路进行时钟控制、键盘和LED控制。此方案逻辑电路复杂,且灵活性较低,不利于各种功能的扩展,在测电压时将通过A/D测得的数值转化为电压有效值时有一定的困难。
方案二:采用AT89S51单片机来实现系统的控制,该芯片可以进行时分秒的计数,用1的总开关来控制电源,用三个按键开关来实现时分的调整、秒表/时钟的转换,并且可以对其方便的进行程序控制,完全能满足题目的要求所以采用方案二。
其总体电路图没见附A
1.3 方案论证
为了实现LED显示器的是数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些。考虑时钟显示只有六位,而且系统没有其他复杂的处理任务,所以决定才用动态扫描法实现LED的显示。单片机采用容易购买的AT89S51系列,这样单片机可具有客户足够的余硬件资源实现其他的扩充功
能,硬件系统的总体构成框架如下
图1-2 硬件系统总体设计框架
第2章系统硬件电路的设计
秒表/时钟计数器的硬件电路如图8 ,采用AT89S51单片机,最小化应用设计;采用共阴极七段LED显示器,P0口输出端数据,P20~P25口作为扫描输出,P10、P11、P12口接三个按键开关,用以调时及功能设置。为了提供共阴极LED数码管的驱动电压,用三极管8550作电源驱动输出。采用12MHZ晶振,有利于提高秒表计时的精确性。
2.1电源电路:
JP1是电源输入插孔。S5为电源开关。电路采用7805三端稳压管,为单片机提供稳定的工作电压(工作电压为5V)其1脚为输入端,2脚为接地端,3脚为输出端。D1是二极管IN4007,并联在7805上,作用是反接保护电路。C2是电源滤波电容,其值为200UF。C1为高频去偶电容其值为0.1UF。D2是一只发光二极管,作用为电源指示灯
图2-1电源电路
2.2下载口电路:
此下载口为10针型。2、4脚分别接地,8脚接电源,P15,P16,P17三脚分别接单片机P15,P16,P17三脚。5脚接单片机的RESET脚。
图2-2下载口电路
2.3 复位电路:
此电路由一只10UF的电解电容,一只10K的电阻和一只按键开关组成。。
图2-3复位电路
2.4 振荡电路:
由12KHZ晶振组成时钟产生电路,为单片机提供时钟源。
图2-4振荡电路
2.5 显示电路:
此电路由一只9脚和6只共阴极数码管组成。P00口~PO7口分别接数码管的a~g段。排组一脚接电源,数码管的G0~G5接单片机的P20~P25口。
图2-5 显示电路
2.6键盘电路:
三只电阻为1K ,K1,K2,K3是三只控制按键。此电路作用为对时间的调试和校正。
图2-6 键盘
第3章系统程序设计
3.1 主程序
本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能.
其主程序执行流程图如下:
图3-1主程序执行流程图
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 主程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START: LCALL ST MOV R0,#70H MOV R7,#0BH CLEARDISP: MOV @R0,#00H INC R0
DJNZ R7,CLEARDISP MOV 20H,#00H MOV 7AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0, #3CH MOV
TL1, #0B0H
MOV TH1, #3CH
SETB EA
SETB ET0
SETB TR0
MOV R4, #14H
3.2 显示子程序
数码管显示的数据存放在内存单元70H~75H中。其中70H~71H存放秒数据,72H~73H存放分数据,74H~75H存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H~75H中的某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。如果要显示小数点及“—”、“A”等特殊字符,在显示班级及计时时采用不同的显示子程序。;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
显示数据在70H-75H 单元内,用六位LED共阳数码管显示,P0口输出段数据,P2口作
扫描控制,每个LED数码管亮1 ms 时间,再逐位循环。
DISPLAY: MOV R1, #70H
MOV R5, #0FEH
PLAY: MOV A, R5
MOV P2, A
MOV A,@R1
MOV DPTR, #TAB
MOVC A,@A+DPTR
MOV P0, A