单片机原理及应用 张岩 张鑫07 第7章 MCS.51单片机的输入输出通道接口

上传人:E**** 文档编号:89108579 上传时间:2019-05-18 格式:PPT 页数:43 大小:1.98MB
返回 下载 相关 举报
单片机原理及应用 张岩 张鑫07 第7章  MCS.51单片机的输入输出通道接口_第1页
第1页 / 共43页
单片机原理及应用 张岩 张鑫07 第7章  MCS.51单片机的输入输出通道接口_第2页
第2页 / 共43页
单片机原理及应用 张岩 张鑫07 第7章  MCS.51单片机的输入输出通道接口_第3页
第3页 / 共43页
单片机原理及应用 张岩 张鑫07 第7章  MCS.51单片机的输入输出通道接口_第4页
第4页 / 共43页
单片机原理及应用 张岩 张鑫07 第7章  MCS.51单片机的输入输出通道接口_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《单片机原理及应用 张岩 张鑫07 第7章 MCS.51单片机的输入输出通道接口》由会员分享,可在线阅读,更多相关《单片机原理及应用 张岩 张鑫07 第7章 MCS.51单片机的输入输出通道接口(43页珍藏版)》请在金锄头文库上搜索。

1、,张岩,机械工业出版社:单片机原理及应用张岩 ISBN:978-7-111-50104-6,第7章 MCS-51单片机的输入/输出通道接口,内容提示 ,在检测控制系统中,当被测物理量为模拟量时,需要将外部的模拟量转换成数字量送给单片机,当被控对象由模拟量控制时,单片机必须将输出的数字量转换成模拟量去控制被控对象。将模拟量转换成数字量的集成电路称为模数转换器,即A/D转换器;将数字量转换成模拟量的集成电路称为数模转换器,即D/A转换器。但是,805l内部没有集成A/D、D/A转换电路,因此必须在外部扩展。本章在介绍输入/输出通道的组成与配置的基础上,介绍了A/D转换器、D/A转换器及其接口技术。

2、,学习目标 , 了解输入/输出通道设计的基本原理和方法; 掌握DAC0832芯片及其与MCS-51单片机的应用设计; 掌握ADC0809芯片及其与MCS-51单片机的应用设计。,知识结构 ,目录,CONTENTS,7.1 输入/输出通道概述 7.2 D/A转换器及接口技术 7.3 A/D转换器及接口技术 7.4 实验与实训,7.1 输入/输出通道概述,单片机用于测量和控制系统时,总要有与被测对象联系的输入通道(前向通道)和与被控对象联系的输出通道(后向通道)。 单片机系统和被控对象之间信息的交互有输入和输出两种类型,前者在单片机系统数据采集时,将被控对象的信息经输入通道送入单片机系统;后者在单

3、片机系统控制输出时,将单片机系统决策的控制信息经输出通道作用于被控对象。,1输入通道 当单片机用做测量、控制系统时,系统中总要有被测信号输入通道,由计算机拾取必要的输入信息。 输入通道的特点: 输入通道要靠近拾取对象采集信息。 输入通道工作环境因素严重影响通道的方案设计。 传感器的输出往往是模拟信号、微弱信号输出,因此输入通道通常是模拟、数字等混杂电路。 传感器、变送器的选择和环境因素决定了输入通道电路设计。 传感器输出信号一般比较微弱,常需要放大电路,因此抗干扰设计是非常重要的。,输入通道的结构,2输出通道 在工业控制系统中,单片机总要对控制对象进行控制操作,因此,在这样的系统中必须具有输出

4、通道。输出通道的作用是实现单片机对被控对象的控制操作,其结构和特点与控制任务密切相关。 输出通道的特点 根据单片机的输出和被控对象对控制信号的要求,输出通道有如下特点。 小信号输出,大功率控制。 输出伺服驱动控制信号,在伺服驱动系统中的状态反馈信号,作为检测信号输入至输入通道。 输出通道接近被控对象,环境复杂恶劣,电磁和机械干扰较为严重。,输出通道的结构,信号处理电路,开关量输入,小信号放大技术,隔离放大技术,7.2 D/A转换器及接口技术,D/A转换器(Digit to Analog Converter)是将数字量转换成模拟量的器件,通常用DAC表示,它将数字量转换成与之成正比的电量,广泛应

5、用于过程控制中。,1,2,1,1,D/A转换接口器设计中主要考虑的问题有:D/A转换芯片的选择,数字量的码输入、精度,输出模拟量的类型与范围,转换时间,与CPU的接口方式等。,7.2.1 D/A转换器的性能指标 1. 分辨率 单位数字量所对应模拟量的增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A转换器产生的最小模拟量变化,也可用最低位(LSB)表示。例如,n位D/A转换器的分辨率为1/2n。 2. 精度 精度是指D/A转换器的实际输出与理论值之间的误差,它以满量程VFS的百分数或最低有效位(LSB)的分数形式表示。例如:若精度为0.1%,则最大误差为VFS0

6、.1%,若VFS=10V,则误差为10mV。n位DAC的精度为1/2 LSB,则最大误差为:,3. 线性误差 D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A转换器的线性误差,即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差,常以LSB的分数形式表示。 4. 转换时间TS(建立时间) 从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。,7.2.2 D/A转换器的分类,按输出形式分类:电压输出型和电流输出型。 按是否含有锁存器分类:内部

7、无锁存器和内部有锁存器。 按能否作乘法运算分类:乘算型和非乘算型。 按输入数字量方式分类:并行总线D/A转换器和串行总线D/A转换器。 按转换时间分类: 超高速D/A(TS100ns)、高速D/A(TS为100ns 10s)、中速D/A(TS为10s100s)、低速D/A(TS100s)等。,7.2.3 DAC0832转换器的接口,1. DAC0832的特点与结构引脚 NS(National Semiconductor,美国国家半导体)公司生产的DAC0830系列(DAC0830/32)产品中的一种,该系列芯片具有以下特点: 8位并行D/A转换; 片内二级数据锁存,提供数据输入双缓冲、单缓冲和

8、直通3种工作方式; 电流输出型芯片,通过外接一个运算放大器,可以很方便地提供电压输出; DIP20封装、单电源(+5 V+15 V,典型值+5 V);,引脚功能如下: D0D7: 8位数字量输入端 CS: 片选端,低有效 ILE : 数据锁存允许 WR1 : 写控制信号1 WR2: 写控制信号2 XFER: 数据传送控制信号 Iout1: 电流输出端1 Iout2: 电流输出端2 RFB : 内置反馈电阻端 VREF : 参考电压源(-10 V+10 V) DGND: 数字量地 AGND: 模拟量地 Vcc: +5 +15V单电源供电端,DAC0832的内部结构,2. 电压输出方法 DAC08

9、32需要电压输出时,可以简单地使用一个运算放大器连接成单极性输出形式。如图7.7所示,输出电压VOUT= (-VREF);当VREF=-5V时,VOUT输出范围为:05V。采用二级运算放大器可以连接成双极性输出。,3. 单缓冲方式 单缓冲方式是指DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受单片机控制的方式。在应用系统中,如果只有一路D/A转换,或者有多路D/A转换,但不要求同步输出时,可以采用单缓冲器方式接口。,执行下列几条指令就可以完成一次D/A转换: MOV DPTR, #7FFFH ; 地址指向DAC0832 MOV A, #DATA ; 待转换的数字量DATA送累

10、加器A MOVX DPTR, A ; 数字量送P2.7指向的地址 ; 有效时完成一次D/A输入 和转换 【例7.1】 利用如图7.8所示电路,使用DAC0832作为波形发生器产生三角波。 解:在图7.8中,放大器LM324的输出端VOUT直接反馈到RFB,所以该电路只能产生单极性的模拟电压。产生三角波的参考程序如下:,ORG 0100H START: MOV DPTR, #7FFFH ; 地址指向DAC0832 MOV A, #00H ; 三角波起始电压为0 UP: MOVX DPTR, A ; 数字量送DAC0832转换 INC A ; 三角波上升边 JNZ UP ; 未到最高点0FFH,返

11、回UP继续 DOWN: DEC A ; 到三角波最高值,开始下降边 MOVX DPTR, A ; 数字量送DAC0832转换 JNZ DOWN ; 未到最低点0,返回DOWN继续 INC A SJMP UP ; 返回上升边 END,C51程序:#include #include #define CS0832 XBYTE0xffef /*DAC0832地址0xffef*/ void DelayMS(unsigned int ms) /*延时*/ unsigned char i,j; for(i=ms;i0;i-) for(j=110;j0;j-); void main( ) unsigned c

12、har a,m,n; a=0; /*三角波起始电压为0*/ CS0832=a; while(1) for(m=0;m255;m+) /*三角波上升边*/ a+; CS0832=a; DelayMS(1); a=0xff; for(n=0;n255;n+) /*三角波下降边*/ a-; CS0832=a; DelayMS(1); ,4. 双缓冲方式 对于多路D/A转换,若要求同步进行D/A转换输出,则必须采用双缓冲方式,在此工作方式下,数字量的输入锁存和D/A转换输出是分两步完成的。 【例7.2】 假设某一分时控制系统,由一台单片机控制两台并行设备,两台设备的模拟控制信号分别由两片DAC0832

13、输出,要求两片DAC0832同步输出。,ORG 0100H START: MOV DPTR, #7FFFH ; 数据指针指向1#的第一级锁存器 MOV A, #DATA1 ; 取第一个待转换数据DATA1 MOVX DPTR, A ; 送入第一级缓冲器 MOV DPTR, #0DFFFH ; 数据指针指向0#的第一级锁存器 MOV A, #DATA0 ; 取第二个待转换数据DATA0 MOVX DPTR, A ; 送入第一级缓冲器 MOV DPTR, #0BFFFH ; 数据指针指向两个转换器的 ; 第二级缓冲地址 MOVX DPTR, A ; 1#和0#数据同时由第一级向 ; 第二级锁存传送

14、,开始转换 RET END,C51程序:#include #include #define DAC083200Addr 0x7fff /*0#0832的数据寄存器地址*/ #define DAC083201Addr 0xdfff /*1#0832的数据寄存器地址*/ #define DAC0832Addr 0xbfff /*两片0832同时转换的端口地址*/ #define uchar unsigned char /* uchar代表单个字节无符号数*/ #define uint unsigned int void writechip1(uchar c0832data); void write

15、chip2(uchar c0832data); void transdata(uchar c0832data) ; /*转换数据*/ void Delay( ) ; /*延时子程序*/ void main(void) xdata uchar cdigitl1=0; /*1#0832待转换的数字量*/ xdata uchar cdigitl2=0; /*2#0832待转换的数字量*/ Delay( ); /*延时*/ while(1) cdigitl1=0x80; cdigitl2=0xff; writechip1(cdigitl1); /*向1#0832写入数据*/ writechip2(cd

16、igitl2); /*向2#0832写入数据*/ transdata (0x00); /*同时进行转换*/ Delay(); ,void writechip1(uchar c0832data) /*向1#0832芯片写入数据函数*/ *(uchar xdata *)DAC083200Addr)=c0832data; void writechip2(uchar c0832data) /*向2#0832芯片写入数据函数*/ *(uchar xdata *)DAC083201Addr)=c0832data; void TransformData(uchar c0832data) /*两片0832芯片同时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号