/* ---------------------------
P1接AD0804的8个脚,P0口接数码管段选,P2.0-P2.4接位选,
P3.6-P3.7接2个口
------------------------------------*/
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CALL XIE
CALL DELAY
CALL DU
CALL XIANSHI
AJMP MAIN
;开始转换
XIE: CLR P2.0 ;选中
NOP
CLR P3.6
NOP
NOP
SETB P3.6 ;当P3。6由低到高时开始转换
NOP
NOP
SETB P2.0 ;取消选中
RET
DU: MOV P1,#0FFH
NOP
CLR P2.0
NOP
CLR P3.7
NOP
NOP
NOP
MOV A,P1
NOP
MOV 20H,A
NOP
NOP
SETB P3.7
NOP
NOP
SETB P2.0
RET
DELAY: MOV R6,#2
DL1: MOV R7,#248
DJNZ R7,$
DJNZ R6,DL1
RET
XIANSHI:MOV B,#51
MOV A,20H
DIV AB
MOV 30H,A
MOV A,B
MOV B,#5
DIV AB
MOV 31H,A
MOV A,B
MOV B,#2
MUL AB
MOV 32H,A
MOV A,30H
MOV DPTR,#TAB
MOVC A,@A+DPTR
CLR P2.1
CLR ACC.5
MOV P0,A
CALL DELAY
SETB P2.1
MOV A,31H
MOVC A,@A+DPTR
CLR P2.2
MOV P0,A
CALL DELAY
SETB P2.2
MOV A,32H
MOVC A,@A+DPTR
CLR P2.3
MOV P0,A
CALL DELAY
SETB P2.3
RET
;TAB:DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H
TAB:DB 0,1,2,3,4,5,6,7,8,9
END
我有现成的程序
xuxianghui1985@126.com
1个C2051都可以捉出一个11位精度的数字电压表……
我博客上有两个数字电压表,很容易地修改一下就能满足你的要求
弄个比较片子组,用LM339就好,输出一个32线的信号,用两个编码器组编过,进8位输入.
写个简单的程序,对数码管输出显示就好了.
QQ4916751