《2022年简易数字钟单片机课程方案 .pdf》由会员分享,可在线阅读,更多相关《2022年简易数字钟单片机课程方案 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、个人资料整理仅限学习使用单片机AT89S51 电源复位电路晶振电路声音提示数码管显示按键电路基于 AT89S51 单片机数字钟系统框图1 系统设计1.1 框图设计基于 AT89S51单片机数字钟由电源电路、单片机主控电路、按键控制电路和蜂鸣器等几部分组成,系统框图如下:1.2 知识点本工程需要通过学习和查阅资料,了解和掌握以下知识。1.+5V电源原理及设计。2.单片机复位电路工作原理及设计。3.单片机晶振电路工作原理及设计。4.按键电路的设计。5.驱动电路 74LS04的特性及使用。6.蜂鸣器及其驱动电路的设计。7.数码管的特性及其使用。8.AT89S51单片机引脚。9.单片机汇编语言及程序设
2、计。2 硬件设计2.1电路原理基于 AT89S51单片机数字钟电路原理图如附录所示。按下P1.0 口按键,若按下时间小于1S,则进入省电状态 数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。当再按下P1.0 口按键时,若按键时间小于0.5S,则时间加 1min;若按下时间大于0.5S,则进入小时调整状态。按下P1.1 按键时,可进行减1 调整。在小时调整状态下,当按键按下的时间大于0.5S 时,退出时间调整状态,时钟从0S开始计时。在正常时钟状态下,若按下P1.1 口按键,则进行时钟 / 秒表功能的转换,秒表中断计时程序启动,显示地址改为60H ,LED将显示秒表计时单
3、元60H-65H中的数据。按下P1.2 口的按键精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 12 页个人资料整理仅限学习使用开关,可实现秒表清零、秒表启动、秒表暂停功能;当再按下P1.1 口按键时,关闭T1 秒表中断计时,显示首址又改为70H ,恢复正常时间的显示功能。2.2元件清单基于 AT89S51单片机数字钟的元件清单如下表。3 软件设计3.1 程序流程图1.主 程 序流 程 图如图 1-1所示。2.秒 计 时程 序 。秒 计 时由 定 时器 T0 完成 , 流程 图 如图1-2所示。3.秒表、调时指示程序。秒表、调时由定时器
4、T1完成,其流程图如图1-3 所示。元件名称型号数量用途元件名称型号数量用途单片机AT89S51 1 控制核心电阻10k4 按键电路晶振12MHz 1 晶振电路按键4 电容30pF 2 数码管8段 6 位1 显示电路电解电容10uF/10V 1 复位电路电阻5008 电阻10k1 电阻4.7k1 蜂鸣器及其驱动电路按键1 蜂鸣器DC5V 1 电源+5V/0.5A 1 提供 +5V 电源三极管9015 1 N Y 开始初始化显示程序整点到?报时Y N T0 中断保护现场改变定时初值1s时间到 ? 加 1s 恢复现场中断返回Y N 中断开始保护现场秒表 /闪烁 ? 闪烁恢复现场中断返回叫 10ms
5、 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 12 页个人资料整理仅限学习使用3.2程序清单DISBEG EQU 30H CALB EQU P1.7 TIMCON EQU 2FH ORG 0000H LJMP MAIN ORG 0003H RETI ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH I_TAB: DB 3FH,06H,5BH,4F
6、H,66H,6DH,7DH,07H,7FH,6FH DLY1M: MOV R6,#14H DL_LOOP: MOV R7,#19H DL_LOOP1:DJNZ R7,DL_LOOP1 DJNZ R6,DL_LOOP RET DLY20M:CLR CALB LCALL D_II_PLAY LCALL D_II_PLAY LCALL D_II_PLAY SETB CALB RET DL_LOOPS:LCALL DL05S LCALL DL05S 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 12 页个人资料整理仅限学习使用 RET DL0
7、5S: MOV R3,#20H DL05S1: LCALL D_II_PLAY DJNZ R3,DL05S1 RET CTIME: MOV A,#10H / 整点报时MOV B,79H MUL AB ADD A,78H MOV TIMCON,A CLOOP: LCALL DLY20M LCALL DL_LOOPS LCALL DL_LOOPS LCALL DL_LOOPS DJNZ TIMCON,CLOOP CLR 08H MAIN: MOV R0,#00H / 主程序 MOV R7,#80H MLOOP: MOV R0,#00H INC R0 DJNZ R7,MLOOP MOV 20H,#0
8、0H MOV 7AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB TR0 MOV R4,#14H MOV DISBEG,#70H MLOOP1:LCALL D_II_PLAY JNB P1.0,T_SETSC JNB P1.1,DLY5 JNB P1.2,FUNBT JNB P1.3,TSET JB 08H,CTIME AJMP MLOOP1 FUNBT: LJMP DLY6 精选学习资料 - - - - - - - - - 名师归纳总结 - - -
9、 - - - -第 4 页,共 12 页个人资料整理仅限学习使用TSET: LCALL DLY20M / 闹铃时间设定程序,按P1.3 进入设定JB P1.3,MLOOP1 TS_LOOP:JNB P1.3,TS_LOOP JB 05H,CLRBELL MOV DISBEG,#50H MOV 50H,#0CH MOV 51H,#0AH MINCHG:SETB EA LCALL D_II_PLAY JNB P1.2,DLY1 JNB P1.0,DLY3 JNB P1.3,DLY AJMP MINCHG CLRBELL:CLR 05H CLR CALB AJMP MLOOP1 DLY:LCALL
10、DLY20M JB P1.3,MINCHG LJMP DLY8 T_SETSC:LJMP R_SETTIM DLY1:LCALL DLY20M JB P1.2,MINCHG DLY2: LCALL D_II_PLAY JNB P1.2,DLY2 CLR EA MOV R0,#53H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,ADD_M ADD_M:JC MINCHG ACALL CLR_H AJMP MINCHG DLY3:LCALL DLY20M JB P1.0,MINCHG DLY4:LCALL D_II_PLAY JNB P1.0,DLY4 CLR E
11、A MOV R0,#53H LCALL SUB_M 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 12 页个人资料整理仅限学习使用LJMP MINCHG DLY5:LCALL DLY20M / 秒表功能 / 时钟转换程序,按P1.1 进行功能转换JB P1.1,T_MLOOP1 JNB P1.1,$ CPL 03H JNB 03H,DIS_SET MOV DISBEG,#60H MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H M
12、OV TL1,#0F0H MOV TH1,#0D8H SETB TR1 SETB ET1 T_MLOOP1:LJMP MLOOP1 DIS_SET:MOV DISBEG,#70H CLR ET1 CLR TR1 T_MLOOP11:LJMP MLOOP1 DLY6:LCALL DLY20M / 秒表暂停 / 清零功能程序,按P1.2 暂停或清零,JB P1.2,T_MLOOP11 P1.1 退出秒表,回到时钟计时T_EST11:JNB P1.2,T_EST11 CLR ET1 CLR TR1 T_EST22:JNB P1.1,DLY5 JB P1.2,T_EST21 LCALL DLY20M
13、JB P1.2,T_EST22 T_EST55:JNB P1.2,T_EST51 MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H T_EST33:JNB P1.1,DLY5 JB P1.2,T_EST31 LCALL DLY20M JB P1.2,T_EST33 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 12 页个人资料整理仅限学习使用T_EST44:JNB P1.2,T_EST41 SETB ET1 SETB TR1 AJ
14、MP MLOOP1 T_EST411:LCALL D_II_PLAY / 以下为键等待释放时显示不会熄灭用 AJMP T_EST11 T_EST21:LCALL D_II_PLAY AJMP T_EST22 T_EST31:LCALL D_II_PLAY AJMP T_EST33 T_EST41:LCALL D_II_PLAY AJMP T_EST44 T_EST51:LCALL D_II_PLAY AJMP T_EST55 INTT0:PUSH ACC /1S 计时程序。 T0 中断服务程序PUSH PSW CLR ET0 CLR TR0 MOV A,#0B7H ADD A,TL0 MOV
15、TL0,A MOV A,#3CH ADDC A,TH0 MOV TH0,A SETB TR0 DJNZ R4,I_INT0 A_DDS:MOV R4,#14H CPL 07H MOV R0,#71H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,A_DDM A_DDM:JC I_INT0 ACALL CLR_H MOV R0,#77H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,A_DDH A_DDH:JC I_INT0 ACALL CLR_H 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - -
16、- -第 7 页,共 12 页个人资料整理仅限学习使用LCALL DLY20M SETB 08H MOV R0,#79H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#24H,RSTART RSTART:JC I_INT0 ACALL CLR_H I_INT0:MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H LCALL BELL POP PSW POP ACC SETB ET0 RETI INTT1:PUSH ACC / 闪动调试程序 / 秒表从能程序; T1中断服务程序 PUSH PSW JB 03H,R_ADDS MO
17、V TL1,#0B0H MOV TH1,#3CH DJNZ R2,I_INT1 MOV R2,#06H CPL 02H JB 02H,FLASH0 MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H I_INT1:POP PSW POP ACC RETI FLASH0:JB 01H,FLASH1 MOV 72H,7AH MOV 73H,7AH MOV 74H,78H MOV 75H,79H AJMP I_INT1 FLASH1:MOV 72H,76H MOV 73H,77H 精选学习资料 - - - - - - - - - 名师归纳总结 - - -
18、- - - -第 8 页,共 12 页个人资料整理仅限学习使用 MOV 74H,7AH MOV 75H,7AH AJMP I_INT1 R_ADDS:CLR TR1 MOV A,#0F7H ADD A,TL1 MOV TL1,A MOV A,#0D8H ADDC A,TH1 MOV TH1,A SETB TR1 MOV R0,#61H ACALL ADD_1 CLR C MOV A,R3 JZ R_ADDM AJMP I_INT01 R_ADDM:ACALL CLR_H MOV R0,#63H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,R_ADDH R_AD
19、DH:JC I_INT01 LCALL CLR_H MOV R0,#65H ACALL ADD_1 I_INT01:POP PSW POP ACC RETI ADD_1:MOV A,R0 / 加 1 子程序DEC R0 SWAP A ORL A,R0 ADD A,#01H DA A MOV R3,A ANL A,#0FH MOV R0,A MOV A,R3 INC R0 SWAP A 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 12 页个人资料整理仅限学习使用ANL A,#0FH MOV R0,A RET SUB_M:MOV A,R
20、0 / 分减 1 子程序DEC R0 SWAP A ORL A,R0 JZ SUB_M1 DEC A SUB_M11:MOV R3,A ANL A,#0FH CLR C SUBB A,#0AH SUB_M111:JC SUB_M110 MOV R0,#09H SUB_M10:MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RET SUB_M1:MOV A,#59H AJMP SUB_M11 SUB_M110:MOV A,R3 SUB_H:MOV A,R0 / 时减 1 子程序DEC R0 SWAP A ORL A,R0 JZ SUB_H1 DEC A SU
21、B_H11:MOV R3,A ANL A,#0FH CLR C SUBB A,#0AH SUB_H111:JC SUB_H110 MOV R0,#09H SUB_H10:MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RET 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 12 页个人资料整理仅限学习使用SUB_H1:MOV A,#23H AJMP SUB_H11 SUB_H110:MOV A,R3 CLR_H:CLR A / 清零程序;对即使单元复零用MOV R0,A DEC R0 MOV R0
22、,A RET R_SETTIM:CLR ET0 / 时钟时间调整程序CLR TR0 LCALL DL_LOOPS LCALL DLY20M JB P1.0,SLEEP MOV R2,#06H MOV 70H,#00H MOV 71H,#00H SETB ET1 SETB TR1 SET_2:JNB P1.0,SET_1 SETB 00H SET_4:JB P1.0,SET_3 LCALL DL05S LCALL DLY20M JNB P1.0,R_SETHH MOV R0,#77H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,SET_LOOP SET_LOOP
23、:JC SET_4 LCALL CLR_H CLR C AJMP SET_4 SLEEP:SETB ET0 SETB TR0 SET_LOOP1:JB P1.0,SET_LOOP1 LCALL DLY20M JB P1.0,SET_LOOP1 SET_LOOP2:JNB P1.0,SET_LOOP2 LJMP MLOOP1 R_SETHH:CLR 00H 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 12 页个人资料整理仅限学习使用SETB 01H SET_LOOP3:JNB P1.0,SET_5 SET_6:JB P1.0,SET
24、_7 LCALL DL05S LCALL DLY20M JNB P1.0,STOP MOV R0,#79H LCALL ADD_1 MOV A,R3 CLR C CJNE A,#24H,C_YHH C_YHH:JC SET_6 LCALL CLR_H AJMP SET_6 STOP:JNB P1.0,STOP1 LCALL DLY20M JNB P1.0,STOP CLR 01H CLR 00H CLR 02H CLR TR1 CLR ET1 SETB TR0 SETB ET0 LJMP MLOOP1 SET_1:LCALL D_II_PLAY AJMP SET_2 SET_3:LCALL D_II_PLAY JNB P1.1,DLY7 AJMP SET_4 SET_5:LCALL D_II_PLAY AJMP SET_LOOP3 SET_7:LCALL D_II_PLAY JNB P1.1,DLY7B AJMP SET_6 STOP1:LCALL D_II_PLAY AJMP STOP DLY7:LCALL DLY20M / 分减 1 程序JB P1.1,SET_41 DLY7_M:JNB P1.1,DLY7_M 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 12 页