单片机如何处理模数转换

2025-10-24 21:32:38

1、电路需求:    

在一些旧式单片机如51/52等等,内部没有集成模数转换模块,所以此类芯片的开发板要学习模数转换,那就要借助外部模数转换电路。如图是采用模数转换芯片PCF8591的电路图。按图连接相应的电路即可。在一些增强性8050内核芯片就有一些含有模数转换模块的的芯片如STC15等。

单片机如何处理模数转换

2、原理:

模数转换即是把输入电压与内部参考基准电压作比较,模块内部把基准电压分成很多个电压开关(如256个,精度为8位),输入电压与每个开关电压做比较,当输入电压的电压值与某个电开关的电压值相等或最接近时,该开关打开,开关对应的二进制编码即存储到存储器。这样就完成了一次模拟量到数字量的转换。

单片机如何处理模数转换

3、接口:

1:数据传输接口SCL、SDA(IIC协议),和芯片可设置地址A0-A2。

2:输入通道AIN0-AIN3

3:数模转换输出引脚AOUT

4:参考基准电压VREF及模拟地AGND

单片机如何处理模数转换

4、IIC协议底层:

要想实现模数转换,首先你要去驱动它,使它工作。那么IIC协议则是驱动它一个规则。如开始信号,结束信号,应答信号,数据有效性,发送一字节,接收一字节等等。

单片机如何处理模数转换

单片机如何处理模数转换

单片机如何处理模数转换

5、工作流程:

//AD转换函数unsigned char AD_zhuan(void){ unsigned char temp; PCF8591_start(); PCF8591_write(0x90);  //写入器件地址+ 数据读/写方向位----第一字节 PCF8591_write(0x02);  //写入控制字,器件功能设置----第二字节(单通道,通道2) PCF8591_start();    //从新开始新的操作, PCF8591_write(0x91);  //器件地址+读操作 temp = PCF8591_read(); //采集电压,放到temp里面 //读取AD/DA数据寄存器 Zhu_ack(1);       //采集完毕,主机应答 PCF8591_stop();     //关闭AD return temp;}

单片机如何处理模数转换

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢