计算机硬件及网络并行接口ppt课件

上传人:钟*** 文档编号:1482764 上传时间:2019-10-21 格式:PPT 页数:89 大小:1.89MB
返回 下载 相关 举报
计算机硬件及网络并行接口ppt课件_第1页
第1页 / 共89页
计算机硬件及网络并行接口ppt课件_第2页
第2页 / 共89页
计算机硬件及网络并行接口ppt课件_第3页
第3页 / 共89页
点击查看更多>>
资源描述
1,1,2,计算机系统的数据传送方式有两种:并行数据传送和串行数据传送。 并行数据传送是微机系统最基本的信息交换方式,是以计算机的字长(如8位、16位、32位、64位)为单位,一次传送一个字长的数据。 串行数据传送是通过一根数据线,将数据一位一位顺序送出。,2,并行传送速率比串行传送快,适合于外设与微机之间近距离、大量和快速的信息交换,但引线多、且线间电容会引起串扰,不适合用于远距离传送。 例如系统板上各部件(CPU与存储器、CPU与I/O接口)、I/O扩展板上各部件、CPU与并行打印机、CPU与磁盘之间的数据交换都是采用并行数据传送方式。,3,4,并行接口电路能从微处理器或外设接收数据,然后再发送出去,因此在信息传送过程中,起着锁存或缓冲的作用。 通常,并行接口应具有如下功能和硬件支持:,具有锁存器或缓冲器的数据交换端口; 每个端口都具有可与CPU用查询方式或中断方式交换数据所必须的控制和状态信息, 有与外设交换数据所必须的控制和状态信息;还有片选和控制电路。,4,5,在并行接口中一般都需要在接口与外设之间设置一对握手信号。(除无条件传送) 在并行接口中8位或16位数据线是同时动作的,即使只用到其中的1、2位也是一次传送8位或16位; 并行传送的数据不需要固定的格式(与串行传送不同),这就免去了因此而产生的编码/解码过程,所谓“并行转送”,是指接口电路与I/O设备之间的数据传送,而不是指接口与CPU之间的传送(必然的是并行传送),5,常用的可编程并行接口芯片有 Intel公司的8255A、 Motorola公司的MC6820、 Zilog公司的Z80PIO等等。,6,7,并行接口连接外设示意图:,7,8,是Intel86系列的8位并行接口芯片 工作方式等设置具有可选择性; 可以由用户在其应用程序中通过向其传送命令字的形式改变各种设置,8,9,8255A的外部引脚,8255A芯片采用NMOS工艺制造,40个引脚的双列直插40条引脚可分为与CPU连接和与外设连接的引脚。,9,10,8255A的引脚功能,面向控制总线的信号线: RD:读信号,低电平有效,与CPU的控制线相连。当CPU执行IN指令时,该信号有效,CPU读取各端口的数据或状态。 WR:写信号,低电平有效,与CPU的控制线相连。当CPU执行OUT指令是,该信号有效,CPU将数据或控制字写入8255A。 RESET:复位信号,高电平有效。当RESET=1时,清除所有内部寄存器的内容,并将A、B、C口自动设为方式0下的输入端口。 Vcc、GND:电源和地线 。,10,11,与外设相连的信号线 PA7PA0:端口A的输入/输出线,三态、双向,可直接与外设相连。 PB7PB0:端口B的输入/输出线,三态、双向,可直接与外设相连。 PC7PC0:端口C的输入/输出线,三态、双向,可直接与外设相连。,8255A的引脚功能,端口A和端口B一般只作为数据口使用 端口C除了作为数据口之外还可以控制端口使用: 例如:产生与外设之间的联络信号;作为状态口;按位控制等等,11,12,8255A的引脚功能,与CPU连接的信号线 面向数据总线的信号线: 面向地址总线的信号线:,D7D0:双向、三态数据线,与CPU系统数据总线相连。,CS:片选信号,低电平有效。CS=0时,表明8255A被选中。通常与地址译码电路输出端相连。,A1、A0:端口地址选择信号,用来指明哪一个端口被选中。,12,13,8255A有A、B、C三个数据端口和一个控制端口(用来接收CPU送来的控制字)。A1A0为00、01、10、11时,分别选中A口、B口、C口、控制端口。,13,14,8255A的端口操作表,CS、A1、A0、RD、WR的信号组合所实现的读/写操作如下:,14,15,8255A的内部结构,15,16,8255A的内部结构由以下4部分组成: (1)数据总线缓冲器 这是一个8位双向、三态缓冲器,可直接与CPU系统数据总线相连,是8255A与CPU之间传输数据的必经之路。所有输入/输出数据、CPU发出的控制命令字以及从外设读入的状态信息,都通过它传送。,8255A的内部结构,16,17,(2)读/写控制逻辑 与CPU的6根控制线相连,接收来自CPU的地址总线信号和控制总线信号,转变为各种命令送到A、B组控制逻辑电路进行相应的操作。 CS、A1 、A0用于芯片选择和端口寻址,RD、WR用来决定内部和外部数据总线信息传送的方向,RESET用来使8255A复位。,8255A的内部结构,17,18,(3)数据端口A、B、C 8255A有A,B,C三个输入/输出端口(简称A口,B口,C口),用来与外设相连,进行数据信息、状态信息的交换。每个端口均有8位,可为输入或输出端口。 C口可以作为一个独立的I/O口,也可分为两个4位端口,作为数据输入/输出端口,或作为控制状态端口,配合端口A、B工作。,8255A的内部结构,18,19,(4)A组和B组控制逻辑 端口A和端口C的高4位(PC7PC4)构成A组,由A组控制逻辑电路进行控制; 端口B和端口C的低4位(PC3PC0)构成B组,由B组控制逻辑电路进行控制。 这两个控制电路内部有控制寄存器,用来接收数据总线送来的控制字和读/写控制信号,并按控制字确定各端口的工作方式。,8255A的内部结构,19,20,在对8255A进行地址译码电路设计时,对于8086系统,它有16位数据总线。 8255的D7D0总是接到系统总线的低8位。 要选择读写8255A的端口,端口地址必须为偶地址,应将系统地址总线的A2A1接到8255的A1A0。,注意:,20,21,21,例如:系统分配给8255的端口地址是4个连续的偶地址 假如是0020H,0022H,0024H,0026H 4个连续的偶地址 这四个地址的低四位分别对应为:,接8255的A1,接8255的A0,22,例如:系统分配给8255的端口地址是0024H,0026H,0028H,002AH 4个连续的偶地址,C口,控制口,A口,B口,23,24,8255A的控制字及其工作方式,8255A可以通过指令往控制端口中设置控制字来决定它的工作方式。 8255A有两个控制字: 方式选择控制字 端口C置位/复位控制字 两个控制字共用一个地址:A1=A0=1。 为区分两个控制字,将控制字的D7作为特征位, D7=1,表示方式选择控制字; D7=0,表示C口置位/复位控制字。,24,25,8255A的控制字及其工作方式,8255A的3个端口共有3种工作方式:,25,26,8255A的方式选择控制字,26,27,D7:特征位(标志位)。 D6、D5:A组方式选择。00方式0;01方式1;10和11为方式2。 D4:A口的输入/输出选择。0为输出,1为输入。 D3:C口(高4位)输入/输出选择。0为输出,1位输入。 D2:B组方式选择。0为方式0,1为方式1。 D1:B口的输入/输出方式选择。0为输出,1为输入。 D0:C口(低4位)的输入/输出选择。0为输出,1为输入。,8255A的方式选择控制字,27,28,从中可看出: A口可工作在方式0方式1方式2; B口只能工作在方式0 方式1; C口的高4位、低4位可分别设定其输入输出方式,但不能设定其工作方式(只能方式0),8255A的方式选择控制字,28,29,【例】 按下述要求对8255A进行初始化: A口设为输入数据,工作于方式1; B口设为输出数据,工作于方式0; C口高四位输出,低四位输入数据。 8255A的端口地址为300H306H。,解: 根据要求,8255的工作方式字=10110001=B1H,初始化程序段如下: MOV DX,306H ;送控制口地址 MOV AL,0B1H ;设置方式选择控制字 OUT DX,AL,29,30,C口的任一位都可通过控制寄存器写入该控制字,使之置位(输出为1),或复位(输出为0),而不影响其他位的状态。其格式如图。,8255A的置位/复位控制字,30,31,D7:特征位=0,表明写入的是口置位复位控制字。 D6D4:不用,可为任意值,一般取0。 D3D1:选择对那一位进行操作。 D0:选择对选定的该位置置位还是复位。 1为置位,0为复位。,特别需要注意的是,尽管该控制字是对C口进行操作,但必须写入控制端口,而不是写入C口。,8255A的置位/复位控制字,31,32,例:如果要把C口的PC2引脚置成高电平输出,可以使用置位/复位命令字。 置位/复位命令字=00000101=05H 假设8255控制口地址=306H 该程序段为: MOV AL,05H MOV DX,306H OUT DX, AL,8255A的置位/复位控制字,32,33,例:如果要使C口的PC2引脚输出低电平,可以使用 置位/复位命令字=00000100=04H 假设8255控制口地址=306H 该程序段为: MOV AL,04H MOV DX,306H OUT DX, AL,8255A的置位/复位控制字,33,34,例:如果要使8255的PC7产生一个负脉冲,作为打印机接口电路的数据选通信号。,使用置位/复位命令字,首先让PC7输出“1”,然后再输出“0”,最后再输出“1”,便形成一个负脉冲.,MOV DX,306H MOV AL, 0FH OUT DX,AL; PC7置“1” MOV AL,OEH OUT DX,AL ; PC7置“0” NOP ;延时 NOP MOV AL,0FH; PC7置“1” OUT DX,AL,8255A的置位/复位控制字,34,35,*(选讲)【例】 试编程使8255A的C口PC3位产生一个方波信号。8255A的端口地址为04A0H04A6H。 解:可利用C口置/复位控制字,交替使PC3位输出“1”和“0”。程序段如下: MOV DX,04A6H ;送控制口地址 LL:MOV AL,00000111B ;对PC3位置1 OUT DX,AL CALL DELAY ;延时 MOV AL,00000110B ;对PC3位置0 OUT DX,AL JMP LL ;循环,产生周期信号,8255A的置位/复位控制字,35,36,8255A的工作方式0,方式0 基本输入/输出方式 工作特点和使用场合 : A口、B口、C口的高4位,低4位均可独立地设置为输出或输入。 方式0可用于无条件传送或查询式传送场合。 无条件传送时,不用联络信号,CPU随时用指令可对该外设进行读写。一般用于连接简单的外设,如键盘、开关、指示器。 单向I/0,不能同时指定某个端口又作输入,又作输出,36,37,【例】 在工业控制等实际应用中,经常需要检测某些开关量的状态。 如图所示,在某系统中,采用8255A不断检测8个开关K7K0的通断状态,并随时在8个发光二极管LED7LED0上显示出来。 要求开关闭合时,相应的LED亮; 开关断开时,相应的LED灭。 8255A的端口地址为60H66H。,工作方式0及其应用,37,38,8255A读取开关状态的电路图,38,39,解:由电路原理可知,A口为方式0输入,B口为方式0输出,则8255A的方式字=10010000B=90H。 且开关闭合,则A口输入低电平;当B口输出低电平时,相应的LED点亮。程序段如下: MOV DX,66H MOV AL,90H ;设置方式选择控制字 OUT DX,AL TES:MOV DX,60H ;读A口(开关状态) IN AL,DX MOV DX,62H ;送B口显示 OUT DX,AL JMP TES ;循环检测,思考: 如果要求开关打开时,相应的LED亮;程序如何修改?,39,40,例:并行打印机接口设计,(8255工作方式0应用),C2,2F4H2F7H,端口地址?,40,41,LPST:,打印机忙否(PC2 =BUSY=?),PC2=1,打印机忙,继续测试PC2,CL中为将要打印的字符AL,MOV AL,0DH ; OUT DX, AL,MOV DX, 02F6H IN AL,DX ;,AND AL,04H ;,JNZ LPST ;,MOV AL, CL ;,MOV DX,02F4H OUT DX, AL ;,MOV AL, 0CH MOV DX, 02F7H OUT DX, AL ;,INC AL OUT DX, AL ;,MOV AL,81H; MOV DX, 02F7H; OUT DX,AL,41,42,8255A的工作方式1,方式1 选通输入/输出方式 一、工作特点 A口、B口可作为数据传输口,而C口的一些引脚规定作为A口、B口的联络信号。 按照方式1工作时必须配合一些专门的联络信号(C口的一些引脚),实现接口电路与外设之间的应答; 单向传送; 上述引脚的定义在方式1输入与方式1输出时有所不同;,42,43,当A口作为方式1输入时,C口的PC3、PC4、PC5作为控制信号,PC6、PC7仍可作为I/O口利用。 当B口作为方式1输入时,C口的PC0、PC1、PC2作为控制信号。,各控制信号的定义如下:,1、方式1输入时,端口对应的控制信号,二、方式1时端口对应的联络信号,43,44,IBF:输入缓冲器满信号,高电平有效。 它是对STB的响应信号,当STB有效时,把数据传送到输入锁存器中,输入锁存器锁存数据后,使IBF置位,发IBF信号。 该信号一方面可作为8255A发出的状态信号,供CPU查询。当CPU查询到该信号,说明端口已有数据,执行输入指令,读取数据。同时,读信号RD的上升沿使IBF清0, 等待下一个数据。另一方面,作为外设的STB的响应信号,该信号送给外设,阻止外设发送新的数据发送。,44,45,INTE(内部信号):A口、B口的中断允许信号,高电平有效。该信号通过软件对C端口的置/复位指令来实现对中断的控制。将PC4置1,A口允许中断;将PC2置1,B口允许中断。清0,则屏蔽中断。 需要说明的是,C口的PC4、PC2具有双重功能,置/复位控制字写入输出锁存器,其输出缓冲器不选通,纯粹是对内部寄存器的操作。而STB信号通过输入缓冲器输入。两者在硬件上的隔离,不会冲突。,INTR:中断请求信号,高电平有效。该信号由8255A向CPU申请中断。当STB和IBF均为高电平时,在INTE有效的情况下,INTR=1,表明CPU可以从端口读入数据。CPU读取数据后,RD的下降沿自动使INTR清0。,45,46,在方式1下,数据从I/O设备通过8255送到CPU的过程如下:,CPU,8255,I/O设备,46,47,1、方式1输入时,端口对应的控制信号,47,48,当A口作为方式1输出时,C口的PC7、PC6、PC3作为控制信号, PC4、PC5作为I/O口使用。 当B口作为方式1输出时,C口的PC0、PC1、PC2作为控制信号,PC4、PC5作为I/O口使用。,2、方式1输出时的联络信号,48,49,INTE (内部信号) :中断允许信号,高电平有效。 PC6=1时,允许A口中断;PC2=1,允许B口中断。,INTR:中断请求信号,高电平有效。 当OBF=1,ACK=1,且INTE=1时,使INTR=1。,49,50,在方式1下,数据从CPU 通过8255送到I/O设备的过程如下:,CPU,8255,I/O设备,50,51,方式1输出时,端口对应的控制信号,51,52,方式1的使用场合 方式1常用于查询方式传送和中断方式传送。 查询方式:CPU可通过读取IBF、 OBF的状态决定CPU是否进行数据传输。 IBF(输入:1CPU读取, 0CPU不读取)、 OBF(输出: 1CPU写入数据,0CPU不写入数据) 中断方式:A口、B口自动向CPU申请中断(若INTE=1)。,52,53,方式0与方式1并行传送数据的接口应用举例:,甲方方式1发送,乙方方式0接收;共传送1K字节的数据,双方均采用查询的方式交换数据。双方的端口地址均为300H306H。,53,54,甲方发送数据的程序:,MOV DX,306H MOV AL,0A0H;工作方式字=10100000=A0H (A口方式1输出) OUT DX,AL MOV AL,0DH;置位/复位字=00001101=0DH (PC6置1,A口输出中断允许) OUT DX,AL LEA SI, BUFS MOV CX,3FFH; 发送的字节数=1KB MOV DX,300H MOV AL,SI OUT DX,AL; 向A口写第一个数据,产生OBF信号送给乙方, 等待乙方的ACK信号 INC SI; 地址指针加1 DEC CX; 字节计数器减1,54,55,L:MOV DX,304H; 读C口,查询发送中断请求INTRA=1? IN AL, DX AND AL,08H ;PC3=1? JZ L; 如果没有中断请求,反复查询;如果有,向A口写数据 (因为如果数据输出缓冲器满时:INTRA=1) MOV DX, 300H MOV AL, SI OUT DX, AL; 向A口写第二个数据, INC SI; 地址指针加1 DEC CX;字节计数器减1 JNZ L MOV AH,4CH INT 21H : BUFS DB 1024个字节的数据,55,56,乙方接收数据的程序:,MOV DX,306H MOV AL,98H; 工作方式字=10011000=98H (A口方式0输入;C上半口输入,下半口输出) OUT DX,AL MOV AL,07H;置位/复位字=00000111=07H (PC3置1,输出ACK=1,为产生有效的ACK=0初始化) OUT DX,AL MOV DI,OFFSET BUFR MOV CX,3FFH; 发送的字节数=1KB L1:MOV DX,304H IN AL,DX;读C口 AND AL, 80H ; 测试PC7=?来自甲方的 OBF=? JNZ L1; 当OBFA=1,甲方输出缓冲未满;当OBFA=0,甲方输出缓冲 满 MOV DX, 300H IN AL, DX MOV DI,AL;,56,57,MOV DX, 306H; MOV AL,04H;PC3置“0”,产生ACK=0信号,发给甲方 OUT DX,AL NOP NOP MOV AL, 07H; PC3置“1”,恢复原状态,为下一次准备 OUT DX, AL INC DI DEC CX JNZ L1 MOV AH,4CH INT 21H : : BUFR DB 1024DUP(?),57,58,8255A的工作方式2及其应用,方式2 双向输入/输出方式 一、工作特点 该方式只适用于A口(因其有输入、输出两个锁存器)。在该方式下,可使外设利用A口的8位数据线与CPU之间分时进行双向数据传送,即在单一的8位数据线PA7-PA0上,既可输出数据给外设,又可以从外设输入数据(当然不能同时进行)。输入或输出数据均锁存。 A口工作在方式2时,C口的PC7PC3被规定为控制信号,配合A口使用。图中控制信号的含义与方式1中完全相同。,58,59,二、方式2的控制信号,59,60,可以看出,双向传输方式不过是A口在方式1情况下输出和输入的组合。此时,INTE1由PC6置位决定, INTE2由PC4置位决定。只要输入、输出方式有一个发出中断申请,则INTRA=1。 当A口工作在方式2时,B口可工作在方式0或方式1。在方式1情况下,可用PC2PC0作为控制信号。,60,使用场合 根据方式2的工作特点,若有个外设具有输入、输出功能,但不是同时输入输出数据,可采用此方式。如磁盘驱动器,既可接收主机来的数据,也可向主机提供数据,而这种输入、输出的过程是分时进行的。可将磁盘驱动器的数据线与8255A的PA7PA0相连,再将8255A的PC7PC3与磁盘驱动器的控制线、状态线相连,即可使用。,61,62,补充题1:,要求针对图示电路连线图编写8255的初始化程序,同时实现开关闭合时对应的指示灯点亮。8255的端口地址由图示的译码电路确定。,62,补充题2:,假设系统分配给8255的端口地址为0224H022AH,要求用LED数码管显示开关闭合的个数(0,1,8)。已知LED数码管的显示编码保存在内存DISBUF起始处。编写该系统的初始化程序和工作程序。,63,64,8255A的应用举例,【例】8255A作为矩阵键盘接口,工作于方式0,如图示。试编程读取矩阵键盘的按键扫描码。 矩阵式键盘是非编码键盘的一种,指按键开关按行列排列,形成二维矩阵的结构。图6.10中的键盘为4行4列的矩阵键盘,其行线接8255A的端口A的低4位,列线接端口B的低4位。8255A的A口设为方式0输出,B口设为方式0输入。 识别键盘上哪个键被按下的过程称为键盘扫描,其过程如下:先使行线全为“0”,若此时无键按下,则列线应为全“1”;若有键按下,则相应位置的列线应为“0”。有键按下时,还要判断按下的键在哪行哪列,即读取按键的扫描码。方法之一是逐行扫描法,也就是先扫,64,65,矩阵键盘接口,65,66,8255A的应用举例,描第一行,使PA0=0,PA3PA1为,判别列线有无低电平。若有,则可识别出第一行哪一列上有键按下(此时A口、B口的值即为该键的扫描码);若没有,则继续扫描第二行,使PA1=0,其余为,依上述方法判别,直至扫描完所有4行,总可以找到按下的按键。 当然,在检测到有键按下后,还必须消除按键的抖动。消除按键抖动的常用方法是在检测到有键按下后,延长一定的时间(通常为20ms),再检查该键是否仍被按着,若是,才能认定该键确实被按下了,而不是干扰信号。 设图6.10中8255A的端口地址为8086H,其键盘扫描程序段如下:,66,67,8255A的应用举例,;判别是否有键按下 START:MOV AL,82H ;设置8255A的工作方式字 OUT 86H,AL MOV AL,00H ;给A口输出00H OUT 80H,AL WAIT1:IN AL,82H ;读入B口的值 AND AL,0FH ;取低4位 CMP AL,0FH ;比较 JZ WAIT ;结果为0,则无键按下,继续等待 CALL DELAY;调用延时子程序,消除按键抖动 IN AL,82H ;再次读B口,测试有无低电平 AND AL,0FH CMP AL,0FH JZ WAIT ;结果为0,则是干扰,继续等待 ;判断哪个键按下,67,68,8255A的应用举例,MOV CL,4 ;设置计数初值 MOV AL,0EH ;使A0=0,准备先扫描第一行 CHECK:OUT 80H,AL MOV AH,AL ;保存行扫描码 IN AL,82H ;读B口 AND AL,0FH ;取低4位 CMP AL,0FH ;比较 JNZ TABLE ;不为0,则该行有键按下,转键值处理子程序 MOV AL,AH ;无键按下,则修改行扫描码 ROL AL,1 DEC CL ;行数减1 JNZ CHECK ;未扫描完4行,则继续 JMP START ;重新扫描 TABLE:CALL KEYVALUE ;此时AH中为行扫描码,AL中为列扫描码,调用键值处理子程序,68,69,8255A的应用举例,;等待按键释放 MOV AL,00 ;向A口输出00H OUT 80H,AL WAIT2:IN AL,82H ;读B口 AND AL,0FH ;取低4位 CMP AL,0FH ;比较 JNZ WAIT2 ;按键未释放,则继续等待 ;后续处理 对于图6.10的电路,还可以采用反转法读取按键的扫描码,即在已辨别出有键按下,要读取行和列的扫描码时,可重新设置8255A的工作方式字,使A口为输入,B口为输出。然后将刚才B口读入的列值从B口输出,再从A口读入行值。这样,从A口读入的值为行扫描码,,69,70,8255A的应用举例,从B口读入的值为列扫描码。根据上述方法,读者可以自行编写出程序,这里略过。 【例6-6】 8255A作为打印机接口,工作于方式0,如图6.11所示。试编写程序实现:CPU用查询方式向打印机输出26个英文字母。8255A的端口地址为80H86H。 打印的工作过程如下:当主机要向打印机输出字符时,先查询打印机忙信号,若打印机正在处理一个字符或正在打印一行字符,则BUSY=1;反之,则BUSY=0。因此,当查询到BUSY=0时,则可通过8255A向打印机输出一个字符。此时,要给打印机的选通端STB一个负脉冲,将字符选通到打印机的输入缓冲器中。 解:由电路图可知,A口作为传送字符的通道,工作于,70,71,8255A作为打印机接口(查询方式),71,72,8255A的应用举例,方式0输出;C口高四位工作于方式0输出,C口低四位工作于方式0输入。故8255A的方式选择控制字为10000001B,即81H。其程序如下: DATA SEGMENT EWO DB abcdefghijklmnopqrstuvwxyz DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA ;装载DS MOV DS,AX MOV AL,81H ;设置8255A方式选择控制字 OUT 086H,AL MOV AL,0DH ;用C口置/复位控制字使PC6=1 OUT 086H,AL MOV BX,26 ;设置计数初值 LEA SI,EWO ;内存缓冲区的首地址送SI,72,73,8255A的应用举例,LL:IN AL,084H ;读C口的值 AND AL,04H JNZ LL ;不为0,则PC2=1,打印机正忙,等待 MOV AL,SI ;打印机不忙,则送字符给A口 OUT 080H,AL MOV AL,0CH ;使=0 OUT 086H,AL INC AL ;使=1,则得一个负脉冲输出 OUT 086H,AL INC SI ;修改地址指针 DEC BX ;修改计数值 JNZ LL ;26个字母未输完,则继续 MOV AH,4CH ;返回DOS系统 INT 21H CODE ENDS END START,73,74,8255A的应用举例,【例6-7】 8255A也可用作中断方式工作的并行打印机接口,如图6.12所示。试编写程序实现:CPU用查询方式向打印机输出26个英文字母。8255A的端口地址为80H86H。8259A的端口地址为20H、21H。 图中,8255A的A口工作在方式1输出,用于给打印机传送字符。C口的PC7、PC6自动成为A口的控制信号,但由于PC7(OBFA)产生的信号不能满足打印机STB选通端的要求,故不用PC7端,而用软件在PC0端产生一个负脉冲,提供给打印机的STB端。另外,C口的PC3作为中断请求信号送到中断控制器8259A的IR3端,对应的中断类型号为0BH。 解:由电路原理图可知,8255A的A口工作于方式1输出,,74,75,8255A作为打印机接口(中断方式),75,76,8255A的应用举例,则其方式选择控制字为10100000B,即A0H。程序如下: DATA SEGMENT EWO DB abcdefghijklmnopqrstuvwxyz DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,SEG IS8255 ;设置中断向量0BH MOV DS,AX MOV AX,OFFSET IS8255 MOV DX,AX MOV AX,250BH INT 21H MOV AX,DATA ;装载DS MOV DS,AX MOV AL,0A0H ;设置8255A方式选择控制字 OUT 086H,AL,76,77,8255A的应用举例,MOV AL,01H ;用C口置/复位控制字使PC0=1 OUT 086H,AL MOV AL,0DH ;用C口置/复位控制字使PC6=1 OUT 086H,AL IN AL,21H ;读8259A的中断屏蔽字 AND AL,0F7H ;开放8259A的IR3中断 OUT 21H,AL MOV CL,26 ;设置计数初值 LEA SI,EWO ;内存缓冲区的首地址送SI STI ;开中断 LL:CMP CL,0 ;26个英文字母未输完,则继续等待中断 JNZ LL MOV AH,4CH ;返回DOS系统 INT 21H IS8255 PROC MOV AL,SI ;打印机不忙,则送字符给A口 OUT 080H,AL,77,78,8255A的应用举例,MOV AL,0CH ;使STB=0 OUT 086H,AL INC AL ;使STB=1,则得一个负脉冲输出 OUT 086H,AL INC SI ;修改地址指针 DEC CL ;修改计数值 JNZ NEXT MOV AL,0CH ;使PC6置为0,关闭打印机中断 OUT 086H,AL IN AL,21H ;读8259A的屏蔽字 OR AL,08H ;恢复8259A原有的屏蔽字 OUT 21H,AL NEXT:MOV AL,20H ;给8259A发EOI命令 OUT 20H,AL IRET IS8255 ENDP CODE ENDS END START,78,79,8255A在PC机中的应用,在IBM PC/XT微机的应用 在IBM PC/XT微机系统中,使用一片8255A,端口地址为607FH,常用的是60H63H(64H7FH为映像地址,A4未接),分别是A口、B口、C口、控制端口的地址。其连接电路如图6.13所示。 在XT机中,8255A工作在方式0。A口在正常工作时为输入,用来读取键盘扫描码;在加电自检时为输出,输出当前检测部件的标志信号。B口为输出方式,用于键盘控制、RAM和I/O通道检验、扬声器的启动和控制。C口为输入方式,低4位读取系统配置开关DIP的值以确定系统工作状态,如是否使用8087、选择RAM容量大小、显示配置类型以及所连接的软盘驱动器的数量;,79,80,图8.13 PC/XT机的8255A连线图,80,81,8255A在PC机中的应用,高4位读取系统状态测试位,如扬声器的状态、RAM和I/O通道的奇偶检验结果等。 在图8.13中,系统配置开关的8个信号分两组均接到PC3PC0,由PB3决定是读取DIP开关的低四位还是高四位。工作过程如下:要读取低四位,CPU先使PC3=0,一方面该信号经74LS04反相后为高电平,由于7407为同相OC门(集电极开路),则7407的输出全为高阻态,不会影响外部信号的状态;另一方面PC3信号使三态缓冲器74LS244的控制端1G、2G有效,则缓冲器打开,DIP开关的低四位信号SW-1SW-4送到PC3PC0 ,可供CPU读取。要读取DIP开关的高四位,先使PC3=1,一方面该信号使三态缓冲器74LS244的控制端1G、2G,81,82,8255A在PC机中的应用,无效,则禁止缓冲器输出;另一方面PC3信号经74LS04反相后为低电平,则7407的输出为低电平,DIP开关的低四位信号SW-5SW-8送到PC3PC0 ,可供CPU读取。由以上原理,读者可以自行编写出读DIP开关的程序段,这里略过。 在80286以上的微机中的应用 在80286以上的微机系统中, 8255A的对应电路被集成到多功能芯片内部。为了保持兼容性,系统保留了8255A的端口地址和它的相应功能。也就是说,仍可以用60H地址读取键盘扫描码,用PB1和PB0控制发声系统。,82,83,8255A的实验设计,8.4.1 实验目的 掌握8255A的工作方式及应用编程。 掌握8255A的典型应用电路接法。 8.4.2 实验设备 PC机一台,ADEK88ET实验装置一套。 8.4.3 实验内容 基本输入输出实验。编写程序,使8255A的A口为输出,B口为输入,完成开关到LED灯的数据传输。要求只要开关拨动,LED灯的显示就要改变。 流水灯显示实验。编写程序,使8255A的A口为输出,实现8位LED灯的循环显示。,83,84,8255A的实验设计,8.4.4 实验原理 可编程外围接口芯片8255A是Intel公司生产的通用并行接口芯片,它有A、B、C三个8位并行接口,用+5V单电源供电,能在以下三种工作方式下工作:方式0基本输入/输出方式,方式1选通输入/输出方式,方式2双向输入/输出方式。8255A的内部结构和引脚如图6.1和6.2所示。8255A的方式选择控制字和C口置/复位控制字如图6.3和6.4所示。 8.4.4 实验步骤及说明 基本输入/输出实验 本实验使8255A的端口A工作在方式0输出,端口B工作,84,85,8255A的实验设计,在方式0输入。用一组开关信号接入端口B,端口A的输出线接至一组LED灯上,然后通过对8255A的编程实现其输入/输出功能。8255A的内部连线图和LED灯电路如图8.14所示,其程序流程图如图8.15所示。 具体实验步骤如下: 完成硬件连接。实验箱上的开关K1K8分别接至8255A的PB0PB7,8255A的PA0PA7分别接至LED灯DL1DL8,8255A的片选信号CS55接至地址译码信号218H21FH。 编写程序,检查无误后汇编、连接。 打开实验箱电源,下载并运行程序,拨动开关组,观察LED灯的显示。 流水灯显示实验 本实验使8255A的端口A工作在方式0输出。端口A的,85,86,图8.14 8255A的内部连线图及LED灯电路,86,87,8255A的实验设计,输出线接至一组LED灯上。然后编写程序,实现LED灯的循环显示。8255A流水灯显示实验的程序流程图如图8.16所示。 具体实验步骤如下: 完成硬件连接。8255A的PA0PA7分别接至LED灯DL1DL8,8255A的片选信号CS55接至地址译码信号218H21FH。 编写程序,检查无误后汇编、连接。 打开实验箱电源,下载并运行程序,观察LED灯的显示。,87,88,图8.15 8255A基本输入/输出实验的程序流程图,图8.16 8255A流水灯显示实验的程序流程图,88,作业,P224 8.1,89,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!