520 likes | 710 Views
模块八. 80C51 的测控接口. 本章主要内容. 80C51 与常用 D/A 转换器 的接口方法. 80C51 与常用 A/D 转换器 的接口方法. 80C51 开关量接口 方法. A/D 、 D/A 转换. 传感器. A/D. D/A. 数字控制 系统. 模拟 控制器. 典型的数字控制系统. 一、 D/A 转换器及其与单片机接口. ◇. D/A 转换器作用. ◇. D/A 转换器的基本原理. D/A 转换器的主要技术性能指标. ◇. ◇. DAC0832 芯片及其与单片机的接口. 1 、 D/A 转换器作用.
E N D
模块八 80C51的测控接口 本章主要内容 80C51与常用D/A转换器的接口方法 80C51与常用A/D转换器的接口方法 80C51开关量接口方法
A/D、D/A转换 传感器 A/D D/A 数字控制 系统 模拟 控制器 典型的数字控制系统
一、D/A 转换器及其与单片机接口 ◇ D/A转换器作用 ◇ D/A转换器的基本原理 D/A转换器的主要技术性能指标 ◇ ◇ DAC0832芯片及其与单片机的接口
1、D/A转换器作用 ▼将数字量转换为模拟量,以便操纵控制对象。 D/A转换 单片机 控制对象 如:单片机输出不同的数字量经D/A转换后加给直流电机,即可控制电机的转速。
2、D/A转换器的基本原理 ▼数/模转换器(DAC)是一种把数字信号转换成模拟信号的器件。 ▼将数字量的每一位都转换为相应的模拟量,然后对其求和即可以得到与该数字量成正比的模拟量。 ▼常用的DAC是由T形电阻网络构成的,称为T形电阻网络D/A转换器。
I I6 I5 I4 I3 I2 I1 I7 I0 I0 I4 I5 I2 I1 I7 I3 I6 2R 2R 2R 2R 2R 2R 2R 2R 2R - + T形电阻网络D/A转换器 Rfb 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 IO1 IO2 VO D7 D6 D5 D4 D3 D2 D1 D0 I=VREF/ R I6=I/22 I4=I/24 I7=I/21 I5=I/23 V0=-I01×Rfb I3=I/25 I2=I/26 I1=I/27 I0=I/28
I=VREF/ R I6=I/22 I4=I/24 I7=I/21 I5=I/23 V0=-I01×Rfb I3=I/25 I2=I/26 I1=I/27 I0=I/28 ▼当输入数据D7~D0为1111 1111B时,有: I01=I7+I6+I5+I4+I3+I2+I1+I0 =(I/28) ×(27+26+25+24+23+22+21+20) ▼当输入数据D7~D0为1100 0011B时,有: I01=I7+I6+I1+I0 =(I/28) ×(27+26+21+20) 若Rfb=R,则V0=-I01×Rfb =-(VREF/28) ×(27+26+21+20) 可见,输出电压V0的大小与数字量具有对应的关系。
3、D/A转换器的主要技术性能指标 ▼转换速度:一般几十微秒到几百微秒,快速的可达1微秒。 ▼分辨率:输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(常为电压)的变化量。它反映了输出模拟量的最小变化值。 对于5V的满量程,采用8位的DAC时: ◆分辨率为5V/28=19.5mV 当采用12位的DAC时 ◆分辨率则为5V/212=1.22mV
ILE LE1 LE2 CS & WR1 WR2 XFER & 4、典型DAC芯片: DAC0832 VREF 输入 锁存器 DAC 寄存器 D/A 转换器 DI7~DI0 IOUT2 IOUT1 & Rfb AGND VCC
:输入寄存器选通信号 CS CS WR2 WR2 WR1 WR1 :DAC寄存器选通信号 :输入寄存器写信号 DI3 XFER XFER :DAC寄存器写信号 DI4 DI2 DAC0832 DI1 DI5 ILE :输入寄存器锁存信号 DI0 DI6 :数字量输入端 DI0~DI7 DI7 IOUT2、Iout1 :电流输出引脚 :数字信号地 DGND :模拟信号地 AGND 1)DAC0832 引脚 VCC 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 ILE AGND VREF Rfb IOUT2 DGND IOUT1
VREF 输入 锁存器 DAC 寄存器 D/A 转换器 DI7~DI0 IOUT2 IOUT1 ILE & LE1 LE2 Rfb CS & WR2 WR1 AGND VCC XFER & 2) DAC0832的工作方式 ▼DAC0832是一个八位D/A转换器,转换时间1us。
VREF 输入 锁存器 DAC 寄存器 D/A 转换器 DI7~DI0 IOUT2 IOUT1 ILE & LE2 LE1 Rfb CS & WR2 WR1 AGND VCC XFER & LE1或LE2=1,当前寄存器的输出跟随输入的数据(直通) LE1或LE2=0,锁存数据(锁存) 因此DAC0832有三种工作方式:单缓冲、双缓冲、直通
XFER CS DAC0832 80C51 WR2 WR1 WR - + 3) DAC0832与80C51单片机的接口 ① 单缓冲方式接口电路 ----将两级寄存器的控制信号并接在一起,相当于控制一级寄存器(线选译码地址7FFFH)。 +5V ILE P2.7 Rfb IOUT1 IOUT2 VO DI7~DI0 P0
+5V ILE P2.7 Rfb IOUT1 IOUT2 VO DI7~DI0 P0 XFER CS DAC0832 80C51 WR2 WR1 WR - + ① 单缓冲方式接口电路 ▼执行下面指令就能完成一次D/A转换: MOV DPTR,#7FFFH ;指向DAC0832口地址 MOV A,#DATA ;启动D/A转换 MOVX @DPTR,A
单缓冲方式的应用1 -----产生锯齿波 A=0FFH A=00H 源程序清单: ORG 0030H START:MOV DPTR,#7FFFH;选中0832 MOV A,#00H;D/A数据初值 LP:MOVX @DPTR,A;转换 INC A;修改D/A数据 SJMP LP;循环,输出连续模拟量
产生锯齿波产生锯齿波的过程示意 255/28 254/28 · · · 3/28 2/28 1/28 0
单缓冲方式的应用2---产生三角波 A=0FFH A=0FFH A=00H A=00H A=00H 源程序清单: ORG 2000H START:MOV DPTR,#00FEH;选中0832 MOV A,#00H;D/A数据初值 UP:MOVX @DPTR, A;转换 INC A;修改D/A数据(上升) JNZ UP;未上升到最大值,继续 DOWN:DEC A;否则,修改D/A数据(下降) MOVX @DPTR, A;转换 JNZ DOWN;未下降到最小值,继续 SJMP UP;一个周期结束,继续
+5V DAC0832(1) WR 80C51 IOUT1 - IOUT2 + XFER XFER +5V CS CS WR2 WR1 WR2 WR1 DAC0832(2) IOUT1 - IOUT2 + ②双缓冲方式接口电路 ILE P2.5 P2.7 Rfb VO DI7~DI0 P0 ILE P2.6 Rfb VO DI7~DI0
双缓冲方式接口电路程序设计 ▼完成两路D/A同步输出的程序如下: ; data1送入(1)输入锁存器 MOV DPTR, #0DFFFH MOV A,#data1 MOVX @DPTR,A ; data2送入(2)输入锁存器 MOV DPTR, #0BFFFH MOV A,#data2 MOVX @DPTR,A ;完成D/A转换输出 MOV DPTR, #7FFFH MOVX @DPTR,A
+5V DAC0832 80C51 - + XFER XFER CS CS WR2 WR1 WR1 WR2 ▼当 、 、 、 引脚全部接地, ILE引脚接+5V,数字量一旦输入,就直接进入DAC 寄存器,进行D/A转换。 ③ 直通方式 ILE Rfb IOUT1 IOUT2 VO P0 DI7~DI0
二、A/D转换器及其与单片机的接口 ◇ A/D转换器作用 ◇ A/D转换器工作原理 典型8位A/D芯片ADC0809 ◇ 典型12位A/D芯片AD574A ◇
1、A/D转换器作用 ▼将模拟量转换为数字量,以便单片机接收处理。 传感器 A/D转换 单片机 ◆逐次逼近式A/D转换器 ◆双积分式A/D转换器
VIN VREF D/A转换器 锁存器 START N位寄存器 2、A/D转换器工作原理 ▼按工作原理分,ADC的主要种类有:逐次逼近式、双积分式、计数比较式和并行式。 逐次逼近式A/D转换器原理图 D7 . . . 控制 逻辑 EOC D0
逐次逼近式ADC转换过程: ▼模拟量VX送到比较器后,启动A/D转换,先设N位寄存器的最高位(DN-1)为1,其余位为0,进行D/A转换,得到的模拟量VN与输入VX比较。 若VN ≤VX ,再设次高位(DN-2)为1,继续… 若VN ≧VX ,先清零DN-1,再设次高位DN-2为1,继续… ▼如此反复,经过N次比较后,最后一位D0得到确定,此时,N位寄存器的内容就是转换好的数字量,而EOC输出转换结束信号,在输出允许OE(高电平)有效时,数字量经输出缓冲器读出。
3、 A/D转换器的主要技术指标 ▼分辨率 ◆指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。 ◆如一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/212=2.4mV。 ▼量化误差 ◆ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。 ◆量化误差是ADC的有限位数对模拟量进行量化而引起的误差。
4、典型8位ADC芯片: ADC0809 ▼ADC0809是八位逐次逼近式,单片CMOS集成A/D转换器。 ▼转换速度取决于芯片外接的时钟频率。 时钟频率范围:10~1280KHz。典型值为时钟频率640KHz,转换时间为100us。
CLK START D6 D0 D1 D2 D3 D4 D5 D7 8 OE VR(+) VR(-) 1) ADC0809的内部结构 EOC IN7 三 态 输 出 锁 存 器 8位 A/D 转换 器 8路 模拟 开关 ~ IN0 地址 锁存 与译码 C B A ALE
2) ADC0809通道选择表 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7
ADC0809 3)ADC0809引脚 C、B、A:8路模拟开关的地址选通信号输入端; IN3 IN4 IN5 IN6 IN7 IN2 IN1 IN0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 ALE:地址锁存允许信号输入端 A B C CLK:时钟信号输入端; START:启动A/D转换控制信号输入端 START EOC ALE D3 D7 D6 D5 D4 D0 EOC:转换结束信号输出端 OE CLK OE:输出端允许控制端; VR(-)、VR(+):分别为基准电源的正、负输入端。 VCC VR(+) GND VR(-) IN0~IN7:8路模拟量输入端 D1 D2 D0~D7:8路数字量输出端
Q CP D OE IN0 IN2 IN3 IN4 IN6 IN1 IN7 IN5 74LS373 Q WR ≧1 ≧1 RD EA 4)ADC0809与单片机的接口电路 CLK ALE Q7 … Q0 D7 … D0 P0 C B A ADC0809 80C31 D0~D7 START P2.7 ALE OE P3.3 1 EOC
A/D转换程序(查询方式) ▼对8路模拟信号轮流采样一次,并依次把转换结果存储到片内RAM以DATA为起始地址的连续单元中。 MOV R1,#DATA ;置数据区首地址 MOV DPTR,#7FF8H ;指向0通道 MOV R7,#08H ;置通道数 MOVX @DPTR,A;启动A/D转换 LOOP: HER: JB P3.3,HER ;查询A/D转换结束 MOVX A,@DPTR ;读取A/D转换结果 MOV @R1,A ;存储数据 INC DPTR ;指向下一个通道 INC R1;修改数据区指针 DJNZ R7,LOOP;8个通道转换完否
A/D转换程序(中断方式) ORG 0013H ;中断服务程序入口 AJMP PINT1 ;主程序 MOV R1, #DATA;置数据区首地址 SETB IT1;为边沿触发方式 SETB EA;开中断 SETB EX1;允许中断 MOV DPTR,#7FF8H;指向IN0通道 MOVX @DPTR,A;启动A/D转换 SJMP $;等待中断
A/D转换程序(中断方式) ;中断服务程序 PINT1:PUSH DPL PUSH DPH MOV DPTR, #7FF8H MOVX A,@DPTR;读取转换后数据 MOV @R1,A;数据存入以DATA为首地址的RAM中 INC R1 ;修改数据区指针 MOVX @DPTR,A;再次启动A/D转换 POP DPH POP DPL RETI
5、 AD574A芯片及其与单片机接口 12/8:控制是12位还是8位数据并行输出 /CS:片选信号,低电平有效 R/C: 读/转换选择。 A0:字节选择控制 CE:芯片启动信号 STS:转换状态信号
单极性输入: D=4096VIN/VFS VIN=DVFS/4096 (D为无符号二进制码) 双极性输入: D=2048(1+2VIN/VFS) VIN=(D/2048-1)VFS/2 (D为12位偏移二进制码) 以上式中,VIN为输入模拟量(V),VFS是满量程
AD574A的转换程序 AD574A:MOV DPTR,#0FFF8H;送端口地址 MOVX @DPTR,A ;启动AD574A SETB P1.0 ;置P1.0为输入方式 LOOP:JB P1.0,LOOP ;检测P1.0接口 INC DPTR; 使R/C为1 MOVX A,@DPTR;读取高8位数据 MOV 41H,A ;高8位内容存入41H单元 INC DPTR;使R/C 、A0均为1 INC DPTR; MOVX A,@DPTR ;读取低4位 MOV 40H,A;将低4位内容存入40H单元
三、开关量输出接口 输出口的隔离 ◇ ◇ 继电器输出接口 ◇ 数字地与模拟地的连接原则
1、输出口的隔离 ▼在单片机应用系统中,为防止现场强电磁的干扰或工频电压通过通道反串到测控系统,一般采用通道隔离技术。输出信道的隔离最常用的组件是光耦合器,简称光耦。
2、继电器输出接口 ▼通过继电器输出,可完成从低压直流到高压交流的过渡。在经光耦合器光电隔离后,直流部分给继电器控制线圈供电,而其输出触点则可直接于220V市电相接。
a b c 继电器的引脚内部图 常闭接点(NC接点) 常开接点(NO接点) L1 L2
VCC b c a 1K 使用晶体管驱动继电器(1) P1、P2、 P3适用 ▼二极管D提供继电器线圈电流的放电路径,以防护晶体管。 继电器 ▼由于线圈属于电感性负载,当晶体管截止时,而原本线圈上的电流不可能瞬间降为0,所以二极管D就提供一个放电路径,使线圈不会产生高的感应电势,就不会破坏晶体管了。 接至P1、P2或P3
VCC 1K 使用晶体管驱动继电器(2) VCC P0适用 继电器 b c a ▼7405驱动5V的继电器; 接至P0 ▼7406驱动较高电压的继电器,最高30V。
+12V 继电器 80C51 1K P1.0 继电器应用实例 电灯泡 110V/40W b c ~ a 220V
3、数字地与模拟地的连接原则 ▼数字地是指TTL或CMOS芯片、I/O接口电路芯片、CPU芯片等数字逻辑电路的接地端,以及A/D、D/A转换器的数字地。 ▼模拟地是指放大器、取样保持器和A/D、D/A中模拟信号的接地端。 ▼在单片机系统中,数字地和模拟地应分别接地。即使是一个芯片上有两种地也要分别接地,然后在一点处把两种地连接起来。
模块八小结 1、D/A、A/D转换器是计算机测控系统中常用的芯片,它们可以把数字信号转换成模拟信号输出到外部设备,或把模拟信号转换成数字信号输入到计算机。 2、D/A转换器主要由基准电压、模拟电子开关、电阻解码网络和运算放大器组成。从分辨率来说,有8位、10位、12位、16位之分。位数越多,分辨率越高。 3、DAC0832是一种8位的D/A转换器,输出为电流型,如果需要转换结果为电压,则需外接电流-电压转换电路。DAC0832有三种工作方式,改变ILE、/WR1、/WR2和/XFER的连接方式,可使DAC0832工作于单缓冲器、双缓冲器及直通方式。