问:有关单片机89c51的一段程序有八个灯,一个按键,一块七段码,要求:用汇编语言遍以下程序:上电
问:有关单片机89c51的一段程序有八个灯,一个按键,一块七段码,要求:用汇编语言遍以下程序:上电复位,从第一盏灯开始,1-8循环,第一个灯亮,七段码显示1------以...
问:有关单片机89c51的一段程序有八个灯,一个按键,一块七段码,要求:用汇编语言遍以下程序:上电复位,从第一盏灯开始,1-8循环,第一个灯亮,七段码显示1------以次类推,如果按键按下的话,那么从按下的那个灯开始倒序显示数字和灯,然后就是循环的时候间隔时间是1S
展开
展开全部
KEY EQU P3.0
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV R1,#20
MOV R2,#1
MOV A,#0FEH
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R1,T0E
MOV R1,#20
JB KEY,T0F
RL A
INC R2
CJNE R2,#9,T0D
MOV R2,#1
SJMP T0D
T0F:
RR A
DEC R2
CJNE R2,#0,T0D
MOV R2,#8
T0D:
MOV P0,A
PUSH ACC
MOV DPTR,#TABLE
MOV A,R2
MOVC A,@A+DPTR
MOV P1,A
POP ACC
RETI
TABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6fh ;56789
END
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV R1,#20
MOV R2,#1
MOV A,#0FEH
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R1,T0E
MOV R1,#20
JB KEY,T0F
RL A
INC R2
CJNE R2,#9,T0D
MOV R2,#1
SJMP T0D
T0F:
RR A
DEC R2
CJNE R2,#0,T0D
MOV R2,#8
T0D:
MOV P0,A
PUSH ACC
MOV DPTR,#TABLE
MOV A,R2
MOVC A,@A+DPTR
MOV P1,A
POP ACC
RETI
TABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6fh ;56789
END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询