MCS-51单片机的输入输出通道接口.ppt
1,第5章 输入输出通道接口技术,5.1 输入输出通道概述5.2 D/A转换器及接口技术5.3 A/D转换器及接口技术,2,第5章 输入输出通道接口技术,主要内容:输入/输出通道的组成与配置,A/D、D/A转换器及其接口技术。通过本章的学习,了解模拟输入/输出通道设计的基本原理和方法,掌握常用A/D、D/A芯片及其与MCS-51单片机的接口电路与程序设计。重点和难点:不同方式的A/D、D/A芯片与MCS-51的接口及其程序设计。,3,5.2 D/A转换器及接口技术,数/模转换就是将数字量转换成与它成正比的模拟量。,例如:对于05V的直流电压,计算机用8位数字量描述,最小值(00000000)B=0对应0V,最大值(11111111)B=255 对应 5V,中间值(01111111)B=127 对应2.5V 等等。,D/A的任务是接收到一个数字量后,给出一个相应的电压。,比如收到(00111111)B,应给出幅度为1.25V 的电压。,4,5.2.1 D/A转换器性能指标,(1)分辨率:指D/A转换器能分辨的最小输出模拟增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。,(2)精度:指D/A转换器的实际输出与理论值之间的误差,它以满量程的百分数或最低有效位的分数形式表示。(3)转换时间:从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间。,(4)线性误差:D/A的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性之间的偏差就是D/A的线性误差。,5,5.2.3 并行输入D/A芯片及接口技术,并行输入D/A转换芯片DAC0832,DAC0832是NS公司生产的DAC0830系列产品中的一种8位CMOS数模转换芯片,其特点如下:8位并行D/A转换;片内二级数据锁存,提供数据输入双缓冲、单缓冲、直通三种工作方式;电流输出型芯片(需外接运放),电流稳定时间为1s,只需在满量程下调整其线性度;单电源(+5 V+15 V,典型值+5 V)供电;具有双缓冲控制输出;参考电压为-10+10V,6,DAC0832结构,7,DAC0832的输出电路,DAC0832的输出量是电流,而实际应用中常常需要的是模拟电压。在这种情况下,芯片的输出还需要有将电流转换为电压的电路。,Vout(D/2n)VREF,8,DAC0832与89C51接口,DAC0832可以有三种工作形式:直通、单缓冲、双缓冲。,9,1)单缓冲工作方式应用,将二级寄存器的控制信号并接,输入数据在控制信号作用下(一次控制,一次缓冲),直接打入8位DAC寄存器中并进入8位D/A转换器进行D/A转换。,10,产生锯齿波的程序,MOV DPTR,#7FFFH MOV A,#00HLOOP:MOVX DPTR,A INCA NOP NOP AJMP LOOP;,11,产生方波的程序,MOV DPTR,#7FFFHLOOP:MOV A,#0FFHMOVX DPTR,AACALL DELAYMOV A,#00HMOVX DPTR,AACALL DELAY AJMP LOOP,12,2)双缓冲工作方式应用,在多路D/A转换的情况下,若要求同步转换输出,必须采用双缓冲方式。DAC0832采用双缓冲方式时,数字量的输入锁存和D/A转换输出是分两步进行的。第一,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中。第二,CPU对所有的D/A转换器发出控制信号,使各路输入寄存器中的数据进入DAC寄存器,实现同步转换输出。,13,2)双缓冲工作方式应用,14,2)双缓冲工作方式应用,MOV DPTR,#0DFFFH MOV A,#data1 MOVX DPTR,A MOV DPTR,#7FFFH MOV A,#data2 MOVX DPTR,A MOV DPTR,#0BFFFH MOVX DPTR,A,15,5.3 A/D转换器及接口技术,计算机只能储存和处理二进制形式的数字量,凡遇到有模拟量的地方,就要进行模拟量向数字量转换,这就是模/数转换问题。将模拟量转换成数字量的过程称为A/D转换,与之有关的接口技术称为前向通道接口技术。因为在单片机应用系统中,常需要将检测到的连续变化的模拟量如温度、压力、流量、速度等转换成数字信号,才能输入到单片机中进行处理,然后再将处理结果的数字量转换成模拟量输出,实现对被控对象的控制。,16,5.3.1 A/D转换器的性能指标,(1)分辨率:分辨率是指输出数字量变化一个相邻数码所需输入模拟电压的变化量。A/D转换器的分辨率定义为满刻度电压与2n之比值,其中n为ADC的位数。,(2)转换速率与转换时间:转换速率是指A/D转换器每秒钟转换的次数。转换时间是指完成一次A/D转换所需的时间。转换时间是转换速率的倒数。(3)量化误差:A/D的阶梯状转移特性曲线与理想转移特性曲线之间的最大偏差称为量化误差。(4)线性度:实际A/D转换器的转移函数与理想直线的最大偏差。不包括量化误差、偏移误差和满刻度误差三种误差。(5)量程:量程是指A/D能够转换的电压范围,如05V,-10+10V等。,17,逐次逼近式A/D转换器ADC0809,ADC0809是美国国家半导体公司生产的CMOS工艺8通道、8位逐次逼近式A/D转换器。,18,ADC0809 A/D转换器芯片,19,ADC0809与MCS-51单片机接口,ADC0809与MCS-51连接可采用查询方式,也可采用中断方式。由于ADC0809片内有三态输出锁存器,因此可直接与MCS-51接口。,把ALE信号与START信号接在一起,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。,20,ADC0809与MCS-51单片机接口,21,8路巡回检测系统,【例】某粮库或某冷冻厂需对8点(8个冷冻室或8个粮仓)进行温度巡回检测。要求设计一个单片机巡回检测系统,使其能对各冷冻室或各粮仓的温度巡回检测并加以处理。设被测温度范围为-30+50,温度检测精度要求误差不大于1。,将读数依次存放在片外数据存储器30H37H单元。其采集程序和中断服务程序如下:,22,8路巡回检测系统,ORG 0000H LJMP MAIN ORG 0003H LJMP INT0F ORG 0100HMAIN:MOV R0,#30H;数据暂存区首址 SETB IT0;脉冲触发方式 SETB EA;开中断 SETB EX0 MOV DPTR,#7FF8H;指向0809首地址 MOVX DPTR,A;启动A/D转换HERE:SJMP HERE;等待中断,23,8路巡回检测系统,中断服务程序:INT0F:MOVX A,DPTR;读数 MOVX R0,A;存数 INC DPTR;更新通道 INC R0;更新暂存单元 CJNE R0,#38H,NEXT MOV R0,#30H;数据暂存区首址 MOV DPTR,#7FF8H;指向0809首地址 RETINEXT:MOVX DPTR,A RETI END,24,串行输出A/D转换器,串行输出的A/D芯片由于节省单片机的I/O口线,越来越多地被采用。如具有SPI三线接口的TLC1549、TLC1543、TLC2543、MAX187等,具有I2C接口PCF8591(4路8位A/D,还含1路8位D/A)等。,25,串行A/D MAX187/189,MAX187/189是MAXIM公司生产的具有SPI(Serial Peripheral Interface)总线接口的12位逐次逼近式(SAR)A/D转换芯片。特点如下:12位逐次逼近式(SAR)串行A/D转换芯片;转换速度为75 kHz,转换时间为8.5s;输入模拟电压:05V;单一+5 V供电;DIP8引脚封装,外接元件简单,使用方便。MAX187与MAX189的区别在于:MAX187具有内部基准,无需外部提供基准电压,MAX189则需外接电压基准。,26,串行A/D MAX187/189,27,MAX187/189与单片机接口,当CS输入低电平时,启动A/D转换,此时DOUT引脚输出低电平,当DOUT输出变高电平时,说明转换结束(在转换期间,SCLK不允许送入脉冲)。从SCLK引脚输入读出脉冲,SCLK每输入一个脉冲,DOUT引脚上输出一位数据,数据输出的顺序为先高位后低位,在SCLK信号的下降沿,数据改变,在SCLK的上升沿,数据稳定。SCLK信号为高电平期间从DOUT引脚上读数据。,28,MAX187/189与单片机接口,工作流程:清P1.7,启动MAX187开始A/D转换;读P1.5,等待转换结束;当P1.5变高,转换结束;从P1.6引脚发串行脉冲,从P1.5引脚逐位读取数据。注意:由于MCS-51单片机外接晶振最大不超过12 MHz,即便是执行一条单周期指令也需1 s,所以发送SCLK时无需延时。,29,MAX187/189与单片机接口,HIGH EQU 31H LOW EQU 30H ORG 1000HSTART:MOV HIGH,#00 MOV LOW,#00;将转换结果单元清除 CLR P1.6 CLR P1.7;启动A/D转换 JNB P1.5,$;等待转换结束,例题 如图上页图所示的MAX187与MCS-51连接的电路图,将MAX187转换结果存入31H、30H单元,右对齐,31H存高位(高4位补0)。,30,SETB P1.6;SCLK上升沿 MOV R7,#12;置循环初值12 LP:CPL P1.6;发SCLK脉冲 JNB P1.6,LP;等待SCLK变高 MOV C,P1.5;将数据取到C MOV A,LOW RLC A MOV LOW,A MOV A,HIGH RLC A MOV HIGH,A;取到的数据位移入结果保存单元 DJNZ R7,LP SETB P1.7;结束 RET END,