单片机输入通道常用的模-数转换器(又称A-D转换器或ADC),能把模拟信号(如温度、压力等)物理量变换成数字信号,然后才送入CPU作处理。其主要考虑因素有:
分辨率:数字输出的一个LSB(最低有效位)所对应的模拟量变化值。
转换速率:一次A-D转换的时间。
转换精度:A-D转换实际结果与理论值之差。
满量程误差:输出全为1时,输入电压与理论值之差。
按转换原理可分为逐次逼近式、双重积分式、量化反馈式和并行式;分辨率有8位、12位、16位、24位和32位等。下面以逐次逼近式8位并行A-D转换器ADC0809为例进行讨论。
1.A-D转换器的原理
ADC0809的内部逻辑结构见图5-15。由单+5V电源供电,8路模拟量输入,由外部输入时钟频率,典型值为640kHz,每个通道转换时间约100μs,功耗约15mW。引脚的功能如下:
图5-15 ADC0809的内部逻辑结构
IN0~IN7:模拟量输入通道,为单极性信号,电压范围为0~5V。
ADDA~ADDC:用来选择模拟通道IN0~IN7,地址编码值为000~111。
ALE:地址锁存允许信号,上跳沿有效。
START:转换启动信号,上跳沿内部寄存器清零,下跳沿转换开始。
D0~D7:数据输出线,可直接与P0口相连,输出带有三态缓冲。
OE:输出允许信号,OE为低时输出呈高阻;OE为高时三态缓冲器输出数据。
EOC:转换结束信号,EOC为低时转换进行中;EOC为高时可作转换结束的标志。(www.xing528.com)
CLK:时钟信号,由外部输入500kHz的时钟信号。
VREF:参考电源,通常是VREF(+)连接VCC,VREF(-)连接GND。
VCC:+5V供电电源。
图5-15标示的A-D转换次序为:(1)ALE正跳变把通道地址锁存,相应的模拟通道接通;(2)START负跳变启动转换;(3)转换结束时ECO电平由低变高电,供作标志;(4)OE高电平使三态输出缓冲器导通,输出转换数据。
2.ADC0809与单片机的接口电路
接口电路主要有查询和中断两种方式。均由单片机的ALE分频提供CLK信号(12MHz晶振,需4分频;6MHz晶振,需2分频)。图5-16为ADC0809与单片机的查询方式接口电路。图5-17为ADC0809与单片机的中断方式接口电路。
图中74HC373用于其他扩展,与ADC0809无直接关系。地址线ADDA~ADDC与P0.0~P0.2连接,P2.0低电平相当于A-D的片选线,其余未用口线均为1,因此8通道地址为FEF8H~FEFFH。分频器用一个D触发器,可实现二分频;用两个D触发器级联,可实现四分频。START只在写操作时有效,OE在读操作时有效。以下是查询方式和中断方式采样的编程举例。
图5-16 ADC0809与单片机的查询方式接口电路
图5-17 ADC0809与单片机的中断方式接口电路
1)查询方式:图5-16,对8路模拟信号轮流采样,转换结果存放RAM区50H~57H单元。P3.3与EOC端相连,通过查询EOC的高电平来判断每个通道的转换状态。
2)中断方式:见图5-17,对8路模拟信号用中断方式轮流采样,结果的存放单元同上例。把EOC的高电平反相,由下降沿触发中断。在中断服务程序中,读取转换结果并作处理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。