ORG 30H
START:MOV R1,#64H
;输出电压初使化
MOV 40H,#0
;设定为5V
MOV 41H,#5
MOV 42H,#0
DL: JB P1.0,DL1
;+键按键处理
CALL DELAY
CJNE R1,#0F0H,DL3
JMP DL2
DL3:INC R1
;输出电压增加0.1V
INC R1
INC 42H
MOV R5,42H
CJNE R5,#0AH,DL2
MOV 42H,#0
INC 41H
MOV R5,41H
CJNE R5,#0AH,DL2
MOV 41H,#0
INC 40H
JMP DL2
DL1:JB P1.1,DL2
;-键按键处理
CALL DELAY
CJNE R1,#03CH,DL4
JMP DL2
DL4:DEC R1
;输出电压减少0.1V
DEC R1
DEC 42H
MOV R5,42H
CJNE R5,#0FFH,DL2
MOV 42H,#9
DEC 41H
MOV R5,41H
CJNE R5,#0FFH,DL2
MOV 41H,#9
DEC 40H
MOV R5,40H
CJNE R5,#0FFH,DL2
MOV 40H,#0
DL2:MOV P0,R1
;数据显示
CALL DISP
JMP DL
DELAY:MOV R4,#02H
; 延时
DELAY3:MOV R3,#0FFH
DELAY1:MOV R2,#04FH
DELAY2:DJNZ R2,DELAY2
DJNZ R3,DELAY1
DJNZ R4,DELAY3
RET
DISP:MOV P3,#0F7H
;显示子程序
MOV P2,#3EH
;显示单位
CALL DELA
MOV DPTR,#TAB
;显示小数位
MOV A,42H
MOVC A,@A+DPTR
MOVP3,#0FBH
MOV P2,A
CALL DELA
MOV A,41H
;显示个位数
MOVC A,@A+DPTR
;至小数点
ADD A,#80H
MOV P3,#0FDH
MOV P2,A
CALL DELA
MOV R5,40H
CJNE R5,#0,DISP1
RET
DISP1: MOV A,40H
;显示十位数
MOVC A,@A+DPTR
MOV P3,#0FEH
MOV P2,A
CALL DELA
RET
DELA:MOV R3,#04FH
;延时
DELA1: MOV R2,#57H
DELA2: DJNZ R2,DELA2
DJNZ R3,DELA1
RET
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H ;数码管显示数据表
END
在线等!!
|