AJMP LK
AN2:CLR P1.0 ;通道信号采集与显示 SETB P1.1 CLR P1.2 MOV 33H,#02H
ACALL DISP
ACALL START ACALL DISP AJMP LK
AN3:SETB P1.0 ;通道信号采集与显示 SETB P1.1 CLR P1.2 MOV 33H,#03H
ACALL DISP
ACALL START ACALL DISP AJMP LK
AN4:CLR P1.0 ;通道信号采集与显示 CLR P1.1 SETB P1.2 MOV 33H,#04H
ACALL DISP
ACALL START ACALL DISP AJMP LK AN5:SETB P1.0 ;通道信号采集与显示 CLR P1.1 SETB P1.2 MOV 33H,#05H
ACALL DISP
ACALL START
第
27 页 共 31 页
ACALL DISP AJMP LK AN6:CLR P1.0 SETB P1.1 SETB P1.2 MOV 33H,#06H
ACALL DISP
;通道信号采集与显示
ACALL START ;调用START子程序,开始AD转换
ACALL DISP ;调用显示子程序,将所得的值在数码管显示 AJMP LK
AN7:SETB P1.0 ;通道信号采集与显示 SETB P1.1 SETB P1.2 MOV 33H,#07H
ACALL DISP
;调用START子程序,开始AD转换
;调用显示子程序,将所得的值在数码管显示
ACALL START ACALL DISP AJMP LK ;AD采集开始子程序 START:
CLR P3.6 ;START置位低 NOP NOP NOP NOP
;延时us
SETB P3.6 ;将START引脚点平拉高 NOP NOP NOP
第
28 页 共 32 页
NOP ;延时us
CLR P3.6 ;又将START拉低 RE: ; JB P3.7,RE ;检测AD转换是否完成
ACALL D10ms1 ;调用延时子程序 ACALL AD
ACALL DISP ;调用显示子程序 RET
;此子程序是将AD转换的数转换为(—)V算法 AD:
MOV R0,P2
;将才采集好的值存于R0中 MOV A,R0 ;将值存于寄存器A中 MOV B,#51 ;给B赋值 DIV AB
;A/B
MOV 30H,A ;将最高位存于H中 MOV A,B ;将余数存于A中 CLR F0
;清F0
SUBB A,#1AH ;将A与相减 MOV F0,C ;借位存于F0 MOV A,#10 ;给A赋值为 MUL AB MOV B,#51 DIV AB JB F0,LOOP1
ADD A,#5 ;此段为最高位转化 LOOP1: MOV 31H,A MOV A,B CLR F0
第
29 页 共 33 页
SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2
ADD A,#5 ;此段为次高位的转化 LOOP2:
MOV 32H,A ;最低位存于H中 RET
;显示子程序 DISP:
MOV R4,#00H SETB P1.5 SETB P1.6 ;显示最高位
LOOP3: MOV DPTR,#TAB
MOV A,30H ;将最高位存入A中 MOVC A,@A+DPTR ;查表 ADD A,#80H ;显示小数点 SETB WELA2 ;位选选通
MOV P0,#0FEH NOP
;延时us
CLR WELA2 ;清位选
SETB WELA1
;置位选
MOV P0,A
;将显示值送P0口显示 NOP
CLR WELA1
ACALL D10ms1
第
30 页 共 34 页
;次高位显示
MOV DPTR,#TAB MOV A,31H
;将最次位存入A中
MOVC A,@A+DPTR ;查表 SETB WELA2 MOV P0,#0FDH NOP CLR WELA2
SETB WELA1
MOV P0,A NOP
CLR WELA1
ACALL D10ms1
;最低位显示
MOV DPTR,#TAB MOV A,32H MOVC A,@A+DPTR SETB WELA2 MOV P0,#0FBH NOP CLR WELA2
SETB WELA1
MOV P0,A NOP
CLR WELA1
ACALL D10ms1
;通道号显示
MOV DPTR,#TAB
第
31 页 共 35 页
MOV A,33H
MOVC A,@A+DPTR SETB WELA2 MOV P0,#0F7H NOP CLR WELA2
SETB WELA1
MOV P0,A NOP
CLR WELA1
ACALL D10ms1 DJNZ R4,LOOP3 RET ;延时
D10ms: MOV R5,#14H DL: MOV R6,#0FFH DL0: DJNZ R6,DL0 DJNZ R5,DL RET ;延时
D10ms1: MOV R5,#01H DL1: MOV R6,#0FFH DL2: DJNZ R6,DL2 DJNZ R5,DL1 RET
TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H END
第
32 页 共 36 页