ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:432.99KB ,
资源ID:23505329      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23505329.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6章 输入输出.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第6章 输入输出.docx

1、第6章 输入输出第6章 输入和输出6.1概述输入和输出系统是计算机系统的重要组成部分之一,任何一台高性能计算机,如果没高质量的输入/输出系统与之配合工作,计算机的高性能便无法发挥出来。输入/输出系统包括I/O接口、I/O设备、I/O管理部分与I/O有关的软件。常见的输入/输出设备有:键盘、CRT显示器、鼠标、打印机、扫描仪和外存储器等,在一些控制场合,还会用到模/数或数/模转换器、发光二极管等。这些设备和装置的工作原理、信号形式、数据格式各异,为了把外设与CPU连接起来,必须有接口部件,以完成它们之间的速度匹配、信号匹配、和某些控制功能。接口泛指任何两个部分之间的交接部分,或两个系统间的连接部

2、分。在计算机系统里,接口指微处理器与外部设备之间的连接通道及有关的控制电路。端口指CPU可寻址的用于数据传送的口,通常一个接口有一个或几个端口。一、I/O接口功能1、数据缓冲和锁存功能通常输出接口应有锁存功能,输入接口应有缓冲功能。2、信号转换功能如将模拟信号转换成数字信号、计算机的弱电信号转换成强电控制信号3、数据格式变换功能如将便于传输的串行数据转换成计算机能处理的并行数据。4、接收和执行CPU命令的功能当系统中外设比较多,有些操作功能可由接口电路完成。二、CPU与I/O设备之间的接口信息1、数据 数据量:数据或以ASCII码表示的数或字符。 模拟量:电压或电流。 开关量:两种状态的量,如

3、电机的运转与停止,开关的闭合与断开等。2、状态信息 设备的状态,如:输入设备是否准备好,输出设备是否空闲等。3、控制信息 控制输入输出设备的启动或停止等信息。8.2 I/O端口的编址及输入/输出方式8.2.1 端口的编址方式I/O端口是指I/O接口中与CPU进行信息传送的口。1、与存储器统一编址采用存储器的控制选择信号,端口视为一个存储单元,无需专门的I/O指令,缺点是端口地址占用部分存储器地址空间。2、独立编址采用I/O专用控制选择信号,端口地址与存储器地址是独立的,使用专门的I/O指令。8.2.2 CPU与外设数据传送的方式1、无条件传送不考虑外设状态,直接进行I/O数据传送。如数码管显示

4、、开关量读取。2、查询传送方式在传送数据前,先查询外设状态,若外设准备好,则进行数据传送;否则等待。在这种方式中,接口电路中必须有数据端口和状态端口。例:采用查询方式输入100个字节的数据存入数据段BUFFER开始的单元。设数据端口地址为PORT1,状态端口地址为PORT2,D1=1时,外设准备好。 MOV SI,BUFFERMOV CX,64H AGAIN: IN AL,PORT2 TEST AL,02HJZ AGAININ AL,PORT1MOV SI,ALINT SILOOP AGAIN3、中断控制方式当需要传送数据时,CPU首先启动外设,外设准备好后发出中断申请信号,若CPU响应,则转

5、到中断服务子程序,进行数据传送,然后再返回到主程序继续执行。4、直接存储器存取方式DMA当外设需要数据传送,由外设通过DMA控制器向CPU发出总线请求信号HOLD,CPU响应后,让出总线控制,由DMA控制器控制完成外设到存储器的数据传送。DMA的工作过程如下图所示。DMA控制方式的主要优点是:速度快,数据传送的速率只受存储器访问的限制.由于CPU不参与操作,因此省去了CPU取指令,指令译码、取数和送数等操作.主要缺点是:硬件电路比较复杂.DMA控制器的基本功能:1. 能接收外设的请求,向CPU发出DMA请求信号;2. 当CPU发出DMA响应信号之后,接管对总线的控制,进入DMA方式;3. 能寻

6、存储器,即能输入地址并修改地址;4. 能向存储器和外设发出相应的读/写控制信号;5. 能控制传送的字节数,判断DMA传送是否结束;6. 在DMA传送结束后,能结束DMA请求信号,释放总线,使CPU恢复正常工作。DMA传送方式1. 单字节方式:每次DMA请求只传送一个字节;2. 成组方式:每次DMA请求连续传送一个数据块; 6.4 数字通道(数码显示和键盘) 常用的外围设备主要是用于人机交互的设备,如键盘、鼠标、显示器和打印机等,本章重点讲解LED显示器及接口和键盘及接口6.4.1 LED显示器及接口七段LED显示器是一个很实用,同时也是很廉价的数字显示装置,常用于显示十进制或十六进制数,在单板

7、微型机、袖珍计算机到微型机控制系统及数字化仪器中都用LED数码管做输出显示器。一、LED显示的工作原理七段LED显示器是由七段发光二极管组成,发光二极管是一种将电能转变为光能的半导体器件,每个LED的下向压降是恒定的,典型值为1.6V和2.4V。下向导通时发光,发光时流过220mA的电流。一般说来,外加正向电压愈高,电流愈大,发光愈强,但如果电压太高,电流太大,将会烧坏发光二极管。因此,在使用时通常串入一限流电阻。LED显示器有共阴极和共阳极两种结构。如下图所示。二、LED显示器接口方式在一个LED显示器上只能显示一位十进制数或一位十六进制数,应将显示的数转换成相应的字型码,然后将字型码送到显

8、示器接口。转换成字型码的方法有两种:一种方法是采用专用的LED七段译码器,实现硬件译码;另一种方法是软件译码,通常采用查表法。LED显示接口连接方法有两种,静态显示方式和动态显示方式1、LED静态显示方式将位选线连接在一起,每位的段选线与一个8位并行口相连。特点:编程简单,占用资源多。2、LED动态显示方式将段选线并联在一起,位选线由相应的I/O线控制(或采用译码连接法)特点:占用资源少(只需2个端口),编程须采用不间断地扫描显示器方式,每位显示保持15ms的时间。6.4.2 键盘在应用系统中,为了控制应用系统的工作状态,以及向系统输入数据,应用系统中应设有按键或键盘,如复位键、功能键以及数据

9、输入用的数字键等。键盘分为非编码式键盘和编码式键盘两种。非编码式键盘一般以nm个键排列成矩阵形式,通过软件扫描的方法识别按键动作,并用软件方法对被扫描到的按键进行编码处理。编码式键盘则由硬件完成按键的识别和编码工作。在应用系统中,为了控制应用系统的工作状态,以及向系统输入数据,应用系统中应设有按键或键盘。如复位键、功能键以及数据输入用的数字键等。一、软件应解决的任务1、键状态的可靠输入无论是按键或键盘在闭合及断开瞬间均有抖动,为了保证CPU对键的一次闭合,仅作一次键输入处理,必须去除抖动。方法是在检测到有键按下时,执行一个510ms的延时程序,然后再确认该是否仍保持闭合状态,如保持闭合则确认为

10、真正键按下状态,从而消除了抖动影响。2、对按键进行编码或直接给出键号编码的目的是为进行散转。因此无论有无编码,以及采用什么编码,都要转换成与键相对应的数值,以实现按键功能程序的散转转移。二、按键及键盘的接口方式1、独立式按键2、矩阵式键盘键盘中有无按键按下是由行线送全扫描字、列线读入状态来判断的。键盘中哪一个键按下是由行线逐行置低电平后,检查列输入状态来确定。键盘扫描及显示实验;Keyscan.asm;键盘扫描及数码管显示实验IOY0 EQU 9C00H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H

11、*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H,71HDATA ENDS ;键值表,0F对应的7段数码管的段位值CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DAT

12、A MOV DS,AX MOV SI,3000H ;建立缓冲区,存放要显示的键值 MOV AL,00H ;先初始化键值为0 MOV SI,AL MOV SI+1,AL MOV SI+2,AL MOV SI+3,AL MOV DI,3003H MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口输出,C口低4位输入 OUT DX,ALBEGIN: CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键 JNZ GETKEY1 ;有键按下则跳置GETKEY1 MOV AH,1 ;判断PC键盘是否有按键按下

13、 INT 16H JZ BEGIN ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;返回到DOS INT 21HGETKEY1:CALL DIS ;显示刷新 CALL DALLY CALL DALLY CALL CLEAR ;清屏 CALL CCSCAN ;再次扫描按键 JNZ GETKEY2 ;有键按下则跳置GETKEY2 JMP BEGIN ;否则跳回开始继续循环GETKEY2: MOV CH,0FEH MOV CL,00H ;设置当前检测的是第几列COLUM: MOV AL,CH ;选取一列,将X1X4中一个置0 MOV DX,MY8255_A OUT DX,AL

14、 MOV DX,MY8255_C ;读Y1Y4,用于判断是哪一行按键闭合 IN AL,DXL1: TEST AL,01H ;是否为第1行 JNZ L2 ;不是则继续判断 MOV AL,00H ;设置第1行第1列的对应的键值 JMP KCODEL2: TEST AL,02H ;是否为第2行 JNZ L3 ;不是则继续判断 MOV AL,04H ;设置第2行第1列的对应的键值 JMP KCODEL3: TEST AL,04H ;是否为第3行 JNZ L4 ;不是则继续判断 MOV AL,08H ;设置第3行第1列的对应的键值 JMP KCODEL4: TEST AL,08H ;是否为第4行 JNZ

15、 NEXT ;不是则继续判断 MOV AL,0CH ;设置第4行第1列的对应的键值KCODE: ADD AL,CL ;将第1列的值加上当前列数,确定按键值 CALL PUTBUF ;保存按键值 PUSH AXKON: CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键,判断按键是否弹起 JNZ KON ;未弹起则继续循环等待弹起 POP AXNEXT: INC CL ;当前检测的列数递增 MOV AL,CH TEST AL,08H ;检测是否扫描到第4列 JZ KERR ;是则跳回到开始处 ROL AL,1 ;没检测到第4列则准备检测下一列 MOV

16、CH,AL JMP COLUMKERR: JMP BEGINCCSCAN PROC NEAR ;扫描是否有按键闭合子程序 MOV AL,00H MOV DX,MY8255_A ;将4列全选通,X1X4置0 OUT DX,AL MOV DX,MY8255_C IN AL,DX ;读Y1Y4NOT AL AND AL,0FH ;取出Y1Y4的反值 RETCCSCAN ENDPCLEAR PROC NEAR ;清除数码管显示子程序 MOV DX,MY8255_B ;段位置0即可清除数码管显示 MOV AL,00H OUT DX,AL RETCLEAR ENDPDIS PROC NEAR ;显示键值子

17、程序 PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显示 MOV SI,3000H MOV DL,0F7H MOV AL,DLAGAIN: PUSH DX MOV DX,MY8255_A OUT DX,AL ;设置X1X4,选通一个数码管 MOV AL,SI ;取出缓冲区中存放键值 MOV BX,OFFSET DTABLE AND AX,00FFH ADD BX,AX MOV AL,BX ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_B OUT DX,AL ;写入数码管ADp CALL DALLY INC SI ;取下一个键值 POP DX MOV A

18、L,DL TEST AL,01H ;判断是否显示完? JZ OUT1 ;显示完,返回 ROR AL,1 MOV DL,AL JMP AGAIN ;未显示完,跳回继续OUT1: POP AX RETDIS ENDPPUTBUF PROC NEAR ;保存键值子程序 MOV SI,DI MOV SI,AL DEC DI CMP DI,2FFFH JNZ GOBACK MOV DI,3003HGOBACK: RETPUTBUF ENDPDALLY PROC NEAR ;软件延时子程序 PUSH CX MOV CX,00FFHD1: MOV AX,00FFHD2: DEC AX JNZ D2 LOOP

19、 D1 POP CX RETDALLY ENDPCODE ENDS END START6.5 模拟接口概述工业控制是微机应用的重要领域,或者说微机谋取应用已成为工业控制、自动化仪表离不开的重要手段。这主要是因为微机价格的降低。在工业控制中微机应用系统无外乎是将物理量(温度、湿度、压力、位移、速度、流量等)转换成模拟量,然后将模拟量转换成数字量,送微机系统处理,处理后再将数字量转换为模拟量输出。物理量转换为模拟量是由传感器完成。本章重介绍模/数转换和数/模转换。一、模拟通道1、模拟通道的结构一个典型的实时控制系统通常由模拟量输入通道、模拟量输出通道和微型计算机系统组成。其中,传感器、放大器、低通

20、滤波、多路开关、采样保持、A/D转换电路组成模拟量输入通道,D/A转换电路、模拟控制电路组成了模拟输出通道,如下图所示。(1)传感器:能够把非电物理量转换成电流或电压的器件。如热电耦能够把温度转换成几毫伏或几十毫伏的电信号。(2)量程放大器。通常A/D转换器的输入有以下几种电压等级:双极性(02.5)V、(05)V、(010)V,单极性为(05) V、(010)V、(020)V等。量程放大就是将传感器输出的信号放大或处理成与A/D转换器输入要求相适应的电压范围。(3)低通滤波器。由于传感器与现场信号相连接,处于恶劣工作环境,其输出叠加有干扰信号。因此信号处理包括低通滤波电路,以滤去干扰信号。(

21、4)多路转换开关。通常要监测或控制的模拟量往往不止一个,尤其是在数据采集系统中,需要采集的模拟量一般比较多,而且有不少模拟量是缓慢变化的信号。对于这类模拟信号的采集,为了降低成本,可以用多路模拟开关,使多个模拟信号共用一个A/D转换器轮流进行采样和转换。(5)采样保持电路。由于进行一次A/D转换需要一定的时间,如果A/D转换速度远大于模拟量输入信号的变化,那么模拟信号可以直接送入A/D转换器。如果信号变化较快,为了保证转换精度,需在A/D转换之间加一级采样保持电路,使模拟信号在转换期间保持不变。(6)A/D转换器。其作用是将模拟量转换成数字量。(7)D/A转换器。D/A是将微型计算机的处理结果

22、转换为模拟量输出。(8)模拟控制。作为控制用途的模拟输出一般都是经过直流驱动功放,来驱动直流伺服装置。这种装置可能是直流电机或其他装置,根据D/A转换器输出的模拟量的大小来控制电机的转速。实际上,在一个由计算机参与控制的系统中,计算机输出的控制信号可能是模拟量,但更多的是开关量。常用的功能开关接口器件及电路有:功率晶体管或达林顿电路组成的大功率开关驱动电路、继电器或功率型光电耦全器、集成驱动芯片、固态继电器等。2、采样保持电路采样保持器的工作原理如下图所示。当开关S闭合时,输入电压VIN对电容C充电。保持时,开关断开,电容电压可保持一段时间稳定。采样和保持两个状态的轮换由外部控制信号控制。3、

23、量化与编码所谓的量化妈将采样的信号经A/D转换成数字信号,其数字量通常是整数量,因此是将模拟量离散地分割成数字量。如下图。在量化过程中,对双极性的信号通常有3种编码表示方式:1 符号表示法。这种方法类似于原码表示法。2 偏移二进制数。最大量时为全1,最小量时为全03 补码表示法。二、模拟接口电路的性能指标1、D/A转换器的性能指标D/A转换器的主要性能指标可分为静态指标、动态指标、环境和工作条件指标3种。分辨率、精度、输出范围属于静态指标;建立时间、尖峰属于动态误差;环境和工作条件因素主要是指温度和电源电压的变化。分辨率输入数字的最低有效位LSB变化为1时所引起的输出模拟的变化,通常用数字量的

24、位数来表示。分辨率的另一种表示方法是输出模拟量的最小变化量相对输出模拟量满度值的百分比。当二进制的数字量为N位时,分辨率为1/2N或1/2N100%。精度D/A转换器的精度是指其模拟输出电平与理想的输出值之间所存在的最大偏差,也就是D/A转换器实际的转换特性曲线与理想的转换特性曲线之间的最大偏差。D/A转换器的精度有绝对精度和相对精度之分。绝对精度是指对应于给定的满刻度数字量,D/A转换器实际输出与理论值之间的误差。而相对精度是指在满刻度已校正的情况下,在整个量程范围内对应于任一数字量的模拟量输出与理论值之差。通常D/A转换器的精度都用相对精度来描述。相对精度常用百分数来表示,或用(LSB)的

25、几分之几来表示。在D/A转换器中,影响转换精度的主要误差因素有失调误差、增益误差、非线性误差和微分非线性误差。输出范围输出范围是指当D/A转换器的所有位全部由“0”变到“1”时所对应的输出电压值。建立时间指在规定的误差范围内输出信号幅度达到要求的时间。建立时间的长短不仅与转换器件本身的转换速率有关,还与数字量变化的大小有关。输入数字从全“0”到全“1”或从全“1”到全“0”时,建立时间最长,称为满量程变化的建立时间。一般手册上给出的都是满量程变化的建立时间。超高速100ns;较高速100ns1us;高速110us;中速10100us;低速100 us尖峰尖峰是输入数码发生变化时产生的瞬时误差.

26、尖峰的持续时间虽然很短,但幅值可能很大.在有些应用场合下,必须采取指施加以避免。环境及工作条件影响指标一般 情况下,影响D/A转换精度的主要环境和工作条件因素是是和电源电压的变化。D/A转换器的工作温度按产品等级分为军级、工业级和普通级,标准军级品可工作在-55+125,工业级工作温度为-25+85,普通级工作温度为0+70。多数器件其静态、动态指标都是在25的温度环境下测得的,环境温度对各项精度指标的影响用其温度系数来描述。温度系数是指在规定的范围内,温度每变化1,D/A转换器所引起的多种参数的变化量。D/A转换器受电源变化影响的指标为电源变化抑制比,这是用电源变化1V时所产生的输出误差相对

27、满量程的比值来描述的。2、A/D转换器的性能指标数/模转换接口一、D/A转换器与CPU的连接D/A转换器与CPU的连接时要考虑到D/A转换的具体特性。即要考虑D/A转换器的数字理位数是否与CPU的数据总线的位数一样;D/A转换器内部是否拥有数据锁存器.1、不带锁存器的8位D/A转换芯片的使用对于一个D/A转换部件来说,其输出是随输入端的数据的变化而变化。当D/A转换器没有锁存器时,必须配置锁存器.注意:锁存器应选择,当WR无效时锁存.2、不带锁存器的12位D/A转换芯片的使用二、D/A转换器应用举例DAC0832是8位的DA转换器,可以直接与常用微处理器相连,它采用CMOS工艺,20引脚的双列

28、直插式器件.DAC0832由3大部分组成:一个8位输入寄存器、一个8位DAC寄存器和一个8位D/A转换器.工作方式1 双缓冲方式:用于多路D/A同时进行转换的系统.ILE固定为+5V,每片的的片选信号与分时地将数据输入到每片的输入锁存器,将每片的和分别连在一起,作为公共控制信号.2 单缓冲方式:将和接地,使DAC寄存器处于直通状态.3 直通方式:将ILE接+5V,、都接地,DAC0832处于直通方式,该方式一般不与CPU直接相连,可通过8255与之相连接.用于同外设相连的引脚有:IOUT1:其值随DAC内容线性变化.IOUT2: IOUT1 +IOUT2=常数RFB:反馈电阻.VREF:参考电

29、压输入端,此端可接一个正电压,也可接负电压.范围为-10V+10V,此电压越稳定,模拟输出精度越高.AGND:模拟地DGND:数字地.VCC:电源电压,范围+5V+15V,以+15V时工作为最佳.应用举例:产生锯齿波. MOV DX,0E000H MOV AL,0 L1: OUT DX,AL INC AL JMP L16.3 模/数转换接口A/D转换器的品种比较多,目前使用较广泛的主要有三种类型:逐次逼近型、V/F转换型、和双积分型.双积分型电路简单,抗干扰能力强,但转换速度较慢;逐次逼近型易于用集成工艺实现,且具有较高的分辨率和转换速度.因此,目前市场上的A/D转换器采用逐次逼近型的较多.A

30、DC0809是逐次逼近型的8位A/D转换芯片.片内有8通道的多路选择器和3位地址锁存译码器.输出端具有三态输出锁存缓冲器,可以直接与CPU总线相连.结构框图如下所示.ADC0809是一个28引脚的双列直插式电路芯片,其引脚功能如下:IN0IN7:8路模拟输入端VREF+、VREF-:其准电压输入端,一般VREF+与主电源Vcc相连, VREF-与模拟地GND相连.ALE:地址锁存信号,当ALE为上升沿时,将ADDCADDA状态送入地址锁存器.START:转换启动信号,该信号的上升沿,将内部寄存器清0,下降沿开始A/D转换,在转换期间,该信号应保持低电平.EOC:转换结束信号.转换开始后,该信号变为低电平;经过64个时钟周期后转换结束,该信号变为高电平.可作为中断、DMA和查询信号.OE:输出允许信号,CLK:时钟输入信号,频率范围101280KHZ,典型值为640 KHZ,通常由CPU时钟经分频得到.0809的工作时序如下图所示.0809与

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1