收藏 分销(赏)

电子时钟课程设计(论文).doc

上传人:xrp****65 文档编号:7420936 上传时间:2025-01-03 格式:DOC 页数:22 大小:497KB
下载 相关 举报
电子时钟课程设计(论文).doc_第1页
第1页 / 共22页
电子时钟课程设计(论文).doc_第2页
第2页 / 共22页
电子时钟课程设计(论文).doc_第3页
第3页 / 共22页
电子时钟课程设计(论文).doc_第4页
第4页 / 共22页
电子时钟课程设计(论文).doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、目录第1章 Proteus软件简介2第2章 电子时钟相关介绍22.1 电子时钟的总体简介22.2 电子时钟功能要求32.3 实现时钟计时的基本方法32.4 电子时钟的时间显示及操作4第3章 系统硬件设计43.1 AT89C52单片机43.2 74LS245芯片53.3 数码管显示工作原理63.4 键盘电路设计73.5 整个电路原理图8第4章 系统软件设计94.1 程序设计94.2 系统流程图94.2.1 主程序流程图94.2.2 加一子程序流程框图104.3 电子时钟程序11第5章 系统仿真175.1 仿真结果175.2 仿真结果分析20第6章 结束语20参考文献21第1章 Proteus软件

2、简介PROTEUS软件由Labcenter公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择Keil软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支持PLM、汇编和C语言的程序设计。它的界面友好易学,在调试程序、软件仿真方面有很强大的功能。 其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理

3、器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等, Proteus为我们建立了完备的电子设计开发环境。第2章 电子时钟相关介绍2.1 电子时钟的总体简介 1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。现在高精度的计时工具大多数

4、都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。该电子时钟由89C52,74LS245芯片,BUTTON,八段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。电路中有4个控制键,A按键按下第一次表示进入运行状态,再按一下表示键入调整状态,依次类推

5、;通过D按键实现秒钟的累加,每按一次秒钟加一,累加到60秒钟清零;通过C按键实现分钟的累加,每按一次分钟加一,累加到60分钟清零;通过B按键实现小时的累加 ,则可实现小时的调节,同样每按一次小时加一累加到24小时清零。 2.2 电子时钟功能要求 可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。 (1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均无效,按A键有效,进入运行状态; (2)、运行状态,按奇数次A键进入,在此状态下,按B、C、D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态; (3)、调整状态,按偶数次A键进入,在此状态下

6、,按A、B、C、D键均有效。如按下A键,则退出调整状态,进入运行状态;按下B、C、D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态。基本功能要求: “P.”稳定地显示在LED显示器的最左端数码管(LED5)上,无A键按下(在“P.”状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“P.”。 按下A 键后,电子钟以起始时间:00时00分00秒开始运行。 再次按下A 键后,电子钟退出运行状态,进入调整状态,利用B、C、D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。 注意:每次按下B、C

7、、D键,只允许加一,不允许连加。2.3 实现时钟计时的基本方法 利用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.4 电子时钟的时

8、间显示及操作 利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元:LED8 LED7LED6 LED5LED4LED3LED2 LED137H 36H35H34H33H32H31H 30H时十位 时个位分隔分十位分个位分隔秒十位 秒个位电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整:A键控制电子

9、钟的启、停;B键调整小时;C键调整分钟;D键调整秒钟。 第3章 系统硬件设计3.1 AT89C52单片机 单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。随着SCM在技术上、体系上不断扩展其控制功能,国际上已经采用MCU(MicroControllerUnit)代替单片机的名词。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛

10、的应用,早已深深地融入人们的生活中。近年来,AT89C52在我国非常流行 。通过对多种单片机性能的分析,最终认为89C52是最理想的电子时钟开发芯片。89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C52是一种高效微控制器,而且它与MCS-52兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择2 。 图3.1 AT89C523.2 74LS2

11、45芯片74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。 74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 当片选端/CE低电平有效时,DIR=“0”,信号由 B向 A 传输;(接收) DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。 由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,

12、/E端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.iDi),其它时间处于输出(P0.iDi)。 图3.2 芯片 74LS2453.3 数码管显示工作原理数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E

13、、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来3。 图3.3 8段共阳数码管3.4 键盘电路设计 该设

14、计用4个键盘,实现的功能是比较完善,减少了硬件资源的损耗,该键盘可以实现小时和分钟的调节。A按键按下第一次表示计时开始,再按一下表示暂停,再按下接着计时,依次类推;通过D按键实现秒钟的累加,每按一次秒钟加一,累加到60秒钟清零;通过C按键实现分钟的累加,每按一次分钟加一,累加到60分中钟小时进一;通过B按键实现小时的累加 ,则可实现小时的调节,同样每按一次小时加一累加到24小时清零。 图3.4 控制键3.5 整个电路原理图 图3.5 系统电路原理图第4章 系统软件设计4.1 程序设计 程序设计是指设计、编制、调试程序的方法和过程,是目标明确的智力活动。在进行控制系统设计时,除了系统硬件设计外,

15、大量的工作就是如何根据每个生产对象的实际需要设计应用程序。故软件设计在电子时钟设计中占重要地位。4.2 系统流程图 4.2.1 主程序流程图 图4.2.1主程序流程框图4.2.2 加一子程序流程框图图 4.2.2 加一子程序 4.2.3 “P.”点显示子程序流程框图图4.2.3 “P.”点显示子程序流程框图 图3-2主程序流程框图4.3 电子时钟程序ORG 0000HAJMP MAINORG 000BHLJMP INTT0ORG 0030HMAIN: MOV SP, #60H;确立堆栈区 MOV PSW, #00H ; MOV R0, #20H ;RAM区首地址 MOV R7, #5FH ;R

16、AM区单元个数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 KEY ;按键检测子程序 JBACC.0, RUNF ;A键按下运行 LCALL DISP ;调用显示子程序 SJMP NEXTRUNF: LCALL OUTT;调传送子程序 LCALL TIME;开电子钟JK: LCALL DISP;调用显示子程序 LCALL KEY ;按键检测子程序 JZ JK

17、 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; 键扫子程序 ;KEY: LCALL KEYS ;调键值处理子程序JZ EXIT ;没有键按下转到返回 LCALL DISP LCALL DISP ;调显示去抖动LCALL KEYS JZ EXITMOV B, 20H ;保存键值KEYSF: LCALL KEYS ;调键值处理子程序JZ KEYY ;

18、键释放,转到恢复键值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, #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

19、 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 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 A

20、DD1 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,#11 ; - MOV 36H, 44H ;时显示单元44-45H MOV 37H, 45H RETSTOP: CLRTR0 ;关电子钟并跳出 RETRUN: LCALL TIME;运行电子钟OUT: SETB EA ;无键按下或完成功能跳出 RET; 运行电子钟 ;TIME: SETB EA

21、MOV TL0, #0B0H MOV TH0, #3CH ;3CB0H MOV R4, #20 ;50ms,20次循环 SETB TR0 ;启动定时器0 RET; 定时中断 ;INTT0: PUSH ACCPUSH PSWCLRET0CLR TR0 MOV TL0, #0B0H ;重新设定定时初值 MOV 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

22、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天到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, 44

23、H ;时显示单元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 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 ;放入十位

24、单元MOV A, R3;数值放入A中等待判断 RET;显示子程序 30H ;DISP:MOV R1, #30H ;显示缓冲存储单元首地址 MOV R2, #80H ;从右至左显示DISP1:MOVP2, R2 ;送位控 MOVA, R1 MOVDPTR, #TAB MOVCA, A+DPTR MOVP0, 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,0C

25、H DL:MOV R6,#14H;显示延时子程序DL1: MOV R7,#19H ;DL2: DJNZ R7,DL2 DJNZ R6,DL1 RETEND第5章 系统仿真5.1 仿真结果所有准备工作做好后,点击进行仿真,则进入“P.”状态,在此状态下,按B、C键均无效。 见图5.1.1所示图5.1.1 P.显示按A键进入运行状态,计时开始进行。见图5.1.2所示 图5.1.2 启动 在运行状态即计时状态下,按B、C、D键均无效,只有按A键有效。见图5.1.3所示 图5.1.3 运行 按下偶数次A键后,退出运行状态,进入调整状态。每按一下D键,则对秒加1;每按一下C键,则对分加1;每按一下B键,

26、则对小时加1。而后再按奇数次A键,进入运行状态。如图5.1.4所示 举例:分别对时、分、秒钟进行加1时间调整。 图5.1.4 调整时间举例5.2 仿真结果分析本设计功能太过单调,设计比较简单。电路图的设计过于单调,用的器件少了点,实现调节时间的按钮太少,不能很好的实现时间的调节。不过最后的仿真效果非常好,实现了预期的效果,能过通过B、C控制键和调节时间,是一个比较令人满意的设计。同时,单片机工作也会受到环境的影响,比如温度、湿度,以及其它电子设备的干扰。因此,应该让电子钟工作在适度温度、干燥和电子干扰较少的环境下,还有一种方法就是采用实时时钟芯片,这样可以使误差降低到最。另外,在调试运行过程中

27、,在所有参数正确的情况下,我的结果仍出现运行缓慢情况。产生误差的主要原因是我们用软件计时,计时1秒是采用定时器的中断服务程序。当电子钟运行1秒,执行中断程序需要一定时间,这个时间就是所产生的误差,这个误差是不可避免的。第6章 结束语通过本次课程设计,我去认真再次学习了汇编语言的,以及熟练了PROTEUS和KEIL软件的运用。有时间还是会更多锻炼的。感觉这些软件都越来越顺手了,挺开心。发现自己真是不逼就不学的人。另外,我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要

28、的存储空间增大。损耗了过多的内存资源。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。最后,在课程设计过程中,我们巩固和学习了我们的单片机知识。相信这对我以后的课程设计和毕业设计将会有很大的帮助! 参考文献1 李泉溪单片机原理与应用实例仿真北京航空航天大学出版社 2009年2 江世明基于proteus的单片机应用技术电子工业出版社 2008年3 喻宗泉单片机原理与应用技术西安电子科技大学出版社 2005年4 万光毅单片机实验与实践教程北京航空航天大学出版社 2004年22

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服