单片机课程设计数字电子钟.docx
《单片机课程设计数字电子钟.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字电子钟.docx(35页珍藏版)》请在冰点文库上搜索。
单片机课程设计数字电子钟
《单片机技术》课程设计说明书
数字电子钟
院、部:
学生姓名:
指导教师:
职称
专业:
班级:
完成时间:
摘要
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
而机械式的依赖于晶体震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
关键字:
数字电子钟;单片机
ABSTRACT
Attheendofthe20thcentury,electronictechnologyhasexperiencedrapidgrowth,themodernelectronicproducts,almostpermeatedthevarioussectorsofsociety,andpromotedthedevelopmentofsocialproductiveforcesandthesocialinformatizationlevel,butalsoimprovethemodernelectronicproductstofurtherimprovetheperformance,productupdaterhythmalsomoreandmorequickly.Modernlifeofpeoplepaymoreandmoreattentiontotheconceptoftime,moneyandtimeonthehospital.Forthoseintimeandaccuratelygrasptheverystrictaboutorinaccurate,timewillbringgreattrouble,soastodisplaysclockdigitaltubethanthepointerclockshowedalotofadvantages.Digitalpipedisplaytimeissimpleandaccuratereadings,timetoseconds.Andmechanicaldependentoncrystaloscillators,maycauseerrors.Adigitalclockisusedindigitalcircuit",""points"and"second"digitaldisplaytimer.Adigitalclockaccuracyandstabilitythanoldmechanicalclock.Inthisdesign,weadoptLEDdigitaldisplaytube,minutesandseconds,whenin24hourstime,accordingtotheprincipleofdynamicdisplayofdigitaltubetoshow,withthecrystals12MHzproduceoscillationpulses,timercount.Inthisdesign,thecircuithasitstime,stillcanrealizethefunctionofthetime.Adigitalclockisitssmall,inexpensive,highprecision,easytouseandwhen,thefunctionismuch,facilitateintegrationbyvastconsumption,soithasbeenwidelyused.
Keywords:
digitalelectricclock;MCU
1引言
1.1课题研究的任务
通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,设计一个具有特定功能的数字电子钟。
从而掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
1.2功能要求说明
该数字电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
1.3总体方案的确定
本课程设计是利用AT89S52单片机内部的定时/计数器、中断系统、以及独立式键盘和LED显示器等部件,设计的一个数字电子时钟。
系统的总体结构框图如图1所示。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等,用定时/计数器T0,工作于定时模式,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为10000,形成定时时间为10ms,计数达到100次即为1s。
计时周期为24小时,显示满刻度为23时59分59秒,格式为“00-00-00”,另外还有校时功能。
因此,,电子钟电路主要由时钟显示电路,还有校时电路组成。
时钟显示电路将“时”、“分”、“秒”及提示符“P.”通过八位LED显示器显示出来。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,按一下HUO(S3)键,时单位就加1,按一下MIN(S4)键,分单位就加1,按一下SEC(S5)键,秒单位就加1。
图1系统的总体结构框图
2硬件系统的设计
2.1单片机最小系统
此次设计中电路的控制部分选择以单片机AT89S52为核心的最小系统板,该系统由单片机、时钟电路、复位电路等组成。
这三部分是单片机正常工作的前提。
AT89S52采用电源供电。
时钟电路采用外部时钟源,由外部提供晶振。
复位电路的基本功能是为系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
单片机工作的时间基准是由时钟电路提供的。
外接晶振和电容组成单片机内部的振荡器。
在单片机的XTAL1和XTAL2两个引脚间,接一个晶振及两只电容就构成了单片机的时钟电路。
晶振选取12MHZ,电容取33Pf。
单片机的复位通常分为自动复位,手动复位等几种。
复位是单片机的初始化操作,只要给引脚RESET加上2个机器周期以上的高电平信号,就可使单片机AT89S52复位。
复位的主要功能是初始化为0000H,使单片机从0000H单元开始执行程序,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,为摆脱死锁状态,也需按复位键重新启动。
在本设计中采用手动复位。
对于单片机下载口电路,采用P1.5、P1.6、P1.7和RESET与VCC、GND连接到程序下载接口,构成其下载口电路,供程序下载使用。
2.2键盘输入模块
键盘是单片机应用系统中最常用的输入设备,在单片机应用系统中,操作人员一般都是通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。
键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。
键盘分独立式键盘和行列式键盘。
本次设计所用的是独立式键盘。
独立式8个按键S2至S9分别依次接在P1.0至P1.7口线。
通过编程,将其中4个键具有特定功能。
如:
S2键为启动/调整键;S3键为对小时单元加1操作;S4键为对分钟单元加1操作;S5键为对秒钟单元加1操作。
2.3LED显示器模块
在单片机应用系统中,经常用到LED数码管作为显示输出设备,LED数码管显示器虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,基本上能够满足单片机应用系统的需要,所以在单片机应用系统中经常用到。
LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。
在单片机应用系统中通常使用的是8段式LED数码管显示器,它有共阴极和共阳极两种。
本次设计采用了八位8段共阳极数码管,
P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a。
P2.0---P2.7位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
3软件系统设计
3.1使用单片机资源的情况
堆栈栈底80H;
LED数码管显示器设定:
(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
显示缓冲区设定从右至左依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH
数据存储器变量及常量单元定义:
30H字节单元:
十进制数秒,压缩BCD码
31H字节单元:
十进制数分,压缩BCD码
32H字节单元:
十进制数时,压缩BCD码
33H字节单元:
十进制数定时次数,压缩BCD码
78H字节单元:
十进制数秒个位,非压缩BCD码
79H字节单元:
十进制数秒十位,非压缩BCD码
7BH字节单元:
十进制数分个位,非压缩BCD码
7CH字节单元:
十进制数分十位,非压缩BCD码
7EH字节单元:
十进制数时个位,非压缩BCD码
7FH字节单元:
十进制数时十位,非压缩BCD码
2FH.0位单元:
布尔量,S2键标志位
2FH.1位单元:
布尔量,S3键标志位
2FH.2位单元:
布尔量,S4键标志位
2FH.3位单元:
布尔量,S5键标志位
2FH.4位单元:
布尔量,S6键标志位
2FH.5位单元:
布尔量,S7键标志位
2FH.6位单元:
布尔量,S8键标志位
2FH.7位单元:
布尔量,S9键标志位
20H.0位单元:
布尔量,S2键键值,S2键按下为1,S2键未按下为0
20H.1位单元:
布尔量,S3键键值,S3键按下为1,S3键未按下为0
20H.2位单元:
布尔量,S4键键值,S4键按下为1,S4键未按下为0
20H.3位单元:
布尔量,S5键键值,S5键按下为1,S5键未按下为0
20H.4位单元:
布尔量,S6键键值,S6键按下为1,S6键未按下为0
20H.5位单元:
布尔量,S7键键值,S7键按下为1,S7键未按下为0
20H.6位单元:
布尔量,S8键键值,S8键按下为1,S8键未按下为0
20H.7位单元:
布尔量,S9键键值,S9键按下为1,S9键未按下为0
20H字节单元:
十六进制,S2键键值01H,S3键键值02H,S4键键值04H,S5键键值08H,S6键键值10H,S7键键值20H,S8键键值40H,S9键键值80H
定时器/计数器资源:
T/C0:
工作模式1;功能:
定时时间;方式:
中断提供50ms定时时间
中断系统资源:
T/C0计数满100次即得到1秒计时单位
3.2各功能模块及流程框图
显示提示符“P.”
通过编程可将提示符“P.”稳定显示在最左端数码管(LED7)上,其它数码管(LED6~LED0)均灭。
流程图如图2所示。
图2显示“P.”主程序流程框图
电子钟自动运行与调整运行:
按一次启动/调整按键(S2)电子钟启动运行,进入自动时钟运行状态,流程图如图3所示。
图3电子钟自动时钟运行主程序流程框图
再按一次启动/调整按键(S2)进入调整状态。
流程图如图4所示。
图4电子钟调整运行主程序流程框图
电子钟中断服务程序:
当时间到达1秒时,对时、分、秒进行设置。
流程图如图5所示。
图5电子钟中断服务程序
电子钟加一子程序:
在电子钟进入调整状态时,通过相应的按键对时、分、秒加一操作。
流程图如图6所示
图6电子钟加一子程序
电子钟键扫描子程序与显示子程序:
通过扫描子程序与显示子程序,可对键盘进行监控,当按下按键时进入相应的功能状态与将时间显示在数码管中。
流程图如图7、图8.
图7电子钟键扫描子程序图8电子钟显示子程序
3.3软件调试
基本上排除了应用系统的硬件故障后,就可以进入软件的综合调试阶段,这个阶段的主要任务是排除软件错误,也解决硬件遗留的问题。
本系统程序是用汇编语言编写的,软件调试可以一个模块一个模块地进行。
在进行软件调试时要充分利用调试软件中单步、断点、设置观察项等调试手段,主要针对程序跳转错误、程序错误、动态错误和输入输出错误等方面着重调试。
在软件调试过程中时,需要注意以下几个问题:
(1)、电子钟自动时钟运行时,单片机是否响应中断、秒钟是否自动加一、到达60s时,分钟到达加一等等。
(2)、在电子钟自动时钟运行过程中,未按下启动/调整键(S2)时,按其它按键(S3~S5),时间是否会发生变化。
若发生变化,则程序在设计过程中未检测S2键状态。
(3)、在进行调时、调分和调秒的功能时,按键是否灵敏,能否退出调整状态,若出现问题可以查看键值是否被保护,经逻辑判断发现错误,再经修整调试,实现调时、调分和调秒的功能。
4系统设计结果分析及结论
4.1系统使用说明
基于单片机的数字电子钟的使用规则如下:
上电或按键复位后能自动显示系统提示符“P.”,显示在最左端数码管(LED7)上,进入时钟准备状态;第一次按电子钟启动/调整键(S2键),电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键(S2键),则电子钟进入时钟调整状态,此时可利用各调整键调整时间,S3键调时钟,按一次加一;S4键调分钟,按一次加一;S5键调秒钟,按一下加一;调整结束后可按启动/调整键(S2键)再次进入时钟运行状态。
4.2系统实物调试结果
基本排除了应用系统的硬件故障后,进入软件的综合调试阶段。
通过不断地修改程序与调试,基于单片机的数字电子钟实物显示的效果如图9,图10所示。
图9数字电子钟实物显示的效果1图10数字电子钟实物显示的效果2
根据以上的测试结果分析可知:
时间可以清晰稳定地显示在LED的显示屏上,此电子钟还具有调时、调分和调秒的功能。
即我们的作品已基本完成了老师的设计要求。
4.3系统设计误差分析
基于单片机的数字电子钟设计完成,进行实物调试,其电子钟计时与实际的钟表计时存在较小误差,分析可能造成的误差原因如下:
(1)、硬件设计电路不够完善;
(2)、元器件的参数精确度不高,特别是单片机最小系统的时钟电路中的晶振的参数可能存在误差;
(3)、在程序设计时,程序的结构不够优化;
(4)、在程序设计时,电子钟计时采用定时器以方式1计时,因要重新赋初值时,占用时间。
4.4设计体会
对于这次课程设计,我积极参与,获得了许多实践经验,还总结了一些解决问题的办法。
在这次课程设计中,我遇到了硬件及软件的多方面问题。
如硬件电路一些线路已断开,但是无法清楚地看见,这时需要借助万用表进行测试;一些地方还需要进行“飞线”处理;某些元器件应未焊接好,导致无法正常运行;编程过程中出现了多处错误久久没有被找出,使得课题进度被延后等。
但经过这些困难与问题,我们收获的不仅是一次单片机课程设计制作经历,还有面对问题敢于迎难而上的处事经验。
当然我的作品有很多不足的地方,比如结构比较简陋,外形不精美,显示界面比较单调,功能并不是很强大等。
希望将来的同学能增加更多的功能到这个项目中,并讲究工艺水平,使这个系统变得更酷、更富有艺术感。
4.5教学建议
记得这个学期上单片机第一堂课时,课堂上王老师的那句话“这个学期我会让大家过得充实”让我记忆特别深刻。
确实,这句话得到了验证,这个学期我们过得很充实。
虽然有时我们感觉很累,但就是在老师这种严格的要求下我们学到很多东西。
在此次课程设计,也正是由于老师渊博的知识、严谨的治学态度和敏锐的分析能力,使我们的课程设计顺利完成。
以下是我对老师的几点教学建议:
(1)、希望老师进一步加强与学生的交流;
(2)、希望老师在日后的教学中,多加强对我们动手能力的锻炼。
结束语
通过这次课程设计,加强了我们动手、思考和解决问题的能力。
同时我觉得做课程设计也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对其在电路中的使用有了更多的认识。
通过这段时间的设计,终于完成了基于单片机的数字电子钟的设计。
虽然在做的时候遇到一些困难。
但还是挺高兴的,毕竟这次设计所要求的东西都做了出来。
在本次设计的过程中,我们发现了很多的问题,虽然以前还做过这样的设计,但这次设计真的让我们长进了很多,单片机的设计重点就在于软件程序的设计,需要有很巧妙的编程方法。
在编程时,由于粗心大意,有些语句看似没问题,可就是不出效果,经仔细揣摩修改后,程序才正常运行。
学习单片机更是如此,程序只有在经常的写与读的过程中才能提高。
从这次的设计中,我们真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中;理论指导实践,在实践中对理论知识加以理解。
还要有独立思考能力和不耻下问的精神,个人能力固然重要,集体的力量更是伟大的。
总之对我们而言,知识上的收获固然重要,但精神上的丰收更加可喜。
挫折是一份财富,经历是一份拥有。
这次课程设计的过程必将成为我人生旅途上一个非常美好的回忆!
致谢
首先,我们要感谢我们的指导老师**对我们的指导和关怀。
他渊博的知识、严谨的治学态度和敏锐的分析能力,使我们受益匪浅。
同时,还要感谢电气与信息工程学院的实验组,为我们提供场地,设计制作作品,并在调试过程中提供了实验设备,让我们此次课程设计能够顺利完成。
正是由于他们给我们的帮助,让我们很快的进入了实际的工作。
最后,我们要感谢我们的家人﹑朋友和同学,他(她)们对我们的支持和付出是我们此次课程设计得以顺利进行的保障。
谢谢大家!
参考文献
[1]李广第,朱月秀,冷祖祁.单片机基础[M].北京:
北京航空航天大学出版社,2007.6
LiGuangfirst,ZhuYueXiu,LengZuQi.Singlechipmicrocomputerbased[M].Beijing:
Beijinguniversityofaeronautics&astronauticspress,2007.6
[2]康华光.电子技术基础模拟部分(第五版)[M].北京:
高等教育出版社,2006
kanguhguano.Electronictechnologyfoundationsimulationpart(fifthedition)[M].Beijing:
highereducationpress,2006
[3]阎石,数字电子技术基础(第五版)[M].北京:
高等教育出版社,2006
YanShi,digitalelectronictechnologyfoundation(fifthedition)[M].Beijing:
highereducationpress,2006
[4]邱光源.电路(第五版)[M].北京:
高等教育出版社,2006
QiuGuangYuan.Circuit(fifthedition)[M].Beijing:
highereducationpress,2006
附录
附录A:
数字电子钟原理图
附录B:
数字电子钟的PCB图
底层PCB图
顶层PCB图
丝印层PCB图
附录C:
元器件清单
物质名称
规格型号
数量(单位)
芯片
AT89S52
1块
数码管
LED
8块
三极管
9012
9个
电容
33pF
2个
电容
22μF
1个
印刷板
100*150
1块
按键
欧姆龙
10只
芯片插座
IC-40P
4块
芯片插座
IC-20P
2块
电阻
1K
3个
电阻
200
1个
限流电阻
470
24个
排阻
10K
2个
晶振
12MHz
1个
螺栓螺母
¢4
4套
附录D:
程序清单
;*******************************************************************
;项目名称:
数字式电子钟的设计
;设计者:
;设计日期:
;******************************************************************
;堆栈栈底80H;
;******************************************************************
;LED数码管显示器设定;
;P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a
;P2.0---P2.7位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
;显示缓冲区设定从右至左依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH
;********************************************************************
;数据存储器变量及常量单元定义;
;30H字节单元:
十进制数秒,压缩BCD码
;31H字节单元:
十进制数分,压缩BCD码
;32H字节单元:
十进制数时,压缩BCD码
;33H字节单元:
十进制数定时次数,压缩BCD码
;78H字节单元:
十进制数秒个位,非压缩BCD码
;79H字节单元:
十进制数秒十位,非压缩BCD码
;7BH字节单元:
十进制数分个位,非压缩BCD码
;7CH字节单元:
十进制数分十位,非压缩BCD码
;7EH字节单元:
十进制数时个位,非压缩BCD码
;7FH字节单元:
十进制数时十位,非压缩BCD码
;2FH.0位单元:
布尔量,S2键标志位
;2FH.1位单元:
布尔量,S3键标志位
;2FH.2位单元:
布尔量,S4键标志位
;2FH.3位单元:
布尔量,S5键标志位
;2FH.4位单元:
布尔量,S6键标志位
;2FH.5位单元:
布尔量,S7键标志位
;2FH.6位单元:
布尔量,S8键标志位
;2FH.7位单元