DIN=D0*VIN/VREF 和晶体频无关,但直接影响测量速度, 软件改变D0可免硬件调试软定
标,但当VIN> =VREF时 DIN=D0,已溢出! 精度1/5000 ,测量速度4次/秒 @24MHZ
ORG 0000H
NOP
SJMP MAIN
ORG 000BH
MOV C,P3.6
MOV P3.7,C ;冲放电,A/D转换核心
JNC $+3
INC DPTR
RETI
MAIN:MOV TMOD,#22H
MOV TL0,#156
MOV TH0,#156
MOV TCON,#15H
MOV IE,#10000010B
MOV R3,#250
ADSTR:MOV DPTR,#0000H ;DIN 记数
MOV R4,#20
INC PCON
DJNZ R3,$-2
MOV R3,#250
DJNZ R4,$-6 ;R4 R3 D0记数,典型值为5000
MOV R7,DPH
MOV R6,DPL
SJMP ADSTR
END
实际上A/D程序就两条 MOV C,P3.6 MOV P3.7,C,所以用两等值电阻R4=R5=1K,分压作
VIN加在R1上,然后动态测P3.7电压 ,当非常接近1/2VREF时,软硬件就基本正常了