基于单片机控制的电子时钟毕业设计论文_第1页
基于单片机控制的电子时钟毕业设计论文_第2页
基于单片机控制的电子时钟毕业设计论文_第3页
基于单片机控制的电子时钟毕业设计论文_第4页
基于单片机控制的电子时钟毕业设计论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课题名称:基于单片机的电子钟的设计专业名称: 自动化 单片机技术课程设计任务书一、设计题目:基于单片机的电子钟的设计、基于单片机的频率计的设计二、适用班级:自本04010403三、指导教师:四、任务与要求:1、本课题任务如下:(1)、基于单片机的电子钟的设计设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“p.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。(2)、基于单片机的频率计的设计设

2、计一个能够测量矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“p.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。2、本课题可选择设计方案如下:(1)、基于单片机并行口的设计在at89s52的p0口和p2口上外接led数码管显示器,p0口作led数码管显示器的段控口,p2口作led数码管显示器的位控口,p1口外接四个按键a、b、c、d。(2)、基于单片机串行口的设计将at89s52的串行口扩展成并行口,外接led数码管显示器;p1口外接四个按键a、b、c、d。(3)、基于in

3、tel 8279的设计利用intel 8279芯片为at89s52扩展并行口,通过intel 8279外接led数码管显示器和四个按键a、b、c、d构成的键盘。(4)、基于intel 8155的设计利用intel 8155芯片为at89s52扩展并行口,通过intel 8155外接led数码管显示器和四个按键a、b、c、d构成的键盘。(5)、基于intel 8255的设计利用intel 8255芯片为at89s52扩展并行口,通过intel 8255外接led数码管显示器和四个按键a、b、c、d构成的键盘。3、本课题基本要求如下:(1)、基于单片机的电子钟的设计led数码管显示器显示当前时间;

4、四个按键的功能:a键用于电子钟启动/调整;b键用于调时,范围0-23,0为24点,每按一次时加1;c键用于调分,范围0-59,0 为60分,每按一次分加1;d键用于调秒, 范围0-59,0为60秒,每按一次秒加1;(2)、基于单片机的频率计的设计led数码管显示器显示被测信号的频率、周期、脉宽、占空比;四个按键的功能:a键用于测量频率;b键用于测量周期;c键用于测量脉宽;d键用于测量占空比;(3)、以上两个课题可以任选其一或全选,学生也可以自定课题;(4)、编程语言:汇编或c51;(5)、计算机打印单片机技术课程设计说明书一份;(6)、设计时间:二周;(7)、实物制作或proteus仿真;(8

5、)、人员分组:一人一组或多人一组(不超4人)。五、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主要内容”文件。六、单片机技术课程设计说明书书写格式 参照“单片机技术课程设计说明书书写格式”文件。七、参考资料1、曹巧媛,单片机原理及应用m,北京:电子工业出版社,1997.7;2、赵秀珍,单永磊,单片微型计算机原理及其应用m,北京:中国水利水电出版社,2001.8;3、张毅刚,修林成,胡振江,mcs-51单片机应用设计m,哈尔滨:哈尔滨工业大学出版社,1990.8;4、张洪润,兰清华,单片机应用技术教程m,北京:清华大学出版社,1997.11;。5、李华,mcs-51系列

6、单片机实用接口技术m,北京:北京航空航天大学出版社,1993.8;6、陈景初,单片机应用系统设计与实践m,北京:北京航空航天大学出版社;7、马忠梅,单片机的c语言windows环境编程宝典m, 北京:北京航空航天大学出版社,2003.6; 8、李光飞,单片机c程序设计指导m,北京:北京航空航天大学出版社,2003.01 ;9、李光飞,单片机课程设计实例指导m,北京:北京航空航天大学出版社,2004.9。 电气自动化教研室 2007年9月10日摘 要时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为

7、人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机at89s52芯片和led数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能等特点。该电子钟可以做到的功能:上电或按键复位后能自动显示系统提示符“

8、p.”进入时钟准备状态2.第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态。再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。通过设置的a、b、c、d四个键来调整运行,并且利用了8位led显示时分秒。此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示“p”点以及时分秒的计时,算是一次比较成功的设计了。关键词:电子钟,单片机,汇编目 录第1章 电子钟功能及总体方案的介绍11.1电子钟功能介绍11.1.1基本功能要求11.1.2扩展功能要求11.2总体方案介绍21.2.1计时方案21.2

9、.2键盘/显示方案2第2章 电子钟的工作原理32.1实现时钟计时的基本方法32.2电子钟的时间显示32.3电子钟的启、停及时间调整3第3章 电子钟原理图及元件清单43.1电子钟电路原理图43.2元件清单4第4章 软件系统设计54.1电子钟程序流程框图54.1.1主程序流程框图54.1.2键扫子程序流程框图64.1.3中断服务程序流程框图74.1.5显示子程序流程框图94.1.6加一子程序流程框图104.2电子钟总体程序清单11第5章 电子钟的使用说明及调试运行195.1使用说明书195.1.1操作说明195.2电子钟运行结果195.2.1待机195.2.2启动195.2.3运行20第6章 误差

10、分析21第7章 设计体会22教学建议23参考资料24附 录25致 谢26第1章电子钟功能及总体方案的介绍1.1电子钟功能介绍1.1.1基本功能要求 可调整运行的电子钟具有三种工作状态:“p.”状态、运行状态、调整状态。 (1)、“p.”状态,依靠上电或按复位键进入,在此状态下,按b、c、d键均无效,按a键有效,进入运行状态; (2)、运行状态,按奇数次a键进入,在此状态下,按b、c、d键均无效,只有按a键有效,按下a键后,退出运行状态,进入调整状态; (3)、调整状态,按偶数次a键进入,在此状态下,按a、b、c、d键均有效。如按下a键,则退出调整状态,进入运行状态;按下b、c、d键,则分别对时

11、、分、秒加1,调整结束后必须按a键,即可退出调整状态,进入运行状态。基本功能要求: “p.”稳定地显示在led显示器的最左端数码管(led5)上,无a键按下(在“p.”状态下,按下b、c、d键无效),则不进入电子钟的运行状态,继续显示“p.”。 按下a 键后,电子钟以起始时间:00时00分00秒开始运行。 再次按下a 键后,电子钟退出运行状态,进入调整状态,利用b、c、d键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下a键,电子钟则退出调整状态,进入运行状态。 注意:每次按下b、c、d键,只允许加一,不允许连加。1.1.2扩展功能要求 (1)、在调整状态下,按下b、c、d键,允

12、许连加,而a键无论在何种状态下,均不允许连击; (2)、时、分、秒的间隔符“。”以一定频率闪烁; (3)、时间显示以“灭零”方式进行; (4)、可调整运行的电子钟用两个按键(例如:a键、b键)来控制。1.2总体方案介绍1.2.1计时方案利用at89s52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。1.2.2键盘/显示方案at89s52的p0口和p2口外接由六个led数码管(led5led0)构成的显示器

13、,用p0口作led的段码输出口,p2口作六个led数码管的位控输出线,p1口外接四个按键a、b、c、d构成键盘电路。at89s52 是一种低功耗,高性能的cmos 8位微型计算机。它带有8k flash 可编程和擦除的只读存储器(eprom),该器件采用atmel的高密度非易失性存储器技术制造,与工业上标准的80c51和80c52的指令系统及引脚兼容,片内flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。简易电子钟的功能不复杂,采用其现有的i/o便可完成,所以本书中采用此的设计方案,结构如图1-1如示。11 at89s52电路显示方框图第2章电子钟的工作原理2.1实现时钟计时的基

14、本方法利用mcs-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。(1) 计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。假设使用t/c0,方式1,50ms定时,fosc=12mhz。则初值x满足(216-x)1/12mhz12s =50000sx=1553600111100101100003cb0h(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。2.2电子钟的时间显示电子钟的时钟时间在六位数码管上进行显示,因此,在内部ram

15、中设置显示缓冲区共8个单元。 led8led7led6led5led4led3led2led137h36h35h34h33h32h31h30h时十位时个位分隔分十位分个位分隔秒十位秒个位2.3电子钟的启、停及时间调整电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。a键控制电子钟的启、停;b键调整时;c键调整分;d键调整秒。第3章 电子钟原理图及元件清单3.1电子钟电路原理图电子钟原理图 (见附录1)3.2元件清单电子钟元件清单如表1所示:表1电子钟元器件清单元件名称规格型号数量(个)单片机at89s521显示驱动芯片74ls24528位一体的共阳led显示器7seg-mpx8-c

16、a-blue1晶振12mhz1电容33pf2电容22f1按键button5电阻0.2k1电阻1k1上拉电阻10k4限流电阻0.1k8排阻respack-8/10k1第4章软件系统设计4.1电子钟程序流程框图4.1.1主程序流程框图图4-1主程序流程框图 见图4-1所示 4.1.2键扫子程序流程框图 见图4-2所示 图 4-2 键扫子程序流程框图程框图4.1.3中断服务程序流程框图 见图4-3所示 4-3中断服务程序流程框图4.1.4“p.”点显示子程序流程框图见图4-4所示图4-4 “p.”点显示子程序流程框图4.1.5显示子程序流程框图 见图4-5所示4.1.6加一子程序流程框图 见图4-6

17、所示图 4-6 加一子程序4.2电子钟总体程序清单org 0000hajmp mainorg 000bhljmp intt0org 0030hmain: mov sp, #60h;确立堆栈区 mov psw, #00h ; mov r0, #20h ;ram区首地址 mov r7, #5fh ;ram区单元个数ql: mov r0, #00h ;ram清零 inc r0 djnz r7, ql mov ip, #02h ;ip初始化,优先定时器0 mov ie, #82h ;ie初始化, mov tmod, #01h ;定时器0方式1工作lcall pp;调p.子程序next: lcall k

18、ey ;按键检测子程序 jbacc.0, runf ;a键按下运行 lcall disp ;调用显示子程序 sjmp nextrunf: lcall outt;调传送子程序 lcall time;开电子钟jk: lcall disp;调用显示子程序 lcall key ;按键检测子程序 jz jk lcall ankey lcall disp ;调用显示子程序 sjmp jk; p点显示 ;pp: mov 37h, #12;p点编码送寄存器 mov r0, #30h;p点编码送寄存器 mov r7, #07hppp: mov r0, #10 inc r0 djnz r7, ppp ret; 键

19、扫子程序 ;key: lcall keys ;调键值处理子程序jz exit ;没有键按下转到返回 lcall disp lcall disp ;调显示去抖动lcall keys jz exitmov b, 20h ;保存键值keysf: lcall keys ;调键值处理子程序jz keyy ;键释放,转到恢复键值lcall disp ;调显示子程序延时ajmp keysf ;等到键释放keyy: mov a, b ;键值送20h单元保存exit: ret ;返回keys:mov p1, #0ffh ;先向p1口写1mov a, p1 ;p1口值送累加器acpl a ;a值取反anl a,

20、#0fh ;保存p1口的低4位mov 20h, a ;a值送20h保存ret; 键功能子程序 ;ankey: clr ea;关中断check: jb tr0, yxz;判断是否运行k0: cjne a, #01h, k1 ajmp run ;转运行k1: cjne a, #02h, k2 ajmp key1 ;转时调整k2: cjne a, #04h, k3 ajmp key2 ;转分调整k3: cjne a, #08h, out ajmp key3 ;转秒调整yxz: jb acc.0, stop ajmp outkey1: mov r0, #45h;时调整 lcall add1 clr c

21、 cjne a, #24h, outt acall clr0 ajmp outtkey2: mov r0, #43h;分调整 lcall add1 clr c cjne a, #60h, outt acall clr0 ajmp outtkey3: mov r0,#41h ;秒调整 acall add1 clr c cjne a,#60h,outt acall clr0; 传送显示数据 ;outt: mov 30h,40h;秒显示单元41h-42h mov 31h,41h mov 32h,#11 ; - mov 33h,42h ;分显示单元43h-44h mov 34h,43h mov 35h

22、,#11 ; - mov 36h, 44h ;时显示单元44-45h mov 37h, 45h retstop: clrtr0 ;关电子钟并跳出 retrun: lcall time;运行电子钟out: setb ea ;无键按下或完成功能跳出 ret; 运行电子钟 ;time: setb ea mov tl0, #0b0h mov th0, #3ch ;3cb0h mov r4, #20 ;50ms,20次循环 setb tr0 ;启动定时器0 ret; 定时中断 ;intt0: push accpush pswclret0clr tr0 mov tl0, #0b0h ;重新设定定时初值 m

23、ov th0, #3chsetb tr0 ;启动定时器0djnz r4, outt0 ;1秒到addss:mov r4,#14h ;20次计数 mov r0,#41h;秒十位 acall add1 ;加1程序 clr c cjne a,#60h,addmm ;1分到addmm: jc outt0 acall clr0 mov r0,#43h acall add1 ;加1程序 clr c cjne a,#60h,addhh ;1小时到addhh: jc outt0 acall clr0 mov r0,#45h acall add1 ;加1程序 clr c cjne a,#24h,hour ;1天

24、到hour: jcoutt0 acall clr0outt0:mov 30h,40h;秒显示单元41h-42h mov 31h,41h mov 32h,#11 ; - mov 33h,42h ;分显示单元43h-44h mov 34h,43h mov 35h,#11 ; - mov 36h, 44h ;时显示单元44-45h mov 37h, 45h pop psw pop acc setb et0 reti; 时间清零子程序 ;clr0: clr a mov r0,a dec r0 mov r0,a ret; 加一子程序 ;add1: mov a,r0 ;取十位 dec r0 swap a

25、orl a,r0 ;组合十位与个位 add a,#01h ;加1 daa ;十进制调整 mov r3,a ;暂存 anl a,#0fh ;屏蔽十位 mov r0,a ;放入个位单元 mov a,r3 ;取值 inc r0 swap a anl a,#0fh ;屏蔽个位 mov r0,a ;放入十位单元mov a, r3;数值放入a中等待判断 ret;显示子程序 30h ;disp:mov r1, #30h ;显示缓冲存储单元首地址 mov r2, #80h ;从右至左显示disp1:movp2, r2 ;送位控 mova, r1 movdptr, #tab movca, a+dptr movp

26、0, a;送段控 acalldl ;延时 mova, r2 jbacc.0, disp2 rra incr1 movr2, a ajmpdisp1disp2: rettab: db 0c0h, 0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh,0bfh,0ch dl:mov r6,#14h;显示延时子程序dl1: mov r7,#19h ;dl2: djnz r7,dl2 djnz r6,dl1 retend第5章 电子钟的使用说明及调试运行5.1使用说明书5.1.1操作说明(1) 时间显示:电子钟上电后,8个数码管显示初始状态即最左边的一个数码管显示p

27、.。如果未显示p.,只需按一下复位键即可使其显示出p.。按下a键后电子钟进入自动计时状态,电子钟显示00时00分00秒并开始运行。(2) 时间调整:若要进行时间调整,则需再次按下a键,进入时间调整状态,然后分别按下b键调时,按下c键调分,按下d键调秒,按下b、c、d键并松开可使电子钟的时,分,秒分别加一。调整好时间后,按下a键就可以回到调整好的时间为基础的自动计时状态。无论是在自动计时,还是在调整校正时,都可按下复位键使系统回到显示p.的初始状态。其中b键显示范围为0-23,0为24点;c,d键显示范围为0-59,0 为60分。5.2电子钟运行结果5.2.1待机(如图5-1所示)图5-1 p.

28、显示5.2.2启动(如图5-2所示) 图5-2 启动5.2.3运行(如图5-3所示)图5-3 运行第6章 误差分析在调试运行过程中,在所有参数正确的情况下,我的结果仍出现运行缓慢情况。产生误差的主要原因是我们用软件计时,计时1秒是采用定时器的中断服务程序。当电子钟运行1秒,执行中断程序需要一定时间,这个时间就是所产生的误差,这个误差是不可避免的。同时,单片机工作也会受到环境的影响,比如温度、湿度,以及其它电子设备的干扰。因此,应该让电子钟工作在适度温度、干燥和电子干扰较少的环境下,还有一种方法就是采用实时时钟芯片,这样可以使误差降低到最少。第7章 设计体会这次课程设计持续了几周时间,开始一直就

29、想着等别人做出来再去请教别人,没想到,自己做出来的人并不多,也没有谁能够帮我的,于是就和吴娟去图书馆借书自己琢磨。借了胡辉主编的单片机应用系统设计与训练,细细阅读了里面关于电子钟设计的介绍,学到了蛮多知识的。后来在二班汪宇那里又弄来了王老师关于电子钟设计的的课件包,借鉴了相当一部分内容,不管怎么样我也终于是自己搞定了。但是自己还是去认真再次学习了汇编语言的,还有熟练了proteus和keil软件的运用,还用了蛮久没用的protel99 se画了电路原理图,还更好的锻炼了用visio画流程图。虽然大部分都是借鉴的,只是照着描描但自己还是用心去弄懂了。有时间还是会更多锻炼的。感觉这些软件都越来越顺

30、手了。挺开心。发现自己真是不逼就不学的人啦。教学建议所谓的教学建议是第一次写,也不知道应该写些什么。只知道自己没学好,也似乎不爱学这方面的东西。王老师您是个好老师,虽然我感觉您上学期的教学比这学期的吸引人,当然这其中的大部分的原因也都是因为这学期时间太松,加上我们这些大四学生太放任自流了的原因吧。如果要我提出建议,我想,以下这些不成熟也没条理性可言的语句就算是我的所谓“建议”吧。教学,教与学,本来就时老师与学生的互动。老师教得再好,学生没去认真有什么用处?所以我觉得一个好老师可能应该更多的去带动学生去学,勾起学生学习的兴趣。虽然王老师您在这方面已经下了很多功夫,但似乎成效并不大,适得其反,一部分根本不想学的人反而还觉得您逼迫得太紧了,对您意见颇多。形成了这样的局面,我想也不时您所希望见到的,所以为什么您

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论