基于PCF8591的A/D转换研究

2019-08-06 08:06向兵吕佳璐
科学与财富 2019年11期
关键词:单片机

向兵 吕佳璐

摘 要:随着电子技术和计算机应用的发展,单片机技术在工业控制领域得到广泛应用,A/D转换作为单片机在进行信号处理过程中模拟量和数字量转化的重要渠道,在当今的智能化工业控制领域中,被广泛应用于各种实时监测、控制系统,对单片机在信号采集、传输等领域有着重要的意义。而PCF8591是一种具有IIC总线接口的8位A/D、D/A转换芯片,在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现信息交换。

关键词:单片机;PCF8591;A/D转换;IIC总线

一、A/D转换器发展现状及发展趋势

在自动化检测控制系统中,微型计算机是一个典型的数字系统,为了实现数据采集和输出,A/D转换是必不可少的一个过程。A/D转换器是一种广泛应用的器件,A/D转换器是将摸拟量转换为一定进制的数字量。A/D转换器大多是将电压量转换为正比的二进制数字量,乘以转换系数后可获得电压的数值量,也有先将电压量转换为时间或频率,然后再经计数得到电压的数值量。目前,A/D转换器已经在转换速度和转换精度等主要指标上有了重大突破,而低电压、高精度、高集成度、高效率则是A/D转换器继续发展的主要趋势。

二、PCF8591芯片简介

PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4路模拟输入、一个输出和一个串行IIC 总线接口与CPU进行通信。它的3 个地址引脚A0、A1 和A2 用于编程硬件地址,允许将最多8 个器件连接至IIC总线而不需要额外硬件,相比其他A/D转换芯片,集成度更高,使用方法更加简便。

三、IIC协议简介

IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。

IIC实际上就是随需求的增长应运而生的一种多机(以下分主机、从机)串行数据传输方式,而常说的IIC协议就是指的IIC的使用规则,必须遵守,以保证数据的正确传输。

应用IIC协议的器件一定有时钟总线SCL和数据总线SDA,协议的主要规定有以下几点:

1.SCL在高电平期间,SDA不准变化;SCL在低电平期间,SDA可以变化(数据传输);

2.主机的起始与停止信号控制二者数据传输的节奏;

3.主机发出读写数据命令后,如果从机不应答,一个stop信号就停止数据传输。

四、程序初始化步骤

要驱动PCF8591芯片必须要有驱动的程序,驱动PCF8591主要有以下步骤:

1、总线的启动条件

2、总线停止条件

3、应答位的控制

4、等待应答

5、通过总线发送数据

6、从总线上接收数据

7、写数据

8、读数据

五、程序代码

ADC的写法基本与IIC一致,PCF8951和AT24C02的协议是一样,需要注意的重点是读写命令的,主要的程序如下:

1.发送测量ADC命令

例:void init_pcf8591(void)

{

i2c_start();//初始化

i2c_sendbyte(0x90);//寫命令

i2c_waitack();//等待应答

i2c_sendbyte(0x03);//ADC通道 0x03电位器 0x01光敏电阻

i2c_waitack();//等待应答

i2c_stop();//停止

operate_delay(10);//延时10us

}

2.接收PCF8591转换过的采样电压值

unsigned char adc_pcf8591(void)

{

unsigned char temp;

i2c_start();//初始化

i2c_sendbyte(0x91);//读命令

i2c_waitack();//等待应答

temp = i2c_receivebyte();//将读取的值给temp

iic_ack(0);

i2c_stop();

return temp;

}

3.转换数据:(注:转换后的电压单位为mv)

cnt=adc_pcf8591();

dspbuf[4]=cnt*196/10000;

dspbuf[5]=cnt*196%10000/1000;

dspbuf[6]=cnt*196%10000%1000/100;

dspbuf[7]=cnt*196%10000%1000%100/10;

(以上为存储器映射写法的数码管显示,dspbuf代表的是数码管段选缓冲数组)

六、小结

传统的A/D转换器需要占用较多的I/O口,而且转换时间长,读写操作复杂,并且不易实现系统扩展。从以上程序可以看出,PCF8591这种具有IIC总线结构的多通道8bits的A/D转换器,相比于传统的A/D转换器,结构较为简单,节约I/O资源(只需要两个I/O口,即:时钟线和数据线),扩展性强,可靠性高,能进行更多更强的处理。

参考文献

[1] 姚越,吴宝庆.关于单片机技术应用的研究[J]. 科技资讯,2018,16(09):112-113.

[2] 梁小廷.单片机技术的发展及应用研究[J]. 民营科技,2018(06):9.

[3] 秦国栋.单片机技术微课库建设实例[J]. 科学咨询(科技?管理),2018(03):52.

[4] 刘玉丛.单片机技术应用课程实践化教学改革的探索[J]. 电子世界,2018(03):97.

作者简介:

向兵(1990-),男,汉,四川南充人,助教,硕士研究生,从事单片机原理与应用、电子产品分析与制作等课程研究及项目开发。

吕佳璐(1999-),女,汉,四川成都人,绵阳职业技术学院信息工程系2017级,电子信息工程技术专业专科在读,擅长单片机开发项目设计与研究。

*课题项目:绵阳职业技术学院,校级精品在线开放课程-《电子产品分析与制作》

猜你喜欢
单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计