版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、9.1 概述概述 并行输入/输出就是在计算机中把一个字符的几个位同时进行传输,它具有传输速度快、效率高的优点。由于并行通信所采用的电缆较多,不太适合长距离传输。所以,并行通信通常用在数据传输率要求较高、而传输的距离相对较短的场合。 实现并行输入/输出的接口就是并行接口。通常,一个并行接口可设计为输出接口,例如连接一台打印机;也可设计为输入接口,例如连接键盘;还可设计成双向通讯接口,既可作为输入接口又可作为输出接口,例如连接像磁盘驱动器这样的需要双向通路的设备。 图9-1是典型的并行接口和外设连接的示意图。从图中可以看到,并行接口左边是与CPU连接的总线,右边用一个通道和输入设备相连,另一个通道
2、和输出设备相连,输入和输出都有独立的信号交换联络控制线。在并行接口内部用控制寄存器来寄存CPU对它的控制命令,用状态寄存器来提供各种工作状态供CPU查询,此外,还有供输出和输入数据用的输出数据锁存器和输入数据缓冲器。 控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器数据总线读出信号写入信号复位准备好中断请求地址译码CPU输入设备数据输入准备好数据输入回答数据输入输出设备数据输出数据输出准备好数据输出回答图91 并行接口与外设连接示意图 并行接口的基本工作原理分析如下:(1)数据的输入过程 当外设把数据送到数据输入线上时,通过“数据输入准备好”状态线通知接口取数。接口在把数据锁存到输入缓冲器的同
3、时,把数据输入回答线置“1”,用来通知外设,接口的数据输入缓冲器“满”,禁止外设再送数据。同时把内部状态寄存器中“输入准备好”状态位置“1”,以便CPU对其进行查询或向CPU申请中断。在CPU读取接口中的数据后,接口将自动清除“输入准备好”状态位和“数据输入回答”信号,以便外设输入下一个数据。 (2)数据的输出过程 当数据输出缓冲器“空闲”时,接口中“输出准备好”状态位置“1”。在接收到CPU的数据后,“输出准备好”状态位复位。数据通过输出线送到外设,同时,由“数据输出准备好”信号线通知外设取数据。当外设接收一个数据时, 回送一个“数据输出回答”信号,通知接口准备下一次输出数据。 接口将撤消“
4、数据输出准备好”信号并且再一次置“输出准备好”状态位为“1”,以便CPU输出下一个数据。 9.2 可编程并行接口芯片可编程并行接口芯片8255A 8255A是Intel公司生产的通用可编程并行接口芯片,它有3个8位并行输入/输出端口,即A口、B口和C口,可利用编程方法来设置这3个端口是作为输入端口还是作为输出端口;有3种工作方式,分别为方式0、方式1、方式2;有3种数据传送方式,分别为无条件传递方式、查询式传递方式和中断传送方式。8255A芯片的另一个特点是对端口C的操作,C口既可作为数据口也可作为控制口。当C 口作为数据口时,可以输出8位数据或分别作为两个4位数据口输出,此外,还可对端口C的
5、每位进行操作,比如设置某一位为输入或输出,这样可以为位控方式提供了便利条件。 9.2.1 8255A内部结构及引脚特性内部结构及引脚特性1. 8255A内部结构 8255A芯片的内部结构如图9-2 所示,它包括4个部分:数据总线缓冲器;读写控制逻辑;A组和B组控制电路;端口A、B、C。 端口A数据缓冲器读/写控制逻辑端口C上半部端口C下半部端口BA组控制器B组控制器D0-D7RDWR0A1ARESETCSPA0-PA7PC4-PC7PC0-PC3PB0-PB7内部数据总线图9-2 8255A芯片的内部结构 2. 8255A引脚特性及其与外部的连接 8255A并行接口芯片有40条引脚,如图9-3
6、所示。这40条引脚可分为与外设连接和与CPU连接两类引脚。 123456789101112131415161718192031302928272625242322214039383736353433328255RD3PA2PA1PA0PAWRCSGND0A1A7PC6PC7PB6PB5PB4PB3PB2PB1PB0PB0PC1PC2PC3PC4PC5PC5D4DVCCRESET1D6D2D7PA5PA6PA3D7D0D4PA 图9-3 8255引脚图 9.2.2 8255A的工作方式的工作方式 一. 8255A控制字 8255A是可编程接口芯片,所谓可编程就是用指令的方法先对该芯片进行初始化,
7、决定芯片的端口是处于输入数据状态还是处于输出数据状态,以及每个端口工作在何种方式下。工作方式和工作状态的建立是向8255A的控制口写入相应的控制字来完成的。 8255A共有两个控制字,即工作方式控制字和相对C口进行置位或复位的控制字。 1.工作方式控制字 8255A的工作方式控制字格式和各位的含义如图9-4所示。工作方式控制字用来设定A、B 口和C口的数据传送方向是输入还是输出,设定各口的工作方式是3种方式的哪一种。如前所述,8255A的3种工作方式分别是方式0、方式l和方式2。A口可以工作在3种方式中的任何种,B口只能用于前两种工作方式,C口只能工作在方式0。 图9-4 工作方式控制字格式
8、2. 端口C的置位/复位控制字v端口C的数位常常作为控制位使用,可用置1置0指令单独设置.v端口C的置位/复位控制字可实现对端口C的每一位进行控制。置位是使该位输出为“1”,复位是使该位输出为“0”。 图9-5 端口C的置位/复位控制字格式 说明:v C口置1置0控制字尽管对C口操作,但要写入控制口地址。 例: OUT PORTCONTROL, ALv置1置0控制字D0位决定了置1还是置0,D00则置0,1置1 v 置1置0控制字的D3、D2、D1位决定了对C口中哪一位进行操作v置1置0控制字的D6、D5、D4位不影响此操作,但D70。 例:置PC7=1、PC3=0,操作如下:vMOVAL,0
9、FH对PC7置1的控制字0 000 111 1vMOVDX,002EH;控制口地址送DXvOUTDX,AL ;对PC7进行置1操作vMOVAL,06H;对PC3置0的控制字0000 011 0vOUTDX,AL ;对PC3进行置0操作 二. 8255A工作方式 8255A的3种工作方式分别讨论如下: 1. 方式0:基本输入/输出方式 方式0是一种基本输入/输出方式,它不需要应答式的联络信号,不使用中断,有两个8位端口(A口和B口)和两个4位端口(C口的上半部和C口的下半部),任何一个端口都可以作为输入或输出端口。输出数据可被锁存,输入数据不锁存。各端口的输入/输出方向可有16种不同的组合。 v
10、方式0的工作特点 方式0也叫基本输入输出方式,端口C还可分成两个4位口,4个口分别输入输出,16种组合。v方式0的输入输出时序v方式0的输入时序: 要求CPU在发出读信号前,先发出地址信号,使CS A1 A0有效启动8255 CPU发出读信号前,外设已将数据送到8255的输入缓冲器中. 8255在读信号有效后经过tRD时间,可使数据在数据总线上得到稳定,不过有3个要求 : 在整个读出期间,地址信号保持有效 输入数据必须保持到读信号消失后才消失 要求读脉冲的宽度至少为300nsv总结:方式0不常用,无应答信号,太不牢靠了。 图9.6 方式0输入时序(也较简单) 图9.7 方式0输入v方式0的输出
11、时序: 地址信号必须在写信号前tAW时间 写脉冲宽度至少要有400ns 数据必须在写信号结束前tDW时间就能出现在数据总线上,且保持tWD时间v方式0的使用场合 方式0的使用场合有两种,一种是同步传送,一种是查询式传送。 v同步传送时,发送方和接收方的动作由一个时序信号来管理,所以双方知道对方的动作,不需要应答动作,即CPU不需要查询外设状态。v查询式传送时,需要有应答信号。但是方式0没有固定的应答信号,此时,可将A口和B口作为数据口,可以指定C口的高或低4位作为输出口,输出一些控制信号;另外4位作为输入口,读入外设的状态。 2. 方式1:选通输入/输出方式 在这种工作方式下,端口A和端口B为
12、数据传输口,可通过工作方式控制字设定为数据输入或数据输出。端口C的某些位作为控制端口,配合A口和B口进行数据的输入和输出。方式1通常用于查询方式或中断方式传送数据。 v也叫选通的输入输出方式,A或B口输入输出时,必须用C口提供的选通信号和应答信号,且应答含义固定。v(1)、方式1的工作特点:v A、B口均可工作于方式1,可输入可输出。v A或B口方式1时,需C口3为配合其工作,其余位仍可输入输出。v如A、B口均工作于方式1,需C口6位配合他们工作,余下2位输入输出 v方式1输入情况下有关信号的规定和输入时序v当A口方式1时,PC3作为中断请求信号输出端INTRAv PC4作为选通信号输入端ST
13、BA,v PC5作为输入缓冲器满信号输出IBFAv当B口方式1时,PC0作为中断请求信号输出端INTRBv PC1作为输入缓冲器满信号输出IBFBv PC2作为选通信号输入端STBB, v这些数位和信号之间的对应关系随工作方式自动而定,不需程序员干预;且一旦确定了某个端口工作于方式1,程序员也就无法改变端口C的位与信号之间的对应关系,除非重新设置方式选择控制字。v当A、B口均工作在方式1时,C口6位都被定义配合工作,PC6、PC7还未用,可作为输入输出用。v图9.8是A、B均工作于方式1输入时,各控制信号示意图 v各控制信号说明如下:v STB(strobe)外设发出的选通信号输入8255,外
14、设将数据送到8255缓冲器v IBF(Input buffer full):缓冲器满信号,供CPU查询,由STB置位,RD上升沿复位v INTR:8255送往CPU的中断请求,在STB和IBF均为高时被置1 RD下降沿复位 vINTE:中断允许(屏蔽)信号,无引出端,由C口置1置0 v控制,PC41则A口允许中断,PC21则B口允许中断 图9.9 是方式1的输入时序 方式1输出情况下有关信号和输出时序vA口方式1输出时,PC7作为输出缓冲器满信号OBFA输出端vPC6作为外设接收数据后的响应信号ACKAvPC3作为中断请求信号输出端INTRA vB口方式1输出时,PC1作为输出缓冲器满信号OB
15、FB输出端v PC2作为外设接收数据后的响应信号ACKBv PC0作为中断请求信号输出端INTRBv含义也固定,A、B均为方式1输出时,C口仅剩PC4、PC5输入输出v由D3位决定。 图9.10为方式1输出时控制信号和状态信号 各控制信号说明如下:vOBF输出缓冲器满 8255送往外设,通知外设取走数据.由WR上升沿置”0”,ACK使其恢复”1” vACK(acknowledge):外设响应信号 外设送8255,表明CPU通过8255输出的数据已送到外设。vINTR(Interrupt request):中断请求信号v当外设取走数据,ACK有效后,8255向CPU发新的中断请求 vINTE(I
16、nterrupt enable):中断允许信号v为“1”时端口处于中断允许状态,由软件设置,PC6=1则INTEA1 PC2=1则INTEB1 图9.11是方式1的输出时序 v工作在方式1的端口一般采用中断方式与CPU联系。 v方式1的使用场合(比方式0有效)v在方式1下,规定一个端口作为输入或输出端口的同时,自动规定了有关的控制信号和状态信号,适合能提供应答信号的外设进行中断式传输。 3 方式2:双向选通输入/输出方式 只有A口可以采用这种工作方式。在这种方式下,可以使外部设备利用端口A的8位数据线与CPU之间分时进行双向数据传送,也就是说,可在单的8位数据线上既输出数据给外部设备,也从外部
17、设备输入数据。输入或输出的数据都是锁存的。工作时既可采用查询方式,也可采用中断方式传输数据。 v3、方式2 v方式2的工作特点 方式2也叫双向传输方式,这种方式只适合于A口。C口5位配合A口工作 当端口A工作在方式2时,使用PC3PC7作为控制和状态信息,也就是把方式1输入数据和方式1输出数据的控制信号组合起来。端口B可工作在方式0或方式1,如果工作在方式1,可利用PC0PC2作为控制和状态信号。图9.12方式2的控制字和有关信号 方式2工作时的控制信号和状态信号 v INTRA:中断请求,无论输入输出,一个动作完成时8255向CPU发这一请求v STBA:外设送8255的选通信号,此信号将外
18、设送8255的数据打入锁存器vIBFA:8255送往CPU的状态信息,通知CPU取数,IBF可供CPU查询。 v OBFA:输出缓冲器满,8255通知外设取数。v ACKA:外设对 OBFA的响应信号,开启输出缓冲器,送出数据,否则高阻。v INTE 1:中断允许信号, 1时允许8255由INTR往CPU发中断请求信号,请求CPU向A口输出数据。PC6=INTE1v INTE2:中断允许信号,1时A口输入中断允许状态,PC4=INTE1v方式2的时序相当于方式1的输入和输出时序的组合。v对于输出过程,CPU响应中断,过程v对于输入过程, 见图上v方式2的使用场合v方式2也叫双向传输方式,若某外
19、设既可输入又可输出,如磁盘驱动器可连A口 9.2.3 8255A的编程的编程 8255A工作时首先要初始化,即要写入控制字,来指定其工作方式,接着还要用控制字将中断标志INTE置“1”或置“0”,这样就可以编程将数据从数据总线通过8255A送出,或由外设通过8255A的某口将数据送至数据总线,由CPU接收。 通过下面的几个例子来说明如何对8255A进行编程。 【例】 假设在一个系统中,要求8255A工作在方式0。且A口作为输入,B口、C口作为输出。控制字和连接电路图如图9-13所示。 地址译码器7PA7PC0PCCS1A0AWRRD0D7D0PA82559A2A0A1A0D7DIOWIOR7P
20、B0PB1 0 0 1 0 0 0 0D7D6D5D4D3D2D1D0D7=1:方式标志位有效D6,D5=00:A口方式0D4=1:A口输入D3=0:C口高四位输出D2=0:B口方式0D1=0:B口输出D0=0:C口低四位输出 图9-13 A口、B口、C口工作在方式0 设片选信号设片选信号CS由由A9A2决定,设为决定,设为10111100B,当,当A1A011时,时,控制字地址为控制字地址为2F3E,其工作程序如下:,其工作程序如下:MOV AL,90 ;方式方式0,A口输入,口输入,B、C口输出口输出MOV DX,2F3H ; 控制寄存器地址控制寄存器地址DXOUT DX,AL ;控制字送
21、控制寄存器控制字送控制寄存器MOV DX,2F0H ; A口地址送口地址送DXIN AL,DX ;从从A口读入数据口读入数据MOV DX,2F1H ; B口地址送口地址送DXMOV AL,DATA1 ;要输出的数据要输出的数据DATA1送送ALOUT DX,AL ; 将输出的数据将输出的数据DATA1送送B口口MOV DX,2F2H ; C口地址送口地址送DXMOV AL,DATA2 ; 要输出的数据要输出的数据DATA2送送ALOUT DX,AL ; 将将DATA2送送C口输出口输出 【例】 假设在一个系统中,8255A工作在方式1,A口输入,B口输出,PC4、PC5为输入,禁止B口中断,其
22、控制字和连接电路图如9-14所示。设控制字地址为2F3H,其初始化程序如下:MOV AL,0AEH ; A口输出,B口输入MOV DX,2F3H ; 控制寄存器地址DXOUT DX,AL ; 控制字送控制寄存器MOV DX,09H ; A口的INTE(PC4置1)OUT DX,AL ; 控制字送控制寄存器MOV AL,04HH ; B口的INTE(PC2置1)OUT DX,AL ; 控制字送控制寄存器地 址译 码器CS1A0AW RRD0D7DB口82559A2A0A1A0D7DIOWIORPC21 0 1 0 1 1 1 XD7D6D5D4D3D2D1D0D7=1: 方 式 标 志 位 有
23、效D6,D5=00: A口 方 式 1D4=0: A口 输 出D3=1: C口 高 四 位 输 入D2=1: B口 方 式 1D1=1: B口 输 入D0=0: C口 低 四 位 任 意D7-D0PC1A口PC7PC6PC4PC5外 部 设 备STBBIBFBOBFAACKAI/O控 制 字 图9-14 A口、B口、C口工作在方式1 9.3 8255A的应用 并行接口芯片在微型计算机与外部设备的通信中是经常用到的,下面我们分析8255A与打印机及两台微机之间并行传送数据的应用实例。 9.3.1 8255A与打印机接口 打印机可以打印计算机送来的ASCII码字符,由于ASCII码字符为8位,因此
24、,我们可以用8255A来作打印机的接口。 【例】打印机工作时序如图9-15所示。用8255A设计打印机的接口电路和程序。STROBE0D7DACKBUSY图9-15 打印机工作时序 工作原理分析:数据接口将数据传送到打印机的数据端口,利用一个负脉冲启动锁存,然后由打印机处理。同时打印机送出高电平信号BUSY,表示打印机忙于打印。一旦BUSY变为低电平,表示打印结束,即可接收下一数据。可以利用8255A工作方式0实现上述打印控制。 硬件连接如图9-16所示,8255A的地址线A1、A0与计算机的A1、A0连接,片选信号由74LS138译码器产生。 根据连线可知8255A的A口、B口、C口及控制口
25、的地址为:1CH、1DH、1EH、1FH。 7PA0D7DSTBBUSY7PC0PCCS1A0AWRRD0D7D0PA8255138LS740Y7A6A5A0A1A0D7DIOWIOR打印机图9-16 8255与打印机接口电路 接口的程序编制如下:接口的程序编制如下: MOV AL,81H ;控制字,方式;控制字,方式0,A、B、C口(口( 高高4位)位)输出输出 ;C口低口低4位输入位输入 OUT 1FH,AL ;送控制字;送控制字WAITING:IN AL,1EH;读;读C口口TEST AL,01H ;测试;测试PC0是是1否?否?JNZWAITING ;是;是1,打印机忙,等待,打印机忙
26、,等待 MOV AL,BL;是;是0,送数据至打印机,送数据至打印机OUT1CH,AL ;MOVAL,0FH ;OUT1EH,AL ;置;置C口高口高4位和低位和低4位为位为1MOVAL,0F0H;OUT1EH,AL;例:8255A工作于方式1,作为用中断方式工作的Centronic 360字符打印机的接口,如图所示 v口地址: A:0C0H B:0C2H C:0C4H D:0C6Hv要用中断方式,置1置0使INTE=1v主程序段: MAIN: MOV AL,0A0H;1 01 0 000 0B OUT 0C6H,AL;8255控制字 MOV AL,01;PC0=1,选通无效 0 000 00
27、0 1B OUT 0C6H,AL XOR AX,AX MOV DS,AX ;设置中断向量1000H:2000H至2CH,2DH MOV AX,2000H MOV WORD PTR02CH,AX MOV AX,1000H MOV WORD PTR02EH,AX MOV AL,0DH;允许8255中断0 000 110 1B OUT 0C6H,AL STI v中断子程序必须装在1000:2000处,中断子程序如下:vINTRUPT:MOV AL,DI;送字符 OUT 0C0H,AL MOV AL,00 ; PC0=0 0 000 000 0B OUT 0C6H,AL INC AL OUT 0C6H
28、,AL : ;后续处理 IRET 9.3.2 双机并行通信双机并行通信1. 查询方式的双机并行通信【例】假设甲乙两台微机之间并行传送1KB数据。甲机发送,乙机接收。甲机的8255A采用方式1工作,乙机的8255A采用方式0工作。两台微机的CPU与接口之间都采用查询方式交换数据。(1)接口电路的设计 接口电路的连接如图9-17所示。甲机的8255A是方式1发送,乙机的8255A是方式0接收数据,另外,选用引脚PC7和PC3作为联络线。差别:甲机的8255A是方式1,其联络线是固定的,不可替换;乙机的8255A是方式0,其联络线是不固定的,可以选择。例如,可选择PC4和PC1或PC5和PC2等任意
29、组合。 8255APA7PA0PC7PC38255APA7PA0PC7PC6ACKOBF甲(发送)CPU乙(接收)CPU方式0方式0 图9-17 查询方式的双机通信 (2)接口程序设计接口驱动程序包括发送程序和接收程序。甲机发送的程序段如下:MOV DX,303H ; 8255A命令端口MOV AL,l010000B ; 初始化工作方式字OUT DX,AL MOV AL,0DH ;置发送允许INTEA=1OUT DX,ALMOV SI,OFFSET BUFS ; 设置发送数据区的指针OUT CX,3FFH ; 发送字节数MOV DX,300H ; 向端口A写第1个数,产生第1个信号 MOV A
30、L,SI ; 送给乙机,以便获取乙机的信号OUT DX,ALINC SI ; 内存地址加1DEC CX ; 传送字节数减1 LOP:MOV DX,302H ; 8255A状态端口(端口C)IN AL,DX ; 查发送中断请求INTRSA1AND AL,08H ; 是否PC3lJZ LOP ; 若无中断请求则等待;若有向端口A写数MOV DX,300H ; 8255A端口PA地址MOV AL,SI ; 从内存取数OUT DX,AL ; 通过端口A向乙机发送第2个数据INC SI ; 内存地址加1DEC CX ; 字节数减1JNZ LOP ; 字节未完,继续MOV AH,4CH ; 己完,退出IN
31、T 21H ;返回DOSBUFS DB ; 定义1024个数据 乙机接收的程序段如下:MOV DX,303H ; 8255A命令端口MOV AL,l0011000B ; 初始化工作方式字OUT DX,ALMOV AL,00000111B ; PC31OUT DX,ALMOV DI,OFFSETBUFR ; 设置接收数据区的指针MOV CX,3FFH ; 接收字节数L1: MOV DX,302H ; 8255A端口PCIN AL,DX ; 查甲机的=0?(乙机的PC70)AND AL,80H ; 查甲机是否有数据发来JNZ L1 ; 若无数据发来,则等待;若有数据,则从端口A读数MOV DX,3
32、00H ; 8255A端口PA地址IN AL,DX ; 从端口A读入数据 MOV DI,AL ; 存入内存MOV DX,303H ; 产生信号,并发回给甲机MOV DX,00000110B ; P3置“0”OUT DX,ALINC DI ; 内存地址加1DEC CX ; 字节数减1JNZ L1 ; 字节未完,则继续MOV AX,4C00H ; 己完,退出INT 21H ; 返回DOSBUFR DB l024 DUP(?)2. 中断方式的双机并行通信【例】给定主从两个微机进行并行传送,共传送255个字节。主机的8255A采用方式2,并以中断方式传送数据。从机的8255A采用方式0,以查询方式传送
33、数据。(1)接口电路设计接口电路中使用中断控制器8259A,利用IBM PC的中断系统将8255A的中断请求线INTR接到系统总线的IRQ2上。由于在方式2下输入中断请求和输出中断请求共用一条线,因此,需要在中断服务程序中用读取状态字的办法查询IBF和OBF状态位来决定执行输入还是输出操作。接口电路的连接如图9-18所示。主机的8255A的端口PA双向传送,既输出又输入。它的中断请求线接到8259A的IR2上。从机的8255A的端口PA和端口PB是单向传送,分别作为输出和输入。 8255APA0PA7PC7PC48255APC6PC5PB0PB7PC0PC2PA0PA7PC1PC7PC6PC0
34、PB0PB7PC2PC5OBFSTBACKIBF从机IR0IR2IR7PC38259AINTAINT主机INTRINTA系统总线 图9-18 中断方式的双机并行通信 8255A初始化及主程序:MOV DX,303H ;8255A控制端口MOV AL,0C0H ; 方式字:端口A为2方式OUT DX,AL MOV AL,09H ; 置位PC4,设置INTE21,输入中断允许OUT DX,ALMOV AL,0DH ; 置位PC6,设置INTE11,输入中断允许OUT DX,ALMOV SI,300H ; 发送数据块首址MOV DI,410H ; 接收数据块首址MOV CX,0FFH ; 发送与接收
35、字节数为255AGAIN: STI ;开中断HTL ; 等持中断DEC CX ; 字节数减1JNZ AGAIN ; 未完,继续MOV AX,4C00HINT 21H ; 返回DOS 中断服务程序: T_R PROC FAR ; 中断服务程序入口ASSUME CS:CODE,DS:DATA,SS:STACKPUSH AX ; 保存现场PUSH DX PUSH DIPUSH SIMOV DX,303H ;8255A控制端口MOV AL,08H ; 复位PC4,设置INTE20,输入中断允许OUT DX,AL MOV AL,0CH ;复位PC6,设置INTE11,输入中断允许OUT DX,ALCLI
36、 ; 关中断MOV DX,302H ;8255A状态端口IN AL ,DX ; 查中断源,读状态字 MOV AH,AL ; 保存状态字 AND AL,20H ; 状态位IBF1,是输入中断 JZ OUTP ; 不是,则跳输出程序OUTPINP:MOV DX,303H ; 是,则从端口A读数 IN AL ,DX MOV DI,AL ; 存入内存区 INC DI ; 接收数据块内存地址加1 DEC CXOUTP:MOV DX,303H ; 向端口A写数 MOV AL,SI ; 从内存取数 OUT DX,AL ; 输出 INC SI ; 发送数据块内存地址加1 DEC CX RETURN:MOV D
37、X,303H ; 8255A控制端口 MOV AL,0DH ; 允许输出中断OUT DX,ALMOV AL,09H ; 允许输入中断OUT DX,AL MOV AL,62H ; OCW2,中断结束OUT 20H,ALPOP SI POP DIPOP DX POP AXSTIIRET ; 中断返回T_R ENDP9.4 键盘v对于廉价小系统,如以单板机为基础的仪器,常用键盘和LED显示实现输入输出。数据、内存地址、命令、指令等。LED(light emitting diode)v一、键盘设计v键盘的基本工作原理 图9.19最简单的键盘结构图9.207键盘的矩阵式结构 v矩阵式键盘工作时,就是按照
38、读入行线和列线上的电平来识别闭合键。v二、键的识别v为了识别键盘上的闭合键,通常采用两种方法:行扫描法和行反转法。v1、 行扫描法的原理v行扫描法识别闭合键的原理如下:先使0行接地,其余行为高电平,再看第0行有无闭合键,如没有一条列线为低电平,说明0行没有键闭合。再1行接地 实际中,一般先快速检查键盘中是否有某个键被按下,先使所有行均为低电平,检查列线。有键按下再查具体哪个键被按下。硬件上,行线和列线的接法如图9.21所示。 行线(输出)和列线(输入)分别和两个8位并口相连。图9.22用扫描法判断闭合键的流程 2、行反转法的原理图9.23行反转法的工作原理图9.24 行反转法的键盘连接 v从图
39、中可以看到,用行反转法时,要将行线接一个并口,先让它工作在输出方式,将列线也接一个并口,先让它工作在输入方式。程序是CPU通过输出端口往各行线上送全部送低电平,然后读入列线的值。如有键按下,必有一列为0v然后再对两个并口进行方式设置,使接行线的并口输入,列线并口输出,并将刚才读得的列线值从并口(列)输出,再读取行线的输入值,则闭合行0。由此即可识别按键(与表中键码逐一对比,相等即是)。 v如遇多个键闭合的情况,行列值中一定有两个以上的0,表中无此码,判错。v3、抖动和重键问题的解决v可以通过软件延时方法很容易解决按键抖动问题,如不解决会错误识别。v重键的几种情况v A键先按后放,B键后按先放。
40、v A键先按先放,B键后按后放。vA键、B键同时按下,但A键先放。 处理重键问题有两种方法,连锁法和巡回法v(1)、连锁法v连锁法原则是,在所有键释放后,只承认此后闭合的第1个键,对此键闭合时按下的其它键均不作识别,直到所有键释放以后,才读入下一个键。v对上述情况只读入A键;A或B键,因机而异;不读或A或B,因人而异 (2)、巡回法 基本原则是:等前面识别的键释放以后,就可以对其它键作识别。v只有A闭合时,读入A键。v对上述情况只读入A键;v 若A、B同一行,读入A键,A、B不在同一行为快速操作,A、B均读v A、B同时按下,A键后放且A键处于较小行号读入A,A键行号大,均读v从上面可见,巡回
41、法比较适合快速操作。 v键盘编码器的工作原理v软件实现键盘扫描、消除抖动和识别重键,CPU的开销太大了。可以用硬件识别键盘并解决抖动和重键问题。v键盘编码器AY52376的原理v可用于8*11以内的键盘。v主要原理是由时钟电路不断产生扫描信号,读出的行列信号与ROM中的编码比较得到键值。解放了CPU。9.5 LED数字显示一、 LED的工作原理v七段发光二极管简称为LED(light emitting diode)是常用数显器件。vLED的主要部分是七段发光管 每段发光时通过的平均电流1020mA,所以共阴极时阳极要加驱动电路。驱动电路可用三极管或小规模集成电路,如DM7407N可驱动4位数。
42、 图9.25七段式LED显示部件图9.26 LED的外部连接(共阴) v为了将一个4位二进制数(可能为16进制数也可能为BCD码)在LED上显示出来,就要完成4位二进制数到LED的七位显示代码的转换两种译码方法。v一是用专用芯片,如7447带驱动器的专用译码器,但不能对大于9的数译码。v二是用软件译码法,利用8086的换码指令XLAT v假定要显示的内容在BUF单元中,LEDADD为代码表首址:vDISP:MOV BX,OFFSET BUFvMOV AL,BXvMOV BX,OFFSET LEDADD vXLATvMOV DX,PORTvOUT DX,ALvvLEDADD:DB 40H,79H,24H 图9.27用专用译码芯片完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 包装材料审核员培训课件
- 包装木箱安全培训课件
- 冬季消防安全专项检查
- 设计院安全生产培训课件
- 设计过程控制培训课件
- 消防系统培训课件
- 消防科技产品培训课件
- 闲置人才调配方案
- 1.2《两个毫不动摇,》 课件-统编版高中思想政治必修2
- 设计培训内容
- 山东省青岛市城阳区2024-2025学年九年级上学期语文期末试卷(含答案)
- 安全生产考试点管理制度(3篇)
- 孕妇尿液捐献协议书
- 2025年立体仓库维护服务合同
- BIM技术在建筑施工环境管理中的应用
- 2025全国高考Ⅰ卷第16题说题比赛课件-2026届高三数学二轮复习
- 快消品市场调研分析报告模板
- 装修保护电梯施工技术交底
- 社保专员工作述职报告
- DB15∕T 2385-2021 草原退化评价技术规程
- 焦化厂仪表工岗位考试试卷及答案
评论
0/150
提交评论