单片机设计数字电子钟.docx
- 文档编号:29857228
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:31
- 大小:344.31KB
单片机设计数字电子钟.docx
《单片机设计数字电子钟.docx》由会员分享,可在线阅读,更多相关《单片机设计数字电子钟.docx(31页珍藏版)》请在冰豆网上搜索。
单片机设计数字电子钟
《单片机技术》课程设计说明书
数字电子钟
系、部:
学生姓名:
指导教师:
职称
专业:
班级:
完成时间:
2012-10-16
《单片机技术》课程设计任务书
一、设计题目:
数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。
二、适用班级:
三、指导教师:
四、设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
五、设计内容与要求
设计内容
1、数字电子钟
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
2、数字频率计
设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。
该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。
3、数字电压表
设计一个能够测量直流电压的数字电压表。
测量电压范围0~5V,测量精度小数点后两位。
该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。
4、交通灯
设计一个具有特定功能的十字路口交通灯。
该交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
按开始键则开始工作,按结束键则返回“P.”状态。
要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。
有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。
5、抢答器
设计一个具有特定功能的抢答器。
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。
蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
6、密码锁
设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
7、波形发生器
设计一个具有特定功能的波形发生器。
该波形发生器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该波形发生器可以分别产生幅值0~5V、频率100Hz~100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。
8、数字温度计
设计一个具有特定功能的数字温度计。
该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
测量温度范围0℃~99℃,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。
9、计算器
设计一个具有特定功能的计算器。
该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
能实现
(1)基本的加、减、乘、除、平方、开方;
(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。
10、数字式秒表
设计一个具有特定功能的数字式秒表。
该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该数字式秒表应具有开始、暂停、连续、清零和停止功能。
设计要求
1、以上课题可以任选其一或多选,学生也可以自拟课题;
2、编程语言:
汇编或C51;
3、计算机打印《单片机技术》课程设计说明书一份;
4、设计时间:
两周;
5、实物制作;
6、人员分组:
一人一组一实物。
六、《单片机技术》课程设计说明书正文主要内容
参照“《单片机技术》课程设计说明书正文主要内容”文件。
七、《单片机技术》课程设计说明书书写规范格式
参照“《单片机技术》课程设计说明书书写规范格式”文件。
八、参考资料
1、马忠梅,单片机的C语言Windows环境编程宝典[M],北京:
北京航空航天大学出版社,2003.6;
2、李光飞,单片机C程序设计指导[M],北京:
北京航空航天大学出版社,2003.01;
3、李光飞,单片机课程设计实例指导[M],北京:
北京航空航天大学出版社,2004.9。
电气自动化教研室
2012年9月10日
摘要
本文采用了单片机最小系统,从数字电子钟设计的原理出发,采用LED数码管显示“时”、“分”、“秒”,以24小时或12小时计时方式,根据数码管动态显示原理来进行显示,采用12MHz的晶振产生振荡脉冲,单片机定时器定时。
在此次设计中,电路具有显示时间的基本功能,还可以进行时间的调整。
数字钟是其小巧、价格低廉、走时精度高、功能多而受广大消费者的喜爱,因此得到了广泛的使用。
关键词:
数字电子钟;单片机
ABSTRACT
Thedigitalelectronicclockdesign,weuseLEDdigitaldisplay"when","sub","seconds",in24hoursor12hoursTimingmode,accordingtothedigitalcontroltheorytodynamicdisplaytodisplay,usinga12MHzcrystaloscillationpulse,single-chiptimerWhenthetimercount.Inthisdesign,thecircuithasshownthebasicfunctionsoftime,canalsobetimetoadjust.DigitalclockistheSmall,lowcost,traveltimeandhighprecision,multi-functionandbythemajorityofconsumers,ithasbeenwidelyused.
Keywordsdigitalelectronicclock;microcomputer
目录
1设计任务和方案1
1.1设计任务1
1.2功能要求说明1
1.3设计课题总体方案及工作原理说明1
2数字电子钟的硬件系统的设计2
2.1硬件系统各模块功能设计2
2.2电路原理图、PCB图和元器件布局2
2.3元器件清单2
3数字电子钟的软件系统的设计3
3.1使用的单片机资源的情况3
3.2各模块功能简要介绍3
3.3程序清单3
3.4程序的流程图4
4设计结论及教学建议9
4.1设计结论和使用说明9
4.2实物显示结果9
4.3误差分析10
4.4设计体会和教学建议10
结束语12
参考文献13
致谢14
附录15
附录1电路原理图:
15
附录2PCB顶层图:
16
附录3PCB底层图:
17
附录4PCB元器件布局图:
18
附录5数字电子钟程序清单:
19
1设计任务和方案
1.1设计任务
(1)设计题目:
数字电子钟
(2)设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
1.2功能要求说明
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
1.3设计课题总体方案及工作原理说明
设计中采用AT89S52芯片及LED显示器,一些独立式按键构成一个简单的数字电子钟。
设计中是采用单片机的内部定时器进行定时,程序框图如图1所示。
整个电子钟的工作原理是:
在正常的供电状态下,首先利用单片机定时,到了相应的时间由单片机将所需要显示的数据送到LED显示器的输入口,当有键按下时则进入相应的按键显示和调整状态,进行按键调整。
图1总的设计的框图
2数字电子钟的硬件系统的设计
2.1硬件系统各模块功能设计
该数字电子钟由单片机最小系统、键盘模块、LED显示电路模块、USB接口电路模块、下载口模块组成。
各模块的功能如下:
(1)单片机最小系统
由AT89S52单片机、时钟电路和复位电路构成。
AT89S52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
时钟电路由一个12MHZ的石英晶体振荡器和两个33pF的的电容组成振荡电路和分频电路,为单片机提供内部时钟。
复位电路采用上电复位和按键复位结合的方式对电路进行复位。
(2)键盘模块
采用独立式键盘接法,共有五个按键来对电路进行控制。
分别接在单片机的P1口线上。
一个键控制复位,一个键控制启动暂停,另外三个键分别调秒、分和时。
(3)LED显示电路
采用八个共阳的数码管显示器进行显示。
将段控口接在P0口上,位控口接在P2口上,实现对显示的控制。
(4)USB接口电路接上一个电容组成的滤波电路和电源显示灯组成一个电源接口,为单片机工作供电。
(5)下载口模块用于将用Keil生成的hex文件下载到单片机中。
2.2电路原理图、PCB图和元器件布局
采用Protel软件,Protel99SE是Protel公司近10年来致力于Windows平台开发的最新结晶,能实现从电学概念设计到输出物理生产数据,能够和形象的画出我们所要设计的产品。
电路原理图和PCB图及元器件布局见附录A。
2.3元器件清单
见附录
3数字电子钟的软件系统的设计
3.1使用的单片机资源的情况
该数字电子钟用到了单片机的定时器的功能,此外用到了单片机的中断功能,在数据的显示时所采用的是查表的方法,因此需要将表格、数据存到单片机的程序存储器中去。
由于电子钟需要可以进行调节,因此,需要在单片机的P口上加上按键,设计采用独立式键盘,直接接在P1口上且按键的结果存贮在单片机的内部数据存储器里面。
用到的LED显示器接到了单片机的P0口线上和P2口线上。
3.2各模块功能简要介绍
该数字电子钟所用的软件模块有系统监控程序模块、子程序模块、按键模块、定时器模块、中断服务程序模块。
(1)系统监控程序模块
即主程序,用于对输入信号的处理和输出信号的控制和对各个功能模块的处理。
(2)子程序模块
子程序包括键盘扫描子程序、数码管显示子程序和延时程序。
键盘扫描子程序用于确定按键及其相应的键值处理;数码管显示子程序用于控制数码管的显示,以准确的显示时间;延时子程序是数码管动态显示中必要的一部分,因此我们才能看到时间稳稳的显示在数码管上。
(3)按键模块
采用独立式键盘,共用五个按键对电路进行控制和操作,分别为key1、key2、key3、key4、key5来控制电子钟的开/关和调整。
(4)定时器模块选择定时器0,设置定时方式为方式1,设置定时时间为50mS。
(5)中断服务程序模块主要用于实现电子钟的准确运行。
3.3程序清单
见附录
3.4程序的流程图
(1)整体设计流程图
图2整体设计流程图
(2)显示子程序流程图
图3显示子程序流程图
(3)键盘设计流程图
图4键盘设计流程图
(4)显示设计流程图
图5显示时分秒设计流程图
(5)中断服务程序流程图
图6中断服务程序流程图
4设计结论及教学建议
4.1设计结论和使用说明
(1)设计结论
通过对单片机进行外接键盘和LED数码管的操作以及加上硬件电路和软件的结合,实现了该数字电钟显示时分秒的显示,同时还可实现对该电子钟进行调整的功能。
通过测试和仿真以及修改,该电子钟最终能正常的工作。
(2)使用说明
(1)时间显示:
电子钟上电后,8个数码管显示初始状态即最左边的一个数码管显示P.。
如果未显示P.,只需按一下复位键即可使其显示出P.。
按下S2键后电子钟进入自动计时状态,电子钟显示00时00分00秒并开始运行。
(2)时间调整:
若要进行时间调整,则需再次按下S2键,进入时间暂停调整状态,然后按下S3键进行时钟的加一,按下S4键进行分钟的加一,按下S5键进行秒钟的加一,调整好时间后,按下S2键就可以回到调整好的时间为基础的自动计时状态。
无论是在自动计时,还是在调整校正时,都可按下复位键使系统回到显示P.的初始状态。
4.2实物显示结果
4.2.1待机
上电复位或者按键复位后“P.”的显示(如图7所示)
图7数字电子钟上电时显示图
图8数字电子钟工作时显示图
4.2.2启动
按下S2键后“00-00-00”的显示(如图8所示)
图8启动
4.2.3运行
按下S3、S4、S5可分别进行调时、调分、调秒,运行时的显示(如图9所示)
4.3误差分析
本数字电子钟在跟标准的电子钟比较时,时间稍微慢一点,产生此种情况的原因有:
其一是在执行程序指令时,由于需要耗费一定的时间,因此会比标准的电子钟要慢一点。
其二是晶振不够标准,使得定时器定时时不够精准。
4.4设计体会和教学建议
从硬件电路的设计到选题,再到软件电路的设计,整个过程当中我学到了很多的东西,在老师的细心指导,耐心分析下,我把整个思路理清,并开始了设计的规划,在原理图的绘制时我查找了相关软件的使用方法,例如在网上找视频教程,并悉心向老师和同学请教,终于学会对PROTEL和PROTEUS的使用;在熨的时候没把握好,结果出现了很多的断点,只能一个一个查,一个一个补,麻烦很大,工作量也很大,而且很容易疏忽,所以将图纸熨到板子上时一定要熨的均匀,把握好时间和力度。
打孔时一定要对准,不要太急,慢慢来。
插元器件的时候一定要把每个元器件的引脚搞清楚,插之前要用万用表测好每个引脚是该接地还是该接电源,千万不能插反了。
焊接的时候要标准不能产生虚焊,也不要遗漏,要均匀,焊锡不能太多也不能太少,否则在以后很容易出现问题。
到最后就是检查电路的连接了,搞清楚整个电路的连接时怎么样的,当显示器不亮的时候可以采用软件检查法或者硬件检查对板子进行测试,这个过程中一定要细心且要有耐心,不要灰心,相信自己一定能找出原因,只要自己持之以恒肯定能把错误找出来并纠正。
在对板子进行测试的时候出现了很多的错误,花了一整个下午的时间来查找电路的错误,首先是电源指示灯不亮,灯座接反了,然后是显示器不亮,最后通过用万用表对电路进行测试最终让电子钟正常的工作了,第二个错误的主要原因是熨的时候太多的断点没补好,以及在焊接的时候出现了很多的虚焊,导致某些段控口和位控口的不可用,因为是第一次做板子,所以之前很多该注意的地方都没有注意,最后留下一大堆得问题,使得整个制版的过程耗费很多的时间和精力。
从中我学会了很多,包括原理图的绘制,程序的设计,PCB的绘制,还有板子的制作,更重要的是我懂得了,要做好一个东西,准备工作是不可少的,这样才能减少后面不必要的麻烦,而且遇到困难和麻烦一点要有耐心和信心去把它解决掉,而不是放任不管。
最后,想说老师保持这种教学方法一直下去就好,认真负责的态度会让学生收获很多,循序渐进的教学方法能让学生比较容易的接受所学内容并有兴趣一直学下去,这点真的很好。
结束语
我在这次单片机课程设计中,很是受益匪浅。
通过对自己在本学期里所学知识的回顾,并充分发挥对所学知识的理解,最终实现了数字电子钟显示时分秒,并且能对时分秒进行调整。
这为自己今后进步一步深化所学,积累了宝贵经验。
编写课程设计也是专业知识的学习过程,它使我运用已有的专业基础知识,培养了我运用所学知识解决实际问题的能力。
将本设计的程序下载到单片机中,通过测试,基本上完成了任务书的要求,并且显示的时间精确度也比较高,当然,也存在少许误差,例如本数字电子钟在跟标准的电子钟比较时,时间稍微慢一点,产生此种情况的原因有:
其一是在执行程序指令时,由于需要耗费一定的时间,因此会比标准的电子钟要慢一点。
其二是晶振不够标准,使得定时器定时时不够精准,这是不可避免的。
通过这个数字电子钟,我们还可以实现让它显示日期,万年历以及闹钟的功能。
参考文献
[1]唐俊瞿,许雷,张群瞻.单片机原理与应用[M].北京:
冶金工业出版社,2003.
[2]李广弟,朱月秀,冷祖祁.单片机基础[M].第3版.北京:
北京航空航天大学出版社,2007.
[3]李光飞.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004.9.
[4]马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计[M].第四版.北京:
北京航空航天大学出版社,2006.11.
致谢
在这里我要感谢很多很多人,帮助分析和解决问题,这是我第一次做这方面的课程设计,而且是比较成功的板子,这些都是在老师和同学们的悉心指导下才能做出的成绩。
在画原理图的时候,当我不知道如何下手时,寝室的同学就把他们从网上下载下来的视频教程给我看,让我学习,在不懂的地方的时候,他们都耐心的教我。
在做实物板子的时候,同学帮忙到处借打孔机,到市区买氯化铁,虽然在每一步都出了很多的问题,但经过那些曾经做过板子的有经验的指导,还是把一个个困难攻破了,真的很感谢你们。
在开始选题的时候,王老师悉心的指导和讲解,让我渐渐有自己的方案和选择方向。
在每一步的进展当中,我都碰到了很多的问题,画原理图的时候分析电子钟工作的原理以及怎么确定和修改,都是在王老师的指导和同学的帮助下,经过一步步修改而成的,设计软件的时候,因为是设计一个系统的程序,所以开始还没形成系统的思维,但在老师的讲解和同学的教导下,渐渐的将一个个子程序联系起来调试运行。
,所以整个过程都是在王老师和同学的鼓励和帮助下完成的,在此衷心的感谢他们对我的帮助和支持。
附录
附录1电路原理图:
附录2PCB顶层图:
附录3PCB底层图:
附录4PCB元器件布局图:
附录5数字电子钟程序清单:
ORG0030H
MAIN:
MOVSP,#7FH;确立堆栈区
MOVPSW,#00H;初始化PSW,通用寄存器组0
MOVR0,#20H;RAM区首地址
MOVR7,#96;RAM区单元个数
ML:
MOV@R0,#00H
INCR0
DJNZR7,ML
TSF:
MOVDPTR,#DISBH;“P.”字符代码表首地址
MOVR5,#08H
MOVR0,#78H
DISPTSF:
CLRA
MOVCA,@A+DPTR
MOV@R0,A;字符序号送显缓
INCR0
INCDPTR
DJNZR5,DISPTSF
MOVTMOD,#01H;定时器0以方式1工作
CLREA;关总中断
CLRET0;关定时器0中断
CLR21H.0
PUSHPSW
CLRRS1;改变当前寄存器组为组1
SETBRS0
MOVR3,#1EH;“二十分频器”赋初值20
POPPSW;恢复当前寄存器组的组号
DD:
LCALLDISP
LCALLKEY
JB20H.0,BG;为1转移
LJMPDD
;
BG:
MOVHTEN,#00H
MOVHONE,#00H
MOV7AH,#012H
MOVMTEN,#00H
MOVMONE,#00H
MOV7DH,#012H;显缓、时间值缓冲区、各“中转站”
MOVSTEN,#00H
MOVSONE,#00H
MOVHOUR,#00H
MOVMIN,#00H
MOVSEC,#00H
MOVHIG,#00H
LCALLTTX;调时间值送显缓子程序
SETBEA;开总中断
SETBET0;开定时器0中断
SETBPT0;定时器0优先级最高,其余为低优先级
SO:
MOVTH0,#6FH;赋定时器初值
MOVTL0,#0FFH
SETBTR0;开定时器
LOOP:
LCALLDISP;调显示子程序
LCALLKEY;调键扫子程序
JB20H.0,STOP;判断S3键(停止键)是否按下
LJMPLOOP
;停止键(S2键)功能程序
STOP:
CLRTR0
LCALLDISP;调显示子程序
LCALLKEY;调键扫子程序
JB20H.0,SO;S2键按下,跳至赋SO继续计时
JB20H.1,AH;S3键按下,跳至(S3键)功能程序
JB20H.2,AM;S4键按下,跳至(S4键)功能程序
JB20H.3,AS;S5键按下,跳至(S5键)功能程序
LJMPSTOP
;调时键(S3键)功能程序
AH:
PUSHPSW
CLRRS0;改变当前寄存器组为组2
SETBRS1
MOVR0,#HTEN;将加一子程序AD入口参数定为“时”
MOVA,HOUR
CJNEA,#23H,H;为23则跳至重赋时间值程序
LJMPRSETH
H:
LCALLAD;不为23,调加一子程序AD
MOVHOUR,R2;更新时(压缩BCD码)
LCALLTTX;调时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 设计 数字 电子钟