首页 > 编程知识 正文

pcf8591中文数据手册,ESP8266与51单片机串口连接

时间:2023-05-03 13:52:06 阅读:154802 作者:4840

目录前言1.PCF8591为ADC转换功能及其源代码DAC输出功能及其源代码2 .具体示例

前言

PCF8591通过IIC进行通信

本章内容与IIC通信相关的知识相关,所以在阅读之前,请阅读这篇文章IIC通信及AT24C02的使用

1.PCF8591是PCF8591为8位A/D和D/A转换器,通过I2C总线串行输入输出,还通过三个硬件地址引脚地址,对四个模拟输入通道、一个输出通道、一个三个地址引脚A0、A1和A2用于硬件编程地址。 蓝布里奇杯的模拟如下。

A0、A1、A2是地址引脚,通常有8种组合方式,最多可以连接8个PCF8591。

发送第一个字节:芯片的地址

在蓝桥杯中,由于A0、A1、A2接地,所以只有一个PCF8591,最后一个用于读写控制。

ADC转换功能及其源代码发送的第二个字节:芯片的基础设置

第7位)默认值为0; 6位) 1则为DA模式,0则为AD模式;

第5位、第4位:输出模式,默认为00; 第2位(默认为0 )自动增量位,一般可以不用想);

1位、零位:频道选择位;

选择哪个A/D通道端口,00对应通道0,01对应通道1,10对应通道2,11对应通道3。

首先进行写操作首先执行芯片寻址、0x90-写入操作,然后选择哪个A/D通道,0x01为AIN1。

voidwrite_ad(void ) {int i; IIC_Start (; IIC_sendbyte(0x90; IIC_WaitAck (; IIC_sendbyte(0x03; IIC_WaitAck (; IIC_Stop (; for(I=0; i1000; I; } 然后是读操作:

unsignedcharread_ad(void ) {unsigned char temp; IIC_Start (; IIC_sendbyte(0x91; IIC_WaitAck (; temp=IIC_RecByte (; IIC_ack(0; IIC_Stop (; 返回时间; IIC_Start (只有一个; 但是,发送的第一个字节先寻址芯片地址、0x91-读取操作,读取的结果temp换算为——temp*5/256=测定的模拟值。

DAC输出功能及其源代码发送第一个字节:保持芯片地址不变

的第二个字节:0x 40 -允许d/a转换(模拟输出)

第三个字节:发送要转换的数字量

void out _ DAC (unsignedchardigital ) {IIC_Start ); IIC_sendbyte(0x90; IIC_WaitAck (; IIC_sendbyte(0x40; IIC_WaitAck (; IIC_sendbyte(digital; IIC_WaitAck (; IIC_Stop (; }在输入的数字中255=5V,依此类推

注:读取AD值时,需要先初始化ADC,因为希望存在延迟,并且写入数字后不能立即读取AD

2 .模拟具体的例行蓝桥杯滑动变阻器的ADC转换,点击下载,取出代码: klqg

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。