1·模数转换器ADC0832应用实例
2.工作时序图
下图ADC0832串行A-D转换工作时序,从图中看出,其工作时序分为两和个阶段:第1阶段为起始和通道配置,由CPU发送,从ADC0832DI端输入;第2阶段为A-D转换数据输出,由ADC0832从DO端输出,CPU接收。
(1)起始和通道配置
该阶段由4个时钟组成。在片选CS满足条件(完成从高到低的跳变)后,第1个时钟脉冲的上升沿,测得DI=1,即启动ADC0832;
第2、3个时钟上升沿输入A-D通道地址选择:00和01为差分输入,10和11为单端输入,如表6-3所列;第3个时钟下降沿,DI关断;
第4个时钟是ADC0832使多路转换器选定的通道稳定,DO脱离高阻状态。
编码 | CH0 | CH1 |
---|---|---|
00 | + | - |
01 | - | + |
10 | + | |
11 | + |
(2)A-D转换数据串行输出
ADC0832输出的A-D转换数据分为两帧:第1帧从高位(MSB)到低位(LSB)第2帧从低位到高位,2帧数据合用一个最低位,共需要15个时钟。
电路图
(1)A-D转换电路
80C51P2.4片选0832CS;TXD发送时钟信号,与CLK端连接;RXD与DI、DO端连接在一起,发送A-D通道地址配置信号和接收串行A-D数据。根据ADC0832特点,DI端在接收主机起始和通道配置信号后关断,直至CS再次出现下跳变,DO端在DI端有效期间始终处于三态,因此DI端与DO端可与RXD端连接在一起,不会引起冲突。
代码
#include<reg51.h>
#include<intrins.h>
sbit CS=P2^4;//片选0832
sbit Dp=P1^3;//小数点驱动端
sbit E=P1^2;//定义E为P1.2(139译码允许端)
unsigned char a[2];//定义A-D转换值存储数组a[2]
unsigned char b[4];