C51编程:让我们共同来体会 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时,软硬件就基本正常了
还这么复杂,俺用一个OC输出IO口,一个电阻一个电容就可以了。用IC的0-1的本身电平出发,不用比较器。
这位大师您好!如能再减少软硬件更通用,无疑更可靠,因为THE BEST THING IS JUST AS THE NOTHING!!!!,大师您可不能自专,诚请发布详情,让小M和大家如法炮制。
很简单的,我以前就发表过,在C51BBS上。就是先输出0,对电容放电。延时,再输出1,开始冲电,VI接电阻另一端。到电容电平达到IC的高触发时的时间就是。简单吧。
请告线性,精度,特别是稳定性?