;*****************************
;** 变量及常数项定义 ***
;*****************************
$INCLUDE(VARDFN.INC)
;*****************************
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
$INCLUDE(INITIAL.INC) ;添加初始化模块
MLOOP: JNB TF0,$ ;4mS到?
CLR TF0 ;清定时标志
MOV TH0,#0F0H ;4mS定时重设
MOV TL0,#60H
LCALL RDKEY ;调用读键状态及去抖处理
LCALL DISP ;调用数码管动态显示
LCALL ADC ;调用AD转换子程序
LCALL ZH
LCALL WORK1
SJMP MLOOP
;******************************
;** 通道转换程序段 *******
;**100单端通道0 101通道2 *****
;**110通道1 111通道3 *****
;**000差分 通道0+ 1- *****
;******************************
WORK1: JNB EK0,W11
MOV TDC,#11000000B ;通道0
MOV R2,#00H
W11:JNB EK1,W12
MOV TDC,#11100000B ;通道1
MOV R2,#01H
W12:JNB EK2,W13
MOV TDC,#11010000B ;通道2
MOV R2,#02H
W13:JNB EK3,W14
MOV TDC,#11110000B ;通道3
MOV R2,#03H
W14:JNB EK4,W15
MOV TDC,#10000000B ;通道0+ 1-
MOV R2,#08H
W15:JNB EK5,W16
MOV TDC,#10100000B ;通道1+ 0-
MOV R2,#09H
W16:LCALL CK
RET
;******************************
;** AD转换子程序 ****
;******************************
ADC: MOV A,TDC ;工作方式设定
CLR CS ;选通
MOV R7,#04H
ADC1: CLR CLK
RLC A
MOV DI,C
SETB CLK
DJNZ R7,ADC1
SETB DO ;第五个脉冲
CLR CLK
SETB CLK
MOV R7,#08H
ADC2: CLR CLK
SETB CLK
MOV C,DO
RLC A
DJNZ R7,ADC2
MOV R7,#08H
ADC3: CLR CLK
SETB CLK
DJNZ R7,ADC3
CLR CLK
SETB CS
RET
;********************************
;**将读到的DO数据转换成电压值****
;********************************
ZH: MOV DSB4,A ;将读到的数据送DSB4
MOV B,#51
DIV AB
MOV DSB3,A ;取整数 即为整数部分电压
MOV R7,#3 ;小数点后三位循环计算三次
MOV R1,#33H ;用R3间接寻址DSB3~0显
ZH1: MOV A,B
CLR C
SUBB A,#26
JC ZH2 ;C不等于1则于26跳转直接计算
MOV B,#10
MUL AB
MOV B,#51
DIV AB
ADD A,#5
SJMP ZH3
ZH2: MOV A,B
MOV B,#10
MUL AB
MOV B,#51
DIV AB
ZH3: MOV @R1,A
DEC R1
DJNZ R7,ZH1
RET
;********************************
;** 串口显示子程序 ****
;********************************
CK: MOV DPTR,#DTABT
MOV A,R2
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$ ;判断中断标志位是否置1
CLR TI ;将中断标志位清零
JS2: RET
DTABT: DB 00000011B,10011111B,00100101B,00001101B,10011001B
DB 01001001B,01000001B,00011111B,00000001B,00001001B
;航硕工作室 http://hangshuo.blog.51cto.com/
$INCLUDE(RDKEY.INC);添加读键状态及去抖处理子程序
$INCLUDE(DISP.INC) ;添加数码管动态扫描显示子程序
END
转载于:https://blog.51cto.com/hangshuo/555821