ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:559.82KB ,
资源ID:11299685      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11299685.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计数字电子钟.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计数字电子钟.docx

1、单片机课程设计数字电子钟单片机技术课程设计说明书 数字电子钟院 、 部: 电气与信息工程学院 学生姓名: 指导教师: 职称 讲师 专 业: 通信工程 班 级: 通信1202 班 完成时间: 2014年12月28日 摘 要 电子钟由于它的的简单方便受到人们的欢迎,所以设计一个简易数字电子钟很有必要。本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。 本次课程设

2、计是应用单片机芯片AT89S52设计出的数字时钟电路,整个系统以单片机作为中央控制器,硬件电路主要由三个部分构成,即:单片机最小系统、数码管显示电路、键盘控制电路。设计完成的作品具有时间显示、校正功能,走时准确、显示直观、运行稳定等优点,达到课程设计的性能指标。 本设计的优点是:1.能直观的从数码管显示器上读出时间信息;2.电路组成清晰明了,按键操作简单;3.相比于传统的指针式时钟,本产品误差很小,能耗小;4.软件编程采用 C 语言,可读性强;5.本设计采用的是可编程芯片 AT89S52,用户可根据自身的其他要求,重新导入新的程序,具有更新能力。 关键词: 电子钟;AT89S52;数码管;按键

3、 1 设计课题任务、功能要求说明及方案介绍 1.1 设计课题任务设计一个具有特定功能的电子钟,具有时间显示、报时等功能。并有时间设定,通过指示灯,来进行时间调整。1.2 功能要求说明 设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从00时00分00秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,按下功能选择键后,选择调时、调分、调秒,然后通过按加键、减键来修改时间。1.3 设计课题方案总体介绍及工作原理说明本设计基于单片机技术原理,以单片机芯片AT89S52作为核心控制

4、器,基于单片机的自身资源通过硬件电路的制作以及软件程序的编制,利用单片机的控制作用,通过八位七段式数码显示管直接显示“时-分-秒”时间信息,以及发光二极管的指示来实现相关的功能。设计课题的硬件系统框图如图1所示: 图1 数字电时钟硬件框图1.3.1 芯片(AT89S52) 图2 AT89S52 工作原理:单片机由运算器、控制器、存储器、输入输出设备构成。其中有中央处理器CPU,内部数据存储器,内部程序存储器,定时/计数器,并行IO口,串行IO口,中断控制电路,时钟电路,位处理,内部整线。1.3.2 独立按键电路 图3 按键电路 功能及作用:通过按键电路和软件编程可以实现单片机的多种功能,用起来

5、极其方便,实现功能多样化。1.3.3 复位电路 图4 复位电路 功能:关于单片机的复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机的复位电路作用是把一个例如状态机初始化到空状态。1.3.4 晶振电路 图5 晶振电路 功能:晶振可以说是单片机的时钟,有着固定稳固的频率,是一个标准,没有它的话,估计单片机的程序会乱跑,也有可能运行不了。1.3.5 电源电路 图6 电源电路 功能:此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。电源电路中一般接入了电源指示LED。1.3.6 下载口电路 图7 下载电路 功能:用PC的USB口供电,通过

6、下载口把程序导入单片机芯片内。下载口分别接在单片机的RST引脚以及P15、P16、P17口线上实现数据传送。1.3.7 LED显示电路图8 LED显示电路 功能:本设计采用的是LED数码管动态显示方式。采用八个共阴的数码管显示器进行显示,加上一个74HC573作为驱动和8个470的电阻起限流的作用。将段控口接在P2口上,位控口接在P1口上,实现对显示的控制。2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍2.1.1 单片机最小系统 本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。 (1)单片机最小系统模块:包括低功耗、高性能CM

7、OS8位微控制器AT89S52;复位电路;晶振电路。本模块AT89S52为控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。 (2)输入模块:本模块共用到了5个按键,1个电源开关,一个复位键,单片机运行期间,利用按键完成复位操作。4个按键独立式键盘,S1键控制电子钟的启动调整状态,S2键为加1键,S3键为减1键,S4为功能选择键。且S1、S2、S3、S4任一键都独自连一个I/O口,说明它们可以独立实现相应的电子钟功能。 (3)输

8、出模块:本次设计显示为8位,采用2个四位一体数码管(共阴极)作为显示窗口,既可以节约成本又能简化电路。同时设置各功能的指示灯,用以区分是时、分、秒这三者之一在做调整。 (4)电源模块:现在市面上销售的编程器有很多都是由PC机的USB口直接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的USB供电及下载器。2.1.2 设计课题电路原理图、PCB图此处电路原理图以及PCB原理图的绘制均使用AD软件完成,AD提供了一个集成的设计环境,包括了原理图设计和PCB布线工具,集成的设计文档管理,支持通过网络进行工作组协同设计功能。根据硬件接线要求设计绘制电路原理图及PCB。具

9、体电路原理图见附录A。PCB图见附录B。2.2 设计课题元器件清单 见附录D:元器件清单。3 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况设计课题使用单片机资源的情况如下: P0口输出数码管位控信号,P2口输出数码管段控信号;P1接独立式键盘;晶振12MHz,接单片机XT1和XT2口;启动键/停止键(实物图上左起第一个)P1.0;调整选择键(实物图上为左起第四个键)P1.3;通过选择键选择调整位;增加键(实物图上为左起第二个键)P1.1,按一次使选中位加1,长按会一直加1;(实物图上为左起第三个键)P1.2,按一次使选中位减1,同样长按会一直减1。3.2 设计课题软件系统个模块功

10、能简要介绍 本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。中断服务程序:通过AT89S52自身的资源,及定时器来实现定时一秒的功能。由于定时器比单纯的延时精确,所以会让设计的电子钟更精确,采用定时器0,用工作方式1,定时50ms,循环20次,就达到了1s。键扫描与处理程序:确认键是否按下,当有键按下时,得到相应的键值。方便主程序调用时取出键值。键功能程序:从键扫描程序得到相应的键值后按照键值执行相关的键功能程序。 数码管及其驱动模块:主要是用

11、于驱动数码管及利用数码管显示时间。 延时模块:由于本次设计采用的是数码管共阳极动态显示,P2口段控信号与P0口位控信号要保持协调才能把时分秒的信息完整的显示出来。由于视网膜暂留效应,通过调用10毫秒的延时程序,动态逐个点亮数码管。实现时间信息的显示。3.3 设计课题软件系统程序流程框图3.3.1 主程序流程框图 图9 主函数流程图 系统初始化后,数码管显示P.。调用键扫描程序,判断是否有键按下,当有键按下时,执行各键对应的键功能。3.3.2 显示程序流程框图图10 显示函数流程图 P2口控制段控,P0口控制位控,因为要用到八个数码管,所以设置i的初始值为1,在判断i的值是否为8,为8就结束。把

12、段控跟位控送给哪个数码管,被选中的数码管就显示相应的数值。3.3.3 时分秒转换程序流程框图: 图11 时分秒转换函数流程图 此流程图主要用来判断时是否等于24、分跟秒是否等于60,当满足这个条件时,都应清零。当秒等于60时,分要加1;当分达到60时,时要加1;当时为24时,所有清零。并且在最后要进行数据处理,送至数码管显示。3.3.4 键扫描与处理程序流程框图 图12 键扫描与处理函数流程图 此流程中首先是键处理的功能,主要是保存键值。然后判断按下的键的键值,执行相应的功能。3.3.5 键功能程序 流程框图 图13 键1功能函数流程图 此流程图主要是判断键值为1的键按下几次,当按下为一次时,

13、开定时器,时钟开始计时。当再按下一次时,关定时器。 图14 键2功能函数流程图 此流程图主要是说明键值为2的功能。当选择调整键选择时分秒中的一个,在按下键2时,选择调整位就会加1.当按下后一直不松开,那选择调整位会一直加1。同时,每加一次,都要进行判断是否达到了要清零的要求。图15 键4功能函数流程图 此流程图主要是说明键值为8的功能。当键按下一次时,选择调整位为时,当按下两次时,选择位为分,如果按下了第三次,则选择调秒。 图16 键3功能函数流程图 此流程图主要是说明键值为4的功能。对选择位进行减1操作,每减一次,都要判断是否为零,如果为零,就要给它相应的初值。然后进行数据处理。3.4 设计

14、课题软件程序清单 见附录E:软件程序清单。4 设计结论、仿真结果、误差分析4.1 设计课题的设计结论及使用说明本设计为基于单片机的电子钟的设计。设计中有三个按键,其中S1为启动/选择调整位置,S2为加控制键 S3为减控制键,S4为功能选择位。4.2 设计课题的仿真结果 图17 “P.”运行状态仿真 把程序导入仿真图中,数码管显示P.,如果不按任何键,数码管会一直显示P.,因为没有启动定时器,不会进行计数。图18 启动仿真结果 按下启动键后,定时器开启,时钟从00时00分00秒开始计时。 图19 时钟运行状态仿真 如果不按停止键,时钟会正常计时,当秒等于60时,分会加1,同时秒会清零;当分加到6

15、0时,时会加1,分清零;当时加到24时,时清零。4.3 设计课题的误差分析本设计是有误差的,但是肉眼是看不到的。通过理论分析,有三种可能:主程序调用显示函数,延时函数,键扫描函数,CPU执行相关的函数时需要时间,造成误差。由计时方案产生的误差:本设计采用中断方式计时1秒,在理论上说,查询产生的误差比中断要小,并且用的是方式1,误差也会比较大。并且在程序设计中,cout作为计时1秒的重要参数,当cout满20次时计时一秒。此过程中,cout由0增加到20,代码执行需要一定的机器周期,产生误差。硬件系统:由于元器件的布局,PCB走线的不同,产生一定的干扰。特别是在晶振高频信号的作用下,硬件系统可能

16、随之产生一定的误差。4.4 设计体会在本次课程设计中,经历了很长一段时间,老师很早就把课程设计的任务书发给了我们,然后给了我们很长的时间去选择自己要做的课题。理论知识的学习,老师的教导,加上实验课自己编程操作,让自己积累了很多经验。所以在这次设计中,从容地去解决遇到的问题,实在无法解决,就去问同学,跟同学一起讨论,上网XX相关知识。此次设计中,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能

17、力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。结束语 为期一学期的单片机课程学习就要结束了,经过本次课程设计后,才发现自己掌握的单片机很少很少。学习单片机技术不光学习单片机的理论知识,更要将其运用于生活实践当中。从当初做试验板,再到单片机实验,然后最后的电子钟课程设计。老师告诉了我们任务,期初是给我们制定了单片机学习要求。在理论授课中不断地教授我们相关设计的知识,督促我们完成任务。本次的电子钟的软件设计中发现了很多问题。在按键调整时间时,在没有释放键盘的状态下,数码管是灭的。在解决问题的过程中,我将问题定位在键扫描的缺陷。修改的方法是将键扫描程序中

18、的延时函数用显示函数代替。这样,CUP在执行键扫描时一直在调用显示函数,以免造成CPU不送有效地时间数据,长按键盘数码管不显示的情况。在时,分,秒的减1过程中,比如用时作为例子,当时减到0时,如果在减1时,本应该为23,但出现了乱码,在一次又一次的修改,调试中,才解决了这个问题。有的时候,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。每次编写程序,都要把程序下载在实物中看结果,然后通过结果来分析我程序的错误跟漏洞,又或者是在KEIL软件中调试,查看哪里错误。非常感谢老师对我的教导跟帮助,同时也感谢同学对我的帮助,才能让我完成得比较顺利。在这次设计中,让我学到了很多,理论与实际是要

19、相结合的,那样才会有完美的结果。致 谢 通过自己不断地努力,我的课程设计告一段落。 在本次课程设计过程中,感谢我的学校,给了我学习的机会,在学习中,凌云老师从选题指导、论文框架到细节修改,都给予了细致的指导,提出了很多宝贵的意见与建议,老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。 这次课程设计是在老师的精心指导和大力支持下才完成的。感谢所有授我以业的老师,老师的指导跟教诲,让我掌握了知识,才有能力去攻克难关。感恩之余,诚恳地请各位老师对我的论文多加批评指正。同时,我感谢我身边的同学,朋友。在这个设计过程中,我遇到了很多困难,有了

20、她们的帮助,我才能顺利的完成了相关的设计作业。谨以此致谢最后,我要向百忙之中抽时间对本文进行审阅的凌云老师表示衷心的感谢。参考文献1代启化.基于Proteus的电路设计与仿真J.现代电子技术.2006,第19期. Dai QiHua.Proteus-based circuit design and simulation J. Modern electronic technology.2006,No.192刘文秀.单片机应用系统仿真的研究J.现代电子技术.2005, 第286 期. Liu WenXiu .Microcontroller Application System Simulation

21、 JModernelectronic technology.2005,No.2863曹巧媛.单片机原理及应用M,北京:电子工业出版社,1997.7. Cao QiaoYuan.Microcontroller Theory and Applications M, Beijing: ElectronicIndustry Press, 1997.7.4张洪润.兰清华,单片机应用技术教程M,北京:清华大学出版社,1997.11. Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial M, Beijing: singhua Uni

22、versity Press, 1997.11.5李广弟.单片机基础M,北京:北京航空航天大学出版社,2007.100154 Li Guangdi. microcontroller based on M, Beijing: Beijing Aerospace University Press, 2007.100154附 录附 录A:电路原理图附 录B: PCB图 附 录C:仿真原理图附 录D:元器件清单 元器件名称 规格 数目AT89S52单片机AT89S52单片机芯片锁紧座四位一体共阳数码管四位一体共阳数码管插座74HC57374HC573芯片插座晶振发光二极管单排插针三极管蜂鸣器小按键下载口

23、座子六脚按键电源开关USB电源线USB电源线插座电阻电阻电阻电解电容瓷片电容排阻排阻短路冒杜邦线8PPCB板子固定螺钉螺帽USB下载线 40P 40P 40P 20P 20P 12MHz 40P 9012 200 470 1K 22uf 33pf 10k 470 3mm11211119211101111184224141141附 录E:程序清单/*程 序 名:电子钟编写者:曾霞玲指导老师:凌云时间:2014.10.25功 能 :系统提示数码管显示P.。只有按下启动/停止键S1,定时器开始启动,电子 钟开始计时,当再次按下停止键时,可以按下功能选择键S4,可以调时、调分、调秒。当长按S2时,会一

24、直加一,当长按S3时,会一直减一。*/#include#includedelay.h#includedisplay.h#includekey.h#define uchar unsigned char#define uint unsigned intsbit P3_1=P31; /调时指示灯 sbit P3_2=P32; /调分指示灯sbit P3_3=P33; /调秒指示灯sbit P3_7=P37; /启动/停止指示灯uchar find_code8;uchar sec=0,min=0,hour=0;uchar count=0,v,i,z,x,c;void main() EA=1; /打开中

25、断使能位 ET0=1; /打开定时中断1使能位 PT0=1; /设置定时中断1服务优先级 TMOD=0x01; /设置定时器1为工作模式1 TH0=(65536-50000)/256; /设置定时为50ms的计数初值 TL0=(65536-50000)%256; TR0=0; while(1) find_code0=10; /缓冲数组赋初值 find_code1=12; find_code2=12; find_code3=12; find_code4=12; find_code5=12; find_code6=12; find_code7=12; display(); v=key(); if(

26、v=1) while(1) biaohao: /设定返回标号 P3_1=1; /启动/停止键指示灯亮,其他熄灭 P3_2=1; P3_3=1; P3_7=0; TR0=1; /打开定时器0 find_code0=sec%10; /更新缓冲数组 find_code1=sec/10; find_code2=13; find_code3=min%10; find_code4=min/10; find_code5=13; find_code6=hour%10; find_code7=hour/10; display(); v=key(); if(v=1) /当按键一按下 while(1) P3_7=0

27、; TR0=0; /关闭定时器0 display(); v=key(); switch(v) case 0:display();break; case 8:while(1) biaoji: /设定返回标号值 P3_1=0; P3_7=1; z=keylianjia(); find_code0=sec%10; find_code1=sec/10; find_code3=min%10; find_code4=min/10; find_code6=hour%10; find_code7=hour/10; for(i=0;i62&(z=0|z=16|z=32|z=64);i+) P3_1=1; P3_2=1; P3_3=1; display(); z=keylianjia(); find_code6=12; find_code7=12; for(i=0;i23) hour=0; display(); break; case 4:hour

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1