第6章 输入输出.docx

上传人:b****2 文档编号:23505329 上传时间:2023-05-17 格式:DOCX 页数:28 大小:432.99KB
下载 相关 举报
第6章 输入输出.docx_第1页
第1页 / 共28页
第6章 输入输出.docx_第2页
第2页 / 共28页
第6章 输入输出.docx_第3页
第3页 / 共28页
第6章 输入输出.docx_第4页
第4页 / 共28页
第6章 输入输出.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

第6章 输入输出.docx

《第6章 输入输出.docx》由会员分享,可在线阅读,更多相关《第6章 输入输出.docx(28页珍藏版)》请在冰豆网上搜索。

第6章 输入输出.docx

第6章输入输出

第6章输入和输出

§6.1概述

输入和输出系统是计算机系统的重要组成部分之一,任何一台高性能计算机,如果没高质量的输入/输出系统与之配合工作,计算机的高性能便无法发挥出来。

输入/输出系统包括I/O接口、I/O设备、I/O管理部分与I/O有关的软件。

常见的输入/输出设备有:

键盘、CRT显示器、鼠标、打印机、扫描仪和外存储器等,在一些控制场合,还会用到模/数或数/模转换器、发光二极管等。

这些设备和装置的工作原理、信号形式、数据格式各异,为了把外设与CPU连接起来,必须有接口部件,以完成它们之间的速度匹配、信号匹配、和某些控制功能。

接口泛指任何两个部分之间的交接部分,或两个系统间的连接部分。

在计算机系统里,接口指微处理器与外部设备之间的连接通道及有关的控制电路。

端口指CPU可寻址的用于数据传送的口,通常一个接口有一个或几个端口。

一、I/O接口功能

1、数据缓冲和锁存功能

通常输出接口应有锁存功能,输入接口应有缓冲功能。

2、信号转换功能

如将模拟信号转换成数字信号、计算机的弱电信号转换成强电控制信号

3、数据格式变换功能

如将便于传输的串行数据转换成计算机能处理的并行数据。

4、接收和执行CPU命令的功能

当系统中外设比较多,有些操作功能可由接口电路完成。

二、CPU与I/O设备之间的接口信息

1、数据

数据量:

数据或以ASCII码表示的数或字符。

模拟量:

电压或电流。

开关量:

两种状态的量,如电机的运转与停止,开关的闭合与断开等。

2、状态信息

设备的状态,如:

输入设备是否准备好,输出设备是否空闲等。

3、控制信息

控制输入输出设备的启动或停止等信息。

§8.2I/O端口的编址及输入/输出方式

8.2.1端口的编址方式

I/O端口是指I/O接口中与CPU进行信息传送的口。

1、与存储器统一编址

采用存储器的控制选择信号,端口视为一个存储单元,无需专门的I/O指令,缺点是端口地址占用部分存储器地址空间。

2、独立编址

采用I/O专用控制选择信号,端口地址与存储器地址是独立的,使用专门的I/O指令。

8.2.2CPU与外设数据传送的方式

1、无条件传送

不考虑外设状态,直接进行I/O数据传送。

如数码管显示、开关量读取。

 

2、查询传送方式

在传送数据前,先查询外设状态,若外设准备好,则进行数据传送;否则等待。

在这种方式中,接口电路中必须有数据端口和状态端口。

例:

采用查询方式输入100个字节的数据存入数据段BUFFER开始的单元。

设数据端口地址为PORT1,状态端口地址为PORT2,D1=1时,外设准备好。

MOVSI,BUFFER

MOVCX,64H

AGAIN:

INAL,PORT2

TESTAL,02H

JZAGAIN

INAL,PORT1

MOV[SI],AL

INTSI

LOOPAGAIN

3、中断控制方式

当需要传送数据时,CPU首先启动外设,外设准备好后发出中断申请信号,若CPU响应,则转到中断服务子程序,进行数据传送,然后再返回到主程序继续执行。

 

4、直接存储器存取方式DMA

当外设需要数据传送,由外设通过DMA控制器向CPU发出总线请求信号HOLD,CPU响应后,让出总线控制,由DMA控制器控制完成外设到存储器的数据传送。

DMA的工作过程如下图所示。

DMA控制方式的主要优点是:

速度快,数据传送的速率只受存储器访问的限制.由于CPU不参与操作,因此省去了CPU取指令,指令译码、取数和送数等操作.主要缺点是:

硬件电路比较复杂.

DMA控制器的基本功能:

1.能接收外设的请求,向CPU发出DMA请求信号;

2.当CPU发出DMA响应信号之后,接管对总线的控制,进入DMA方式;

3.能寻存储器,即能输入地址并修改地址;

4.能向存储器和外设发出相应的读/写控制信号;

5.能控制传送的字节数,判断DMA传送是否结束;

6.在DMA传送结束后,能结束DMA请求信号,释放总线,使CPU恢复正常工作。

DMA传送方式

1.单字节方式:

每次DMA请求只传送一个字节;

2.成组方式:

每次DMA请求连续传送一个数据块;

6.4数字通道(数码显示和键盘)

常用的外围设备主要是用于人机交互的设备,如键盘、鼠标、显示器和打印机等,本章重点讲解LED显示器及接口和键盘及接口

6.4.1LED显示器及接口

七段LED显示器是一个很实用,同时也是很廉价的数字显示装置,常用于显示十进制或十六进制数,在单板微型机、袖珍计算机到微型机控制系统及数字化仪器中都用LED数码管做输出显示器。

一、LED显示的工作原理

七段LED显示器是由七段发光二极管组成,发光二极管是一种将电能转变为光能的半导体器件,每个LED的下向压降是恒定的,典型值为1.6V和2.4V。

下向导通时发光,发光时流过2~20mA的电流。

一般说来,外加正向电压愈高,电流愈大,发光愈强,但如果电压太高,电流太大,将会烧坏发光二极管。

因此,在使用时通常串入一限流电阻。

LED显示器有共阴极和共阳极两种结构。

如下图所示。

二、LED显示器接口方式

在一个LED显示器上只能显示一位十进制数或一位十六进制数,应将显示的数转换成相应的字型码,然后将字型码送到显示器接口。

转换成字型码的方法有两种:

一种方法是采用专用的LED七段译码器,实现硬件译码;另一种方法是软件译码,通常采用查表法。

LED显示接口连接方法有两种,静态显示方式和动态显示方式

1、LED静态显示方式

将位选线连接在一起,每位的段选线与一个8位并行口相连。

特点:

编程简单,占用资源多。

2、LED动态显示方式

将段选线并联在一起,位选线由相应的I/O线控制(或采用译码连接法)

特点:

占用资源少(只需2个端口),编程须采用不间断地扫描显示器方式,每位显示保持1~5ms的时间。

6.4.2键盘

在应用系统中,为了控制应用系统的工作状态,以及向系统输入数据,应用系统中应设有按键或键盘,如复位键、功能键以及数据输入用的数字键等。

键盘分为非编码式键盘和编码式键盘两种。

非编码式键盘一般以n×m个键排列成矩阵形式,通过软件扫描的方法识别按键动作,并用软件方法对被扫描到的按键进行编码处理。

编码式键盘则由硬件完成按键的识别和编码工作。

在应用系统中,为了控制应用系统的工作状态,以及向系统输入数据,应用系统中应设有按键或键盘。

如复位键、功能键以及数据输入用的数字键等。

一、软件应解决的任务

1、键状态的可靠输入

无论是按键或键盘在闭合及断开瞬间均有抖动,为了保证CPU对键的一次闭合,仅作一次键输入处理,必须去除抖动。

方法是在检测到有键按下时,执行一个5~10ms的延时程序,然后再确认该是否仍保持闭合状态,如保持闭合则确认为真正键按下状态,从而消除了抖动影响。

 

2、对按键进行编码或直接给出键号

编码的目的是为进行散转。

因此无论有无编码,以及采用什么编码,都要转换成与键相对应的数值,以实现按键功能程序的散转转移。

二、按键及键盘的接口方式

1、独立式按键

2、矩阵式键盘

键盘中有无按键按下是由行线送全扫描字、列线读入状态来判断的。

键盘中哪一个键按下是由行线逐行置低电平后,检查列输入状态来确定。

键盘扫描及显示实验

 

;Keyscan.asm

;键盘扫描及数码管显示实验

IOY0EQU9C00H;片选IOY0对应的端口始地址

MY8255_AEQUIOY0+00H*4;8255的A口地址

MY8255_BEQUIOY0+01H*4;8255的B口地址

MY8255_CEQUIOY0+02H*4;8255的C口地址

MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATASEGMENT

DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H

DATAENDS;键值表,0~F对应的7段数码管的段位值

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,3000H;建立缓冲区,存放要显示的键值

MOVAL,00H;先初始化键值为0

MOV[SI],AL

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOVDI,3003H

MOVDX,MY8255_MODE;初始化8255工作方式

MOVAL,81H;方式0,A口、B口输出,C口低4位输入

OUTDX,AL

BEGIN:

CALLDIS;显示刷新

CALLCLEAR;清屏

CALLCCSCAN;扫描按键

JNZGETKEY1;有键按下则跳置GETKEY1

MOVAH,1;判断PC键盘是否有按键按下

INT16H

JZBEGIN;无按键则跳回继续循环,有则退出

QUIT:

MOVAX,4C00H;返回到DOS

INT21H

GETKEY1:

CALLDIS;显示刷新

CALLDALLY

CALLDALLY

CALLCLEAR;清屏

CALLCCSCAN;再次扫描按键

JNZGETKEY2;有键按下则跳置GETKEY2

JMPBEGIN;否则跳回开始继续循环

GETKEY2:

MOVCH,0FEH

MOVCL,00H;设置当前检测的是第几列

COLUM:

MOVAL,CH;选取一列,将X1~X4中一个置0

MOVDX,MY8255_A

OUTDX,AL

MOVDX,MY8255_C;读Y1~Y4,用于判断是哪一行按键闭合

INAL,DX

L1:

TESTAL,01H;是否为第1行

JNZL2;不是则继续判断

MOVAL,00H;设置第1行第1列的对应的键值

JMPKCODE

L2:

TESTAL,02H;是否为第2行

JNZL3;不是则继续判断

MOVAL,04H;设置第2行第1列的对应的键值

JMPKCODE

L3:

TESTAL,04H;是否为第3行

JNZL4;不是则继续判断

MOVAL,08H;设置第3行第1列的对应的键值

JMPKCODE

L4:

TESTAL,08H;是否为第4行

JNZNEXT;不是则继续判断

MOVAL,0CH;设置第4行第1列的对应的键值

KCODE:

ADDAL,CL;将第1列的值加上当前列数,确定按键值

CALLPUTBUF;保存按键值

PUSHAX

KON:

CALLDIS;显示刷新

CALLCLEAR;清屏

CALLCCSCAN;扫描按键,判断按键是否弹起

JNZKON;未弹起则继续循环等待弹起

POPAX

NEXT:

INCCL;当前检测的列数递增

MOVAL,CH

TESTAL,08H;检测是否扫描到第4列

JZKERR;是则跳回到开始处

ROLAL,1;没检测到第4列则准备检测下一列

MOVCH,AL

JMPCOLUM

KERR:

JMPBEGIN

CCSCANPROCNEAR;扫描是否有按键闭合子程序

MOVAL,00H

MOVDX,MY8255_A;将4列全选通,X1~X4置0

OUTDX,AL

MOVDX,MY8255_C

INAL,DX;读Y1~Y4

NOTAL

ANDAL,0FH;取出Y1~Y4的反值

RET

CCSCANENDP

CLEARPROCNEAR;清除数码管显示子程序

MOVDX,MY8255_B;段位置0即可清除数码管显示

MOVAL,00H

OUTDX,AL

RET

CLEARENDP

DISPROCNEAR;显示键值子程序

PUSHAX;以缓冲区存放的键值为键值表偏移找到键值并显示

MOVSI,3000H

MOVDL,0F7H

MOVAL,DL

AGAIN:

PUSHDX

MOVDX,MY8255_A

OUTDX,AL;设置X1~X4,选通一个数码管

MOVAL,[SI];取出缓冲区中存放键值

MOVBX,OFFSETDTABLE

ANDAX,00FFH

ADDBX,AX

MOVAL,[BX];将键值作为偏移和键值基地址相加得到相应的键值

MOVDX,MY8255_B

OUTDX,AL;写入数码管A~Dp

CALLDALLY

INCSI;取下一个键值

POPDX

MOVAL,DL

TESTAL,01H;判断是否显示完?

JZOUT1;显示完,返回

RORAL,1

MOVDL,AL

JMPAGAIN;未显示完,跳回继续

OUT1:

POPAX

RET

DISENDP

PUTBUFPROCNEAR;保存键值子程序

MOVSI,DI

MOV[SI],AL

DECDI

CMPDI,2FFFH

JNZGOBACK

MOVDI,3003H

GOBACK:

RET

PUTBUFENDP

DALLYPROCNEAR;软件延时子程序

PUSHCX

MOVCX,00FFH

D1:

MOVAX,00FFH

D2:

DECAX

JNZD2

LOOPD1

POPCX

RET

DALLYENDP

CODEENDS

ENDSTART

 

§6.5模拟接口

概述

工业控制是微机应用的重要领域,或者说微机谋取应用已成为工业控制、自动化仪表离不开的重要手段。

这主要是因为微机价格的降低。

在工业控制中微机应用系统无外乎是将物理量(温度、湿度、压力、位移、速度、流量等)转换成模拟量,然后将模拟量转换成数字量,送微机系统处理,处理后再将数字量转换为模拟量输出。

物理量转换为模拟量是由传感器完成。

本章重介绍模/数转换和数/模转换。

一、模拟通道

1、模拟通道的结构

一个典型的实时控制系统通常由模拟量输入通道、模拟量输出通道和微型计算机系统组成。

其中,传感器、放大器、低通滤波、多路开关、采样保持、A/D转换电路组成模拟量输入通道,D/A转换电路、模拟控制电路组成了模拟输出通道,如下图所示。

 

(1)传感器:

能够把非电物理量转换成电流或电压的器件。

如热电耦能够把温度转换成几毫伏或几十毫伏的电信号。

(2)量程放大器。

通常A/D转换器的输入有以下几种电压等级:

双极性(0~±2.5)V、(0~±5)V、(0~±10)V,单极性为(0~5)V、(0~10)V、(0~20)V等。

量程放大就是将传感器输出的信号放大或处理成与A/D转换器输入要求相适应的电压范围。

(3)低通滤波器。

由于传感器与现场信号相连接,处于恶劣工作环境,其输出叠加有干扰信号。

因此信号处理包括低通滤波电路,以滤去干扰信号。

(4)多路转换开关。

通常要监测或控制的模拟量往往不止一个,尤其是在数据采集系统中,需要采集的模拟量一般比较多,而且有不少模拟量是缓慢变化的信号。

对于这类模拟信号的采集,为了降低成本,可以用多路模拟开关,使多个模拟信号共用一个A/D转换器轮流进行采样和转换。

(5)采样保持电路。

由于进行一次A/D转换需要一定的时间,如果A/D转换速度远大于模拟量输入信号的变化,那么模拟信号可以直接送入A/D转换器。

如果信号变化较快,为了保证转换精度,需在A/D转换之间加一级采样保持电路,使模拟信号在转换期间保持不变。

(6)A/D转换器。

其作用是将模拟量转换成数字量。

(7)D/A转换器。

D/A是将微型计算机的处理结果转换为模拟量输出。

(8)模拟控制。

作为控制用途的模拟输出一般都是经过直流驱动功放,来驱动直流伺服装置。

这种装置可能是直流电机或其他装置,根据D/A转换器输出的模拟量的大小来控制电机的转速。

实际上,在一个由计算机参与控制的系统中,计算机输出的控制信号可能是模拟量,但更多的是开关量。

常用的功能开关接口器件及电路有:

功率晶体管或达林顿电路组成的大功率开关驱动电路、继电器或功率型光电耦全器、集成驱动芯片、固态继电器等。

2、采样保持电路

采样保持器的工作原理如下图所示。

当开关S闭合时,输入电压VIN对电容C充电。

保持时,开关断开,电容电压可保持一段时间稳定。

采样和保持两个状态的轮换由外部控制信号控制。

3、量化与编码

所谓的量化妈将采样的信号经A/D转换成数字信号,其数字量通常是整数量,因此是将模拟量离散地分割成数字量。

如下图。

在量化过程中,对双极性的信号通常有3种编码表示方式:

1符号表示法。

这种方法类似于原码表示法。

2偏移二进制数。

最大量时为全1,最小量时为全0

3补码表示法。

二、模拟接口电路的性能指标

1、D/A转换器的性能指标

D/A转换器的主要性能指标可分为静态指标、动态指标、环境和工作条件指标3种。

分辨率、精度、输出范围属于静态指标;建立时间、尖峰属于动态误差;环境和工作条件因素主要是指温度和电源电压的变化。

⑴分辨率

输入数字的最低有效位LSB变化为1时所引起的输出模拟的变化,通常用数字量的位数来表示。

分辨率的另一种表示方法是输出模拟量的最小变化量相对输出模拟量满度值的百分比。

当二进制的数字量为N位时,分辨率为1/2N或1/2N×100%。

⑵精度

D/A转换器的精度是指其模拟输出电平与理想的输出值之间所存在的最大偏差,也就是D/A转换器实际的转换特性曲线与理想的转换特性曲线之间的最大偏差。

D/A转换器的精度有绝对精度和相对精度之分。

绝对精度是指对应于给定的满刻度数字量,D/A转换器实际输出与理论值之间的误差。

而相对精度是指在满刻度已校正的情况下,在整个量程范围内对应于任一数字量的模拟量输出与理论值之差。

通常D/A转换器的精度都用相对精度来描述。

相对精度常用百分数来表示,或用(LSB)的几分之几来表示。

在D/A转换器中,影响转换精度的主要误差因素有失调误差、增益误差、非线性误差和微分非线性误差。

⑶输出范围

输出范围是指当D/A转换器的所有位全部由“0”变到“1”时所对应的输出电压值。

⑷建立时间

指在规定的误差范围内输出信号幅度达到要求的时间。

建立时间的长短不仅与转换器件本身的转换速率有关,还与数字量变化的大小有关。

输入数字从全“0”到全“1”或从全“1”到全“0”时,建立时间最长,称为满量程变化的建立时间。

一般手册上给出的都是满量程变化的建立时间。

超高速∠100ns;较高速100ns~1us;高速1~10us;中速10~100us;低速>100us

⑸尖峰

尖峰是输入数码发生变化时产生的瞬时误差.尖峰的持续时间虽然很短,但幅值可能很大.在有些应用场合下,必须采取指施加以避免。

⑹环境及工作条件影响指标

一般情况下,影响D/A转换精度的主要环境和工作条件因素是是和电源电压的变化。

D/A转换器的工作温度按产品等级分为军级、工业级和普通级,标准军级品可工作在-55~+125℃,工业级工作温度为-25~+85℃,普通级工作温度为0~+70℃。

多数器件其静态、动态指标都是在25℃的温度环境下测得的,环境温度对各项精度指标的影响用其温度系数来描述。

温度系数是指在规定的范围内,温度每变化1℃,D/A转换器所引起的多种参数的变化量。

D/A转换器受电源变化影响的指标为电源变化抑制比,这是用电源变化1V时所产生的输出误差相对满量程的比值来描述的。

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引脚的双列直插式器件.

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:

参考电压输入端,此端可接一个正电压,也可接负电压.范围为-10V~+10V,此电压越稳定,模拟输出精度越高.

AGND:

模拟地

DGND:

数字地.

VCC:

电源电压,范围+5V~+15V,以+15V时工作为最佳.

应用举例:

产生锯齿波.

MOVDX,0E000H

MOVAL,0

L1:

OUTDX,AL

INCAL

JMPL1

§6.3模/数转换接口

A/D转换器的品种比较多,目前使用较广泛的主要有三种类型:

逐次逼近型、V/F转换型、和双积分型.

双积分型电路简单,抗干扰能力强,但转换速度较慢;逐次逼近型易于用集成工艺实现,且具有较高的分辨率和转换速度.因此,目前市场上的A/D转换器采用逐次逼近型的较多.

ADC0809是逐次逼近型的8位A/D转换芯片.片内有8通道的多路选择器和3位地址锁存译码器.输出端具有三态输出锁存缓冲器,可以直接与CPU总线相连.结构框图如下所示.

ADC0809是一个28引脚的双列直插式电路芯片,其引脚功能如下:

IN0~IN7:

8路模拟输入端

VREF+、VREF-:

其准电压输入端,一般VREF+与主电源Vcc相连,VREF-与模拟地GND相连.

ALE:

地址锁存信号,当ALE为上升沿时,将ADDC~ADDA状态送入地址锁存器.

START:

转换启动信号,该信号的上升沿,将内部寄存器清0,下降沿开始A/D转换,在转换期间,该信号应保持低电平.

EOC:

转换结束信号.转换开始后,该信号变为低电平;经过64个时钟周期后转换结束,该信号变为高电平.可作为中断、DMA和查询信号.

OE:

输出允许信号,

CLK:

时钟输入信号,频率范围10~1280KHZ,典型值为640KHZ,通常由CPU时钟经分频得到.

0809的工作时序如下图所示.

 

0809与

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

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

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