




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,8.2,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、C8255A有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,0026H4个连续的偶地址这四个地址的低四位分别对应为:,接8255的A1,接8255的A0,22,例如:系统分配给8255的端口地址是0024H,0026H,0028H,002AH4个连续的偶地址,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,初始化程序段如下:MOVDX,306H;送控制口地址MOVAL,0B1H;设置方式选择控制字OUTDX,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该程序段为:MOVAL,05HMOVDX,306HOUTDX,AL,8255A的置位/复位控制字,32,33,例:如果要使C口的PC2引脚输出低电平,可以使用置位/复位命令字=00000100=04H假设8255控制口地址=306H该程序段为:MOVAL,04HMOVDX,306HOUTDX,AL,8255A的置位/复位控制字,33,34,例:如果要使8255的PC7产生一个负脉冲,作为打印机接口电路的数据选通信号。,使用置位/复位命令字,首先让PC7输出“1”,然后再输出“0”,最后再输出“1”,便形成一个负脉冲.,MOVDX,306HMOVAL,0FHOUTDX,AL;PC7置“1”MOVAL,OEHOUTDX,AL;PC7置“0”NOP;延时NOPMOVAL,0FH;PC7置“1”OUTDX,AL,8255A的置位/复位控制字,34,35,*(选讲)【例】试编程使8255A的C口PC3位产生一个方波信号。8255A的端口地址为04A0H04A6H。解:可利用C口置/复位控制字,交替使PC3位输出“1”和“0”。程序段如下:MOVDX,04A6H;送控制口地址LL:MOVAL,00000111B;对PC3位置1OUTDX,ALCALLDELAY;延时MOVAL,00000110B;对PC3位置0OUTDX,ALJMPLL;循环,产生周期信号,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点亮。程序段如下:MOVDX,66HMOVAL,90H;设置方式选择控制字OUTDX,ALTES:MOVDX,60H;读A口(开关状态)INAL,DXMOVDX,62H;送B口显示OUTDX,ALJMPTES;循环检测,思考:如果要求开关打开时,相应的LED亮;程序如何修改?,39,40,例:并行打印机接口设计,(8255工作方式0应用),C2,2F4H2F7H,端口地址?,40,41,LPST:,打印机忙否(PC2=BUSY=?),PC2=1,打印机忙,继续测试PC2,CL中为将要打印的字符AL,MOVAL,0DH;OUTDX,AL,MOVDX,02F6HINAL,DX;,ANDAL,04H;,JNZLPST;,MOVAL,CL;,MOVDX,02F4HOUTDX,AL;,MOVAL,0CHMOVDX,02F7HOUTDX,AL;,INCALOUTDX,AL;,MOVAL,81H;MOVDX,02F7H;OUTDX,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,甲方发送数据的程序:,MOVDX,306HMOVAL,0A0H;工作方式字=10100000=A0H(A口方式1输出)OUTDX,ALMOVAL,0DH;置位/复位字=00001101=0DH(PC6置1,A口输出中断允许)OUTDX,ALLEASI,BUFSMOVCX,3FFH;发送的字节数=1KBMOVDX,300HMOVAL,SIOUTDX,AL;向A口写第一个数据,产生OBF信号送给乙方,等待乙方的ACK信号INCSI;地址指针加1DECCX;字节计数器减1,54,55,L:MOVDX,304H;读C口,查询发送中断请求INTRA=1?INAL,DXANDAL,08H;PC3=1?JZL;如果没有中断请求,反复查询;如果有,向A口写数据(因为如果数据输出缓冲器满时:INTRA=1)MOVDX,300HMOVAL,SIOUTDX,AL;向A口写第二个数据,INCSI;地址指针加1DECCX;字节计数器减1JNZLMOVAH,4CHINT21H:BUFSDB1024个字节的数据,55,56,乙方接收数据的程序:,MOVDX,306HMOVAL,98H;工作方式字=10011000=98H(A口方式0输入;C上半口输入,下半口输出)OUTDX,ALMOVAL,07H;置位/复位字=00000111=07H(PC3置1,输出ACK=1,为产生有效的ACK=0初始化)OUTDX,ALMOVDI,OFFSETBUFRMOVCX,3FFH;发送的字节数=1KBL1:MOVDX,304HINAL,DX;读C口ANDAL,80H;测试PC7=?来自甲方的OBF=?JNZL1;当OBFA=1,甲方输出缓冲未满;当OBFA=0,甲方输出缓冲满MOVDX,300HINAL,DXMOVDI,AL;,56,57,MOVDX,306H;MOVAL,04H;PC3置“0”,产生ACK=0信号,发给甲方OUTDX,ALNOPNOPMOVAL,07H;PC3置“1”,恢复原状态,为下一次准备OUTDX,ALINCDIDECCXJNZL1MOVAH,4CHINT21H:BUFRDB1024DUP(?),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:MOVAL,82H;设置8255A的工作方式字OUT86H,ALMOVAL,00H;给A口输出00HOUT80H,ALWAIT1:INAL,82H;读入B口的值ANDAL,0FH;取低4位CMPAL,0FH;比较JZWAIT;结果为0,则无键按下,继续等待CALLDELAY;调用延时子程序,消除按键抖动INAL,82H;再次读B口,测试有无低电平ANDAL,0FHCMPAL,0FHJZWAIT;结果为0,则是干扰,继续等待;判断哪个键按下,67,68,8255A的应用举例,MOVCL,4;设置计数初值MOVAL,0EH;使A0=0,准备先扫描第一行CHECK:OUT80H,ALMOVAH,AL;保存行扫描码INAL,82H;读B口ANDAL,0FH;取低4位CMPAL,0FH;比较JNZTABLE;不为0,则该行有键按下,转键值处理子程序MOVAL,AH;无键按下,则修改行扫描码ROLAL,1DECCL;行数减1JNZCHECK;未扫描完4行,则继续JMPSTART;重新扫描TABLE:CALLKEYVALUE;此时AH中为行扫描码,AL中为列扫描码,调用键值处理子程序,68,69,8255A的应用举例,;等待按键释放MOVAL,00;向A口输出00HOUT80H,ALWAIT2:INAL,82H;读B口ANDAL,0FH;取低4位CMPAL,0FH;比较JNZWAIT2;按键未释放,则继续等待;后续处理对于图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。其程序如下:DATASEGMENTEWODBabcdefghijklmnopqrstuvwxyzDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA;装载DSMOVDS,AXMOVAL,81H;设置8255A方式选择控制字OUT086H,ALMOVAL,0DH;用C口置/复位控制字使PC6=1OUT086H,ALMOVBX,26;设置计数初值LEASI,EWO;内存缓冲区的首地址送SI,72,73,8255A的应用举例,LL:INAL,084H;读C口的值ANDAL,04HJNZLL;不为0,则PC2=1,打印机正忙,等待MOVAL,SI;打印机不忙,则送字符给A口OUT080H,ALMOVAL,0CH;使=0OUT086H,ALINCAL;使=1,则得一个负脉冲输出OUT086H,ALINCSI;修改地址指针DECBX;修改计数值JNZLL;26个字母未输完,则继续MOVAH,4CH;返回DOS系统INT21HCODEENDSENDSTART,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。程序如下:DATASEGMENTEWODBabcdefghijklmnopqrstuvwxyzDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,SEGIS8255;设置中断向量0BHMOVDS,AXMOVAX,OFFSETIS8255MOVDX,AXMOVAX,250BHINT21HMOVAX,DATA;装载DSMOVDS,AXMOVAL,0A0H;设置8255A方式选择控制字OUT086H,AL,76,77,8255A的应用举例,MOVAL,01H;用C口置/复位控制字使PC0=1OUT086H,ALMOVAL,0DH;用C口置/复位控制字使PC6=1OUT086H,ALINAL,21H;读8259A的中断屏蔽字ANDAL,0F7H;开放8259A的IR3中断OUT21H,ALMOVCL,26;设置计数初值LEASI,EWO;内存缓冲区的首地址送SISTI;开中断LL:CMPCL,0;26个英文字母未输完,则继续等待中断JNZLLMOVAH,4CH;返回DOS系统INT21HIS8255PROCMOVAL,SI;打印机不忙,则送字符给A口OUT080H,AL,77,78,8255A的应用举例,MOVAL,0CH;使STB=0OUT086H,ALINCAL;使STB=1,则得一个负脉冲输出OUT086H,ALINCSI;修改地址指针DECCL;修改计数值JNZNEXTMOVAL,0CH;使PC6置为0,关闭打印机中断OUT086H,ALINAL,21H;读8259A的屏蔽字ORAL,08H;恢复8259A原有的屏蔽字OUT21H,ALNEXT:MOVAL,20H;给8259A发EOI命令OUT20H,ALIRETIS8255ENDPCODEENDSENDSTART,78,79,8255A在PC机中的应用,在IBMPC/XT微机的应用在IBMPC/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.13PC/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,一方面该信号使三
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025能源控股集团所属辽能股份招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025湖南株洲市行政审批服务局招聘中级雇员2考前自测高频考点模拟试题及答案详解一套
- 2025年东营市东营区高层次及急需紧缺招聘教师(40人)考前自测高频考点模拟试题参考答案详解
- 2025贵州六枝特区科学技术协会招聘公益性岗位人员1人模拟试卷及答案详解(新)
- 2025广西钦州市浦北县县直中学(职校)教师专场招聘55人考前自测高频考点模拟试题完整答案详解
- 2025年汉中市中心医院第二批备案制工作人员招聘(19人)模拟试卷附答案详解(完整版)
- 2025年西藏民族大学人才招聘(33人)模拟试卷附答案详解(完整版)
- 2025江苏南通海润城市发展集团有限公司下属子公司招聘管理人员1人考前自测高频考点模拟试题及1套参考答案详解
- 2025广西崇左凭祥市国防动员办公室公开招聘工作人员1人模拟试卷及答案详解1套
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人(第一批)考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年浙江高考数学试题及答案详解
- 国旗国歌国徽的课件
- 中小学学生心理健康测评工具汇编
- 2025中新社(北京)国际传播集团有限公司新疆分公司招聘6人考试参考题库及答案解析
- 2025至2030中国海带胶行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国航空发动机整体叶盘零件市场调查研究报告
- 孕产妇全程保健指南
- 航空理论教学课件
- 【MOOC答案】《VLSI设计基础(数字集成电路设计基础)》(东南大学)章节作业慕课答案
- 县级医院医保管理办法
- 2024年河南省淮滨县人民医院公开招聘护理工作人员试题带答案详解
评论
0/150
提交评论