300 likes | 635 Views
KEIL C 单片机原理与项目实践. 项目九 D/A 和 A/D 转换. 9. 1 项目说明. 利用 HOT-51 实验板上的 A/D-D/A 芯片 PCF8591 将输入的模拟电压转换为数字量,并将该数字量以十进制的形式显示在数码管上。用电位器调节输入的模拟电压,观察并记录数码管上数值的变化,利用所学知识对结果进行分析。. 项目九 D/A 和 A/D 转换. 9. 2 基础知识. 9.2.1 D/A 与 A/D 转换概述.
E N D
项目九 D/A和A/D转换 9. 1 项目说明 利用HOT-51实验板上的A/D-D/A芯片PCF8591将输入的模拟电压转换为数字量,并将该数字量以十进制的形式显示在数码管上。用电位器调节输入的模拟电压,观察并记录数码管上数值的变化,利用所学知识对结果进行分析。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.1 D/A与A/D转换概述 图9-1所示为单片机控制系统框图。由图9-1可知,单片机对各种各样的外界环境进行控制时,与单片机控制系统有关的物理量一般有两种:模拟量、数字量。 图9-1 单片机控制系统框图
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 D/A的转换原理及性能指标 (一)D/A的转换原理 (1)D/A转换器框图 图9-2所示为D/A转换器的框图,它的输入D0~ Dn-1为n位二进制数,输出uo或io是模拟电压或电流。 (2)D/A转换原理 D/A转换就是将数字量转换成与之成正比的模拟量。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 D/A的转换原理及性能指标 (一)D/A的转换原理 (3)D/A转换器的一般组成 根据D/A转换原理,D/A转换器主要由数字寄存器、电子开关、位权网络、求和运算放大器和基准电压源(或恒流源)组成,如图9-4所示。 图9-4 DAC原理图 (4)D/A转换原理 4位权电阻网络D/A转换器如图9-5所示,它由数字寄存器、权电阻网络、4个电子开关、基准电压VREF和1个求和放大器组成。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 D/A的转换原理及性能指标 (一)D/A转换器的性能指标 (1)分辨率 分辨率是指D/A转换器输出模拟电压可能被分离的等级数。输入数字量的位数越多,输出电压被分离的等级越多,即分辨率越高。 (2)转换误差 转换误差表示D/A转换器输出模拟量的实际值与理论值之间的差别。 (3)转换误差 建立时间是指D/A转换器输入数字量发生变化时,输出电压变化到相应稳定电压值所需时间。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 DAC0832及其应用 (一)DAC0832的特性 单电源供电(+5V~+15V); 基准电压为-10V~+10V; 分辨率为8位; 转换时间约1us; 数字量输入方式有单缓冲、双缓冲或直通方式; 只需在满量程下调整其线性度; 低功耗约20mW。 图9-6 DAC0832引脚图
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 DAC0832及其应用 (二)DAC0832的引脚 VCC——电源,范围为+5V~+15V。 AGND——模拟地,即模拟信号接地端。 DGND——数字地,即数字信号接地端。 VREF——基准电压,范围为-10V~+10V。 D7~D0——8位数字量输入引脚,D7是最高位,D0是最低位。 IOUT1——模拟电流输出端1,当输入数字量全为1时,输出电流最大;当输入数字量全为0时,输出电流为0。 IOUT2——模拟电流输出端2,IOUT1与IOUT2之和为一常数。 ——片选信号,低电平有效。 ILE——数据锁存信号,高电平有效。 ——输入寄存器写信号,低电平有效。当、、ILE同时有效时,将D7~D0端输入的数字量锁存到输入寄存器。 ——DAC寄存器写信号,低电平有效。当、同时有效时,输入寄存器中的数据被传送至DAC寄存器。 ——数据传输控制信号,低电平有效。 RF——反馈电阻引出端,在DAC0832的内部,RF的另一端与IOUT1相连。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 DAC0832及其应用 (三)DAC0832的内部结构 DAC0832的内部结构如图9-7所示,它主要由1个8位输入寄存器、1个8位D/A寄存器、1个位8位D/A转换器组成。使用2个寄存器的好处是可以进行两级缓冲,使数字量的输入方式更为灵活,由于输入寄存器的存在,DAC0832可以直接与单片机相连。DAC0832输出的模拟量为电流信号,当需要输出电压时,可外接运算放大器将电流转换为电压。 图9-7 DAC0832内部结构
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 DAC0832及其应用 (四)DAC0832的工作方式 (1)直通方式 直通方式是指输入数字量不经过两级寄存器锁存,即 、、、均接地,ILE接高电平。 (2)单缓冲方式 单缓冲方式是使8位输入寄存器和8位DAC寄存器中有一个始终工作于直通方式,另一个处于受控状态,或者同时控制8位输入寄存器和8位DAC寄存器。 (3)双缓冲方式 双缓冲方式时DAC0832锁存输入数字量和D/A转换输出分两步进行,即由CPU分时输出数字量并锁存在各DAC0832的8位输入寄存器中;然后由CPU对所有的DAC0832发出控制信号,使各8位输入寄存器中的数据传送至相应的8位DAC寄存器,实现同步转换输出。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.2 DAC0832及其应用 (四)DAC0832应用举例 (1)硬件设计 硬件电路如图9-8所示 (2)软件设计 三角波发生函数sanjiao( )用以产生一个周期的三角波。对应的输出电压由0V递增至5V,形成上升段;对应的输出电压由5V递减至0V,形成下降段; 图9-8 DAC0832与51单片机连接图
项目九 D/A和A/D转换 9. 2 基础知识 9.2.3 D/A转换原理及性能指标 (一)D/A转换原理 (1)取样-保持 取样就是对模拟信号周期性地抽取样值的过程,将连续变化的模拟信号转变成在时间上离散的脉冲串,但其取样值仍取决于取样时间内输入模拟信号的大小。 取样-保持原理如图9-9所示。图9-9 (b)所示是待取样的模拟信号,图9-9 (c)是矩形取样脉冲。图9-9 (a)所示是取样电路示意图,当开关闭合时,us=ui;当开关断开时,us=0。如果在取样脉冲的高电平期间,开关闭合;在取样脉冲的低电平期间,开关断开,可以得到图9-9 (d)所示取样信号。 图9-9 取样-保持电路与波形
项目九 D/A和A/D转换 9. 2 基础知识 9.2.3 D/A转换原理及性能指标 (一)D/A转换原理 (2)量化-编码 图9-10 量化方法
项目九 D/A和A/D转换 9. 2 基础知识 9.2.3 D/A转换原理及性能指标 (二)逐次逼近型ADC (1)内部结构 逐次逼近型A/D转换器的内部结构如图9-11所示,它由D/A转换器、电压比较器、逻辑控制电路、n位逐次逼近寄存器及三态输出锁存器构成。 (2)工作原理 逐次逼近型A/D转换器就是通过逐次比较,确定n位二进制数每一位的状态是1还是0。下面以3位逐次逼近A/D转换器为例介绍其逼近过程。 图9-11 逐次逼近A/D转换器原理图
项目九 D/A和A/D转换 9. 2 基础知识 9.2.3 D/A转换原理及性能指标 (三)D/A转换原理 (1)分辨率 (2)转换误差 转换误差是在零点和满度都校准以后,在整个转换范围内,分别测量各个数字量所对应的模拟输入电压实测范围与理论范围之间的偏差,取其中的最大偏差作为转换误差。 (3)转换速度 转换速度是指 A/D转换器完成一次模数转换所需要的时间,即从转换开始到输出端出现稳定的数字信号所需要的时间。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 ADC0809及其应用 (一)ADC0809的特性 +5V单电源供电; 基准电压最高为+5V; 8位分辨率; 转换时间约100us; 8路模拟量输入、分时转换,信号电压在0~5V,不需零点和满刻度校准; 三态锁存缓冲器输出,可直接与单片机数据总线相连;图9-12 ADC0809引脚图 具有转换起停控制端; 低功耗,约15mw。 图9-12ADC0809引脚图 (二)ADC0809的引脚 ADC0809是29个引脚的双列直插式芯片,图9-12所示为其引脚图,各引脚的定义为:
项目九 D/A和A/D转换 9. 2 基础知识 表9-3 3位地址与8路模拟量输入端之间的关系 9.2.4 ADC0809及其应用 (二)ADC0809的引脚 Vcc——电源,+5V。 GND——地。 VREF+、VREF-——基准电压,最高为+5V。 IN7~IN0——8路模拟量输入端。 D7~D0——8位数字量输出端。D7为最高位,D0为最低位。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 ADC0809及其应用 (三)ADC0809的内部结构与工作原理 ADC0809的内部结构如图9-13所示,它主要由8路模拟开关、地址锁存与译码器、8位逐次逼近A/D转换器、三态输出锁存器组成。ADC0809在进行A/D转换时,首先给3位地址输入端A、B、C输入3位地址,并使ALE=1,将地址存入地址锁存与译码器中。此地址经译码后,使8路模拟开关中的一个闭合,选通8路模拟量输入IN7~IN0中的一路送入8位逐次逼近A/D转换器。由START上升沿将8位逐次逼近A/D转换器中的寄存器复位,下降沿启动 A/D转换,在转换过程中,EOC一直为低电平,只有在转换结束之后EOC输出高电平,表示转换结束,转换后的数字量已存入锁存器。当OE输入高电平时,三态输出锁存器打开,转换后的数字量可以输出到8位数字量输出端D7~D0上,供单片机读取。 图9-13 ADC0809内部结构
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 ADC0809及其应用 (四)ADC0809与51单片机的连接 适用于多通道工作的ADC0809与51单片机连接方式如图9-14所示。 (1)时钟信号 (2)控制信号 (3)地址线与数据线 (五)ADC0809的工作方式 (1)查询方式 (2)中断方式 图9-14 ADC0809与51单片机连接图
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 ADC0809及其应用 (六)ADC0809应用举例 (1)硬件设计 硬件电路如图9-15所示。 (2)软件设计 ADC0809工作于中断方式时,主函数中首先要对外部中断0初始化,确定触发方式、开中断等;接着启动ADC0809实现第一次A/D转换;最后一边调用显示函数xianshi( )显示模拟电压值,一边等待ADC0809中断。 图9-15 ADC0809应用电路
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (一)PCF8591的特点 单电源供电 PCF8591的工作电压范围2.5V~6V 待机电流低 通过I2C总线串行输入/输出 PCF8591可编程地址为3位 PCF8591的取样率由I2C总线速率决定 4路模拟信号输入可编程为单端或双端输入 具有4路模拟信号通道号自增功能 PCF8591的模拟电压范围从VSS到VDD PCF8591内置跟踪保持电路 1个逐次逼近A/D转换器 1路模拟输出实现D/A转换 图9-16 PCF8591引脚图 (二)PCF8591的引脚 PCF8591是16个引脚的双列直插式芯片,图9-16所示为其引脚图。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (三)PCF8591的内部结构 PCF8591的内部逻辑结构如图9-17所示 (四)PCF8591的地址 在I2C总线协议中,主器件发送启动信号之后的第一个字节必须是器件地址。I2C总线系统中的每一片PCF8591都有惟一的地址。该地址由固定的器件地址和可编程地址二部分组成,地址字节的最后一位是读/写位(R/),由它决定接下来的数据传输方向。PCF8591的地址格式如表9-5所示。 图9-17 PCF8591内部结构
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (五)PCF8591的控制字 发送到PCF8591的第二个字节是控制字,控制字用于控制器件功能。PCF8591的控制字格式如表9-6所示。 表9-6 PCF8591控制字 E——模拟输出允许位。 模拟输出允许位E用于控制是否输出D/A转换后的模拟信号。E=1时,允许输出转换后模拟信号;E=0时,禁止输出转换后的模拟信号。 M1、M0——模拟输入方式选择位。 PCF8591的4路模拟信号输入AIN0~AIN3,通过用户编程可将它们设置为单端或双端输入,共有4种输入方式。如图9-18所示。
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (五)PCF8591的控制字 PCF8591的4种输入方式。如图9-18所示 (六)PCF8591的控制字 PCF8591芯片上的振荡器用于产生A/D、D/A转换周期和刷新缓冲器所需要的时钟信号。 (七)PCF8591的D/A转换 D/A转换后模拟电压输出端AOUT输出的模拟电压为 图9-18 PCF8591输入方式
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (七)PCF8591的D/A转换 D/A转换时序图如图9-19所示。 (八)PCF8591的A/D转换 PCF8591读周期中读出的第一个字节是前一次A/D转换的结果。在电源复位后,第一个字节是0x80。I2C总线读时序如图9-20所示。 图9-19 PCF8591 D/A转换时序图 图9-20 PCF8591 A/D转换时序图
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (九)PCF8591的帧格式 (1)写操作 主器件向PCF8591发送数据,格式为: (2)读操作 主器件从PCF8591读取数据,格式为:
项目九 D/A和A/D转换 9. 2 基础知识 9.2.4 PCF8591及其应用 (十)PCF8591应用举例 例:用PCF8591对unsigned char类型的变量i进行数/模转换,用万用表监测模拟电压输出端AOUT的变化;每隔500s,变量i自增1,并将i数值显示在数码管上。 解:PCF8591与51单片机的连接图如图9-21所示。P2.5作为串行时钟线SCL,P3.6作为串行数据线SDA;基准电压VREF接+5V;EXT接地采用片上振荡器;3位可编程地址线A2~A0接地,固定的器件地址为1001,因此PCF8591的写地址为10010000B=90H,读地址为10010001B=91H;D/A转换时的控制字为40H。 图9-21 PCF8591 D/A应用电路