当前位置:文档之家› 电子时钟课程设计

电子时钟课程设计

单片机课程设计
题目:电子时钟班级:
摘要
针对数字时钟的问题,利用8051单片机,proteus软件,vw(伟福)等软件,运用单片机中定时计数器T0,中断系统以及按键的控制实现了电子时钟的设计。

设计的电子时钟通过数码管显示,并能通过按键的设计实现小时与分钟的调整。

时间的启动与暂停等等。

关键字:数字时钟;单片机;定时计数器
1 引言
时钟,自他发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术不断的发展,人们对时间计量的进度要求越来越高,应用越来越广。

怎样让时钟更好地为人类服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。

现金,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都使用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示器,减小了计时误差,这种表具有时、分、秒显示的功能,还可以进行时、分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系
I\O
2 设计方案及原理
2.1 中断系统简介
MCS-51单片机提供5个硬件中断源,2个外部中断源,2个定时计数器T0和T1的溢出中断TF0和TF1,1个串行口发送TI和接收RI中断。

MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。

中断允许寄存器IE的字节地址为A8H,可以进行位寻址。

系统复位时,中断允许寄存器IE的内容为00H,如果要开放某个中断源,则必须使IE中的总控置位和对应的中断允许位置“1”。

中断、
计数器、16
数码管显示器,通常的译码方式有两种:硬件译码方式和软件译码方式。

LED数码管在显示时,通常有两种显示方式:静态显示方式和动态显示方式。

在使用时可以把它们组合起来。

在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,则通常用软件译码动态显示。

2.4 设计思想
电子时钟是利用单片机内部的定时器\计数器来实现的,它的处理过程如下:首先设定单片机内部的一个定时器\计数器工作于定时方式,对机器周期计数形成基准时间,然后对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。

然后通过数码管把它们的内容在相应位置显示出来即可。

数码管显示可以采用静态显示方法或动态显示方法。

静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一般用6个或8个数码管。

由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一般采用动态显示方式。

动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳定。

在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。

在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。

时间调整的方法,设计了简单的按键,可以通过按键实现时、分的调整,在主程序中加入了键盘设置子程序。

用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,形成定时时间为50ms,所以定时初值为15536(3CB0H)。

用片内RAM的7BH单元对50ms计数,计20次秒计数器78H 单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,
3 硬件设计
图2.1 硬件原理图1
图2.2 硬件原理图2
4软件设计
4.1 设计模块
程序分为4个部分:主程序,中断服务程序,显示程序,按键处理程序。

4.1.1 主程序
主程序设置显示缓冲区以及定时计数器T0初始值,并开始计数,反复调用键盘扫描与显示子程序。

(79H)加1,同时秒单元清0;分单元加到60则对时单元(80H)加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

中断服务程序流程图如图3.2
4.1.3 显示程序
本系统共采用8个显示块,从右向左依次是秒各位、秒十位、横线、分各位、分十位、横线、时各位、时十位,分别连接P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0,对应显示缓冲区70H、71H、
72H、73H、74H、75H、76H、77H。

P2口作为位选线,P0口作为段码线,数码块为共阳极连接,采用动态显示的方法。

4.1.4 按键处理程序
按键从上到下依次为K0、K1、K2,分别与P1.0、P1.1、P1.2相连接。

按下K0键后,时钟停止计时,并进入小时调整状态,按K1或K2键可进行加1或减1操作,再按一次K0键,进入分钟调整状态,同样按K1或K2键可进行加1或减1操作,再按下K0键则恢复计时状态。

4.2 程序清单
ORG 0000H
MOV 71H,A
MOV 70H,B
MOV A,79H
MOV B,#0AH
DIV AB
MOV 74H,A
MOV 73H,B
MOV A,7AH
MOV B,#0AH
DIV AB
MOV 77H,A
MOV 76H,B
MOV R1,#70H ;循环扫描显示
MOV R5,#80H ;选通最右边的第一个数码块
MOV R3,#08H
SCAN1: MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1MS
INC R1
MOV A,R5
OUTT0: SETB ET0
POP PSW
POP ACC
RETI
KEYSCAN: CLR EA ;按键处理程序JNB P1.0,KEYSCAN0
JNB P1.1,KEYSCAN1
JNB P1.2,KEYSCAN2
KEYOUT: SETB EA
RET
KEYSCAN0: LCALL DL20MS
JB P1.0,KEYOUT
WAIT0: JNB P1.0,WAIT0
INC 7CH
MOV A,7CH
CLR ET0
CLR TR0
CJNE A,#03H,KEYOUT
MOV 7CH,#00
SETB ET0
SETB TR0
SJMP KEYOUT
KEYSCAN1: LCALL DL20MS
JB P1.1,KEYOUT
针对电子时钟的问题,利用单片机内部的定时计数器T0计时的功能以50MS为最小计时单位,进行计时,计20次为一秒,秒单元计60次为一分钟,分单元计60次为一小时,小时单元计24次为一天,每个单元计满则自动清0。

单片机外部通过P2口与数码显示管连接,显示秒,分,时,同时还可通过按键调整时间。

最后运用proteus软件仿真,并运行成功。

在设计软件程序,编写论文过程中还存在部分不足之处,在以后的学习中积极改进,进一步掌握汇编语言的编写技巧,熟练单片机硬件内容,改正缺点。

参考文献
[1] 李华,王思明,张金敏.单片机原理及应用[J].兰州:兰州大学出版社,2001.
[2] 闫玉德,俞虹.MCS-51单片机原理与应用[J].北京:机械工业出版社,2002.
[3] 肖靖.单片机入门与实验设计[J].北京:北京航天航空大学出版社,2008.。

相关主题