51 单片机汇编语言:0~100 计数器
扫描二维码
随时随地手机看文章
;单片机计数器 0~100。
;外部中断控制加减。
;高于100还是100,低于0还是0。
;按照设计思路,程序全面改写如下:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP TL
ORG 0013H
AJMP TH
ORG 0050H
MAIN:
MOV SP, #5FH
SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
SETB P1.0 ;LED灯
;-----------------------------------------
MOV R1, #30 ;R0初始值设为30
MAIN1:
CALL ZKG1
CALL CONV0
CALL SCAN1
JMP MAIN1
;-----------------------------------------
ZKG1:
JB P1.4, ZKG2 ;P1.4连接总开关
CLR P1.0
MOV P0, #255
SJMP ZKG1
ZKG2:
SETB P1.0 ;LED灯
RET
;-----------------------------------------
TH: INC R1
CJNE R1, #101, TS1
MOV R1, #100
TS1:RETI
;-----------------------------------------
TL: DEC R1
CJNE R1, #255, TX1
MOV R1, #0
TX1:RETI
;-----------------------------------------
CONV0:
MOV DPTR, #TAB
MOV R0, #33H
MOV A, R1
MOV B, #100
DIV AB
MOVC A, @A + DPTR
MOV @R0, A
INC R0
MOV A, B ;B为余数
MOV B, #10
DIV AB
MOVC A, @A + DPTR
MOV @R0, A
INC R0
MOV A, B ;B为余数表示个位数
MOVC A, @A + DPTR
MOV @R0, A
RET
;-----------------------------------------
TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
;-----------------------------------------
SCAN1:
MOV R0, #33H
MOV R5, #04H
MOV R4, #3
LOOP4:
MOV P0, @R0
MOV P2, R5
MOV A, R5
RR A
MOV R5, A
INC R0
DJNZ R7, $
DJNZ R7, $
ANL P2, #0
DJNZ R4, LOOP4
RET
;-----------------------------------------
END
;直到最后,提问者才给出电路。
;按此电路,仿真效果如下: