为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机电子时钟

2013-01-17 14页 doc 167KB 23阅读

用户头像

is_495162

暂无简介

举报
单片机电子时钟一、实验目的: (1)、掌握用串行口驱动四位数码管显示2组不同数据的方法。 (2)、掌握电子时钟逢六十进一的编程方法。 (3)、掌握用按键校正电子时钟的方法。 (4)、掌握定时闹铃的编程方法。 二、实验任务与要求 利用定时/计数中断和静态显示,实现电子钟的时分秒精确走时和校准。时间显示用四个数码管分别显示时、分、秒用点显示,在时和分的中间闪动,时间显示格式: 2 1. 4 5 小时 秒点 分钟 时间校准用两个键实现:一个键K1(P1.4)做移动选择键(选中要修改的键,选中的位...
单片机电子时钟
一、实验目的: (1)、掌握用串行口驱动四位数码管显示2组不同数据的方法。 (2)、掌握电子时钟逢六十进一的编程方法。 (3)、掌握用按键校正电子时钟的方法。 (4)、掌握定时闹铃的编程方法。 二、实验任务与要求 利用定时/计数中断和静态显示,实现电子钟的时分秒精确走时和校准。时间显示用四个数码管分别显示时、分、秒用点显示,在时和分的中间闪动,时间显示格式: 2 1. 4 5 小时 秒点 分钟 时间校准用两个键实现:一个键K1(P1.4)做移动选择键(选中要修改的键,选中的位用闪烁指示),一个键K2(P1.5)做加一键。 准点报时功能:可以增加一个键K3、K4设计具有闹钟功能,能实现定点报时。具体操作时:按下K3(P1.6)键做移动选择键(选中要修改的键,选中的位用闪烁指示),一个键K4(P1.7)做加一键。 用单片机制作一个电子时钟,要求可以用LED显示时、分、秒的数值;可以用按键进行调时、调分;可根据设定的作息时间按时输出警示信号。 1、基本任务要求: (1)、时间走时准确,误差不得超过1%。 (2)、若最高位为0,高位能灭0显示。 2、增强型任务要求: (1)、仿照电子表的校时功能,校时修改时,被修改位能闪烁显示,按键要灵敏。 (2)、准点报时能实现. 三、实验电路设计与连线 1、实验器件 4×共阳数码管、4×74LS164锁存器、80C51芯片、键盘、喇叭 2、实验器件电路图 (1)、静态显示电路 (2)、键盘电路,把键盘旁边的SW9上的短路片连接到下边2个脚可构成独立键盘这四个键分别为P1.4-P1.7。 (3)、报警喇叭电路采用如下图电路,可用单片机的P1口或P3口的空闲位用导线连接到FMQ端,采用输出高电平、低电平控制喇叭的报警与不报警,通过改变延时时间来实现报警声音和节奏。 四、编程思路与资源分配 1.1、时间显示 由单片机内部的定时/计数器T0实现计时功能(晶振为24MHZ)。用4个数码管静态扫描方式显示时钟时间。显示时、分的BCD码值。 1.2、时间的调节 P1.4、P1.5分别与按键K1、K2相连;K1按键每按一次,选中要修改的键闪烁指示;再按K2键,则自加一。 1.3、闹钟的调节 P1.6、P1.7分别于按键K3、K4相连;K3键按下,进入闹钟界面,K3按键每按一次,选中要修改的键闪烁指示;再按K4键,则自加一。 五、程序各模块图 六、实验调试与结果分析 程序运行后,走时、秒闪、修改、定时闹钟功能都能实现。运行10分钟后与实际时间相差2秒左右,误差为0.33%;大致可以满足实验要求,但拿到现实生活中还是一个非常大的误差;还可以再修改一下部分的延时程序以减少误差。 七、实验 通过此次设计性实验,掌握了用串行口驱动四位数码管显示2组不同数据的方法;对逢六十进一、按键校正、定时闹铃的编程方法有了更深步的理解,动手能力得到了极大的提高! 八、实验程序清单 ORG 0000H LJMP MAIN ORG 000BH LJMP TEX ;定时计数中断0 ORG 0100H MAIN: MOV R2,#20H ;主函数 CLR C SETB P1.2 ;报警位置高电平 MOV 30H,#00H ;秒单元 MOV 31H,#00H ;分单元 MOV 32H,#00H ;时单元 MOV 33H,#00H MOV 34H,#00H MOV TMOD,#01H ;定时计数0 MOV SCON,#00H ;串行口方式0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 MOV IE,#82H SJMP $ TEX: JB P1.6,FH3 ;报警位判断 JNB P1.6,$ ;闹钟位闪 ACALL FYSBCD1 ;闹钟BCD码转换子程序 ACALL DISP1 ;闹钟显示子程序 ACALL KEY1 ;闹钟按键子程序 ACALL FYSBCD1 ACALL DISP1 ACALL DELY1 ;延时子程序 FH3: JB P1.4,FH2 ;修改位判定 JNB P1.4,$ ;修改位位闪 ACALL FYSBCD ;修改位BCD码转换子程序 ACALL DISP ;修改位显示子程序 ACALL KEY ;修改位按键子程序 ACALL FYSBCD ACALL DISP ACALL DELY1 FH2: MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,FH MOV R2,#20H ACALL FYSBCD ACALL MS ;秒闪子程序 ACALL DELAY ;延时子程序 ACALL FYSBCD ACALL BJ ;报警判断子程序 MOV A,30H ADD A,#01 MOV 30H,A CJNE A,#60,FH1 ;判断秒是否超过60 MOV 30H,#00H MOV A,31H ADD A,#01 MOV 31H,A CJNE A,#60,FH1 ;判断分是否超过60 MOV 31H,#00H MOV A,32H ADD A,#01 MOV 32H,A CJNE A,#24,FH1 ;判断时是否超过24 MOV 32H,#00H FH1: ACALL FYSBCD ;调用BCD码转换子程序 ACALL DISP ;调用显示子程序 FH: POP ACC POP PSW RETI FYSBCD: MOV R3,#2 ;BCD码转换子程序 MOV R0,#31H MOV R1,#43H LP: MOV A,@R0 MOV B,#10 DIV AB MOV @R1,B DEC R1 MOV @R1,A INC R0 DEC R1 DJNZ R3,LP RET FYSBCD1:MOV R3,#2 ;闹钟BCD码转换子程序 MOV R0,#33H MOV R1,#48H LP6: MOV A,@R0 MOV B,#10 DIV AB MOV @R1,B DEC R1 MOV @R1,A INC R0 DEC R1 DJNZ R3,LP6 RET MS: MOV DPTR,#TAB ;秒闪子程序 MOV R1,#40H MOV A,@R1 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R1 MOV A,@R1 MOVC A,@A+DPTR MOV ACC.0,C MOV SBUF,A JNB TI,$ CLR TI INC R1 MOV A,@R1 MOVC A,@A+DPTR MOV SBUF,A CPL C JNB TI,$ CLR TI INC R1 MOV A,@R1 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R1 RET DISP: MOV DPTR,#TAB ;显示子程序 MOV R1,#40H LP1: MOV A,@R1 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R1 CJNE R1,#44H,LP1 RET DISP1: MOV DPTR,#TAB ;闹钟显示子程序 MOV R1,#48H LP5: MOV A,@R1 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI DEC R1 CJNE R1,#44H,LP5 RET DELAY:MOV 60H,#00 ;延时1子程序 MOV 62H,#100 LP2: MOV 61H,#00 DJNZ 61H,$ DJNZ 61H,$ DJNZ 61H,$ DJNZ 60H,LP2 RET DELY: MOV R4,#100 ;延时2子程序 D0 : MOV R5,#200 DJNZ R5,$ DJNZ R4,D0 RET DELY1: MOV R4,#5 ;延时3子程序 D1: MOV R5,#100 D2: MOV R6,#200 DJNZ R6,$ DJNZ R5,D2 DJNZ R4,D1 RET KEY1: MOV 47H,#0AH ;闹钟按键子程序 MOV 48H,#0AH ACALL DISP1 ACALL DELY1 JB P1.7,NX11 ACALL DELY JNB P1.7,$ INC 33H MOV A,33H CJNE A,#60,NX11 MOV 33H,#00H NX11: ACALL FYSBCD1 ACALL DISP1 ACALL DELAY JNB P1.6,DFZ1 SJMP KEY1 DFZ1: ACALL DELY JNB P1.6,$ DF11: MOV 46H,#0AH MOV 45H,#0AH ACALL DISP1 ACALL DELY1 JB P1.7,NX22 ACALL DELY JNB P1.7,$ INC 34H MOV A,34H CJNE A,#24,NX22 MOV 34H,#00H NX22: ACALL FYSBCD1 ACALL DISP1 ACALL DELAY JNB P1.6,DSFH1 SJMP DF11 DSFH1: ACALL DELY JNB P1.6,$ RET BJ: MOV A,40H ;报警判断子程序 CJNE A,45H,LM MOV A,41H CJNE A,46H,LM MOV A,42H CJNE A,47H,LM MOV A,43H CJNE A,48H,LM CLR P1.2 LM: RET KEY: MOV 42H,#0AH ;修改子程序 MOV 43H,#0AH ACALL DISP ACALL DELY1 JB P1.5,NX1 ACALL DELY JNB P1.5,$ INC 31H MOV A,31H CJNE A,#60,NX1 MOV 31H,#00H NX1: ACALL FYSBCD ACALL DISP ACALL DELAY JNB P1.4,DFZ SJMP KEY DFZ: ACALL DELY JNB P1.4,$ DF1: MOV 41H,#0AH MOV 40H,#0AH ACALL DISP ACALL DELY1 JB P1.5,NX2 ACALL DELY JNB P1.5,$ INC 32H MOV A,32H CJNE A,#24,NX2 MOV 32H,#00H NX2: ACALL FYSBCD ACALL DISP ACALL DELAY JNB P1.4,DSFH SJMP DF1 DSFH: ACALL DELY JNB P1.4,$ RET TAB: DB 09H,7DH,07H,15H,71H,91H,81H,3DH,01H,11H,0FFH END
/
本文档为【单片机电子时钟】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索