[工学]单片机原理及应用--第七章单片机的典型外围_第1页
[工学]单片机原理及应用--第七章单片机的典型外围_第2页
[工学]单片机原理及应用--第七章单片机的典型外围_第3页
[工学]单片机原理及应用--第七章单片机的典型外围_第4页
[工学]单片机原理及应用--第七章单片机的典型外围_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章(第 1页),主讲:张松灿河南科技大学电子信息工程学院自动化系,单 片 机 原 理 与 应 用,第七章 单片机的典型外围接口技术,第二章(第 2页),7.1 键盘接口7.1.1 键盘的工作原理和扫描方式7.1.2 键盘的接口电路7.2 显示接口7.2.1 LED显示器的工作原理7.2.2 显示电路的分类与接口7.3 DAC接口7.3.1 D/A转换器及其接口电路的一般特点7.3.2 D/A转换器的接口电路7.4 ADC接口(207)7.4.1 A/D转换器及与单片机的接口7.4.2 A/D转换器与单片机的接口,第二章(第 3页),7.1 键盘接口,在计算机系统中,为实现人机对话,显示和键盘是两个必不可少的功能配置。 在过程控制和智能仪器仪表中,通常是用微控制器进行实时控制及实时数据处理的。但是计算机所能加工和处理的信息是数字量,而被控和检测对象的有关参量往往是一些连续变化的模拟量。因此,模/数及数/模转换接口功能配置,也是必不可少的。7.1.1 键盘的工作原理和扫描方式1 键盘的工作原理键盘可以分为两类:独立连接式和矩阵式。,第二章(第 4页),(1)独立连接式键盘 是最简单的键盘电路,每个键独立地接入一根数据输入线,如图所示。,一般情况下,所有的数据输入线都被连接成高电平;当有键压下,与之相连的数据输入线将被拉成低电平。要判断是否有键压下,只要用位处理指令即可判断是否有键按下。,优点:结构简单、使用方便,但随着键数的增多所占用的I/O口线也增加。适用于键数不多的单片机系统中。,第二章(第 5页),(2) 矩阵式键盘组成矩阵式键盘电路,其组成如下: 键盘开关矩阵; 输出(行线)锁存器; 输入(列线)缓冲器。,第二章(第 6页),2、矩阵式键盘的工作过程CPU先使行线O0线为低,其余行线为高,即0行为“0”状态,其余行均为“1”状态。CPU读入输入缓冲器的状态,以确定哪条列线为“0”状态。如此时,若I0为“0”状态,则为“0”键压下;若I1为“0”状态,则为“1”键压下;等等。若输入缓冲器的状态全部为“1”状态,则CPU继续使行线O1为低、其余行线为高。再读入输入缓冲器的状态,以确定哪条列线为“0”状态,从而判断是哪个键压下。当判断出哪个键压下之后,程序转入相应的键处理程序。这样的工作过程,称为键扫描。,第二章(第 7页),键扫描的方式有: 程控扫描:CPU的控制一旦进入监控程序,将反复不断地扫描键盘,等待输入命令或数据。 定时扫描:在初始化程序中对定时器/计数器进行编程,使之产生10 ms的定时中断,CPU响应定时中断,执行中断服务程序,对键盘扫描一遍,检查键盘的状态,实现对键盘的定时扫描。当两遍扫描到键位上都有键压下(延迟正好为8 ms)时,CPU才作键处理。 中断扫描:当键位上有键压下时,产生中断请求,CPU响应中断,执行中断服务程序,判断键位上压下的键的键号,继而作相应的处理。,第二章(第 8页),7.1.2 键盘的接口电路1、直接使用I/O口的键盘电路 由于80C51的I/O口具有输出锁存和输入缓冲的功能,用它们组成键盘电路时,可以省掉输出锁存器和输入缓冲器。 图中44的键位与80C51的接口电路。,键位的列线(输入线)连到P1口的低4位,行线(输出线)连到P1口的高4位,而四根列线则通过“与”门相连后,连到INT0端。,第二章(第 9页),初态时,P1.7-P1.4全部为0,没有键压下时,INT0为高电平;当有键压下时,INT0端变为低,向CPU发出中断请求。若CPU开放外部中断0,则响应中断、执行中断服务程序扫描键盘。 在行输出电路中,每行都串联一个二极管是为防止多键同时压下,使输出口短路。,第二章(第 10页),2、利用I/O口和译码器的接口 利用译码器74HC138通过三根口线获得8根行线,从而节省了I/O口线。,第二章(第 11页),图7-5使用串行口的键盘电路,3 利用串行口的键盘电路 用80C51的串行口工作在方式0下,将74HC164的输出作为行线,P1.1及P1.0为列线的82键盘。,第二章(第 12页),7.2.1 LED显示器的工作原理1、发光二极管的控制 发光二极管一般为砷化镓半导体二极管,其电路如图7-6所示。,7.2 显示接口,Ri为限流电阻,阻值在100-300 之间。,第二章(第 13页),当U2=UTTLL时,若U1=UTTLH,二极管发光;若U1=UTTLL,二极管不发光。当U2=UTTLH时,U1为任何电平,二极管均不发光。或者,当U1=UTTLH时,若U2=UTTLL,二极管发光;若U2=UTTLH,二极管不发光。当U1=UTTLL时,U2为任何电平,二极管均不发光。,第二章(第 14页),2、显示块的控制 显示块是由若干发光二极管组合而成的,一般的“8”字形显示块由“a、b、c、d、e、f、g、h”8个发光二极管组成,每个发光二极管称为一字段。 “8”字形显示块有共阳极和共阴极两种结构形式。,第二章(第 15页),显示块的控制方法,以共阴极显示块为例,。 如图7-7(c)所示,共阴极的电平为Ue,每字段上所加的电平分别为Ua,Ub,Uh,设某字段的电平为Ui。 当Ue=UTTLL时,若Ui=UTTLH,该段发光;若Ui=UTTLL,该段不发光。当Ue=UTTLH时,Ui为任何电平,都不发光。 为获得不同的字形,显示块各段所加的电平也不同,因而编码也不一样,如表7-1所示。,第二章(第 16页),表7-1字形与字段关系,第二章(第 17页),从表中可知: Ue可以实现对整个显示块是否发光的控制,称字位控制。 Ui可以实现对显示块中,某一字段的发光控制,称字形控制。 为了点亮显示块,必须提供字位输出口和字形输出口。当点亮显示块时,通过每段发光二极管的电流比较大,因而字位输出口和字形输出口必须采用高压驱动电路。,第二章(第 18页),7.2.2 显示电路的分类与接口 显示电路一般分为静态显示和动态显示两类。1 静态显示电路(1)通过80C51的P0口的显示接口 用一个8位锁存器和一个显示块组成,需要时将数据通过P0口送出。但这种电路需用电源的容量大。,第二章(第 19页),(2) 通过80C51的P0口译码驱动的显示接口 图中,74HC247为译码驱动器,它将输入的4根数据线,译为8根输出线,输出为BCD码0-9的字形码。74HC247的驱动能力很强,每根输出线的灌电流可达20 mA。驱动共阳极显示块是没有问题的。,第二章(第 20页),2、动态显示电路 对于动态显示电路一般是利用CPU控制电路来控制显示块的导通和截止。 显示电路由:显示块、字形锁存驱动器及字位锁存驱动器组成。,工作过程: 将字形代码送入字形锁存器锁存,这时所有的显示块都有可能显示同样的字符;再将需要显示的位置送入字位锁存器锁存。 为防止闪烁,显示的时间在1-2ms。,第二章(第 21页),(1)通过P0和P1口的接口,MOV A,#字形编码 MOV P1,A ;从P1口输出字形 MOV A,#01H ;输出字位码,点亮最右边一位 MOVX R0,A ;通过P0输出字位,并锁存,第二章(第 22页),(2)键盘和显示电路 在矩阵式键盘电路中有:行线锁存器和列线缓冲器;在LED显示电路中有:字形输出锁存器及字位输出锁存器。 在单片机的接口电路中,为了节省口线,常将两者结合在一起,而形成共享锁存器的电路。下面举例说明。,例7.1. 通过P1口及译码器的接口电路。 图7-13示出的是通过P1口及译码器的键盘和显示接口电路。这里由P1口的准双向口功能可以实现一口多用。,第二章(第 23页),图713 通过P1口及译码器的键盘和显示接口电路,第二章(第 24页),首先,使P1口的低4位输出字形代码;P1口的高4位输出一个位扫描字,经3-8译码器后显示某一位,并保持1 ms。各位扫描一遍之后,关掉显示。 其次,使P1口的高4位转为输入方式,使P1口的低4位输出键扫描信号,有键压下时,转入键译码和处理程序。 整个扫描一遍键盘约需十几微秒(s)。,第二章(第 25页),例7.2. 通过P0和P1口的接口电路。 图7-14是通过P0和P1口的键盘和显示接口电路。图中显示的字位输出和键盘的行输出是两个电路共享的。,第二章(第 26页),例7.3. 通过串行口的接口电路。,图715 通过串行口的键盘和显示接口电路,第二章(第 27页),7.3 DAC接口,计算机所处理的信息是数字量,而被测或被控对象的有关参量往往是一些连续变化的模拟量,如温度、压力、流量、速度及加速度等。因此,必须将模拟量转换成数字量,以便计算机进行处理。 模拟量转换成数字量的过程称为模拟-数字转换(A/D转换),使用的转换器件称为A/D转换器。 实际应用中,计算机处理的结果往往也需要转换成模拟量,以便实现对被控对象的控制。数字量转换成模拟量的过程称为数字-模拟转换(D/A转换),使用的转换器件称为D/A转换器。 这里介绍各种不同的A/D和D/A转换器与80C51单片机的接口方法,以及相应工作程序的设计特点。,第二章(第 28页),7.3.1 D/A转换器及其接口电路的一般特点,1、D/A转换器 将数字信号转换成模拟信号的器件,为计算机系统和模拟环境的连续信号之间提供一种接口。 输出由数字输入和参考源Vref组合进行控制的。 数/模转换器的数字输入是二进制或BCD码,输出是电流或电压,多数是电流。 在多数电路中,数/模转换器的输出需要用运算放大器组成的电流-电压转换器将电流输出转换成电压输出。,第二章(第 29页),2、数/模转换器接口电路的一般特点 数据线上的数据是变动的,为保持输出稳定,在微处理器与数/模转换器输入口之间增加锁存数据的功能。 根据数/模转换器输入口是否具有锁存器可将其分为两类。,(1) 内部无锁存器,如DAC800(8位)、AD7520(10 位)、AD7521(12位)。 结构简单,内部不带锁存器。最适合与单片机80C51的P1、P2等具有输出锁存功能的I/O口直接接口。但是当它们与P0口相接口时,则需在其输入端增加锁存器。对于高位的数/模转换器,其接口可如图7-17所示。,第二章(第 30页),图7-17(a)所示的接口由于两次送数有时间延迟,可能在数/模转换器的输出中产生假信号,最好还是采用图7-17(b)所示的接口,但是接口电路比较复杂。,第二章(第 31页),(2) 内部带锁存器 一些数/模转换器,不仅具有数据锁存器,而且还提供地址译码电路,有些包含双重,甚至多重的数据缓冲结构,如DAC0832、DAC1210、AD7542以及AD7549等。 这种类型的数/模转换器以高于8位(如12位)的居多。这类数/模转换器以与80C51中的P0口相接口较为合适,一般这时需要占用多根口线。,第二章(第 32页),7.3.2 D/A转换器的接口电路1、通过P1、P3等I/O口的接口(1)12位数/模转换器-AD7542 AD7542是双缓冲并行送数的12位CMOS乘法式数/模转换器。它由三个4位数据寄存器、一个12位DAC寄存器、地址译码逻辑和12位DAC所组成。,第二章(第 33页),(1)A0、A1提供各寄存器的地址。(2)CLR为清零端,当其低电平有效时,使所有的寄存器都复位为0。(3)CS为片选端,输入,低电平有效。(4)WR为写信号,输入,低电平有效。各信号的功能见表7-2。,第二章(第 34页),注: 表中1为高电平,0为低电平,为任意电平,表示由低电平转向高电平。,表7-2 AD7542数/模转换器信号的功能,第二章(第 35页),(2)AD7542与80C51的接口 AD7542与80C51的接口电路非常简单,见图。用P1口的P1.3-P1.0与数据线D3-D0相连,P1.5、P1.4与A1、A0相连,P1.6用做片选CS,P3.0用做WR信号。,第二章(第 36页),(3) 编程 数据存放在片内RAM的20H-21H单元中,20H中为高4位(OUH),21H中为低8位(VWH)寄存器地址存放在R2中,子程序ADDRS将R2中的寄存器地址形成有效的地址向器件加载。 子程序DATA用于将数据加载到指定的寄存器。 ORG 100HDACLOAD: CLR P1.6 ;片选有效 MOV R2,#0 ;指向L段寄存器 MOV R0,#21H ;指向数据区 LCALL ADDRS ;输出L段寄存器地址 MOV A,R0 ;取数据 LCALL DATA INC R2 ;指向M字段寄存器 MOV A,R0 ;取数据 SWAP A LCALL DATA,第二章(第 37页),INC R2 LCALL ADDRS ;输出H字节寄存器地址 DEC R0 MOV A,R0 LCALL DATA CLR P3.0 SETB P3.0 SETB P1.6 RET ORG 200H ADDRS: MOV A,R2 SWAP A ORL P1,A RET ;,第二章(第 38页),DATA: ANL A,#0FH;保留低4位 ORL P1,A ;产生寄存器地址 CLR P3.0 ;产生信号 SETB P3.0 RET,第二章(第 39页),2、通过P0口的接口 内部有锁存器的数/模转换器,通过P0口与80C51的接口最为方便。(1)8位数/模转换器的接口8位数/模转换器DAC0832,DAC0832芯片内有一个8位输入寄存器和一个8位DAC寄存器,形成两级缓冲结构。可使DAC转换输出前一个数据的同时,将下一个数据传送到8位输入寄存器,提高数/模转换的速度。更重要的是,能够在多个数/模转换器分时输入数据之后,同时输出模拟电压。,第二章(第 40页),DAC0832的结构,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR2,VREF,IOUT1,IOUT2,DGND,LE1,LE2,8位输入寄存器由8个D锁存器组成,用来作为输入数据的缓冲寄存器。 它的8个数据输入可以直接和微机的数据总线相连。LE1为其控制输入,LE1=1时,D触发器接收信号,IE1=0时,为锁存状态。,8位DAC寄存器它也由8个D锁存器组成。8位输人数据只有经过DAC寄存器才能送到DA转换器去转换。 它的控制端为LE2,当LE2=1时,输出跟随输入,而当LE2=0时为锁存状态。DAC寄存器的输出直接送到8位DA转换器进行数模转换。,LE1=1的条件: ILE=1,WR1=0,CS=0 LE2=1的条件: WR2=0,XFER=0,Rfb,第二章(第 41页),DAC0832的引脚,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,第二章(第 42页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,它的输出是与数字量成比例的电流,Vref为参考电压输入,Rfb为运算放大器的反馈电阻,引脚Rfb则是这个反馈电阻瑞,接到运算放大器的输出端。,Rfb,第二章(第 43页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,DAC0832有两个电流输出端:loutl为DAC电流输出1,当DAC寄存器中为全1时,输出电流最大,当DAC寄存器中为全0时,输出电流为0。lout2为DAC电流输出2,Iout2为一常数与Ioutl之差,即loutl+out2=常数在实际使用时,总是将电流转为电压来使用,即将Ioutl和lout2加到一个运算放大器的输入。,Rfb,第二章(第 44页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,DI0DI7是数字量输入信号线。可以直接和微机的数据总线相连。,Rfb,第二章(第 45页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,ILE:输入锁存允许信号,高电平有效。只有当ILE=1时,输人数字量才可能进入8位输入寄存器。,Rfb,第二章(第 46页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,CS:片选输入,低电子有效。只有当WR1CS=0时,这片0832才被选中工作。,Rfb,第二章(第 47页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,WR1:写信号1,低电平有效,控制输入寄存器的写入。,Rfb,第二章(第 48页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,XFER:传送控制信号,低电子有效。控制数据从输入寄存器到DAC寄存器的传送。,Rfb,第二章(第 49页),DAC0832的引脚,8位输入寄存器,8位DAC寄存器,8位D/A转换器,DI0,DI1,DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR2,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。,WR2:写信号2,低电平有效,控制DAC寄存器的写人。,Rfb,第二章(第 50页),DAC0832的接口,DAC0832转换器有三种工作方式:直通方式:两个8位数据寄存器都处于数据接收状态,即LEI和IE2都为1。输入数据直接送到内部DA转换器去转换。单缓冲方式:两个8位数据寄存器中有一个处于直通方式(数据接收状态),而另一个则受微机送来的控制信号控制。在单缓冲工作方式时,0832中两个数据寄存器有一个处于直通方式,一般都是将8位DAC寄存器置于直通方式。双缓冲方式:两个8位数据寄存器都不处于直通方式,单片机或其他微机必须送两次写信号才能完成一次DA转换。,第二章(第 51页),DAC0832的接口直通方式,直通方式:两个8位数据寄存器都处于数据接收状态,即LEI和IE2都为1。因此,IEL =1,而CS、WRl、WR2和XFER为0。输入数据直接送到内部DA转换器去转换。这种方式可用于一些不带微机的控制系统中。,第二章(第 52页),DAC0832的接口单缓冲方式,单缓冲方式:这时两个8位数据寄存器中有一个处于直通方式(数据接收状态),而另一个则受微机送来的控制信号控制。在单缓冲工作方式时,0832中两个数据寄存器有一个处于直通方式,一般都是将8位DAC寄存器置于直通方式。为此,应将WR2和XFER固定接零。而输入寄存器是工作于锁存器状态,它对于8031单片机来说,相当于一个外部RAM单元。,第二章(第 53页),DAC0832的接口双缓冲方式,双缓冲方式:两个8位数据寄存器都不处于直通方式,单片机或其他微机必须送两次写信号才能完成一次DA转换。若采用双缓冲方式,则DAC0832应被看作是外部RAM的两个单元而不是一个单元。,第二章(第 54页),DAC0832的应用,数模转换器可以应用在许多场合,这里介绍用DA转换器来产生各种波形。,锯齿波的产生,三角波的产生,梯形波的产生,第二章(第 55页),锯齿波分正向锯齿波和负向锯齿波。正向锯齿波应用广泛。在许多控制应用中,要求有一个线性增长的电压(正向锯齿)来控制检测过程,移动记录笔或移动电子束等。波形如图所示: 产生正向锯齿波的方法:通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现。 DAC0832的输入寄存器的地址为7FFFH :,锯齿波的产生,MOV DPTR,#7FFFH MOV A,#00H WW: MOVX DPTR,A INC A NOP NOP NOP AJMP WW,思 考,第二章(第 56页),思考1:以下程序将产生何种波形?,MOV DPTR,#7FFFH MOV A,#00H WW: MOVX DPTR,A DEC A NOP NOP NOP AJMP WW,思 考,思考2:编程产生如下锯齿波,MOV DPTR,#7FFFHWW1:MOV A,#33H WW: MOVX DPTR,A INC A LCALL D1ms CJNE A,#0CDH,WW AJMP WW1D1ms: MOV R7,#250 DJNZ R7, RET,第二章(第 57页),三角波是由两段直线组成的,先送出一个线性增长的波形,达到最大值时,再进出一个线性减少的波形,两者结合,就成为三角波。然后使之不断地重复,就能得到一个连续的波形。 实际上这里所说的线性波形仍是一些台阶很小的阶梯波形。为了更逼近线性增长,应使台阶的幅度尽可能小(1位LSB),并且整个波形中台阶的高度和宽度应保持不变。为此,要特别注意转折处的处理,避免出现台阶的宽度变宽或其他影响波形线性的现象出现。,三角波的产生,START:CLR A UP:MOV P1,A INC A JNZ UP MOV A,#254 DOWN:MOV P1,A DEC A JNZ DOWN SJMP UP,第二章(第 58页),梯形波有多种形式,波形如图所示: 实现方法与锯齿波和三角波相似。,梯形波的产生,第二章(第 59页),7.4 ADC接口,7.4.1 A/D转换器及与单片机的接口1、模/数转换器 模/数转换器是将连续的模拟信号转换成适合于数字处理的二进制数的器件,其原理框图如图7-29所示。,第二章(第 60页),由图中可以看出,模/数转换器的输入有两种: 模拟输入信号Vin和参考电压Vref; 其输出是一组二进制数。 可以认为,模/数转换器是一个将模拟信号值编制成对应的二进制码的编码器。与此对应,数/模转换器则是一个解码器。 常用的模/数转换器有:双积分式、逐位比较式及并行直接比较式等几种。,第二章(第 61页),2、与单片机接口的一般特点 一个完整的模/数转换器应该包含: 模拟输入信号Vin和参考电压Vref; 数字输出信号; 启动转换信号,输入; 转换完成(结束)信号或者“忙”信号,输出; 数据输出允许信号,输入。,第二章(第 62页),为了与单片机接口,必须设置图7-30(b)所示的一些数据输入接口、状态输入接口及控制输出接口等。 首先,单片机通过控制口发出启动转换信号,命令模/数转换器开始转换。然后单片机再通过状态口读入转换器的状态,判断它是否转换结束,一旦转换结束,CPU发出数据输出允许信号,将转换完成的数据读入。,80C51单片机有极强的I/O口和位操作指令,为模数转换器的接口提供方便,简化了接口电路。,第二章(第 63页),7.4.2 A/D转换器与单片机的接口1. 通过P0口的接口(1)与8位模/数转换器的接口 1)8位模/数转换器-ADC0809 ADC0809采用的是CMOS工艺制成的8位8通道模/数转换器,采用28脚DIP封装,其结构原理框图和引脚分配是于图732和图733中,第二章(第 64页),ADC0809的结构与引脚,ADC0809是一种8路模拟输入8路数字输出的逐次比较型A/D转换器。目前在8位单片机系统中有着广泛的使用。,ADC0809芯片为28引脚双列直插式封装。,第二章(第 65页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,IN7IN0:模拟量输入通道。ADC0809对输入模拟量的要求主要有:信号单极性,电压范围05 V,若信号过小还需进行放大。另外,在A/D转换过程中,模拟量输入的值不应变化太快,因此,对变化速度快的模拟量,在输入前应增加采样保持电路。,CLOCK,第二章(第 66页),ADC0809的引脚,ADDA、ADDB、ADDC:地址线。ADDA为低位地址,ADDC为高位地址,用于对模拟通道进行选择。,地址状态与通道相对应的关系表,CLOCK,ADC0809芯片为28引脚双列直插式封装。,第二章(第 67页),通道选择表,地址状态与通道相对应的关系表,第二章(第 68页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,ALE:地址锁存允许信号。在对应ALE上跳沿,ADDA、ADDB、ASSC地址状态送入地址锁存器中。,CLOCK,第二章(第 69页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,START:转换启动信号。START上跳沿时,所有内部寄存器清0;START下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。,CLOCK,第二章(第 70页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,D7D0:数据输出线。其为三态缓冲输出形式,可以和单片机的数据线直接相连。,CLOCK,第二章(第 71页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,OE:输出允许信号。其用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。,CLOCK,第二章(第 72页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,EOC:转换结束状态信号。EOC=0,正在进行转换;EOC=1,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。,CLOCK,第二章(第 73页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,CLOCK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号。,CLOCK,第二章(第 74页),ADC0809的引脚,ADC0809芯片为28引脚双列直插式封装。,Vref:参考电源。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5 V(Vref (+) =+5 V,Vref(-) =0 V),CLOCK,第二章(第 75页),ADC0809的接口,ADC0809与89C51单片机的连接方式很多。电路连接主要涉及两个问题,一是8路模拟信号通道选择,二是A/D转换完成后转换数据的传送。,地址锁存与译码,8位A/D转换器,输出锁存与缓冲,IN0,IN1,IN2,IN3,IN4,IN5,D0,D1,D2,D3,D4,D5,D6,D7,IN6,IN7,ADDB,ADDA,ADDC,ALE,OE,START,EOC,Vref+,Vref-,CLOCK,第二章(第 76页),ADC0809的接口,8路模拟信号通道选择线的连接方法有2种:与DB连接和与AB连接。,地址锁存与译码,8位A/D转换器,输出锁存与缓冲,IN0,IN1,IN2,IN3,IN4,IN5,D0,D1,D2,D3,D4,D5,D6,D7,IN6,IN7,ADDB,ADDA,ADDC,ALE,OE,START,EOC,Vref+,Vref-,CLOCK,第二章(第 77页),ADC0809的接口方法,第二章(第 78页),ADC0809的接口方法,AB0,AB1,AB2,第二章(第 79页),ADC0809的接口,A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换完成,因为只有确认数据转换完成后,才能进行传送。为此,可采用下述三种方式。 1) 定时传送方式 2) 查询方式 3) 中断方式,第二章(第 80页),定时传送方式,对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如,ADC0809转换时间为128 s,相当于6 MHz的MCS-51单片机64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用这个延时子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 在这种方式下,EOC引脚悬空。,第二章(第 81页),查询传送方式,单片机启动0809后,延迟10us,检测EOC,若EOC=0则A/D转换没有结束,继续检测EOC,直到EOC=1。当EOC=1时,A/D转换已经结束,单片机读取A/D转换结果。 在这种方式下,EOC必须接到8051的一条I/O线上。,P1.0,第二章(第 82页),中断传送方式,单片机启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论