知识链接
一、ADC0808的工作原理
常用的ADC按工作原理可分为两种:逐次逼近型和双积分型。逐次逼近型ADC的转换速率较高,而且具有较高的分辨率,在信号测量领域广泛使用;双积分型ADC的转换速率低,但是精度比较高,对周期性变化的干扰信号积分为零,具有很强的抗干扰能力,价格比较低,在仪表中广泛使用。
ADC0808是以逐次逼近原理进行模/数转换的器件。典型转换时间为100 μs;具有三态输出锁存器,可以直接和单片机的数据总线连接;输入输出与TTL兼容;具有8路模拟开关,可直接连接8个模拟量,并用程序控制选择一个模拟量进行A/D转换。ADC0808的内部结构、引脚排列和名称如图8-1-2所示。

图8-1-1 电路原理图

图8-1-2 ADC0808内部结构图
ADC0808采用双列直插式(DIP)封装,具有28条引脚,各引脚功能如下:
●IN0—IN7:8路模拟量输入端,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。
●D0—D7:A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最低位,D0为最高位。
ADDA、ADDB、ADDC:模拟输入通道地址选择线。模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号与选中通道的对应关系见表8-1-1。
表8-1-1 地址信号与选中通道的关系

●ALE:地址锁存允许信号,高电平有效。当此信号有效时,A、B、C 3位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
●START:A/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
●EOC:转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
●OE:输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。
●CLOCK:时钟输入信号。要求频率范围为10 ~1 280 kHz,典型值为640 kHz。
●UR(+)和UR(-):正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,UR(+)=5 V,UR(-)=0V;双极性输入时,UR(+)、UR(-)分别接正、负极性的参考电压。
●VCC:+5 V电源线。(https://www.daowen.com)
●GND:接地端。
二、LM35的工作原理
LM35是由National Semiconductor所生产的模拟温度传感器,其输出电压与摄氏温标呈线性关系,即0 ℃时输出电压为0 V,每升高1 ℃,输出电压增加10 mV,这使得A/D转换后的“电压-温度”换算非常简单。在常温下,LM35不需要额外的校准处理即可达到±0.25 ℃的线性度和0.5 ℃的精度。其电源供应模式有单电源与正负双电源两种,其接脚如图8-1-3所示,双电源供电可以测量负温度,测量范围是-55~110 ℃;单电源模式在25 ℃下电流约为50 mA,工作电压较宽,可在4~20 V的供电电压范围内正常工作,非常省电。温度与电压的转换公式为:
UO=10 mV/℃ ×T
其中:T表示当前测试温度,UO表示LM35输出电压值。

图8-1-3 LM35的接脚
三、LM358放大器
LM358内部包括两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源供电,也适用于双电源工作模式。它的使用范围包括传感放大器、直流增益模组、音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。
LM358放大器在本项目中的应用是放大LM35温度传感器的输出电压,因LM35传感器的输出电压较低,如果直接进行模数转换,其转换后分辨率不高,效果较差,所以在LM35的输出端加上LM358构成的同相比例运算放大电路,将电压放大5倍后再送到ADC0808转换电路的模拟信号输入端IN0端口,进行模数转换。其电路连接如图8-1-4所示。

图8-1-4 LM358放大器
图8-1-4中,同相比例运算放大电路的电压放大倍数的计算公式为:

四、数字温度计的计算原理
假设当前温度为T ℃,LM35输出电压为UO,UO经过运算放大电路放大5倍后变为5UO,该信号输入到ADC0808的IN0,经过A/D转换后输出数字量为x。
由于数字量x与ADC0808的输入电压值U的关系为:U/5 V=x/255,即U=x/51。而U=5UO,UO=0.01×T,则:0.05T=x/51。因此温度T与数字量x的关系为:
T=20x/51
根据上式就可以计算出被测物的温度。