《第五讲(2)数字量输入输出-并行通信.ppt》由会员分享,可在线阅读,更多相关《第五讲(2)数字量输入输出-并行通信.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、可编程并行输入输出接口可编程并行输入输出接口l教学重点教学重点l 8255A的工作方式和编程的工作方式和编程l 8255A的应用的应用并行数据传输方式并行数据传输方式l以计算机的以计算机的字长字长,通常是,通常是8位、位、16位或位或32位为传输位为传输单位,一次传送一个字长的数据单位,一次传送一个字长的数据l适合于外部设备与微机之间进行适合于外部设备与微机之间进行近距离近距离、大量大量和和快速快速的信息交换的信息交换n例如:微机与并行接口打印机、磁盘驱动器例如:微机与并行接口打印机、磁盘驱动器l微机系统中微机系统中最基本最基本的信息交换方法的信息交换方法n例如:系统板上各部件之间,接口电路板
2、上各部件例如:系统板上各部件之间,接口电路板上各部件之间之间8255A的基本性能的基本性能lIntel 8086/8088 系列的可编程外设接口电路系列的可编程外设接口电路(Programmable Peripheral Interface)简称简称 PPI,型号为型号为8255(改进型为(改进型为8255A及及8255A-5),具有),具有24条输入条输入/输出引脚、可编程的通用并行输入输出引脚、可编程的通用并行输入/输输出接口电路。它是一片使用单一出接口电路。它是一片使用单一+5V电源的电源的40脚脚双列直插式大规模集成电路。双列直插式大规模集成电路。8255A的通用性强,的通用性强,使用
3、灵活,通过它使用灵活,通过它CPU可直接与外设相连接。可直接与外设相连接。8255引脚图引脚图D0D1D2D3D4D5D6D7PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7RDWRA0A1RESETCS8255343332313029282753698356432140393837181920212223242514151617131211108255A的内部结构和引脚的内部结构和引脚数据数据总线总线缓冲器缓冲器内部控制线内部控制线内部数据线内部数据线D0D7A组组控制控制A组组端口端口AA组组端
4、口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET读写读写控制控制逻辑逻辑8255A内部结构由以下四部分组成:内部结构由以下四部分组成:l数据端口数据端口A、B、C;lA组控制和组控制和B组控制;组控制;l读读/写控制逻辑电路;写控制逻辑电路;l数据总线缓冲器。数据总线缓冲器。三个相互独立的输入三个相互独立的输入/输出通道输出通道l8255A具有具有三个相互独立的三个相互独立的输入输入/输出通道:输出通道:通道通道A、通道、通道B、通道、通道CnA,B,C三通道三通道可以联合使用可以联合使用,构成
5、单线、双,构成单线、双线或三线联络信号的并行接口。此时线或三线联络信号的并行接口。此时C口完全口完全服务于服务于A、B口。口。nA口有口有三种三种工作方式:方式工作方式:方式0、方式、方式1、方式、方式2。nB口有口有两种两种工作方式:方式工作方式:方式0、方式、方式1。8255A的工作方式的工作方式l方式方式0:基本输入输出方式基本输入输出方式n适用于适用于无条件传送和查询方式无条件传送和查询方式的接口电路的接口电路l方式方式1:选通输入输出方式选通输入输出方式n适用于适用于查询和中断方式查询和中断方式的接口电路的接口电路l方式方式2:双向选通传送方式双向选通传送方式n适用于与适用于与双向传
6、送数据双向传送数据的外设的外设n适用于适用于查询和中断方式查询和中断方式的接口电路的接口电路8255A的三个端口的三个端口端口端口A:包括一个包括一个 8 位的数据输出锁存位的数据输出锁存/缓冲器和一个缓冲器和一个 8位的数据输入锁存器,可作为数据输入或输出端口,位的数据输入锁存器,可作为数据输入或输出端口,并并工作于三种方式中的任何一种工作于三种方式中的任何一种。端口端口B:包括一个包括一个 8 位的数据输出锁存位的数据输出锁存/缓冲器和一个缓冲器和一个 8位的数据输入缓冲器,可作为数据输入或输出端口,位的数据输入缓冲器,可作为数据输入或输出端口,但但不能工作于方式不能工作于方式2。端口端口
7、C:包括一个包括一个 8 位的数据输出锁存位的数据输出锁存/缓冲器和一个缓冲器和一个 8位的数据输入缓冲器,位的数据输入缓冲器,可在方式字控制下分为两个可在方式字控制下分为两个4位位的端口(的端口(C端口上和下),每个端口上和下),每个4位端口都有位端口都有4位的锁存位的锁存器,器,用来用来配合端口配合端口A与端口与端口B锁存输出控制信号和输入锁存输出控制信号和输入状态信号,状态信号,不能工作于方式不能工作于方式1或或2。A组和组和B组控制的作用组控制的作用A组和组和B组控制的组控制的作用作用如下:如下:lA组控制逻辑控制组控制逻辑控制端口端口A及及端口端口C的上半部的上半部;lB组控制逻辑控
8、制组控制逻辑控制端口端口B及及端口端口C的下半部的下半部。C端口置端口置1置置0控制字控制字端口端口C的数位常常作为控制位来使用,所以,在的数位常常作为控制位来使用,所以,在设计设计8255A芯片时,应使端口芯片时,应使端口C中的各位可以用中的各位可以用置置1置置0控制字来单独设置。控制字来单独设置。说明:说明:C端口置端口置1置置0控制字尽管是对端口控制字尽管是对端口C进行操作,进行操作,但此但此控制字必须写入控制口,而不是写入控制字必须写入控制口,而不是写入C端口端口.8255内部寄存器选择内部寄存器选择/CS A1 A0 /RD /WR0 0 0 A口口-数据总线数据总线 数据总线数据总
9、线-A口口0 0 1 B口口-数据总线数据总线 数据总线数据总线-B口口0 1 0 C口口-数据总线数据总线 数据总线数据总线-C口口0 1 1 数据总线数据总线-控制寄存器控制寄存器写入方式控制字:控制字格式写入方式控制字:控制字格式方式选择控制字方式选择控制字1 D6 D5 D4 D3 D2 D1 D0A组组方式选择方式选择00=方式方式001=方式方式110=方式方式2端口端口A1=输入输入0=输出输出端口端口C(上半部上半部)1=输入输入0=输出输出B组组方式选择方式选择0=方式方式01=方式方式1端口端口B1=输入输入0=输出输出端口端口C(下半部下半部)1=输入输入0=输出输出写入
10、方式控制字:示例写入方式控制字:示例l要求:要求:nA端口:方式端口:方式1输入输入nC端口上半部:输出,端口上半部:输出,C口下半部:输入口下半部:输入nB端口:方式端口:方式0输出输出l方式控制字:方式控制字:10110001B或或B1Hl初始化的程序段:初始化的程序段:mov dx,2A3h;假设控制端口为假设控制端口为2A3Hmov al,0b1h;方式控制字方式控制字out dx,al;送到控制端口送到控制端口端口端口C的位控制字的位控制字l位控制字写入控制端口位控制字写入控制端口l特别便于置位复位内部中断允许触发器特别便于置位复位内部中断允许触发器INTE端口端口C按位置按位置/复
11、位控制字复位控制字0 D6 D5 D4 D3 D2 D1 D01=置位置位0=复位复位D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0C端口位选择端口位选择关于端口关于端口C(1)lC端口被分成端口被分成两个两个4位端口位端口,两个端口只能以,两个端口只能以方式方式0工作工作,可分别选择输入或输出,可分别选择输入或输出l在控制上,在控制上,C端口上半部和端口上半部和A端口编为端口编为A组组,C端端口下半部和口下半部和B端口编为端口编为B组组l当当A和和B端口工作在方式端口工作在方式1或方式或方式2时,
12、时,C端口的部端口的部分引脚将被征用,分引脚将被征用,其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式0l对端口对端口C的数据输出有的数据输出有两种办法两种办法n通过端口通过端口C的的I/O地址地址:向:向C端口直接写入字节数端口直接写入字节数据。这一数据被写进据。这一数据被写进C端口的输出锁存器,并从端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效输出引脚输出,但对设置为输入的引脚无效n通过控制端口通过控制端口:向:向C端口写入位控字,使端口写入位控字,使C端口端口的某个引脚输出的某个引脚输出1或或0,或置位复位内部的中断,或置位复位内部的中断允许触发器允许触发器关于端口关于
13、端口C(2)l读取的读取的C端口数据有端口数据有两种情况两种情况n未被未被A和和B端口征用的引脚:端口征用的引脚:将从定义为将从定义为输入输入的的端口读到引脚输入信息;将从定义为端口读到引脚输入信息;将从定义为输出输出的端的端口读到输出锁存器中的信息口读到输出锁存器中的信息n被被A和和B端口征用作为联络线的引脚:端口征用作为联络线的引脚:将读到反将读到反映映8255A状态的状态字状态的状态字关于端口关于端口C(3)端口端口C的状态字的状态字方式方式1输入输入INTRAINTE2IBFAINTE1OBFAINTRBOBFBINTEBINTRAI/OI/OINTEAOBFA方式方式2双向双向方式方
14、式1输出输出INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7A组组B组组方式方式0l方式方式0是一种是一种基本输入或输出基本输入或输出方式,它适用于方式,它适用于无需握手信号的简单输入输出应用场合,无需握手信号的简单输入输出应用场合,端端口口A、B、C都可作为输入或输出数据使用,输都可作为输入或输出数据使用,输出有锁存而输入无锁存。出有锁存而输入无锁存。方式方式0输入时序输入时序datadata输入端口输入端口D0D7RD CS,A1,A0方式方式0输出时序输出时序WRdatad
15、ata输出端口输出端口D0D7 CS,A1,A0方式方式1方式方式1也称也称选通的输入选通的输入/输出输出方式。在这种方方式。在这种方式下,无论是输入还是输出都通过应答关系式下,无论是输入还是输出都通过应答关系实现,实现,这时端口这时端口A或或B用作数据口,端口用作数据口,端口C的的一部分引脚用作握手信号线与中断请求线。一部分引脚用作握手信号线与中断请求线。若端口若端口A工作于方式工作于方式1,则则B可工作于方式可工作于方式0;若端口若端口B工作于方式工作于方式1,则则A可工作于方式可工作于方式0或余或余下的下的13位可工作于方式位可工作于方式0;若端口若端口A和和B同时工作于方式同时工作于方
16、式1,端口端口C余下的余下的两位还可用于传送数据或控制信号。两位还可用于传送数据或控制信号。方式方式1方式方式1输入引脚:输入引脚:A端口端口数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器中断允许触发器方式方式1输入引脚:输入引脚:B端口端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数
17、据输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器中断允许触发器方式方式1输入联络信号输入联络信号lSTB*选通信号,选通信号,低电平有效低电平有效n由外设提供的输入信号,当其有效时,将输入设备由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至送来的数据锁存至8255A的输入锁存器的输入锁存器lIBF输入缓冲器满信号,输入缓冲器满信号,高电平有效高电平有效n8255A输出的联络信号。当其有效时,表示数据已输出的联络信号。当其有效时,表示数据已锁存在输入锁存器锁存在输入锁存器lINTR中断请求信号
18、,中断请求信号,高电平有效高电平有效n8255A输出的信号,可用于向输出的信号,可用于向CPU提出中断请求,提出中断请求,要求要求CPU读取外设数据读取外设数据方式方式1输入时序输入时序INTRIBF输入端口输入端口D0D7STBRDdatadata方式方式1的输入过程的输入过程1、当输入设备已准备好一个新数据时当输入设备已准备好一个新数据时,首先检测首先检测IBF线的状线的状态态,若为低若为低(表示输入锁存器表示输入锁存器空空),则输入设备将数据放入则输入设备将数据放入PA7-PA0。2、然后发出选通信号然后发出选通信号STB,STB将将PA7-PA0上的数据置入数上的数据置入数据锁存器据锁
19、存器,这时这时8255A使使IBF有效有效,指示输入锁存器已指示输入锁存器已满满。3、STB变为无效后变为无效后,8255A使使INTR由低变高由低变高,通过通过8259A向向CPU发出中断请求发出中断请求,CPU响应请求并进入相应的中断服务程序。响应请求并进入相应的中断服务程序。4、在中断服务程序中在中断服务程序中,CPU读端口读端口A,RD的下降沿使的下降沿使INTR无无效。效。5、RD的上升沿使的上升沿使IBF变无效变无效,指示输入锁存器的数据已传指示输入锁存器的数据已传送给送给CPU,处于处于空空状态状态,准备接收新的数据。准备接收新的数据。方式方式1输出引脚:输出引脚:A端口端口外设
20、响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器中断允许触发器方式方式1输出引脚:输出引脚:B端口端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出
21、数据中断允许触发器中断允许触发器方式方式1输出联络信号输出联络信号lOBF*输出缓冲器满信号,输出缓冲器满信号,低有效低有效n8255A输出给外设的一个控制信号,当其有效时,输出给外设的一个控制信号,当其有效时,表示表示CPU已把数据输出给指定的端口,外设可以取已把数据输出给指定的端口,外设可以取走走lACK*响应信号,响应信号,低有效低有效n外设的响应信号,指示外设的响应信号,指示8255A的端口数据已由外设的端口数据已由外设接受接受lINTR中断请求信号,中断请求信号,高有效高有效n当输出设备已接受数据后,当输出设备已接受数据后,8255A输出此信号向输出此信号向CPU提出中断请求,要求提
22、出中断请求,要求CPU继续提供数据继续提供数据方式方式1输出时序输出时序datadataINTR输出端口输出端口D0D7WROBFACK方式方式1的输出过程的输出过程1、以端口以端口A为例为例,当输出设备接收了前一次数据当输出设备接收了前一次数据 后后,8255A通通过过8259A向向CPU请求中断。请求中断。2、在中断服务程序中在中断服务程序中,CPU将数据写入指定的端口将数据写入指定的端口,WR变为有变为有效效,于是数据写入输出锁存器并出现在于是数据写入输出锁存器并出现在PA7-PA0。3、写信号写信号WR的上升沿使的上升沿使OBF变为有效变为有效,指示输出设备指示输出设备PA7-PA0上
23、上,已有新的数据已有新的数据,同时还使同时还使INTR变为变为 无效。无效。4、在在PA7-PA0上输出数据。上输出数据。5、输出设备接收到数据后输出设备接收到数据后,向向8255A发回发回ACK信号信号,ACK的上的上升沿通常表示输出设备已准备好再接收新的数据。升沿通常表示输出设备已准备好再接收新的数据。6、8255A在在ACK出现上升沿之前使出现上升沿之前使OBF变为无效变为无效,若若INTE=1,则还使则还使INTR变为有效变为有效,再次请求中断。再次请求中断。关于方式关于方式1中断控制中断控制l8255A的中断由的中断由中断允许触发器中断允许触发器INTE控制控制n置位允许中断,复位禁
24、止中断置位允许中断,复位禁止中断l对对INTE的操作通过的操作通过写入端口写入端口C的对应位的对应位实现,实现,INTE触发器对应端口触发器对应端口C的位是作应答联络信号的的位是作应答联络信号的输入信号的哪一位,只要对那一位置位输入信号的哪一位,只要对那一位置位/复位就可复位就可以控制以控制INTE触发器触发器l选通输入方式下选通输入方式下n端口端口A的的INTEA对应对应PC4n端口端口B的的INTEB对应对应PC2方式方式2:双向方式:双向方式l方式方式2将方式将方式1的选通输入输出功能的选通输入输出功能组合组合成一个成一个双双向数据端口向数据端口,可以发送数据和接收数据,可以发送数据和接
25、收数据l只有只有端口端口A可以工作于方式可以工作于方式2,需要利用端口,需要利用端口C的的5个信号线,其作用与方式个信号线,其作用与方式1相同相同l方式方式2的的数据输入过程数据输入过程与方式与方式1的输入方式一样的输入方式一样l方式方式2的的数据输出过程数据输出过程与方式与方式1的输出方式有一点的输出方式有一点不同:数据输出时不同:数据输出时8255A不是在不是在OBF*有效时向外有效时向外设输出数据,而是在外设提供响应信号设输出数据,而是在外设提供响应信号ACK*时时才送出数据才送出数据方式方式2双向引脚双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5
26、IBFASTBAINTE2用用PC6设置设置INTE1(输出)输出)用用PC4设置设置INTE2(输入)输入)输入和输出中断通过输入和输出中断通过或门输出或门输出INTRA信号信号方式方式2双向时序双向时序data-outdata-outdata-indata-inINTRPA0PA7D0D7IBFWROBFACKSTBRD应用举例应用举例1:用:用8255A方式方式0与打印机接口与打印机接口BUSYDATA078255APC7PC2PA0PA7打印机打印机STROBE打印机接口的信号打印机接口的信号l主机把数据送给引脚主机把数据送给引脚DATA0DATA7l同时送出数据选通信号同时送出数据选
27、通信号STROBE*l打印机在打印机在BUSY信号线上发出信号线上发出“忙忙”信号信号l打印机处理好输入的数据时打印机处理好输入的数据时,撤消撤消“忙忙”信信号号打印机接口时序打印机接口时序BUSYDATA07ACKSTROBE8255A的初始化的初始化mov dx,0fffeh ;控制端口地址控制端口地址mov al,10000001B ;方式控制字:方式控制字:91Hout dx,al ;A端口方式端口方式0输出,输出,C端口上输出、下输入端口上输出、下输入mov al,00001111B;端口端口C的复位置位控制字,使的复位置位控制字,使PC71out dx,al打印子程序:查询打印子程
28、序:查询printcprocpush axpush dxprn:mov dx,0fffch;读取端口读取端口Cin al,dx ;查询打印机状态查询打印机状态and al,04h;PC2BUSY0?jnz prn;PC21,打印机忙,则循环等待,打印机忙,则循环等待打印子程序:输出打印子程序:输出mov dx,0fff8h ;PC20,打印机不忙,则输出数据,打印机不忙,则输出数据mov al,ahout dx,al ;将打印数据从端口将打印数据从端口A输出输出打印子程序:打印打印子程序:打印mov dx,0fffeh;从从PC7送出控制低脉冲送出控制低脉冲mov al,00001110B;置
29、置STROBE*0out dx,alnop;产生一定宽度的低电平产生一定宽度的低电平nopmov al,00001111B;置置=1out dx,al打印子程序:返回打印子程序:返回pop dxpop axretprintcendp用用8255A方式方式1与打印机接口与打印机接口1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印机打印机ACKACKOBFSTROBE8255A方式方式1与打印机接口时序配合与打印机接口时序配合PA0PA7(DATA07)ACKOBFSTROBE8255A的初始化的初始化mov dx,0
30、fffeh ;控制口地址;控制口地址0fffehmov al,0a0h ;控制字控制字 1010 0000out dx,almov al,0ch ;0000 1100 使使INTEA(PC6)为)为0,禁止中断,禁止中断out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer;取字符串首地址取字符串首地址call prints;调用打印子程序调用打印子程序打印子程序:输出打印子程序:输出printsprocpush ax;保护寄存器保护寄存器push dxprint1:mov al,bx;取一个数据取一个数据mov dx,0fff8h
31、out dx,al;从端口从端口A输出输出打印子程序:查询打印子程序:查询mov dx,0fffchprint2:in al,dxtest al,80h;检测(检测(PC7)为)为1否否?jz print2;为为0,说明打印机没有响应,继续检测,说明打印机没有响应,继续检测打印子程序:返回打印子程序:返回inc bx;为为1,说明打印机已接受数据,说明打印机已接受数据loop print1;准备取下一个数据输出准备取下一个数据输出pop dx;打印结束,恢复寄存器打印结束,恢复寄存器pop axret ;返回返回printsendp8255内部寄存器选择内部寄存器选择/CS A1 A0 /RD
32、 /WR0 0 0 A口口-数据总线数据总线 数据总线数据总线-A口口0 0 1 B口口-数据总线数据总线 数据总线数据总线-B口口0 1 0 C口口-数据总线数据总线 数据总线数据总线-C口口0 1 1 数据总线数据总线-控制寄存器控制寄存器写入方式控制字:控制字格式写入方式控制字:控制字格式方式选择控制字方式选择控制字1 D6 D5 D4 D3 D2 D1 D0A组组方式选择方式选择00=方式方式001=方式方式110=方式方式2端口端口A1=输入输入0=输出输出端口端口C(上半部上半部)1=输入输入0=输出输出B组组方式选择方式选择0=方式方式01=方式方式1端口端口B1=输入输入0=输
33、出输出端口端口C(下半部下半部)1=输入输入0=输出输出端口端口C的位控制字的位控制字l位控制字写入控制端口位控制字写入控制端口l特别便于置位复位内部中断允许触发器特别便于置位复位内部中断允许触发器INTE端口端口C按位置按位置/复位控制字复位控制字0 D6 D5 D4 D3 D2 D1 D01=置位置位0=复位复位D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0C端口位选择端口位选择端口端口C的状态字的状态字方式方式1输入输入INTRAINTE2IBFAINTE1OBFAINTRBOBFBINTEBINTRAI/OI/OINTEAOBFA方式方式2双向双向方式方式1输出输出INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7A组组B组组补充资料:补充资料:51单片机单片机P1端口端口D锁存器CLQQ读锁存器读引脚内部总线写锁存器输入缓冲器输入缓冲器P1.XVccRP1.x引脚l作业作业:题题5-1 题题5-2 题题5-17
限制150内