;單片機計數(shù)器 0~100。
;外部中斷控制加減。
;高于100還是100,低于0還是0。
;按照設(shè)計思路,程序全面改寫如下:
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初始值設(shè)為30
MAIN1:
CALL ZKG1
CALL CONV0
CALL SCAN1
JMP MAIN1
;-----------------------------------------
ZKG1:
JB P1.4, ZKG2 ;P1.4連接總開關(guān)
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為余數(shù)
MOV B, #10
DIV AB
MOVC A, @A + DPTR
MOV @R0, A
INC R0
MOV A, B ;B為余數(shù)表示個位數(shù)
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
;直到最后,提問者才給出電路。
;按此電路,仿真效果如下: