电子钟专周报告.docx

上传人:小飞机 文档编号:2093245 上传时间:2023-01-09 格式:DOCX 页数:31 大小:143.41KB
返回 下载 相关 举报
电子钟专周报告.docx_第1页
第1页 / 共31页
电子钟专周报告.docx_第2页
第2页 / 共31页
电子钟专周报告.docx_第3页
第3页 / 共31页
电子钟专周报告.docx_第4页
第4页 / 共31页
电子钟专周报告.docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《电子钟专周报告.docx》由会员分享,可在线阅读,更多相关《电子钟专周报告.docx(31页珍藏版)》请在三一办公上搜索。

1、单片微机原理与接口技术专周 单片微型计算机与接口技术专周报告题目电子钟设计班级10261学号 04号姓名 尹荣超指导老师 傅林完成时间 2012-5-31 成都电子机械高等专科学校电气与电子工程系第31页电子钟专周报告一 实验目的1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。2. 设计任务及要求:通过LCD液晶模块,进行时间显示,格式为“时:分:秒”;整点报时。二实验要求 A.基本要求:1通过LCD液晶模块,进行时间显示,格式为“时:分:秒2整点报时3清零4能对时,分,秒任意可调B.扩展部分:1利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发

2、出声响,按停止键使可使闹玲声停止。2实现秒表功能3定时功能三实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开

3、关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!四实验要求实现A.电路设计1. 整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模

4、块:显示电路用8个共阴数码管分别显示,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。电路的总体设计框架如下:输出部分单片机输入部分复位2. 分块设计模块电路主要分为:输入部分、输出部分,复位。2.1 输入部分输入信号主要是各种模式选择和调整信号,由按键开关提供。以下为输入部分样:在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:2.2 输出部分本电路的输出信号为7段数码管的位选和段选

5、信号,闹铃脉冲信号,提示灯信号。本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:闹铃由P1.0端输出,模块如下:各模块拼接组合,电路总体设计图如下:B.程序设计B.1 程序总体设计本实验用汇编程序完成.是否有调显示时间主程序开始NO按4按5开始、继续(秒表)主程序按4清零时钟、闹钟调时调分调秒按3按2按1YES按4按6按5结合电路图,程序设计的整体思路为:接通电源,数码管显示时,分,秒。并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。以下为在该工作方式下模式选择的按键方式:1按4开始计时,

6、秒表开始,停止2按1调整秒,按4继续计时3按2调整分,按4继续计时4按3调整时,按4继续计时5按5设置闹钟时间,再按5回复原有时间,闹铃声停止6按6所有设置清零B.2 程序主要模块B.2.1 不加扩展功能显示时间主程序开始是否有调NO按4按5开始按4清零调时调分调秒按3按2按1YES按6按5按4暂停、继续主程序程序清单:;12M晶振 2010 01 14 调试完成 03 15 修改 2011 03 03 注释 STRT EQU P2.6 STP EQU P2.7 CLRR EQU P3.0 SEC EQU P3.5 MIN EQU P3.6 HOUR EQU P3.7 ORG 00H SJMP

7、 MAIN ORG 0BH AJMP T0INT0 ORG 30H MAIN: MOV SP,#60H MOV R4,#20 MOV TMOD,#01H MOV TH0,#03CH ;#9EH 12M晶振时定时初值取#3CB0H,还可细调,如 TL=#0B7H,可以更准 MOV TL0,#0B0H ;#58H SETB ET0 SETB EA ;MOV 28H,#12kS: LCALL DISP ;秒调整按键 JB SEC,KM LCALL DISP JNB SEC,$-3 AJMP SINCkM: JB MIN,KH ;分调整按键 LCALL DISP JNB MIN,$-3 AJMP MI

8、NCKH: JB HOUR,K1 ;时调整按键 LCALL DISP JNB HOUR,$-3 AJMP HINC SINC: INC 26H ;秒调整 MOV A,26H CJNE A,#60,SINC0 MOV 26H,#0SINC0: AJMP KSMINC: INC 27H ;分调整 MOV A,27H CJNE A,#60,MINC0 MOV 27H,#0MINC0: AJMP KMHINC: INC 28H ;时调整 MOV A,28H CJNE A,#24,HINC0 MOV 28H,#0HINC0: AJMP KH k1: LCALL DISP ;开始键 JB STRT,K2

9、LCALL DISP JNB STRT,$-3 AJMP STARTk2: JB STP,K3 ;暂停键 LCALL DISP JNB STP,STOPK3: JB CLRR,KS LCALL DISP JNB CLRR,CLEAR ;清零键 AJMP KSSTART: SETB TR0 ;开始 AJMP K1 STOP: CLR TR0 ;暂停 AJMP K2CLEAR: CLR TR0 ;清零 MOV A,#0 MOV 26H,A MOV 27H,A MOV 28H,A AJMP KSDISP: MOV A,26H MOV B,#10 DIV AB MOV 20H,B ;余数(秒个位数)

10、MOV 21H,A ;商(秒十位数) MOV A,27H MOV B,#10 DIV AB MOV 22H,B ;余数(分个位数) MOV 23H,A ;商(分十位数) MOV A,28H MOV B,#10 DIV AB MOV 24H,B ;余数(时个位数) MOV 25H,A ;商(时十位数) MOV A,20H ;秒个位 ACALL SEG7 MOV P0,A CLR P2.0 ACALL DLY SETB P2.0 MOV A,21H ;秒十位 ACALL SEG7 MOV P0,A CLR P2.1 ACALL DLY SETB P2.1 MOV A,22H ;分个位 ACALL

11、SEG7 MOV P0,A SETB P0.7 CLR P2.2 ACALL DLY SETB P2.2 MOV A,23H ;分十位 ACALL SEG7 MOV P0,A CLR P2.3 ACALL DLY SETB P2.3 MOV A,24H ;时个位 ACALL SEG7 MOV P0,A SETB P0.7 CLR P2.4 ACALL DLY SETB P2.4 MOV A,25H ;时十位 ACALL SEG7 MOV P0,A CLR P2.5 ACALL DLY SETB P2.5 RET T0INT0: MOV TH0,#03CH;#9EH ;定时中断子程序。重装定时常

12、数 MOV TL0,#0B0H;#58H DJNZ R4,T0INTR ;50msX20=1S,未满20次,跳出中断子程序 MOV R4,#20 INC 26H ;1S,秒存储单元内数+1 MOV A,26H CJNE A,#60,T0INTR ;未满60S,跳出中断。 MOV 26H,#0 ;满60S,秒单元清零 INC 27H ;分+1 MOV A,27H CJNE A,#60,T0INTR MOV 27H,#0 INC 28H MOV A,28H CJNE A,#24,T0INTR MOV 28H,#0T0INTR: RETIDLY10: MOV R3,#30D0: ACALL DLY

13、DJNZ R3,D0 RETDLY: MOV R7,#2D1: MOV R6,#40 DJNZ R6,$ DJNZ R7,D1 RETSEG7: INC A MOVC A,A+PC RET DB 03FH ;0 共阴 DB 006H ;1 DB 05BH ;2 DB 04FH ;3 DB 066H ;4 DB 06DH ;5 DB 07DH ;6 DB 007H ;7 DB 07FH ;8 DB 06FH ;9 END总体电路图: 加上整点提醒,响1S,闹铃响3 S,定时整点总程序如下:STRT EQU P2.6STP EQU P2.7CLRR EQU P3.0SEC EQU P3.5MIN

14、EQU P3.6HOUR EQU P3.7ORG 00HAJMP MAINORG 0BHAJMP T0INTORG 1BHAJMP T1INTORG 30H MAIN: MOV SP,#60HMOV R4,#20MOV TMOD,#11HMOV TH0,#03CH;#9EH 定时初值取#3CB0H,还可细调如 TL=#0B7H,可以更准 MOV TL0,#0B0H;#58HMOV TH1,#0FEHMOV TL1,#0CHSETB EA SETB ET0SETB ET1kS: ACALL DISPACALL ALARM JB SEC,KM ;秒调整按键ACALL DISPJNB SEC,$-2

15、 AJMP SINCkM: JB MIN,KH ;分调整按键ACALL DISPJNB MIN,$-2 AJMP MINCKH: JB HOUR,K1 ;时调整按键ACALL DISPJNB HOUR,$-2 AJMP HINC SINC: JB 7FH,SINC_AINC 26H ;秒调整MOV A,26HCJNE A,#60,SINC0MOV 26H,#0AJMP SINC0SINC_A:INC 36H ;闹秒调整MOV A,36HCJNE A,#60,SINC0MOV 36H,#0SINC0: AJMP KSMINC: JB 7FH,MINC_AINC 27H ;分调整MOV A,27H

16、CJNE A,#60,MINC0MOV 27H,#0MINC_A:INC 37H ;闹分调整MOV A,37HCJNE A,#60,MINC0MOV 37H,#0MINC0:AJMP KMHINC: JB 7FH,HINC_AINC 28H ;时调整MOV A,28HCJNE A,#24,HINC0MOV 28H,#0HINC_A:INC 38H ;闹时调整MOV A,38HCJNE A,#24,HINC0MOV 38H,#0HINC0: AJMP KH k1: ACALL DISP ;开始键JB STRT,K2ACALL DISPJNB STRT,$-2 AJMP STARTk2: JB S

17、TP,K3 ;暂停键ACALL DISPJNB STP,$-2 AJMP CL_ALK3: JB CLRR,KS0ACALL DISPJNB CLRR,CLEAR ;清零键 KS0: AJMP KSSTART: CPL TR0 ;开始/暂停SETB 7DH ;7DH为开始键按下标志,此作为允许闹铃标志AJMP K1 CL_AL: CPL 7FH ;7FH作时钟和闹铃标志位AJMP K2CLEAR: CLR TR0 ;清零MOV A,#0MOV 26H,A MOV 27H,AMOV 28H,AMOV 36H,AMOV 37H,AMOV 38H,A AJMP KSDISP:JB 7FH,DISP_

18、AMOV 29H,26H ;秒送秒显示缓存MOV 2AH,27HMOV 2BH,28HAJMP DISP1DISP_A:MOV 29H,36HMOV 2AH,37HMOV 2BH,38HDISP1: MOV A,29HMOV B,#10DIV ABMOV 20H,B ;余数(秒个位数)MOV 21H,A ;商(秒十位数)MOV A,2AHMOV B,#10DIV ABMOV 22H,B ;余数(分个位数)MOV 23H,A ;商(分十位数)MOV A,2BHMOV B,#10DIV ABMOV 24H,B ;余数(时个位数)MOV 25H,A ;商(时十位数)MOV A,20H ;秒个位ACA

19、LL SEG7MOV P0,ACLR P2.0ACALL DLYSETB P2.0MOV A,21H ;秒十位ACALL SEG7MOV P0,ACLR P2.1ACALL DLYSETB P2.1MOV A,22H ;分个位ACALL SEG7MOV P0,ASETB P0.7CLR P2.2ACALL DLYSETB P2.2MOV A,23H ;分十位ACALL SEG7 MOV P0,ACLR P2.3ACALL DLYSETB P2.3MOV A,24H ;时个位ACALL SEG7MOV P0,ASETB P0.7CLR P2.4ACALL DLYSETB P2.4MOV A,25

20、H ;时十位ACALL SEG7MOV P0,ACLR P2.5ACALL DLYSETB P2.5RET ALARM:JNB 7DH,RT ;开始键未按下跳出MOV A,28H ;开机时,时分秒都 为0,跳出JZ AL0MAJMP ALARM1AL0M:MOV A,27HJZ AL0SAJMP ALARM1AL0S:MOV A,26HJZ RT ALARM1:MOV A,28H ;比较小时CJNE A,38H,AL ;不等返回,相等,转分钟比较MOV A,27H ;比较分钟?CJNE A,37H,ALMOV A,26H ;比较秒CJNE A,36H,ALAJMP ALARM2 ;转闹铃AL:

21、 ;整点提醒MOV A,28HJZ RT ;小时不是00,判分是不是00MOV A,27HJNZ RT ;分不是00,跳出MOV A,26HJNZ RTAJMP ALARM3 ;秒不为00,跳出。为00,整点提醒ALARM2: ;闹铃3 SSETB TR1 MOV R0,#0AJMP RTALARM3: ;整点提醒1SSETB TR1MOV R0,#2RT:RETT0INT: MOV TH0,#03CH;定时中断子程序。重装定时常数MOV TL0,#0B0H DJNZ R4,T0INTR ;50msX20=1S,未满20次,跳出中断子程序MOV R4,#20INC 26H ;1S,秒存储单元内

22、数+1INC R0 ;响铃时间MOV A,26HCJNE A,#60,T0INTR ;未满60S,跳出中断。MOV 26H,#0 ;满60S,秒单元清零INC 27H ;分+1MOV A,27HCJNE A,#60,T0INTRMOV 27H,#0INC 28HMOV A,28HCJNE A,#24,T0INTRMOV 28H,#0T0INTR: RETIT1INT:MOV TH1,#0FEHMOV TL1,#0CHCPL P1.0CJNE R0,#3,T1RTI ;闹铃时间设为5秒CLR TR1 ;关闹铃T1RTI:RETIDLY:MOV R7,#20MOV R6,#25DJNZ R6,$D

23、JNZ R7,$-4RETSEG7: INC AMOVC A,A+PCRETDB 03FH ;0 共阴DB 006H ;1DB 05BH ;2DB 04FH ;3DB 066H ;4DB 06DH ;5DB 07DH ;6DB 007H ;7DB 07FH ;8DB 06FH ;9ENDC. 程序调试及仿真2利用Proteus仿真实验过程截图:普通时间显示模式仿真图,表示:2点过2分11普通时间显示模式仿真图,表示:设置闹钟2分钟普通时间显示模式仿真图,表示:整点报时五.实验总结及感想一分耕耘,一分收获。只有亲自用实践来验证这句话,在能得其要领。经过这次单片机课程设计,我从一个单片机实践的门外

24、汉,已经越升为略知一二的新手。虽然还有很多有关单片机的应用有待学习,但万变不离其宗,只要深入了解单片的原理,全部知识点,各个细节,一切设计皆有可能。 刚开始的时候完全不知道怎么做,毕竟我们学单片机的时间不长,这学期开的课我在整体思路模糊的情况下,在网上大量收集资料,各种与电子时钟相关的文章,我阅读了不少。从中找到了不少对我有帮助,以及在老师的帮助下慢慢的思路开始清晰。通过和同组同学细心的推敲下,慢慢的对设计有了信心。对资料有了一定的积累后我们开始了我们的设计,一点点的写程序修改再修改,慢慢的错误减少直到正确。然后开始画图,慢慢的修改,直到仿真成功。成功的那时候真的很开心。实验中遇到了不少问题,

25、接下来总结一下,共同探讨。1开始写程序时由于对汇编语言有的指令不熟悉导致很多错误,经过老师指导及翻书查询把错误找出来,对症下药。感觉到自己知识学得不牢靠,再以后的学习中严格要求自己。2按键问题。我们的设计中,功能选择是通过按键开关实现的。在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,。但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少。3P0口开关问题。P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。4对画电路图有一定的难度。主要是对元件不熟,不知道该选什么。还有就是对元件的英文不知道,有的只有慢慢一个个找。比如在选择的过程中,第一次没注意显示屏是共阴还是共阳,选了个共阳的没仿真出来,经过查找原因换了个共阴的就可以了。以上就是实验中遇到的主要问题,基本上都找到了相应的解决之道。整个实验的过程就是一个解决问题的过程,每天都解决一些问题,我的实验也就解决了,当然结果不重要,功利化的追求结果,会使人浮躁,还是享受那份疑难迎刃而解的快感吧!附件:A.Proteus电路图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号