2022年单片机多功能电子钟 .pdf

上传人:Che****ry 文档编号:34278285 上传时间:2022-08-15 格式:PDF 页数:12 大小:297.96KB
返回 下载 相关 举报
2022年单片机多功能电子钟 .pdf_第1页
第1页 / 共12页
2022年单片机多功能电子钟 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年单片机多功能电子钟 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机多功能电子钟 .pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、电子日历系统第 1 页 共 12 页单片机及接口技术综合实验电子日历系统一、题目:电子实时时钟 /万年日历系统二、功能要求:1 基本要求: 显示准确的北京时间(时、分、秒),可用 24 小时制式; 随时可以调校时间。2 发挥要求: 增加公历日期显示功能(年、月、日),年号只显示最后两位; 随时可以调校年、月、日; 允许通过转换功能键转换显示时间或日期。三、方案考虑:1、硬件方案: 显示器采用6 位 LED数码管(共阳) ,可分别显示时间或日期。 显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。可采用74LS244 或者晶体管;

2、其中74ls244是用来驱动段选码,晶体管是驱动位选码。采用“一键多用方案”,以减少按键数目。本方案采用了两个按键。 整体上要考虑:结构简单、布局美观、操作方便、成本低廉。2、设计电路图如下:3、元件清单:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 电子日历系统第 2 页 共 12 页 89C51 1个 IC 座( 40 脚) 3个(其中 1 个用于接插89C51、2 个用于接插LED 段数码管)。 74LS244 1个

3、(用于驱动6 个共阳的 LED 段数码管)。 IC 座( 20 脚) 1个(用于接插74LS244) 。(5)显示器: LED_8 段数码管(共阳型)6 个三极管:(6)PNP(8550)6 个(用于驱动6 个共阳型 LED 段数码管)。(7)微型开关:3 个 (其中 1 个用于复位电路、其它用于键盘)。(8)晶体振荡器(12MHz) :1 个(用于振荡电路) 。(9)电阻器: 3K 1个(用于系统复位电路) 。 1K 6个(用作 PNP三极管基极电阻) 。 100 7个(驱动器用作74LS244 输出限流电阻) 。(10)电容器: 10 F 1 个(用于系统复位电路) 。 30 pF 2 个

4、(用于系统振荡电路) 。(11)其它: 万能电路板( 1015) :1 块 焊锡条: 2米 带插头、座的电源端子: 1条 各种颜色外皮的导线:各 1 米(12)工具:1电烙铁:1 把2剪钳:1 把3镊子:1 把4万用表:1 个(13)设备:编程器( MEP300 或 TOP851)6 个4、软件方案:只使用第一组工作寄存器,其功能如下: “时钟”基准时间由单片机内部定时中断来提供,定时时间应该乘以一个整数得到“秒” ,且不宜太长或太短,最长不能超过16 位定时器的最长定时时间,最短不能少于定时中断服务程序的执行时间。一般来说,基准时间越短,越有利于提高时钟运行的精确度。本实验定时5mS 。乘以

5、一个整数200 得到“ 1 秒” . 用一个计数器(R4)对定时中断的次数进行计数,从而可以实现“秒”定时,同理可以实现“分”定时和“时”定时,甚至于“日”、 “月”、 “年”定时。 显示器采用动态驱动时要注意到:LED的 “启辉时间”和“余辉时间” 。驱动信号的维持时间必须大于启辉时间;而驱动信号的间歇时间必须小于余辉时间。 “启辉时间”和“余辉时间”与驱动电流的大小有关,驱动电流越大,启辉时间越短,而余辉时间越长。但是,驱动电流的大小受到驱动电路的驱动能力和LED极限功耗的限制。本实验采用了74hc244 和晶体管8550 驱动,并进行适当的延时 3ms解决上述问题。名师资料总结 - -

6、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 电子日历系统第 3 页 共 12 页 LED 的余辉时间使动态驱动显示得到保证,但也要注意到它在更新显示内容时,可能造成显示字符的混乱模糊。为此,在把“更新显示内容”写入显示器之前,必须把所有的LED熄灭,即要把一个“熄灭驱动信号”先写入显示器。对于按键的处理,采用中断。 产生中断后先判有无按键被按下,还要考虑到“去抖动影响”问题,可采用软件延迟法解决这个问题,延迟时间至少10mS 。而单纯进行软件延

7、时的话会令到显示管产生断续的情况,故调用显示程序作为延时时间。这样就合理地处理好这两者的矛盾了。 把按键分两种情况来处理,操作简单。两个按键功能如下:调整时间时,先按下KA键, (KA键为选择调整位置的键,如选调整秒或分) ,而此时的 KB 键只是用来加一操作。在调整时间状态下,若在十秒内检测到没有任何按键按下,则返回正常显示时钟状态。而不调整时间,即不按下KA键,KB的键只用来切换显示日期和时钟。 对于自动识别“月大、月小”和“平年、闰年”的问题,主要考虑: 月大、月小:17 月:逢单月为31 天;逢双月为30 天,其中 2 月另行处理。812 月:逢单月为30 天;逢双月为31 天。 平年

8、、闰年:仅仅处理 2 月份的天数:平年的2 月份天数为28 天,闰年的2 月份天数为 29 天。5、程序流程图如下:(1) 电子时钟计算程序图(2)调整流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 电子日历系统第 4 页 共 12 页程序编写如下:;/ ORG 0000H LJMP START ORG 0003H LJMP PROINT0 ;int0用来切换时钟调整位置ORG 0013H ;用来调整时间,只加不减LJM

9、P PROINT1 ORG 001BH ;50MS的延迟,计数 200次则为 1秒LJMP PROTIME ORG 0030H ;主程序TABLE: DB 81H,0DBH,86H,0C2H,0D8H,0E0H,0A0H,0CBH,80H,0C0H ORG 0050H START: MOV TCON,#05H ;中断初始化MOV IE ,#8DH MOV TMOD,#10H MOV TH1,#3CH ;定时器初始化MOV TL1,#60H MOV 31H,#00H ;00秒MOV 32H,#00H ;00 分MOV 33H,#12H ;12 点MOV 34H,#21H ;21 号MOV 35H

10、,#06H ;6 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 电子日历系统第 5 页 共 12 页MOV 36H,#05H ;2005 年MOV 37H,#14H ;R7 存放切换标志 0 NORMAL , 1 HOUR ,2 MINUTE ,3 SECOND ,4 YEAR,5 MONTH,6 DAY MOV R1,#00H ;确定在调时不按键的最长时间,10秒后返回 normal 状态MOV R7,#00H ;切换标

11、志MOV 40H,#00H ;十六进制转换 BCD 的高位MOV 41H,#00H ;十六进制转换 BCD 的低位MOV R6,#00H ;调时的位闪烁的时间间隔MOV R4,#00H ;用来计数 50ms的中断次数, 20次则一秒mov r3,#00h SETB TR1 ;开始计时AGAIN: ACALL PROSHOW ;显示 AJMP AGAIN PROSHOW: CJNE R3,#00H,SHOWDATE ;如果 r3 等于 1就显示日期,等于0就显示时钟CJNE R7,#04H,DATE1 ;显示程序AJMP SHOWDATE ;showdate显示年月日DATE1: CJNE R7

12、,#05H,DATE2 AJMP SHOWDATE DATE2: CJNE R7,#06H,SHOWCLOCK AJMP SHOWDATE showCLOCK: MOV R0,33H ;showclock显示时分秒,先显示时ACALL PROHTOD CJNE R7,#01H,CLK1 INC R6 CJNE R6,#03H,CLK2 ;若处于调时状态,则该位闪烁MOV R6 ,#00H CLK1: clr P0.1 mov a,41H MOV P2, a ;显示时的低位ACALL DELAY3MS CLK2: SETB P0.1 CLR P0.0 mov a,40H MOV P2,a ;显示

13、时的高位名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 电子日历系统第 6 页 共 12 页ACALL DELAY3MS SETB P0.0 MOV R0,32H ;显示分ACALL PROHTOD CJNE R7,#02H,CLK3 INC R6 CJNE R6,#03H,CLK4 ;若处于调时状态,则该位闪烁MOV R6,#00H CLK3: CLR P0.3 mov a,41H MOV P2, a ;显示分的低位ACAL

14、L DELAY3MS CLK4: SETB P0.3 CLR P0.2 mov a,40h MOV P2,a ;显示分的高位ACALL DELAY3MS SETB P0.2 MOV R0,31H ;显示秒ACALL PROHTOD CJNE R7,#03H,CLK5 INC R6 CJNE R6,#03H,CLK6 ;若处于调时状态,则该位闪烁MOV R6,#00H CLK5: CLR P0.5 mov a,41H MOV P2, a ;显示秒的低位ACALL DELAY3MS CLK6: SETB P0.5 CLR P0.4 mov a,40h MOV P2,a ;显示秒的高位ACALL D

15、ELAY3MS SETB P0.4 RET SHOWDATE: MOV R0,36H ;显示年ACALL PROHTOD CJNE R7,#04H,DAY1 INC R6 CJNE R6,#03H,DAY2 ;若处于调时状态,则该位闪烁名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 电子日历系统第 7 页 共 12 页MOV R6,#00H DAY1: CLR P0.1 MOV P2,41H ;显示年的低位ACALL DELA

16、Y3MS DAY2: SETB P0.1 CLR P0.0 MOV P2,40H ;显示年的高位ACALL DELAY3MS SETB P0.0 MOV R0,35H ;显示月ACALL PROHTOD CJNE R7,#05H,MONTH1 INC R6 CJNE R6,#03H,MONTH2 ;若处于调时状态,则该位闪烁MOV R6,#00H MONTH1: CLR P0.3 MOV P2,41H ;显示月的低位ACALL DELAY3MS MONTH2: SETB P0.3 CLR P0.2 MOV P2,40H ;显示月的高位ACALL DELAY3MS SETB P0.2 MOV R

17、0,34H ;显示日ACALL PROHTOD CJNE R7,#06H,YEAR1 INC R6 CJNE R6,#03H,YEAR2 ;若处于调时状态,则该位闪烁MOV R6,#00H YEAR1: CLR P0.5 MOV P2,41H ACALL DELAY3MS YEAR2: SETB P0.5 CLR P0.4 MOV P2,40H ACALL DELAY3MS SETB P0.4 RET 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - -

18、- - - - - - 电子日历系统第 8 页 共 12 页PROHTOD:PUSH ACC ;十六进制数转换成bcd 码, 且可以直接输出p0口MOV A,R0 MOV B,#0AH DIV AB MOV DPTR,#0030H MOVC A,A+DPTR MOV 40H,A MOV A,B MOVC A,A+DPTR MOV 41H,A POP ACC RET DELAY3MS: ;DELAY3MS MOV 45H,#05H DELAY1: MOV 46H,#0FFH DELAY2: DJNZ 46H,DELAY2 DJNZ 45H,DELAY1 RET PROINT0: CLR EX0

19、;切换键中断程序ACALL PROSHOW MOV C,P3.2 JC IEXIT0 MOV R1,#00H INC R7 CJNE R7,#07H,IEXIT0 MOV R7,#00H INT01: MOV C,P3.2 JC INT02 ACALL PROSHOW AJMP INT01 INT02: ACALL PROSHOW IEXIT0: SETB EX0 RETI PROINT1:CLR EX1 ACALL PROSHOW MOV C,P3.3 JC IEXIT1 LCALL ISYEAR ;判断平年闰年LCALL ISMONTH ; 判断月份,确定最大日数名师资料总结 - - -精

20、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 电子日历系统第 9 页 共 12 页MOV R1,#00H CJNE R7,#00H,NEXT1 ;若不是调时状态,按此键就是切换显示日期、时钟 INC R3 CJNE R3,#02H,IEXIT1 MOV R3,#00H AJMP IEXIT1 NEXT1: mov r3,#00h CJNE R7,#03H,NEXT2 ;修改秒位INC 31H MOV A,31H CJNE A,#3CH,INT11 ;

21、遇60变0 MOV 31H,#00H AJMP IEXIT1 NEXT2: CJNE R7,#02H,NEXT3 ;修改分位INC 32H MOV A,31H CJNE A,#3CH,INT11 ;遇60变 0 MOV 31H,#00H AJMP IEXIT1 NEXT3: CJNE R7,#01H,NEXT4 ;修改时位INC 33H MOV A,33H CJNE A,#18H,INT11 ;遇24变0 MOV 33H,#00H AJMP IEXIT1 NEXT4: CJNE R7,#06H,NEXT5 ;修改日INC 34H MOV A,34H CJNE A,49H,INT11 ;到月底就

22、返回月初MOV 34H,#01H AJMP IEXIT1 NEXT5: CJNE R7,#05H,NEXT6 ;修改月INC 35H MOV A,35H CJNE A,#0DH,INT11 ;十二月过后就跳回1月MOV 35H,#01H AJMP IEXIT1 NEXT6: CJNE R7,#04H,INT11 ;修改年INC 36H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 电子日历系统第 10 页 共 12 页MOV

23、 A,36H CJNE A,#64H,INT11 MOV 36H,#00H INT11: MOV C,P3.3 JC INT12 ACALL PROSHOW AJMP INT11 INT12: ACALL PROSHOW IEXIT1: setb EX1 RETI ;/ PROTIME: MOV TMOD,#10H MOV TH1,#3CH ;定时器初始化MOV TL1,#60H setb tr1 INC R4 CJNE R4,#15H,EXIT MOV R4,#00H ;计满 1秒则清零CJNE R7,#00H,DIAOSHI AJMP NORMAL DIAOSHI:INC R1 ;调时不按

24、键的最长时间为10秒,在此期间又键按下重新计时CJNE R1,#0AH,EXIT MOV R7,#00H ;到 10秒则返回正常显示状态MOV R1,#00H AJMP EXIT NORMAL: ACALL ISYEAR ;判断平闰年,返回标志48h,0为平年, 1为闰年ACALL ISMONTH ;判断哪个月,返回该月的最大日数,存放在49h INC 31H MOV A,31H ;秒加一CJNE A,#3CH,EXIT MOV 31H,#00H INC 32H ; 分加一MOV A,32H CJNE A,#3CH,EXIT MOV 32H,#00H INC 33H ; 时加一MOV A,33

25、H CJNE A,#18H,EXIT MOV 33H,#00H INC 34H ; 日加一名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 电子日历系统第 11 页 共 12 页MOV A,34H CJNE A,49H,EXIT MOV 34H,#01H INC 35H ; 月加一MOV A,35H CJNE A,#0DH,EXIT MOV 35H,#01H INC 36H ; 年加一MOV A,36H CJNE A,#64H

26、,EXIT MOV 36H,#00H EXIT: RETI ISYEAR: MOV A,36H ; 判断平闰年MOV B,#04H DIV AB MOV A,B CJNE A,#00H,EXITYEAR1 MOV 48H,#01H ; 闰年SJMP EXITYEAR EXITYEAR1: MOV 48H,#00H ;平年EXITYEAR: RETI ISMONTH: MOV A,35H ;开始检查月份CJNE A,#02H,NEXTMON1 ;判断二月MOV R2,48H CJNE R2,#00H,RUNNIAN MOV 49H,#1DH ;平年为 28天,赋 29给49h AJMP EXIT

27、MONTH RUNNIAN:MOV 49H,#1EH ;闰年为 29天,赋 30天给 49h AJMP EXITMONTH NEXTMON1: CJNE A,#04H,NEXTMON2 AJMP XIAOYUE NEXTMON2:CJNE A,#06H,NEXTMON3 AJMP XIAOYUE NEXTMON3:CJNE A,#09H,NEXTMON4 AJMP XIAOYUE 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - -

28、- 电子日历系统第 12 页 共 12 页NEXTMON4:CJNE A,#0BH,DAYUE XIAOYUE: MOV 49H,#1FH ;四,六,九,十一月是小月,30天,但应该赋31天给比较值 49h,AJMP EXITMONTH DAYUE: MOV 49H,#20H ;其他月份为大月,31天,赋 32天给 49h EXITMONTH: RETI END 本电路实现基本电子万年历的功能,按键产生外部中断,调用中断程序实现调整时间功能。两个键功能如下:先按下KA键,可调整时间(KA键为选择调整位置的键,如选调整秒或分或时的位置) ,而此时的KB 键只是作加一操作。在调整时间状态下,若在十

29、秒内检测到没有任何按键按下,则自动返回正常显示时钟状态。而不调整时间, 即 KA键无按下时,KB的键只用来切换显示日期和时钟。当切换到日期时,按 KA键可调整日期, 其操作跟调整相似。收获体会:经过本次的电子万年历实验,进一步加深了对单片机的了解,把从书本上学到的单片机知识应用到了本次的实验中,对单片机系统功能的扩展有了更深一步的了解,比如用74HC244 作为单片机系统的总线驱动器,增加其输出口的驱动能力;加三极管是为了增大电流,使得LED 数码管有更好的显示效果。在编程过程中运用了汇编语言,加深了对汇编的指令的了解及运用。合理分配了本次实验中所要占用单片机的资源(本次实验只使用第一组工作寄

30、存器),如何以最小的系统资源以达到实现万年历的要求。如何合理布板,以使得整个电路飞线最少,选择了万能板,对于如何连好六个LED 数码管而使得飞线最少,最后采用了先把各个数码管的输入(A G)连在一起,最后单片机的数据输出口只跟一个数码管的输入端相连。用选通端对其选通。焊接过程是一个需要耐心的过程,一不小心会焊错,或者造成虚焊,更有甚者就是短路。在最后的调试过程中,可能是焊接过程做得不够好,造成电路有时不稳定,还要认真检查电路中是否有开路,短路;以及程序是否有错。最后感谢老师一个学期来的悉心教导,我们收益甚多。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com