《电子时钟》 课程设计说明书
专业班级:
11级自动化班
姓
名: 欧阳明长 李徐军
陈龙
指导教师:
郭
玉
设计时间:
2013--12--17
物理与电气工程学院
2013年12月17日
1
摘要
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用STC公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键S
12、S
13、S14和S15键,进行相应的操作就可实现小时调整、分钟调整和启停功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。
关键词 电子钟;AT89S52;硬件设计;软件设计
目录
1 设计课题任务、功能要求说明及方案介绍……………………………………3 1.1 设计课题任务………………………………………………………………3 1.2 功能要求说明………………………………………………………………3 1.3 设计总体方案介绍及原理说明……………………………………………3 2 设计课题硬件系统的设计………………………………………………………3 2.1 设计课题硬件系统各模块功能简要介绍…………………………………4 3 设计课题软件系统的设计………………………………………………………4 3.1 设计课题软件系统各模块功能简要介绍…………………………………4 3.2 设计课题软件系统程序流程框图…………………………………………4 4 设计结论、仿真结果、误差分析………………………………………………7 4.1 设计课题的设计结论及使用说明…………………………………………4 4.2 设计课题的误差分析………………………………………………………7 4.3 设计体会……………………………………………………………………7 参考文献 ……………………………………………………………………………7 附 录 ……………………………………………………………………………8
2 1 设计课题任务、功能要求说明及方案介绍
1.1 设计课题任务
设计一个具有特定功能的电子钟。具有启停、时间显示、报时等功能。并有时间设定,时间调整功能。
1.2 功能要求说明
设计一个具有特定功能的电子钟。电子钟上电从12时0分0秒开始运行,按下启停键进入时钟运行状态;再按启停键暂停运行,并且再次按下时能够在原来的时间上继续计时;运行到整点是能够自动响铃,通过外部按键可以进行实践的调整,并且在运行时相应的LED灯等同步亮灭。
1.3 设计课题总体方案介绍及工作原理说明
本电子钟主要由单片机、4*4独立键盘、显示接口电路和电源电路构成,设 计课题的总体方案如图1.1所示:
图1.1 总体设计方案图
本电子钟的所有的程序、参数均存放在AT89S52的内部RAM中。键盘采用动态扫描方式。利用单片机定时器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
2 设计课题硬件系统的设计
3 2.1 设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。
(1)单片机最小系统模块:包括8位微控制器AT89S52;电源复位电路;晶振电路。本模块AT89S52系统控制核心,单片机系统复位由电源上电完成。
(2)输入模块:本模块共用到了4个按键(S
12、S
13、S
14、S15),分别完成时间的调整、启停。1个电源开关(具有复位功能)。
(3)输出模块:本次设计显示为8位,采用两个四位一体数码管(共阳极)8个PNP三极管驱动,并且还有蜂鸣器模块。 (4)电源模块:USB供电及下载器。
设计课题软件系统的设计
3.1 设计课题软件系统个模块功能简要介绍
本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。
主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的控制。
中断服务程序:主要是用于电子钟的1S延时。 键盘输入程序模块:主要是用于完成特定时间调整。
数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。 延时模块:短延时用于数据的动态显示,按键的判断。
3.2 设计课题软件系统程序流程框图
系统程序采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成可烧写文件。
主循环程序框图如3.1所示;判断进位程序如3.2所示; 计时一秒中断程序如3.3所示; 启停中断框图如3.4所示; 延时子程序框图如3.5所示;
4 图3.1 主循环程序 5
图3.2 判断进位子程序
图3.3 计时一秒中断
图3.4 启停中断程序
图3.5 延时子程序
6
4 设计结论、运行结果、误差分析
4.1 设计课题的设计结论及使用说明
本设计为基于单片机的电子钟的设计。刚开始,我们很多地方理不清头绪,无从下手,只能从平时的实验中得到一些方法,但通过认真研究设计课题,找书上网查资料,确定基本设计方案,对所用芯片功能进行查找、调试,设计中有四个按键,其中S12为分钟加1调整,S13为小时加1调整, S14为外部响铃按键,S15为启停按键,另外当整点时间到时,蜂鸣器报警。这样的结果与设计基本相符,基本上完成了设计任务。
4.2 设计课题的误差分析
该电子钟在运行中存在一定的误差,误差产生有三种原因,首先是采用的计时利用中断来实现。而当电子钟运行时间1秒时,又得去执行中断程序,这个过程需要几个机器周期。第二,硬件系统有一定的影响。第三,设计用到12MHz晶振,计算是满20次为一秒钟,实际会慢很多。
4.3 设计体会
本次课程设计,让我们三人受益匪浅,认识到了自己的许多缺点和不足,使我深深的感受到了理论联系实际的必要性及其重要性。
参考文献
[1] 李全利.单片机原理与接口技术[M].高等教育出版社.2009.1.[2] 刘文秀.单片机应用系统仿真的研究[J].现代电子技术.2005, 第286 期.[3] 胡学海.单片机原理及应用系统设计[M],北京:电子工业出版社,2005.[4] 李广第.单片机基础[M],北京航空航天大学出版社,2006.7.
7 附录
程序代码为:
ORG 0000H LJMP START ORG 0003H LJMP INTT0 ORG 0013H LJMP INTT1 ORG 000BH LJMP INTT ORG 0100H START:SETB EA SETB ET0 SETB IT0 SETB EX0 SETB IT0 SETB EX1 SETB IT1 MOV R7,#16 MOV TMOD,#01H MOV TH0,#15536/256 MOV TL0,#15536 MOD 256 MOV R0,#12 MOV R1,#0 MOV R2,#0 MOV R6,0FEH CLR TR0 L1:
LCALL PANDUAN ;*****************
;记秒
MOV A,R2
MOV B,#10
DIV AB
MOV P2,#0FDH
LCALL XIANSHI
LCALL DELAY
MOV A,B
MOV P2,#0FEH
LCALL XIANSHI
LCALL DELAY ;***************
;调分
JB P3.0,L40
8 L41:JB P3.0,L42 LJMP L41 L42:INC R1
;计分
L40: MOV A,R1
MOV B,#10
DIV AB
MOV P2,#0EFH
LCALL XIANSHI
LCALL DELAY
MOV A,B
MOV P2,#0F7H
LCALL XIANSHI
LCALL DELAY
MOV P2,#0FBH
MOV P0,#0BFH
LCALL DELAY ;******************
;调时
JB P3.1,L45 L47:JB P3.1,L46 LJMP L47 L46:INC R0
;计时
L45: MOV A,R0
MOV B,#10
DIV AB
MOV P2,#07FH
LCALL XIANSHI
LCALL DELAY
MOV A,B
MOV P2,#0BFH
LCALL XIANSHI
LCALL DELAY
MOV P2,#0DFH
MOV P0,#0BFH
LCALL DELAY
;************************* ;判断5分钟闹铃
CJNE R1,#5,L51
CLR P3.5
MOV P1,R6
MOV A,R6
RL A
MOV R6,A
LJMP L52 L51:CJNE R1,#6,L52
SETB P3.5 L52: LJMP L1
;*************** ;执行1秒钟
INTT:DJNZ R7,L33
MOV R7,#16
INC R2
MOV P1,R6
MOV A,R6
RL A
MOV R6,A L33:RETI ;*********************
;外部中断
INTT0:CPL P3.5
MOV P1,#0
RETI ;***********************
;启停功能
INTT1:MOV P1,#0
LCALL DELAY
JB P3.3,L97
CPL TR0
L97: RETI ;**********************
;显示子程序
XIANSHI:MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
RET
;**********************
;延时子程序
DELAY:MOV R3,#20
DEL1:MOV R4,#50
DEL2:DJNZ R4,DEL2
DJNZ R3,DEL1
RET
;*******************
;判断进位子程序
PANDUAN:
CJNE R2,#60,L31
MOV R2,#0
INC R1
L31:CJNE R1,#60,L32
MOV R1,#0
INC R0
L32:CJNE R0,#24,L35
MOV R0,#0
L35:RET
;********************
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
END