求用单片机汇编语言帮我写一个数码管倒计时程序,用中断延时50ms循环20次得到1秒,P0口为双位7

求用单片机汇编语言帮我写一个数码管倒计时程序,用中断延时50ms循环20次得到1秒,P0口为双位7段共阴极数码管段选,p2.0和p2.1位选十位和个位,弄2次倒计时循环,一次为60秒倒计时,紧接着为40秒倒计时,好用加分!

查询方式: ORG 00H START: MOV R0,#20 MOV R4,#60 LP0: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV DPTR,#TABLE SETB TR0 LP1: JBC TF0,LP2 ACALL DISP AJMP LP1 LP2: DJNZ R0,LP0 CLR TR0 MOV R0,#20 MOV A,R4 CJNE A,#0,DEC1 MOV R4,#60 AJMP JP1 DEC1: DEC A MOV R4,A JP1: ACALL DISP AJMP LP0 DISP: MOV A,R4 MOV B,#10 DIV AB ;当前值除以10 MOV 20H,A ;得出的商送给十位 MOV 21H,B ;得出的余数送给个位 MOV A,20H ;十位显示 MOVC A,@A+DPTR MOV P0,A SETB P2.1 LCALL DELAY CLR P2.1 MOV A,21H ;个位显示 MOVC A,@A+DPTR MOV P0,A SETB P2.0 LCALL DELAY CLR P2.0 RET DELAY: ;误差 0us MOV R6,#10 DL0: MOV R5,#50 DJNZ R5,$ DJNZ R6,DL0 RET TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极0-9显示代码 DB 92H,82H,0F8H,80H,90H END 中断方式: ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H ;50MS一中断 MOV R0,#20 ;20次为1S MOV R4,#60 ;60S开始倒计时 SETB EA SETB ET0 SETB TR0 MOV DPTR,#TABLE MAIN1: ACALL DISP AJMP MAIN1 DISP: MOV A,R4 MOV B,#10 DIV AB ;当前值除以10 MOV 20H,A ;得出的商送给十位 MOV 21H,B ;得出的余数送给个位 MOV A,20H ;十位显示 MOVC A,@A+DPTR MOV P0,A SETB P2.1 LCALL DELAY CLR P2.1 MOV A,21H ;个位显示 MOVC A,@A+DPTR MOV P0,A SETB P2.0 LCALL DELAY CLR P2.0 RET T0INT: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,RTI MOV R0,#20 DEC R4 CJNE R4,#0,RTI MOV R4,#60 RTI: RETI DELAY: ;误差 0us MOV R6,#10 DL0: MOV R5,#50 DJNZ R5,$ DJNZ R6,DL0 RET TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极0-9显示代码 DB 92H,82H,0F8H,80H,90H END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-04
这是你自己设计的吧,那数码管显示用哪个端口来控制,这个东西应该再加个按钮控制才好使,你告诉我干嘛使的我给你设计全套的,汇编也行追问

我主要是要做个交通灯,关键就是倒计时这里有问题,暂时不需要按钮,上电直接倒计时

追答

用c写不行么,汇编比较麻烦

你用那个端口显示数码管的

p0口啊

追问

嗯,题目上都有

??。。

本回答被网友采纳
第2个回答  2015-02-04
唉~只会用c
相似回答