ADC0804单片集成A/D转换器。它采取CMOS工艺20引脚集成芯片,分辩率为8位,转换韶光为100µs,输入电压范围为0~5V。芯片内具有三态输出数据锁存器,可直接接在数据总线上。
各引脚名称及浸染如下:
VIN(+),VIN(-)——两仿照旗子暗记输入端,用以吸收单极性、双极性和差模输入旗子暗记。

DB7~DB0——具有三态特性数字旗子暗记输出口。
AGND——仿照旗子暗记地。
DGND——数字旗子暗记地。
CLK——时钟旗子暗记输入端。
CLKR——内部时钟发生器的外接电阻端,与CLK端合营可由芯片自身产生时钟脉冲,其频率为1/(1.1RC)。
CS#---片选旗子暗记输入端,低电平有效,一旦CS#有效,表明A/D转换器当选中,可启动事情。
WR#---写旗子暗记输入,低电平启动A/D转换。
RD#---读旗子暗记输入,低电平输出端有效。
INTR#---A/D转换结束旗子暗记,低电平有效表示本次转换已完成。
VREF/2---参考电平输入,决定量化单位。
VCC---芯片电源5V输入。
打开ADC0804的数据手册,我们可以看到以下范例的电路接法:
我们可以用仿真软件画出来:
接下来,我们剖析一下上图的事情事理:
①ADC0804的片选端CS连接U2锁存哭的Q7输出端,我们可通过掌握锁存器来掌握CS,这样接的缘故原由是TX-1C实验板扩展的外围太多,没有多余的I/O口独立掌握ADC0804的CS端,以是选择U2。
② VIN(+)接电位器的中间滑动端,VIN(-)接地,由于这两端可以输入差分电压,即它可丈量VIN(+)与VIN(-)之间的电压,当VIN(-)接地时,VIN(+)真个电压即为ADC0804的仿照输入电压。VIN(+)与电位器之间串联一个10kΩ电阻,目的是限定流入VIN(+)真个电流,防止电流过大而烧坏A/D芯片,当用短路帽短接插针ADIN后,电位器的中间滑动端便通过电阻R12与VIN(+)连接,此时调节电位器的旋钮,个中央滑动真个电压便在0~VCC变革,进而ADC0804的数字输出端也在0x00~0xFF变革。
③ CLKR,CLR,GND之间用电阻和电容组成RC振荡电路,用来给ADC0804供应事情所需的脉冲,其脉冲的频率为1/(1.1RC),按芯片手册上解释,R取10kΩ,C取150pF,TX-1C实验板上为了减少元件种类和焊接方便,C选用的是104磁片电容。大家在设计自己的电路时,可选择150pF电容,否则会影响A/D的转换速率。
④ VREF/2端用两个1kΩ的电阻分压得到VCC/2电压,即2.5V,将该电压作为A/D芯片事情时内部的参考电压。
⑤WR#、 RD#分别接单片机的P3.6和P3.7引脚,数字输出端接单片机的P1口。
⑥ 将AGND和DGND同时连接到实验板的GND上。我们在设计产品时,若用到A/D和D/A,一样平常这些芯片都供应独立的仿照地(AGND)和数字地(DGND)引脚,为了达到精度高,稳定性好的目的,最好将所有器件的仿照地和数字地分别连接,末了将仿照地与数字地仅在一点连接。
⑦ INTR#引脚未连接,TX-1C实验板上读取A/D数据未用中断法,因此可不接该引脚。数字芯片在操作时首先要剖析它的操作时序图,图4.4.6是ADC0804的启动转换时序图。
ADC0804转换时序图:
剖析图4.4.6可知,CS先为低电平,WR#随后置低,经由至少tW(WR#)L韶光后,WR#拉高,随后A/D转换器被启动,并且在经由(1~8个A/D时钟周期+内部TC)韶光后,模/数完成转换,转换结果存入数据锁存器,同时INTR自动变为低电平,关照单片机本次转换已结束。关于几个韶光的大小在芯片手册中都有解释。
我在写单片机程序启动A/D转换时就要遵照上面的时序,由于TX-1C实验板未用中断读取A/D数据,因此我们在启动A/D转换后,稍等一下子韶光,然后直接读取A/D的数字输出口即可。读取结束启动一次A/D转换,如此循环下去。4.4.7是ADC0804读取数据时序图。
剖析上图可知,CS先为低电平,WR#随后置低,经由至少tW(WR#)L韶光后,WR#拉高,随后A/D转换器被启动,并且在经由(1~8个A/D时钟周期+内部TC)韶光后,模/数完成转换,转换结果存入数据锁存器,同时INTR自动变为低电平,关照单片机本次转换已结束。关于几个韶光的大小在芯片手册中都有解释。
我在写单片机程序启动A/D转换时就要遵照上面的时序,由于TX-1C实验板未用中断读取A/D数据,因此我们在启动A/D转换后,稍等一下子韶光,然后直接读取A/D的数字输出口即可。读取结束启动一次A/D转换,如此循环下去。下图是ADC0804读取数据时序图。
剖析上图可知,当INTR#变为低电平后,将CS#先置低,在RD#置低至少经由tACC韶光后,数字输出口上的数据达到稳定状态,此时直接读取数字输出端口数据便可得的数字旗子暗记,读走数据后,立时将RD#拉高,然后再将CS#拉高,INTR#是自动变革的,当RD#置低tR1韶光后,INTR#自动拉高,我们不必人为去干涉。
图4.4.6和图4.4.7是ADC0804启动转换和读取数据的时序图,这是启动一次和读取一次数据的时序图,当我们要连续转换并且连续读取数据时,有没有必要每次都把CS#置低再位高,由于CS#是片选旗子暗记,置低表示该芯片可被操作或处于能够正常事情状态,以是在写程序时,只要一开始将CS#置低,往后当要启动转换和读取数据时只需操作WR#和RD#即可。
行业标准培植,推动行业康健、快速地向前发展。