RLC A
SETB P3.2 ;CLK=1 DJNZ R3,LOOPB2
SETB P3.3 ;CS=1 RET
;量程判断切换程序 SWITCH: MOV A,30H JB P3.4,SWITCH2 SWITCH1: CJNE A,#0FEH,NEXT1 NEXT1: JC BACK SETB P3.4
MOV A,#0FEH
MOV P0,A MOV
MOV DPTR,#TAB1 ; MOVC
MOV P2,A
LCALL DELAY SETB 20H.0 SJMP BACK
SWITCH2: CJNE A,#15H,NEXT2 NEXT2: JNC BACK CLR P3.4
MOV A,#0FEH
MOV P0,A MOV
MOV DPTR,#TAB1 ; MOVC
MOV P2,A
LCALL DELAY SETB 20H.0 BACK: RET
;BCD码转换程序
;大量程
;由小量程变为大量程
;显示字符1
选择表TAB1 ;小量程
;由大量程变为小量程
;显示字符2
选择表TAB1 11 A,#01H
A,@A+DPTR A,#02H
A,@A+DPTR
TRANSFER: MOV A,30H JNB P3.4,TRF1
ADD A,#06H ;补偿量程切换造成的电压差值 TRF1: MOV B,#200 ;B赋值200 MUL AB MOV R1,A MOV A,B
;B赋给A ;B赋值100
;A除以100,A为商,B为余数
;AB乘 低8位给A
MOV B,#100 DIV AB MOV 40H,A MOV A,B MOV B,#10 DIV AB MOV 41H,A MOV 42H,B MOV A,R1 MOV B,#100 DIV AB MOV 43H,A RET ;数码显示输出程序
DISPLAY: MOV R4,#06H DISPLAY1: MOV A,R2 MOV P0,A JNB P3.4,AB1
;B赋给A
;A除以10,A为商
;R1赋给A ;B赋值100
;A除以100,A为商,B为余数
JB ACC.5,ABX ;根据字位选择查相应的表 AB2: MOV DPTR,#TAB2 ;选择表TAB2 SJMP CONTINUE AB1:
JNB ACC.3,AB2
ABX: MOV DPTR,#TAB1 ;选择表TAB1 CONTINUE: MOV A,@R0 MOVC A,@A+DPTR MOV P2,A LCALL DELAY MOV A,R2
12
JNB ACC.2,RETURN RR A MOV R2,A INC R0 SJMP DISPLAY1 RETURN: MOV R0,#40H MOV R2,#0DFH DJNZ R4,DISPLAY1 RET
TAB1: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H TAB2: DB 0BFH 86H 0DBH 0CFH 0E6H 0EDH 87H 0FFH 0EFH 0F7H ;延时程序
DELAY: MOV R7,#0AH DELAY1: MOV R6,#0FFH DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END
13
第二章 仿真
实验电路图:
电阻为0欧姆时:
14
电压为<200mV时:
15