用51单片机汇编语言设计程序,实现一个4位秒表 | 您所在的位置:网站首页 › 秒表转换器 › 用51单片机汇编语言设计程序,实现一个4位秒表 |
要求:(1)4位数码动态显示,最低位按1/10秒计数,最高计数单位为9.59.9。(2)用开关K0控制秒表的启动、停止、清零功能,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。(3)要求K0使用外部中断,优先级高于T0的优先级。悬赏分:5 | 解决时间:2011-6-19 15:59;====================================================最佳答案: 所使用的电路可见: http://xiangce.baidu.com/picture/detail/e0e3dcca6a23826c17c97c512f075f13e02d51f6 下列程序已经调试通过, ORG 0000H JMP MAIN ORG 0003H JMP X0_INT ORG 000BH JMP T0_INT;---------------------------------------X0_INT: INC R0 CJNE R0, #1, STOP SETB TR0 RETI;---------------------STOP: CJNE R0, #2, R0_0 CLR TR0 RETI;---------------------R0_0: CLR A MOV R0, A MOV R1, A MOV R2, A MOV R3, A MOV R4, A MOV R5, A MOV R6, A RETI;---------------------------------------T0_INT: MOV TL0, #(55536 MOD 256) MOV TH0, #(55536 / 256) INC R2 ;百分之一秒. CJNE R2, #10, T0_E MOV R2, #0 INC R3 ;十分之一秒. CJNE R3, #10, T0_E MOV R3, #0 INC R4 ;秒个位. CJNE R4, #10, T0_E MOV R4, #0 INC R5 ;秒十位. CJNE R5, #6, T0_E MOV R5, #0 INC R6 ;分. CJNE R6, #10, T0_E MOV R6, #0T0_E: RETI;---------------------------------------MAIN: MOV TMOD, #01H MOV TH0, #(55536 / 256) ;10ms@12MHz MOV TL0, #(55536 MOD 256) SETB TR0 SETB ET0 SETB IT0 SETB PX0 SETB EX0 SETB EA CLR A MOV R1, A MOV R2, A MOV R3, A MOV R4, A MOV R5, A MOV R6, A MOV R0, #1LP1: LCALL XIANSHI JMP LP1;---------------------------------------XIANSHI: MOV DPTR, #D_TAB MOV R1, #03H MOV R7, #255 - 8LOOP: MOV A, @R1 MOVC A, @A + DPTR MOV P2, #255 ;消隐. MOV P0, A ;输出段码. MOV P2, R7 ;输出位码. CALL DL MOV A, R7 RR A MOV R7, A INC R1 CJNE R1, #07H, LOOP RETD_TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H DB 80H, 90H, 88H, 83H, 86H, 0A1H, 86H, 8EH;---------------------------------------DL: DJNZ ACC, $ DJNZ ACC, $ RET;---------------------------------------END;====================================================回答时间:2011-6-18 17:00回答者: 做而论道 | 十五级 采纳率:43% 原题网址:http://zhidao.baidu.com/question/281050349.html;==================================================== |
CopyRight 2018-2019 实验室设备网 版权所有 |