第10章 AT89S52单片机与DAC、 ADC的接口 1.

Slides:



Advertisements
Similar presentations
自动化学院应用电子教学中心 1 第七章 数 / 模和模 / 数转换器 数字电路与 系统设计. 自动化学院应用电子教学中心 2 第七章 模 / 数和数 / 模转换器 7.1 概述 7.2 D/A 转换器 7.3 A/D 转换器.
Advertisements

假设D3、D2、D1、D0全为1,则BS3、BS2、BS1、BS0全部与“1”端相连。根据电流定律,有:
第10章 模/数和数/模转换 10.1 概述 10.2 模/数与数/模转换通道的组成 10.3 模/数与数/模转换器的主要技术指标
绪论:LabVIEW控制简介 复旦大学物理教学实验中心 phylab.fudan.edu.cn.
实验四 利用中规模芯片设计时序电路(二).
第7章 模拟量输入输出接口 西安交通大学计算机系 桂小林 2017年3月18日.
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
Roy Wan PCI MS/s 14-bit 高速数字化仪 Roy Wan
第7章 模/数和数/模转换电路 7.1 模/数转换电路 7.2 数/模转换电路.
一、任务描述 二、任务分析 三、相关知识 四、任务布置. 一、任务描述 二、任务分析 三、相关知识 四、任务布置.
第十章 D/A、A/D转换接口(6学时) 现代计算机接口技术  知 识 概 述  第一节 D/A转换(2学时)
第12章 模拟量和数字量的转换 12.1 D/A转换器 12.2 A/D转换器.
现代电子技术实验 4.11 RC带通滤波器的设计与测试.
单片机应用技术 项目三 智能温控装置 第1讲 温度检测子项目 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
实验四 组合逻辑电路的设计与测试 一.实验目的 1.掌握组合逻辑电路的设计 方法 2.学会对组合逻辑电路的测 试方法.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
第二章 模拟量输出通道 本章要点 1.模拟量输出通道的结构组成与模板通用性; 2.8位D/A转换器DAC0832的原理组成及其接口电路
逆向工程-汇编语言
实验六 积分器、微分器.
CPU结构和功能.
第10章 D/A、A/D转换器及其与CPU的接口
§5-4 数/模转换电路(DAC) 学习要点: D/A转换电路原理 倒T型电阻网络D/A.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
安捷伦Agilent 3458A 八位半高精度万用表
第一章 电路基本分析方法 本章内容: 1. 电路和电路模型 2. 电压电流及其参考方向 3. 电路元件 4. 基尔霍夫定律
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
8.4 ADC0809接口电路及程序设计.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
10.2 串联反馈式稳压电路 稳压电源质量指标 串联反馈式稳压电路工作原理 三端集成稳压器
集成运算放大器 CF101 CF702 CF709 CF741 CF748 CF324 CF358 OP07 CF3130 CF347
8.3 A/D转换器及接口技术 A/D转换器概述 在大规模集成电路高速发展的今天,由于计算机控制技术在工程领域内的广泛应用,A/D转换器在应用系统中占据着重要的地位。为了满足各种不同的检测及控制任务的需要,大量结构不同,性能各异的A/D转换电路应运而生。尽管A/D转换器的种类繁多,但目前广泛使用的还是逐次比较式和双积分式。
第8章 A/D转换与D/A转换 教学内容 A/D与D/A转换 单片机扩展I2C总线 A/D与D/A转换器PCF8591.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验六 触发器逻辑功能测试 一、实验目的 二、实验仪器 1、熟悉并掌握RS、D、JK触发器的构成、工作原理和 功能测试方法。
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
实验五 MSI组合逻辑功 能部件的应用与测试
HSC高速输出例程 HORNER APG.
电路原理教程 (远程教学课件) 浙江大学电气工程学院.
调幅与检波的研究 实验目的 实验原理 实验内容 注意事项.
定时中断与LED MCU起航 QQ:
实验一 单级放大电路 一、 实验内容 1. 熟悉电子元件及实验箱 2. 掌握放大器静态工作点模拟电路调试方法及对放大器性能的影响
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
单片机应用技术 (C语言版) 第10章 单片机测控接口
信号发生电路 -非正弦波发生电路.
第8章 应用系统配置及接口技术 ● 教学目标 ● 学习要求
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
上节复习(11.14) 1、方式2、方式0的特点? 2、定时/计数器的编程要点? 3、实验5方案优化问题.
电工电子技术实验 电工电子教学部.
ADC0809并行A/D转换 (实验十) DAC0832并行D/A转换实验 (实验十一) RS232串口通信实验 (实验九)
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
B12 竺越
第12章 555定时器及其应用 一. 555定时器的结构及工作原理 1. 分压器:由三个等值电阻构成
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
混沌保密通讯 实验人 郝洪辰( ) 李 鑫( ).
汽车单片机应用技术 学习情景1: 汽车发动机系统的单片机控制 主讲:向楠.
DSP技术与应用 电子与信息技术系.
9.6.2 互补对称放大电路 1. 无输出变压器(OTL)的互补对称放大电路 +UCC
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
Presentation transcript:

第10章 AT89S52单片机与DAC、 ADC的接口 1

10.3 AT89S52单片机与12位D/A转换器AD667的接口设计 10.3.1 12位D/A转换器AD667简介 第10章 AT89S52单片机与DAC、ADC的接口 10.1 单片机扩展D/A转换器概述 10.2 单片机扩展并行8位DAC0832的设计 10.2.1 DAC0832简介 10.2.2 单片机与8位D/A转换器0832的接口设计 10.3 AT89S52单片机与12位D/A转换器AD667的接口设计 10.3.1 12位D/A转换器AD667简介 10.3.2 AD667与AT89S51单片机的接口设计 10.3.3 AD667使用中的技术细节 10.4 AT89S51与串行输入的12位D/A转换器AD7543的接 口设计 2

10.4.1 AD7543简介 10.4.2 单片机扩展AD7543的接口设计 10.5 单片机扩展A/D转换器概述 10.6 单片机扩展并行8位A/D转换器ADC0809 10.6.1 ADC0809简介 10.6.2 单片机与ADC0809的接口设计 10.7 AT89S52单片机扩展12位串行ADC-TLC2543的设计 10.7.1 TLC2543的特性及工作原理 10.7.2 单片机扩展TLC2543的设计 10.8 AT89S52与双积分型A/D转换器MC14433的接口 10.8.1 MC14433 A/D转换器简介

10.8.2 单片机与MC14433的接口设计 10.9 AT89S52单片机与V/F转换器的接口 10.9.1 用V/F转换器实现A/D转换的原理 10.9.2 常用V/F转换器LMX31简介 10.9.3 V/F转换器与单片机的接口设计 10.9.4 V/F转换的应用设计

内容概要 在单片机测控系统中,对非电物理量如温度、压力、流量等的测量,须经传感器先转换成连续变化的模拟电信号(电压或电流),然后再将模拟电信号转换成数字量后才能在单片机中进行处理。实现模拟量转换成数字量的器件称为ADC(A/D转换器)。单片机处理完毕的数字量,有时要根据控制需求转换为模拟信号输出。数字量转换成模拟量的器件称为DAC(D/A转换器)。本章从应用的角度,介绍典型的ADC、DAC芯片与AT89S52单片机的接口设计。

10.1 单片机扩展D/A转换器概述 单片机只能输出数字量,但是对于某些控制场合,常常需要输出模拟量,例如直流电动机的转速控制。下面介绍单片机如何扩展DAC。 目前集成化的DAC芯片种类繁多,设计者只需要合理选用芯片,了解它们的性能、引脚外特性以及与单片机的接口设计方法即可。由于现在部分单片机芯片中集成了DAC,位数一般在10位左右,且转换速度也很快,所以单片的DAC开始向高的位数和高转换速度上转变。而低端的并行8位DAC,开始面临被淘汰的危险,但是在实验室或涉及某些工业控制方面的应用,低端8位DAC以其优异的性价比还是具有较大的应用空间。 6

1.D/A转换器简介 购买和使用D/A转换器时,要注意有关D/A转换器选择的几个问题。 (1)D/A转换器的输出形式 D/A转换器有两种输出形式:电压输出和电流输出。电流输出的D/A转换器在输出端加一个运算放大器构成的I-V转换电路,即可转换为电压输出。 (2)D/A转换器与单片机的接口形式 单片机与D/A转换器的连接,早期多采用8位的并行传输的接口,现在除了并行接口外,带有串行口的D/A转换器品种也不断增多,目前多采用较为流行SPI串行接口。在选择单片D/A 7

转换器时,要根据系统结构考虑单片机与D/A转换器的接口形式。 2.主要技术指标 D/A转换器的指标很多,设计者最关心的几个指标如下。 (1)分辨率 分辨率指单片机输入给D/A转换器的单位数字量的变化,所引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数),习惯上用输入数字

量的位数表示。显然,二进制位数越多,分辨率越高,即D/A转换器输出对输入数字量变化的敏感程度越高。例如,8位的D/A转换器,若满量程输出为10V,根据分辨率定义,则分辨率为10V/2n,分辨率为10V/256=39.1mV,即输入的二进制数最低位数字量的变化可引起输出的模拟电压变化39.1mV,该值占满量程的0.391%,常用符号1LSB表示。 同理: 10位D/A转换 1 LSB=9.77mV=0.1%满量程 12位D/A转换 1 LSB=2.44mV=0.024%满量程 9

16位D/A转换 1 LSB=0.076mV=0.00076%满量程 使用时,应根据对D/A转换器分辨率的需要来选定D/A转换器的位数。 (2)建立时间 建立时间是描述D/A转换器转换速度的参数,用于表明转换时间长短。其值为从输入数字量到输出达到终值误差±(1/2)LSB(最低有效位)时所需的时间。电流输出的转换时间较短,而电压输出的转换器,由于要加上完成I-V转换的时间,因此建立时间要长一些。快速D/A转换器的建立时间可控制在1µs以下。 10

(3)转换精度 理想情况下,转换精度与分辨率基本一致,位数越多精度越高。但由于电源电压、基准电压、电阻、制造工艺等各种因素存在误差,严格地讲,转换精度与分辨率并不完全一致。两个相同位数的不同的DAC,分辨率则相同,但转换精度会有所不同。例如,由于制作工艺上的差异,某种型号的8位DAC精度为±0.19%,而另一种型号的8位DAC精度为±0.05%。 10.2 单片机扩展并行8位DAC0832的设计 美国国家半导体公司的DAC0832芯片是具有两级输入数据寄存器的8位DAC,它能直接与AT89S52单片机连接。 11

10.2.1 DAC0832简介 1.DAC0832芯片介绍 (1)DAC0832的特性 其主要特性如下。 ① 分辨率为8位。 ② 电流输出,建立时间为1µs。 ③ 可双缓冲输入、单缓冲输入或直接数字输入。 ④ 单一电源供电(+5V~+15V)。 (2)DAC0832的引脚及逻辑结构 DAC0832的引脚如图10-1所示,DAC0832的片内逻辑结构如图10-2所示。 12

图10-1 DAC0832的引脚 13

图10-2 DAC0832的逻辑结构

各引脚的功能如下。 DI0~DI7:8位数字信号输入端,与单片机的数据总线P0端口相连,用于接收单片机送来的待转换为模拟量的数字量,DI7为最高位。 ILE=1,CS*=0, WR1*=0时,即M1=1(LE1*=0),待转换的数字量被锁存到第一级“8位输入寄存器”中。 XFER*=0, WR2*=0时,即M3=1( LE2*= 0),待转换的第一级8位输入寄存器中数字量被锁存到第二级的“8位DAC寄存器”中,并经“8位D/A转换电路” 转换为电流输出。 IOUT1:D/A转换器电流输出1端,输入数字量全为“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。 15

IOUT2:D/A转换器电流输出2端,IOUT2 + IOUT1 = 常数。 Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。 VCC:电源输入端,在+5V~+15V范围内。 DGND:数字信号地。 AGND:模拟信号地,最好与基准电压(为模拟信号)共地。 DAC0832内部的三部分电路如图10-2所示。“8位输入寄存器”用于存放单片机送来的数字量,使输入数字量得到缓冲和锁存,由LE1*=0(M1=1)加以控制;“8位DAC寄存器” 为第二级寄存器,由LE2*= 0(M3=1)控制,用于将“8位输入寄 16

存器”输出的数字量锁存,并送入“8位D/A转换电路” 转换,输出和数字量成正比的模拟电流。因此,DAC0832通常需要外接I-V转换的运算放大器电路,才能得到模拟输出电压。 10.2.2 AT89S52单片机与8位D/A转换器0832的接口设计 设计AT89S52单片机与DAC0832的接口电路时,常用单缓冲方式或双缓冲方式的单极性输出。 (1)单缓冲方式 单缓冲方式是指DAC0832内部的两个寄存器有一个处于直通方式,另一个处于受AT89S52单片机控制的锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出

但并不要求多路输出同步的情况下,就可采用单缓冲方式。 单缓冲方式的接口电路如图10-3所示。 图10-3所示的是单极性模拟电压输出电路,由于DAC0832是8位(28=256)的D/A转换器,由基尔霍夫定律列出德方程组可解得DAC0832输出电压vo与输入数字量B的关系为: 显然,DAC0832输出的模拟电压vo的绝对值与输入的数字量B以及基准电压VREF成正比,且B为0时,vo也为0,B为255时,vo为最大的绝对值输出,且不会大于VREF 。 18

图10-3 单缓冲方式下AT89S52单片机与DAC0832的接口电路

图10-3中,DAC0832的WR2*和XFER*接地,故DAC0832第二级的“8位DAC寄存器”(见图10-2)工作于直通方式。“8位输入寄存器”受和端控制(ILE 已经为高),而且由译码器输入为FEH时,输出端为低来控制(也可由P2口的某一条口线来控制)。因此,AT89S51单片机执行如下两条指令就可在和上产生低电平信号,使DAC0832接收单片机送来的数字量。 20

【例10-1】 DAC0832用作波形发生器。试根据图10-3的电路,分别写出产生锯齿波、三角波和矩形波的程序段。 MOV R0,#0FEH ;DAC的8位输入寄存器端口地址FEH→R0 MOVX @R0,A ;AT89S51单片机将待转换的数字量送DAC, ;且和译码器FEH输出端有效 现举例说明单缓冲方式下DAC0832的应用。 【例10-1】 DAC0832用作波形发生器。试根据图10-3的电路,分别写出产生锯齿波、三角波和矩形波的程序段。 在图10-3中,运算放大器A输出端Vout直接反馈到Rfb,故这种接线产生的模拟输出电压是单极性的。 21

① 锯齿波的产生 ORG 2000H START: MOV R0,#0FEH ;DAC地址FEH→ R0 MOV A,#00H ;数字量→A LOOP: MOVX @R0,A ;数字量→D/A转换器 INC A ;数字量逐次加1 SJMP LOOP 当输入数字量从0开始,逐次加1进行D/A转换,模拟量与其成正比输出。当A = FFH时,再加1则溢出清0,模拟输出又为0,然后又重新重复上述过程,如此循环,输出的波形就是锯齿波,如图10-4所示。 22

实际上,每一上升斜边要分成256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。因此 “INC A”指令后插入NOP指令或延时程序,则可改变锯齿波频率。 图10-4 DAC0832产生的锯齿波输出 23

② 三角波的产生 输出的三角波如图11-5所示。 图11-5 DAC0832产生的三角波输出 参考程序如下。 24

③ 矩形波的产生 输出的矩形波如图10-6所示。 vO 25

图10-6 DAC0832产生的矩形波输出

输出的矩形波如图10-6所示。 DELAY1、DELAY2为两个延时程序,分别决定输出的矩形波高、低电平时的持续宽度。矩形波频率也可用延时方法改变。 27

(2)双缓冲方式 多路的D/A转换要求同步输出时,必须采用双缓冲同步方式。此方式工作时,数字量的输入锁存和D/A转换输出是分两步完成的。单片机必须通过LE1*来锁存待转换的数字量,通过LE2*来启动D/A转换(见图10-2)。 因此,双缓冲方式下,DAC0832应该为单片机提供两个I/O端口。AT89S52单片机和DAC0832在双缓冲方式下的连接如图10-7所示。 28

图10-7 单片机和两片DAC0832的双缓冲方式接口电路 29

由图10-7可见,译码器的FDH(即译码器输入为FDH时)和FEH分别为1#与2#DAC0832的第一级“8位输入寄存器”的端口地址,而FFH共同控制1#和2#DAC0832进行D/A转换的第二级“8位DAC寄存器”端口地址。 若把图10-7中DAC输出的模拟电压Vx和Vy来控制X-Y绘图仪,则应把Vx和Vy分别加到X-Y绘图仪的X通道和Y通道,而X-Y绘图仪由X、Y两个方向的步进电机驱动,其中一个电机控制绘笔沿X方向运动;另一个电机控制绘笔沿Y方向运动。 因此对X-Y绘图仪的控制有一基本要求:就是两路模拟信号 30

要同步输出,使绘制的曲线光滑。如果不同步输出,例如先输出X通道的模拟电压,再输出Y通道的模拟电压,则绘图笔先向X方向移动,再向Y方向移动,此时绘制的曲线就是阶梯状的。通过本例,也就不难理解为什么DAC设置双缓冲方式的目的所在。 【例10-2】设AT89S52单片机内部RAM中有两个长度为20的数据块,其起始地址为分别为addr1和addr2,根据图10-7,编写把addr1和addrr2中的数据从1#和2#DAC0832同步输出的程序。程序中addr1和addr2中的数据,即为绘图仪所绘制曲线的x、y坐标点。

由图10-7可知,DAC0832各端口地址为: FDH:1#DAC0832第一级“8位输入寄存器”的端口地址 FEH:2#DAC0832第一级“8位输入寄存器”的端口地址 FFH:1#和2#DAC0832共同的第二级“8位DAC寄存器”端口地址 程序首先使单片机工作寄存器0区的R1指向addr1;1区的R1指向addr2;0区工作寄存器的R2存放数据块长度;0区和1区工作寄存器区的R0指向DAC端口地址。参考程序如下: 32

33

3.DAC0832的双极性的电压输出 除了需要DAC0832为单极性模拟电压输出外,在有些场合则要求DAC0832双极性模拟电压输出,只需改变DAC0832的外部连线,即可实现双极性模拟电压输出,下面简单介绍。 34

在需要双极性电压输出的场合下,可以按照图10-8所示接线。图中,DAC0832 的8位数字量由单片机送来,A1和A2均为运算放大器,vo通过2R电阻反馈到运算放大器A2 的“-”输入端,G点为虚拟地,其他的电路连接如图10-8所示。由基尔霍夫定律列出的方程组可解得: 图10-8 双极性DAC的接法 35

由上式可知,当单片机输出给DAC0832的数字量B≥128时,即数字量最高位b7为“1” ,输出的模拟电压vo为正;当单片机输出给DAC0832的数字量B<128时,即数字量最高位为“0”,则vo的输出电压为负。 36

10.3 AT89S52单片机与12位D/A转换器AD667的接口设计 当8位DAC分辨率不够时,可采用高于8位分辨率的DAC,例如,10位、12位、14位和16位(例如AD669)的DAC。 AD667是一种分辨率为12位的并行输入、为双缓冲输入,电压输出型D/A转换器,建立时间≤3µs;通过改变片外引脚的连接连接,可输出模拟电压+5V、+10V、±2.5V、±5V和±10V;内含高稳定的基准电压源,可方便地与4位、8位或16位微处理器接口;双电源工作电压为±12V~±15V。 37

10.3.1 12位D/A转换器AD667简介 1.引脚介绍 AD667为标准28脚双列直插式封装,图10-9所示为双列直插式封装引脚图。

图10-9 AD667引脚图 39

表10-1为AD667的引脚功能说明 40

2. 内部功能结构 图10-10所示为AD667内部功能结构框图。 41

AD667的总线接口逻辑由4个独立的可寻址锁存器组成,其中第一级锁存器由3个4位的锁存器组成,第二级锁存器为1个“12位DAC锁存器”,可以直接从4位、8位或16位微处理器总线分一次或几次加载12位数字量;一旦数字量被装入第一级的12位(3个4位)输入数据锁存器,就可以控制把12位数字量一次送入第二级的“12位DAC锁存器”并输出,这种双缓冲结构可以避免仅一级寄存器时,3个4位锁存器的不同步的输入,而产生错误的“毛刺”模拟量输出。 4个锁存器由4个地址输入A0~A3以及共同控制,所有的控制信号都是低电平有效,对应关系如表10-2所示。 42

43

10.3.2 AD667与AT89S52单片机的接口设计 【例10-3】图10-11为AT89S51单片机与AD667的接口电路。 44

单片机把AD667所占的3个端口地址(第一级的低4位和中4位锁存器,高4位锁存器,第二级的12位锁存器)视为外部数据存储器的3个单元,对其进行选通,完成对AD667数据传送锁存及转换的功能。假定低8位数据存于20H单元,高4位数据存入21H的低4位,实现D/A转换的参考程序段: 45

上述程序中,待转换的12位数字量中的低8位数据,高4位数据已经被存于片内RAM的20H单元和21H的低4位。 10. 3 上述程序中,待转换的12位数字量中的低8位数据,高4位数据已经被存于片内RAM的20H单元和21H的低4位。 10.3.3 AD667使用中的技术细节 D/A转换器AD667配置灵活、性价比高,在实际使用中,有关的技术细节,还是需要了解并掌握的。 1. 模拟电压输出范围的配置 AD667通过片外引脚的不同电路连接,可获得不同的输出电压量程范围。单极性工作时,可以获得0~5V和0~10V的电压。双极性工作时,可获得±2.5V、±5V和±10V的电压。具体量程配置可由引脚1、2、3、9的不同连接实现,如表10-3 46

所示。由于AD667内置的量程电阻与其他元器件具有热跟踪性能,所以AD667的增益和偏置漂移非常小。 (1)单极性电压输出 图10-12为0~10V单极性电压输出电路原理图。 a. 电路调零 在电路运行之前,为保证转换精度,首先要进行电路调零和增益调节。 数字输入量全为“0”时,调节50kΩ电位器RP1,使其模拟电压输出端(VOUT)电压为0.000V。在大多数情况下,并不需要调零,只要把脚4与脚5相连(接地)即可。

图10-12 0~10V单极性电压输出的电路原理图

b.增益调节 数字输入量全为“1”时,调节100Ω电位器RP2,使其模拟电压输出为9. 9976V,即满量程的10 b.增益调节 数字输入量全为“1”时,调节100Ω电位器RP2,使其模拟电压输出为9.9976V,即满量程的10.000V减去1LSB(约为2.44mV)所对应的模拟输出量。 (2)双极性电压输出 图10-13所示为-5V~+5V双极性电压输出的电路图。建议任何未使用的数据和控制引脚最好与电源地相连,以改善抗噪声干扰特性。 AD667使用正逻辑的二进制输入编码,大于2.0V的输入电压表示逻辑“1”,而小于0.8V的输入电压表示逻辑“0”。 单极性输出时,输入编码采用直接二进制编码,全“0”数据输入000H产生零模拟输出;全“1”数据输入FFFH产生比满量程少1LSB的模拟输出。 50

图10-13 ±5V双极性电压输出电路原理图

双极性输出时,输入编码采用偏移二进制编码,数据输入为000H时,产生负的满量程输出;数据输入为FFFH时,产生比满量程少1LSB的模拟输出;数据输入为800H时,模拟输出为0。其中1LSB为最低位对应的模拟电压。双极性输出时输入与输出关系如图10-14所示。 图10-14 双极性输出与输入关系 52

输入数字量N与输出模拟电压VOUT的关系为 式中,VR为输出电压量程。 在电路运行之前,为保证转换精度,首先要进行偏置调节和增益调节。 a.偏置调节 数字输入量全为“0”时,调节100Ω的电位器RP1,使其模拟电压输出端电压为±5.000V。 b.增益调节 数字输入量全为“1”时,调节100Ω电位器RP2,使其模拟输出电压值为4.9976V,即正满量程电压输出5.000V减去1LSB(约为2.44mV)所对应的模拟输出量。

2. 内部/外部基准电压源的使用 AD667有内置低噪声基准电源,其绝对精度和温度系数都是通过激光修正的,具有长期的稳定性。片内基准电源可提供片内D/A转换器所需的基准电流,还可通过缓冲电路驱动外部电路,一般可向外部负载提供0.1mA的驱动电流。 3. 接地与动态电容的接法 AD667把模拟地AGND与电源地PGND分开,可以减少器件的低频噪声和增强高速性能。把地回路分开的目的是为了尽量减少低电平信号路径中的电流。AGND是输出放大器中的地端,应与系统中的模拟输出电压基准地直接相连,任何由

输出放大器驱动的负载都应该接在模拟地引脚上。电源地PGND可以与模拟电源的接地点就近连接。最后AGND与PGND在一点上进行连接,一般连接到电源地PGND上。 另外,AD667的电源引脚到模拟地引脚间应加上适当的去耦电容。 在输出放大器反馈电阻两端加一个20pF的小电容,可以明显改善输出放大器的动态性能。

10. 4 AT89S51与串行输入的12位D/A转换器AD7543的接口设计 10. 4 10.4 AT89S51与串行输入的12位D/A转换器AD7543的接口设计 10.4.1 AD7543简介 AD7543是美国AD公司的专为通用异步串行口(UART)设计的12位价廉的D/A转换器。AD7543可直接与AT89S52的串行口相连,其内部结构如图10-15所示。 AD7543片内由12位串行输入并行输出移位寄存器(寄存器A)和12位DAC输入寄存器(寄存器B)组成。在选通信号的前沿或后沿(可选择)定时把SRI引脚上的串行数据装入寄存器A,一旦寄存器A装满,在加载脉冲的控制下,寄存器A的数据 56

图10-15 AD7543的片内结构 57

便装入寄存器B中,并转换为模拟量输出。 AD7543的DIP封装形式的引脚如图10-16所示。 58

各引脚功能如下: OUT1:AD7543的电流输出引脚1。 OUT2:AD7543的电流输出引脚2。 AGND:模拟地。 STB1、STB2 、STB*、STB4:寄存器A的4个选通控制信号。 LD1*、LD2*:寄存器B加载1与加载2输入。当LD1*和LD2*为低电平时,寄存器A的内容送到寄存器B。 SRI:单片机输入到寄存器A的串行数据输入引脚。 DGND:数字地。 CLR*:寄存器B清除输入,用于异步地将寄存器B复位至000H。 VDD:+5V电源。 59

各引脚功能如下: OUT1:AD7543的电流输出引脚1。 OUT2:AD7543的电流输出引脚2。 AGND:模拟地。 STB1、STB2 、STB*、STB4:寄存器A的4个选通控制信号。 LD1*、LD2*:寄存器B加载1与加载2输入。当LD1*和LD2*为低电平时,寄存器A的内容送到寄存器B。 SRI:单片机输入到寄存器A的串行数据输入引脚。 DGND:数字地。 CLR*:寄存器B清除输入,用于异步地将寄存器B复位至000H。 VDD:+5V电源。 VREF:基准电压输入。 Rfb:DAC反馈电阻输入引脚。

10.4.2 AT89S52扩展AD7543的接口设计 【例10-4】 AT89S52与AD7543的接口电路如图10-17所示。 61

图10-17中的单片机串行口直接与AD7543相连,串行口选用方式0,其TXD端移位脉冲的负跳变将RXD输出的串行位数据移入AD7543,利用地址译码器的输出信号产生 ,从而将AD7543移位寄存器A中的内容移入到寄存器B中,并启动D/A转换。 由于AD7543的12位数据是高至低逐位串行输入的,而AT89S52的串行口方式0是低至高逐位串行输出的,因此在数据传输到AD7543之前必须重新装配。下面是单片机的驱动程序,假设AD7543的端口地址为“addrH”,数据缓冲器单元地址为dbufh(高4位)和dbufl(低8位)。 62

63

10.5 单片机扩展A/D转换器概述 A/D转换器(ADC)把模拟量转换成数字量,单片机才能进行数据处理。随着超大规模集成电路技术的飞速发展,大量结构不同、性能各异的A/D转换芯片应运而生。 1.A/D转换器简介 目前单片ADC芯片较多,对设计者来说,只需合理的选择芯片即可。现在部分的单片机片内也集成了A/D转换器,位数为8位、10位或12位,且转换速度也很快,但是在片内A/D转换器不能满足需要的情况下,还是需要外扩。因此,作为外部扩展A/D转换器的基本方法,还是应当掌握。 尽管A/D转换器的种类很多,但目前广泛应用在单片机应用 64

系统中的主要有逐次比较型转换器和双积分型转换器,此外Σ-Δ式转换器也逐渐得到重视和应用。 逐次比较型A/D转换器,在精度、速度和价格上都适中,是最常用的A/D转换器。双积分型A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,与逐次比较型A/D转换器相比,转换速度较慢,近年来在单片机应用领域中已得到广泛应用。Σ-Δ式ADC具有积分式与逐次比较型ADC的双重优点。它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,它比双积分ADC有较高的转换速度,与逐次比较型ADC相比,有较高的信噪比,分辨率高,线性度好。由于上述

优点,Σ-Δ式ADC也逐渐得到重视,已有多种Σ-Δ式A/D芯片可供用户选用。 A/D转换器按照输出数字量的有效位数分为4位、8位、10位、12位、14位、16位并行输出以及BCD码输出的位、位、位等多种。目前,除了并行的A/D转换器外,带有同步SPI串行接口的A/D转换器的使用也逐渐增多。串行接口的A/D转换器具有占用单片机的端口线少、 使用方便、接口简单等优点,已经得到广泛的使用。较为典型的串行A/D转换器为美国TI公司的TLC549(8位)、TLC1549(10位)以及TLC1543(10位)和TLC2543(12位)等。 66

A/D转换器按照转换速度可大致分为超高速(转换时间≤1ns)、高速(转换时间≤1µs)、中速(转换时间≤1ms)、低速(转换时间≤1s)等几种不同转换速度的芯片。目前许多新型的A/D转换器已将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路集成在一个芯片内,为用户提供了极大方便。 2.A/D转换器的主要技术指标 (1)转换时间或转换速率。转换时间是指A/D转换器完成一次转换所需要的时间。转换时间的倒数为转换速率。 (2)分辨率。分辨率是衡量A/D转换器能够分辨出输入模拟量最小变化程度的技术指标。分辨率取决于A/D转换器的位数,所以 67

习惯上用输出的二进制位数表示。例如,某型号A/D转换器的满量程输入电压为5V,可输出12位二进制数,即用212个数进行量化,分辨能力为1LSB,即5V/212=1.22mV,其分辨率为12位,或能分辨出输入电压1.22mV的变化。但是对于双积分型BCD码输出的A/D转换器MC14433,其满量程转换电压为2V档时,其输出的十进制数范围为0000~1999,能分辨出1mv的变化。如果把分辨率换算成二进制位数表示,位的A/D转换器(千位仅有0和1两个十进制数字,称其为半位,而百、十、个位均可能有10个十进制数字0~9出现,为完整的位,所以称其为三位半),其分辨率大约为11位,因为1999最接近于211=2048。 68

量化过程引起的误差称为量化误差。量化误差是由于有限位数字量对模拟量进行量化而引起的误差。量化误差理论上规定为一个单位分辨率的± 1/2LSB,提高A/D转换器的位数既可提高分辨率,又能够减少量化误差。 (3)转换精度。定义为一个实际A/D转换器与一个理想A/D转换器在量化值上的差值,可用绝对误差或相对误差表示。 要注意一个问题,两片具有相同位数的A/D转换器,它们的转换精度未必相同。 69

10.6 单片机扩展并行8位A/D转换器ADC0809 10.6.1 ADC0809简介 1.ADC0809功能及引脚 ADC0809是一种逐次比较型8路模拟输入、8位数字量并行输出的A/D转换器,其引脚见图10-18。 70

图10-18 ADC0809的引脚图 71

共28引脚,双列直插式封装。引脚功能如下: IN0~IN7:8路模拟信号输入端。 D0~D7:转换完毕的8位数字量输出端。 A、B、C与ALE:控制8路模拟输入通道的切换。A、B、C分别与单片机的三条地址线相连,三位编码对应8个通道地址端口。C、B、A = 000~111分别对应IN0~IN7通道的地址。各路模拟输入之间切换由软件改变C、B、A引脚的编码来实现。 OE、START、CLK:OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。 VR(+)、VR(−):基准电压输入端。 72

2.ADC0809结构及转换原理 结构如图10-19所示。采用逐次比较法完成A/D转换,单一的+5V电源供电。片内带有锁存功能的8选1模拟开关,由C、B、A的编码来决定所选的通道。完成一次转换需100µs左右(转换时间与CLK脚的时钟频率有关),具有输出TTL三态锁存缓冲器,可直接连到单片机数据总线上。通过适当的外接电路,ADC0809可对0~5V的模拟信号进行转换。 73

图10-19 ADC0809结构框图 74

10.6.2.AT89S52单片机与ADC0809的接口设计 先了解单片机如何控制ADC开始转换,如何得知转换结束以及如何读入转换结果的问题。 单片机读取ADC的转换结果时,可采用查询和中断控制两种方式。 查询方式是在单片机把启动信号送到ADC之后,执行其他程序,同时对ADC0809的EOC脚不断进行检测,以查询ADC变换是否已经结束,如查询到变换已经结束,则读入转换完毕的数据。 中断控制方式是在启动信号送到ADC之后,单片机执行 75

其他程序。ADC0809转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换完毕的数据。 中断控制方式效率高,所以特别适合于转换时间较长的ADC。 1. 查询方式 【例10-5】单片机采用查询方式控制ADC0809进行A/D转换的接口设计与软件编程。 ADC0809与单片机的查询方式接口电路如图10-20所示。 76

图10-20 ADC0809与AT89S52查询式接口 77

图10-20所示的基准电压是提供给A/D转换器在转换时所需要的基准电压,这是保证转换精度的基本条件。基准电压要单独用高精度稳压电源供给,其电压的变化要小于1LSB。否则当被变换的输入电压不变,而基准电压的变化大于1LSB,也会引起A/D转换器输出的数字量变化。 由于ADC0809片内无时钟,可利用单片机提供的地址锁存允许信号ALE经D触发器二分频后获得,ALE引脚的频率是AT89S51单片机时钟频率的1/6(但要注意,每当访问外部数据存储器时,将少一个ALE脉冲)。如果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,再二分频后 78

为500kHz,符合ADC0809对时钟频率的要求。当然,也可采用独立的时钟源输出,直接加到ADC的CLK脚。 由于ADC0809具有输出三态锁存器,其8位数据输出引脚D0~D7可直接与单片机的P0口相连。地址译码引脚C、B、A分别与地址总线的低三位A2、A1、A0相连,以选通IN0~IN7中的一个通道。 79

在启动A/D转换时,由单片机的写信号WR. 和P2 在启动A/D转换时,由单片机的写信号WR*和P2.7控制ADC的地址锁存和转换启动,由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时,启动并进行转换。 在读取转换结果时,用低电平的读信号 和P2.7引脚经一级“或非门”后产生的正脉冲作为OE信号,用来打开三态输出锁存器。 下面的程序是采用软件延时的方式,分别对8路模拟信号轮流采样一次,并依次把结果转储到数据存储区的转换程序。 80

81

2. 中断方式 ADC0809与AT89S52单片机的中断方式接口电路只需要将图10-20所示的EOC引脚经过一“反门”连接到AT89S52单片机的外中断输入引脚INT1*即可。 采用中断方式可大大节省单片机的时间。当转换结束时,发出EOC脉冲向单片机提出中断申请,单片机响应中断请求,由外部中断1的中断服务程序读A/D结果,并启动ADC0809的下一次转换,外部中断1采用跳沿触发方式。 参考程序: 82

83

10.7 AT89S51扩展12位串行ADC-TLC2543的设计 TLC2543是美国TI公司分辨率为12位的串行SPI接口的A/D转换器,转换时间为10µs。TLC2543用4根线与单片机进行串行通信,这4根线分别是片选信号、I/O时钟、串行数据输入、串行数据输出。采用SPI接口的特点是快速、高效,操作起来比I2C要简单一些。由于TLC2543与单片机的接口电路简单,且价格适中,分辨率较高,因此在智能仪器仪表中有着较为广泛的应用。与TLC2543类似的串行SPI接口的A/D转换器还有:TLC1549(10位,转换时间≤21µs)与TLC549(8位,转换时间≤17µs)

10.7.1 TLC2543的特性及工作原理 TLC2543片内有1个14路模拟开关,用来选择11路模拟输入以及3路内部测试电压中的1路进行采样。为了保证测量结果的准确性,该器件具有3路内置自测试方式,可分别测试“REF+” 正基准电压值,“REF-”负基准电压值和“REF+/2”的值,TLC2543的模拟量输入范围为REF+~REF-,一般的输入模拟量变化范围为0~+5V,所以此时REF+脚接+5V,REF-脚接地。

1. TLC2543的引脚 TLC2543的引脚见图10-21,各引脚功能如下。 AIN0~AIN10:11路模拟量输入端。 CS* :片选端。 DATAINPUT:串行数据输入端。由4位的串行地址输入来选择模拟量输入通道。 DATA OUT:A/D转换结果的三态串行输出端。 为高时处于高阻抗状态, 为低时处于转换结果输出状态。 EOC:转换结束端。 I/O CLOCK:I/O时钟端。

图10-21 TLC2543引脚

REF+:正基准电压端。基准电压的正端(通常为Vcc)被加到REF+,最大的输入电压范围为加在本引脚与REF-引脚的电压差。 GND:地。

2. TLC2543工作过程 工作过程分为两个周期:I/O周期和实际转换周期。 (1)I/O周期 I/O周期由外部提供的I/O CLOCK定义,延续8、12或16个时钟周期,取决于选定的输出数据长度。器件进入I/O周期后同时进行两种操作。 ① TLC2543的工作时序如图10-22所示。在I/OCLOCK的前8个脉冲的上升沿,以MSB前导方式从DATAINPUT端输入8位数据到输入寄存器。其中前4位为模拟通道地址,控制14通道模拟多路器从11个模拟输入和3个内部自测电压中,选通1路

图10-22 TLC2543的工作时序

到采样保持器,该电路从第4个I/OCLOCK脉冲下降沿开始,对所选的信号进行采样,直到最后一个I/O CLOCK脉冲下降沿。I/O脉冲时钟个数与输出数据长度(位数)有关,输出数据的长度由输入数据的D3、D2可选择为8位、12位或16位。当工作于12位或16位时,在前8个脉冲之后,DATAINPUT无效。 ② 在DATA OUT端串行输出8位、12位或16位数据。当 保持为低时,第1个数据出现在EOC的上升沿,若转换由 控制,则第1个输出数据发生在 的下降沿。这个数据是前1次转换的结果,在第1个输出数据位之后的每个后续位均由后续的I/OCLOCK脉冲下降沿输出。

(2)转换周期 在I/O周期最后一I/OCLOCK脉冲下降沿后,EOC变低,采样值保持不变,转换周期开始,片内转换器对采样值进行逐次逼近式A/D转换,其工作由与I/OCLOCK同步的内部时钟控制。转换结束后EOC变高,转换结果锁存在输出数据寄存器中,待下一I/O周期输出。I/O周期和转换周期交替进行,从而可减少外部的数字噪声对转换精度影响。

3. TLC2543命令字 每次转换都必须向TLC2543写入命令字,以便确定被转换信号来自哪个通道,转换结果用多少位输出,输出的顺序是高位在前还是低位在前,输出结果是有符号数还是无符号数。命令字写入顺序是高位在前,格式如下: (1) 通道地址选择位用来选择输入通道。0000~1010分别是11路模拟量AIN0~AIN10的地址;地址1011、1100和1101所选择的自测试电压分别是((VREF+)-(VREF-))/2、VREF-、VREF+。1110是掉电地址,选

掉电后,TLC2543处于休眠状态,此时电流小于20µA。 (2)数据长度(D3~D2)位用来选择转换的结果用多少位输出。D3D2为x0:12位输出;D3D2为01:8位输出;D3D2为11:16位输出。 (3)数据的顺序位(D1)用来选择数据输出的顺序。D1=0,高位在前;D1=1,低位在前。 (4)数据的极性位(D0)用来选择数据的极性。D0=0,数据是无符号数;D0=1,数据是有符号数。

10.7.2 单片机扩展TLC2543的接口设计 介绍单片机与TLC2543接口设计及软件编程。 【例10-8】单片机扩展TLC2543的接口如图10-23所示,编写程序对某一模拟通道进行数据采集。 TLC2543使用串行SPI接口与单片机进行通信,由于AT89S52单片机不带SPI接口,须采用软件与单片机I/O口线相结合,来模拟SPI的接口时序。TLC2543的I/O CLOCK、DATA INPUT和端由AT89S52单片机的P1.0、P1.1和P1.3来控制。转换结果的输出数据(DATAOUT)由单片机的P1.2串行接收,AT89S52将命令字通过P1.1输入到TLC2543的输入寄存器中,启动A/D转换。

图10-23 单片机与TLC2543的SPI接口

下面的参考程序为单片机选择某一通道(例如AIN0通道)进行1次数据采集,A/D转换结果共12位,分两次读入。先读入TLC2543中的8位转换结果到单片机中,同时写入下一次转换的命令,然后再读入4位的转换结果到单片机中。注意:TLC2543在每次I/O周期读取的数据都是上次转换的结果,当前的转换结果要在下一个I/O周期中被串行移出。TLC2543A/D转换的第1次读数由于内部调整,读取的转换结果可能不准确,应丢弃。

TLC2543在A/D转换结束后“EOC”脚为高电平,经非门后,向单片机的外中断0发出中断请求,进入中断服务子程序,单片机从TLC2543三态输出端“DATA OUT”读取转换结果。 参考的子程序如下。

执行上述程序中的8次循环,执行“RRC A”指令8次,每次读入转换结果1位,然后送出ADCOMD单元中的下一次转换的命令字节“G7 G6 G5 G4 G3 G2 G1 G0”中的1位,进入TLC2543的输入寄存器。经8次右移后,8位A/D转换结果数据

“××××××××”读入累加器Acc中,上述的数据交换过程如图10-24所示。子程序中的4次循环,只是读入转换结果的4位数据,图中没有给出,读者可自行画出4次移位的过程。 图10-24 AT89S52单片机与TLC2543的8位数据交换示意图。 由本例可见,单片机与TLC2543的接口电路十分简单,只需用软件控制4条I/O脚按照规定的时序对TLC2543进行访问即可。

图10-24 AT89S52单片机与TLC2543的8位数据交换示意图

10.8 AT89S52与双积分型A/D转换器MC14433接口 目前,双积分型A/D转换器集成电路芯片很多,常见的有位A/D转换器MC14433和位A/D转换器ICL7135。双积分型ADC由于两次积分时间比较长,所以A/D转换速度慢,约1~10次/秒,但精度可以做得比较高;对周期变化的干扰信号积分为零,因此具有较好的抑制50Hz工频干扰的能力。因此双积分型ADC广泛用于在不要求高速转换以及工频干扰较为严重的场合。 103

10. 8. 1 MC14433 A/D转换器简介 被转换电压量程为199. 9mV或1 10.8.1 MC14433 A/D转换器简介 被转换电压量程为199.9mV或1.999V两档。转换完的数据以BCD码的形式分4次送出(最高位输出内容特殊,详见表10-3)。 引脚如图10-25所示。下面介绍各引脚的功能。 104

图10-25 MC14433引脚图 105

R1:积分电阻输入端,转换电压VX = 2V时, R1 = 470Ω ;VX = 200mV时,R1 = 27kΩ 。 (1)电源及共地端 VDD:主工作电源,+5V。 VEE:模拟部分的负电源端,接-5V。 VAG:模拟地端。 VSS:数字地端。 VR:基准电压输入端。 (2)外接电阻及电容端 R1:积分电阻输入端,转换电压VX = 2V时, R1 = 470Ω ;VX = 200mV时,R1 = 27kΩ 。 106

CLKI、CLKO:外接振荡器时钟调节电阻RC,RC一般取470Ω左右。 C1:积分电容输入端,C1一般取0.1F。 R1/C1:R1与C1的公共端 CLKI、CLKO:外接振荡器时钟调节电阻RC,RC一般取470Ω左右。 (3)转换启动/结束信号端 EOC:转换结束信号输出端,正脉冲有效。 DU:启动新的转换,若DU与EOC相连,每当A/D转换结束后,自动启动新的转换。 107

OR*:当|VX|>VR时,过量程OR*输出低电平。 (5)位选通控制端 (4)过量程信号输出端 OR*:当|VX|>VR时,过量程OR*输出低电平。 (5)位选通控制端 DS4~DS1:分别为个、十、百、千位输出的选通脉冲,正脉冲有效。DS1对应千位,DS4对应个位。每个选通脉冲宽度为18个时钟周期,两个相应脉冲之间间隔为2个时钟周期,如图10-26所示。 108

图10-26 MC14433选通脉冲时序图 109

(6)BCD码输出端 Q3~Q0:BCD码数据输出线。其中,Q3为最高位,Q0为最低位。当DS2、DS3和DS4选通期间,输出3位完整的BCD码数,但在DS1(千位)选通期间,即DS1=1期间,输出端Q3~Q0除了表示个位的0或1外,还表示被转换电压的正负极性(Q2=1为正)和欠量程或过量程,其具体含义见表10-3。 110

111

由表10-3可知: (1)Q3表示最高位千位(1/2位)。Q3 = 0对应“1”,反之对应“0”。 (2)Q2表示极性。Q2=1为正极性,Q2=0为负极性。 (3)Q0=1表示过量程或欠量程。当Q3=0时,表示过量程;当Q3 = 1时,表示欠量程。 112

10.8.2 MC14433与AT89S52单片机的接口 【例10-8】实现单片机与MC14433的接口设计与软件编程。 MC14433的A/D转换结果是动态分时输出的BCD码,Q0~Q3为千、百、十、个位的BCD码,而DS1~DS4分别为千、百、十、个位的选通信号,由于转换结果输出不是总线式的并行输出,因此AT89S52单片机只能通过并行I/O接口或扩展I/O接口与其相连。下面介绍MC14433与单片机P1口直接相连的接口电路,如图10-27所示。 113

图10-27 MC14433与AT89S52单片机的接口电路 114

图10-27所示的MC1403为+2.5V精密集成电压基准源,经电位器分压后作为A/D转换用基准电压。DU端与EOC端相连选择了连续转换方式,每次转换结果都送至输出寄存器。EOC是A/D转换结束的输出标志信号。单片机读取A/D转换结果可以采用中断方式或查询方式。采用中断方式时,EOC端与单片机外部中断输入端INT0*或INT1*相连。采用查询方式时,EOC端可与单片机的任意I/O口线相连。 若选用中断方式读取MC14433的结果,应选用跳沿触发方式。如果将A/D转换的结果存放到单片机内部RAM的20H、21H单元中,则数据存放的格式如图10-28所示。 115

图10-28 数据存放格式 读取A/D转换结果的程序设计 初始化程序首先是总中断允许,外部中断1中断请求允许,置外部中断1为跳沿触发方式。每次A/D转换结束,都向单片机请求中断,单片机响应中断,执行中断服务程序,读取A/D转换的结果。 参考程序如下: 116

117

118

MC14433外接的积分元件R1、C1(图10-27中的引脚4、5、6)大小和时钟有关,在实际应用中需加以调整,以得到正确的量程和线性度。积分电容也应选择聚丙烯电容。 119

10.9 AT89S52单片机与V/F转换器的接口 目前,利用A/D转换技术制成的各种测试仪器得到了广泛应用。在某些要求数据长距离传输,精确度要求较高的场合,采用一般的A/D转换技术有多不便,可使用V/F转换器代替A/D器件。 V/F转换器是把电压信号转变为频率信号的器件,有良好的精度、线性和积分输入特点,此外,它的应用电路简单,外围元件性能要求不高,适应环境能力强,转换速度不低于一般的双积分型A/D器件,且价格低,因此V/F转换技术广泛用于非快速的A/D转换过程中。 120

V/F转换是把电压信号转变为频率信号,再将该频率信号转换为数字信号,实质上是一种间接的A/D转换技术。 V/F转换器与单片机接口有以下特点: (1)接口简单、占用单片机硬件资源少。产生的频率信号可输入单片机的一根I/O口线或作为中断信号输入及计数信号输入等。 (2)抗干扰性能好。用V/F转换器实现A/D转换,就是频率计数的过程,相当于在计数时间内对频率信号进行积分,因而有较强的抗干扰能力。另外可采用光电耦合器连接V/F转换器与单片机之间的通道,实现光电隔离。 (3)便于远距离传输。可通过调制进行无线传输或光传输。 121

由于以上这些特点,V/F转换器适用于一些非快速而需进行远距离信号传输的A/D转换过程。另外,还可以简化电路、降低成本、提高性价比。 10.9.1 用V/F转换器实现A/D转换的原理 V/F转换工作原理为:单片机片内的计数器把V/F转换器输出的频率信号作为计数脉冲,进行定时计数。计数器的计数值与V/F转换器输出的脉冲频率信号之间的关系为: 122

上式中,D是计数器计得的值,T是已知的计数时间。只要知道了D值,再除以计数的时间T,就可求出V/F转换器的输出频率,从而知道输入电压V,实现了A/D转换。 10.9.2 常用V/F转换器LMX31简介 常用的通用型的V/F转换器为LM331,LM331适用于A/D转换器、高精度F/V变换器、长时间积分器、线性频率调制或解调器等电路。LM331的特性如下: 123

1.主要特性 (1)频率范围:1~100kHz; (2)低的非线性:±0 1.主要特性 (1)频率范围:1~100kHz; (2)低的非线性:±0.01%; (3)单电源或双电源供电; (4)单电源供电电压为+5V时,可保证转换精度; (5)温度特性:最大±50ppm/oC ; (6)低功耗:Vs=5V时为15mW 124

两种封装形式,其中的DIP封装如图10-29所示。 图10-29 LMX31封装图 2.电特性参数 (1)电源电压:+15V (2)输入电压范围:0~10V (3)输出频率:10Hz~11kHz (4)非线性失真:±0.03% 125

3.LMX31的V/F转换外部接线 LMX31的V/F转换外部接线如图10-30所示。 图10-30 LMX31外部接线图 126

10.9.3 V/F转换器与MCS-51单片机接口 被测电压转换为与其成比例的频率信号后送入计算机进行处理。 (1)V/F转换器可以直接与89S52单片机接口。接口较简单,频率信号接单片机的定时器/计数器输入端即可。如图10-31所示。 图10-31 V/F转换器与单片机接口 127

(2)在一些电源干扰大、模拟电路部分容易对单片机产生电气干扰等恶劣环境中,可采用光电隔离的方法使V/F转换器与单片机无电信号联系,如图10-32所示。 (3)当V/F转换器与单片机之间距离较远时需要采用驱动电路以提高传输能力。一般可采用串行通信的驱动器和接收器来实现。例如使用RS-422的驱动器和接收器时,允许最大传输距离为120m,如图10-33所示。其中SN75174/75175是 RS-422标准的四差分线路驱动/接收器。 128

图10-32 使用光电隔离器的接口 图10-33 利用串行通信器件的接口 129

(4)采用光纤或无线传输时,需配以发送、接收装置,如图10-34、图10-35所示。 图10-34 利用光纤进行传输的接口 图10-35 利用无线传输设备用作输入通道 130

10.9.4 V/F转换的应用设计 本例使用LM331和8031的内部定时器构成A/D转换电路,具有使用元件少、成本低、精度高的特点。 1. 接口电路 AT89S52与LM331的接口电路如图10-36所示。 V/F转换器最大输出频率为10kHz,输入电压范围为0~10V。由于本电路输出频率较低,如对脉冲计数则会降低精度,因此采用测周期的方法。V/F输出的频率经D触发器二分频后接INT0*,作为T0计数器的控制信号。 131

T0计数器置定时器状态,取方式1,将TMOD. 3(T0的GATE位)置1,这样就由INT0 T0计数器置定时器状态,取方式1,将TMOD.3(T0的GATE位)置1,这样就由INT0*和TR0来共同决定计数器是否工作。这种方法只能测量信号周期小于65535个机器周期的信号。 图10-36 AT89S52与LM331的接口电路 132

2. 软件设计 程序包括初始化和计数两部分。初始化程序要对定时器0进行状态设置,使其工作在定时器工作模式,方式1,并将GATE位置1。计数程序首先需判断 的电平,当其为低时,打开TR0位准备计数;当其变为高时,启动计数,再为低时停止计数并清TR0,取出数据,将T0的时间常数寄存器TH0、TL0清0,准备下一次计数。程序如下: 133

本程序将计数结果高位存B,低位存A,以便后期处理。 134