基于单片机的电子钟课程方案设计书Word文件下载.docx
《基于单片机的电子钟课程方案设计书Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子钟课程方案设计书Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
兰州交通大学自动化与电气工程学院
2013年3月7日
摘要
现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而达到计时的功能,是人民日常生活不可缺少的工具。
数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
关键词:
单片机;
电子时钟;
键盘控制
Abstract
Modernelectronicclockisbasedonatimingtool,usingthedelayprocedurehasacertaintimeinterrupt,isusedtodefineasecond,forafullsixtysecondsminutesintoonebycountingmode,fullsixhoursintoafulltwenty-fourhours,clear.Inordertoachievethefunctionoftiming,isindispensableinpeople'
sdailylifetool.Digitalelectronicclockintegratedcircuittiming,decodinginsteadofmechanicaltransmission,withLEDdisplayinsteadofpointerdisplayanddisplaythetime,reducethetimingerror,thistablewithsometimes,minutesandseconds,displaythefunctionoftime,canalsocarryoutandpointsproofreading,flexiblepiece.Herewewillhavelearnedmorescattereddigitalcircuitknowledgeoforganic,systemlinkforpractical,todevelopintegratedcircuitanalysisanddesignour,abilitytowriteprogram,debuggingcircuit.
Keywords:
singlechipmicrocomputer;
electronicclock;
thekeyboardcontrol
引言:
通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后显示0时0分0秒;
第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;
再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
1整体设计方案
1.1硬件总体设计
硬件系统总体设计如图2.1所示。
图2.1硬件系统总体设计
(1)功能芯片:
本次设计采用ATMEL公司生产的AT89C51芯片,低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
(2)电源和复位模块:
AT89C51需5V电压,所以可以采用USB接口的5V电源对其供电,复位电路采用按键脉冲复位
(3)显示模块:
该模块由8位8段共阳极数码管组成。
(4)键盘模块:
键盘由4个独立式按键组成,P0.0-P0.2键分别接在单片机的P1.0-P1.2口。
P0.3为复位键,接RST。
(5)时钟模块:
为了保证同步工作方式的思想,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。
如电路原理图中的晶振电路。
2数字钟的软件设计
2.1系统软件设计流程图
这次的数字电子钟设计用到很多子程序,它们的流程图如下所示主程序是先开始,启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间
图2.1主程序流程图
按键处理是先检测秒按键是否按下,秒按键按下,秒就加1;
如果没有按下,就检测分按键是否按下,分按键按下,分就加1;
如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;
如果没有按下,就把时间显示出来。
图2.2按键处理流程图
定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;
如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;
如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。
图2.3定时器中断流程图
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
图2.4时间显示流程图
2.2数字钟的原理图
用PROTUES软件,根据要求画出数字电子钟的原理图如下所示
图2.5数字钟的原理图
数字电子钟的工作原理:
数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。
8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。
数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。
“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。
“时单元”采用24进制计时器,可实现对一天24小时的累计。
2.3功能说明
1.开机时,显示00:
00:
00的时间开始计时。
2.P0.0为功能选择键,第一次按下开始计时,第二次按下计时停止并开始“分”的调整,第三次按下开始进行“时”的调整,按下第四次再次开始计时。
P0.1控制“分”的调整,每按一次加1分。
P0.2控制“时”的调整,每按一次加1个小时。
P0.3为复位键,按下后显示00:
00的时间。
2.4设计主程序
程序见附录1
2.5电子钟系统PROTUES仿真
用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示。
图5-1数字钟的PROTES仿真
结束语
我在这一次数字电子钟的设计过程中,很是受益匪浅。
通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对课程设计的思考及书面表达能力,最终完成了。
这为自己今后进一步深化学习,积累了一定宝贵的经验。
撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。
培养了我运用所学知识解决实际问题的能力。
通过这次课程设计我发现,只有理论水平提高了;
才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。
这个实验十分有意义我获得很深刻的经验。
通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。
我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。
学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。
这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。
参考文献
[1]王思明.单片机原理及应用系统设计.北京:
科学出版社,2012.:
64-103
[2]阎石.数字电子技术基础(第四版)北京:
高等教育出版社,1998.07:
42-56
[3]邱光源.电路(第五版).北京:
高等教育出版社,2006.05:
75-95
[4]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,2007.06:
26-55
附录一
ORG00H;
主程序起始地址
JMPSTART;
跳至主程序
ORG00H;
TIMER0中断起始地址
JMPTIM0;
跳至TIMER0中断子程序TIM0
START:
MOVSP,#70H;
设置堆栈在70H
MOV28H,#00;
显示寄存器初值为00
MOV2AH,#12H;
“时”寄存器初值为12H
MOV2BH,#00;
“分”寄存器初值为00H
MOV2CH,#00;
“秒”寄存器初值为00H
MOVTMOD,#00000001B;
设TIMER0为MODE1
MOVTH0,#HIGH(65536-4000);
计时中断为4000微妙
MOVTL0,#LOW(65536-4000)
MOVIE,#10000010B;
TIMER0中断使能
MOVR4,#250;
中断250次
SETBTR0;
启动TIMER0
LOOP:
JBP0.0,N2;
P0.0(秒)按了?
不是跳至N2检查P0.1
CALLDELAY;
消除抖动
MOVA,2CH;
将秒寄存器的值载入A
ADDA,#01;
A的内容加1
DAA;
做十进位调整
MOV2CH,A;
将A的值存入秒寄存器
CJNEA,#60H,N1;
是否等于60秒?
不是跳转至N1
MOV2CH, #00;
是则清除秒寄存器的值为00
N1:
JNBP0.0,$;
P0.0(秒)放开了?
N2:
JBP0.1,N4;
P0.1(分)按下了吗?
不是则跳至N4检查P0.2
MOVA,2BH;
将分寄存器的值载入A
MOV2BH,A;
将A的值存入分寄存器
CJNEA,#60H,N3;
是否等于60分?
不是则跳至