1、12主要内容主要内容v并行接口芯片8255A结构工作方式应用vLEDv打印机*3CPU与外设的接口v接口的组成和功能数据锁存/缓冲:速度匹配、信号隔离命令和状态寄存器地址译码:内部端口选择读写控制中断/DMA请求逻辑v可编程接口芯片多通道多功能可编程:通过编程设置各个通道的工作模式v可编程微处理器、可编程芯片。4接口信号vCPU侧CS*:M/IO*:RD*、WR*:DMA、INT地址总线数据总线v外设侧:STB*、RDY输入接口:vSTB*:外设-接口,vRDY:接口-外设,IBF输出接口:vSTB*:外设-接口,ACKvRDY:接口-外设,OBF数据总线5并行接口v8255A的工作方式和编程
2、v8255A的应用简易键盘的扫描程序LED数码管的多位显示6并行数据传输方式v以计算机的字长(通常是8位、16位或32位)为传输单位,一次传送一个字长的数据v适合于外部设备与微机之间进行近距离近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器v微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间7并行接口芯片8255Av具有多种功能的可编程并行接口可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路v分3个端口,共24个外设引脚v共三种输入输出工作方式88
3、255A的内部结构和引脚数据数据总线总线缓冲器缓冲器内部控制内部控制线线内部数据内部数据线线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET91.外设数据端口v端口端口A:PA0PA7A组,支持工作方式0、1、2常作数据端口,功能最强大常作数据端口,功能最强大v端口端口B:PB0PB7B组,支持工作方式0、1常作数据端口常作数据端口v端口端口C:PC0PC7仅支持工作方式0可作数据、状态和控制端口可作数据、状态和控制端口分两个
4、分两个4位,每位可独立操作位,每位可独立操作vA组控制高4位PC4PC7vB组控制低4位PC0PC3102.与处理器接口CS A1 A0读操作RD写操作WR0 0 00 0 10 1 00 1 1读端口A读端口B读端口C非法写端口A写端口B写端口C写控制字118255A的工作方式v方式0:基本输入输出方式适用于无条件传送的接口电路v方式1:选通输入输出方式适用于查询和中断方式的接口电路v方式2:双向选通传送方式适用于双向传送数据的外设适用于查询和中断方式的接口电路12方式0输入时序datadata输入端口输入端口D0D7RD CS,A1,A013方式0输出时序WRdatadata输出端口输出端
5、口D0D7 CS,A1,A014方式1输入引脚:A端口表示外设已经准备好数据通知外设停止发送数据请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器PC6-7I/O1213415方式1输入引脚:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器1213416方式1输入联络信号vSTB选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器vIBF输入缓冲器满信号,高电平
6、有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器vINTR中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据v注意:PC7、PC6可以单独用于I/O17方式1输入时序dataINTRIBF dataPA/PBD0D7STBRDvINTR高电平有效vRD*清INTR和IBF18方式1中断控制v8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断v对INTE的置位/复位操作由端口C的对应位实现端口A的INTEA对应PC4端口B的INTEB对应PC2PC4PC5PC3PA7PA0INTEAIBFAINTRASTBAP
7、C2PC1PC0PB7PB0INTEBIBFBINTRBSTBB19方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器21134PC4-5I/O20方式1输出引脚:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器2113421方式1输出联络信号vOBF输出缓冲器满信号,低有效8255A输出给外
8、设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走vACK响应信号,低有效外设的响应信号,指示8255A的端口数据已由外设接受(“完成时态”!)vINTR中断请求信号,高有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据v端口端口A的的INTEA对应对应PC6v端口端口B的的INTEB对应对应PC2vPC4、PC5可以单独用于I/O22方式1输出时序 INTR datadataPA/PBD0D7WROBFACK v当ACK、OBF都为高时,INTR有效23方式2双向方式v方式2将方式1的选通输入输入以及输出输出功能组合成一个
9、双向数据端口,可以发送数据和接收数据v只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同v方式2的数据输入过程与方式1的输入方式一样v方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据24方式2双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出用)用PC4设置INTE2(输入用)输入和输出中断通过或门输出INTRA信号25方式2双向时序data-out INTR data-outdata-
10、indata-inPA0PA7D0D7IBF WROBFACKSTBRD268255A的编程v初始化编程:一个方式控制字采用控制I/O地址:A1A011v工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10vIBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H271.写入方式控制字:控制字格式281.写入方式控制字:示例v要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出v方式控制字:10110001,即B1Hv初始化的程序段:mov dx,0fffeh;假设控制端
11、口为FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口292.读写数据端口v初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备v8255A具有锁存输出数据的能力可以读入输出方式的端口锁存器中的值,进行按位处理后再次输出v注意:不是读取外设数据,而是读取上一次CPU发给外设的数据302.读写数据端口:示例v利用8255A的输出锁存能力,可实现按位输出控制 v对输出端口B的PB7位置位的程序段:mov dx,0fffah;B端口假设为FFFAHin al,dx;读出B端口
12、原输出内容or al,80h;使PB71out dx,al;输出新的内容313.端口C的说明vC端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出在控制上,在控制上,C端口上半部和端口上半部和A端口编为端口编为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组v当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用,即被征用引脚的功能不由方式字定义不由方式字定义,而是由A、B口的工作方式确定其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式0323.写端口Cv对端口C的数据输出有两种办法通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进
13、C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效通过:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器33端口C的位控制字343.读端口Cv读取的C端口数据有两种情况未被A和B端口征用的引脚:将从定义为输入的端口读到外设输入的数据;将从定义为输出的端口读到输出锁存器中的信息被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字35D7D6D5D4D3D2D1D0方式1输入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2双向OBFAIN
14、TE1IBFAINTE2INTRA端口C的状态字A组组B组组368255A的应用作为通用的并行接口电路芯片,8255A具有广泛的应用v驱动LED数码管v打印机接口电路v37LED数码管及其接口v发光二极管LED是最简单的显示设备v由7段LED就可以组成的LED数码管vLED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中LED数码管可以显示内存地址和数据等381.LED数码管的工作原理v主要部分是7段发光管顺时针分别称为a、b、c、d、e、f、g有的产品还附带有一个小数点hv通过7个发光段的不同组合显示09显示AF(实现16进制数的显示)显示个别特殊字符,如、P 等hgfedcba39L
15、ED数码管的结构共阳极阳极阳极+5Vabcdefgh阴极阴极abcdefgh共阴极共阴极402.单个LED数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7驱驱动动电电路路abcdefgh8086CPU41单个数码管的显示LEDtb db 3fh,06h,5bh,;显示代码表显示代码表mov al,1 ;AL要显示的数字要显示的数字mov bx,offset LEDtbxlat ;换码:换码:ALDS:BXALmov dx,portout dx,al;输出显示输出显示423.多个LED数码管的显示v8个数码管:用2个8位输出端口控制v硬件上用公用的驱动电路来驱动各数码管v软
16、件上用扫描方法实现数码显示每个显示2ms438个LED数码管的接口电路段选择码(字符)位选择码44并行打印机接口v一般采用Centronics标准接口或其简化接口Centronics接口是的一个并行接口协议该协议规定了36脚簧式插头座和信号含义v其中前11条线是关键信号,它们是8条数据线、3条联络线(选通、响应和打印机忙)v还有一些特殊控制线、状态线vPC系列机的并行打印机接口是一个25针D型插口45打印机接口信号v数据数据v控制控制握手vSTB*:负脉冲的宽度在接收端应大于0.5s,数据才可靠地存入打印机数据缓冲区vACK*:打印机接收一个数据字节后就回送一个响应的负脉冲信号(脉宽约为5s)
17、,表示打印机已准备好接收新数据INIT*:初始化AUTOFEEDXT:自动换行SLCTIN*:选择打印机v打印机状态打印机状态BUSY:打印机忙SLCT:打印机联机PE:缺纸ERR*:当打印机处于无纸、脱机或错误状态之一时46打印机工作过程v通信过程主机把数据送给引脚DATA0DATA7同时送出数据选通信号STROBE*打印机在BUSY信号线上发出忙信号打印机处理好输入的数据时v撤消忙信号v同时又送出一个响应信号ACK*v注意:此时选通(STROBE*)与应答(ACK*)信号的方向与前述一般接口的信号定义相反47打印机信号与时序BUSYDATA07ACKSTROBE48用8255A方式0与打印
18、机接口BUSY DATA078255APC7PC2PA0PA7打印机打印机STROBE注意:不考虑ACK*498255A的初始化mov dx,0fffeh ;控制端口地址:控制端口地址:FFFEHmov al,10000001B;方式控制字:方式控制字:91Hout dx,al ;A端口方式端口方式0输出,输出,C端口上输出、下输入端口上输出、下输入mov al,00001111B;端口端口C的复位置位控制字,使的复位置位控制字,使PC71out dx,al50打印子程序:查询printcprocpush axpush dxprn:mov dx,0fffch;读取端口读取端口Cin al,dx
19、;查询打印机状态查询打印机状态and al,04h;PC2BUSY0?jnz prn;PC21,打印机忙,打印机忙,则循环等待则循环等待51打印子程序:输出;PC20,打印机不忙,则输出数据到,打印机不忙,则输出数据到8255mov dx,0fff8hmov al,ah;ah字符字符out dx,al;将打印数据从端口将打印数据从端口A输出输出52打印子程序:控制打印机打印mov dx,0fffeh;从从PC7送出控制低脉冲送出控制低脉冲mov al,00001110B;置置STROBE*0out dx,alnop;产生一定宽度的低电平产生一定宽度的低电平nopmov al,00001111B
20、;置置=1out dx,al;最终,最终,STROBE*产生高脉冲信号产生高脉冲信号53打印子程序:返回pop dxpop axretprintcendp54用8255A方式1与打印机接口1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印机打印机ACKACKOBFSTROBEPC4BUSY558255A方式1与打印机接口时序配合PA0PA7(DATA07)ACKOBFSTROBE568255A8255A的初始化的初始化mov dx,0fffeh ;控制端口;控制端口mov al,0a8h ;A口方式口方式1输出输出
21、10101000Bout dx,almov al,0ch ;使使INTEA(PC6)为)为0,禁止中断,禁止中断(查询模式查询模式)out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer;取字符串首地址取字符串首地址call prints;调用打印子程序调用打印子程序57打印子程序:输出printsprocpush ax;保护寄存器保护寄存器push dxprint1:mov al,bx;取一个数据取一个数据mov dx,0fff8hout dx,al;从端口从端口A输出输出 58打印子程序:查询mov dx,0fffch ;C端口
22、地址端口地址print2:in al,dxtest al,80h;检测(检测(PC7)为)为1否否?;1,说明,说明OBF*已经无效,一次打印完成已经无效,一次打印完成jz print2;为为0,说明打印尚未完成,继续检测,说明打印尚未完成,继续检测 Print3:test al,10h;检测(检测(PC4)为)为0否否?;0,说明,说明BUSY已经无效,一次打印完成已经无效,一次打印完成 jnz print3;为为1,说明打印尚未完成,继续,说明打印尚未完成,继续检测检测 59打印子程序:返回;以上两条件满足,说明打印机已接受数据以上两条件满足,说明打印机已接受数据并打印完毕。并打印完毕。i
23、nc bx;准备取下一个数据输出准备取下一个数据输出loop print1pop dx;打印结束,恢复寄存器打印结束,恢复寄存器pop axret;返回返回printsendp60示例中的两种工作方式的差别v都为查询方式v方式0中的选通信号“手动”生成v方式1中的选通信号自动生成v思考题:用方式2如何接口?61双机并行通信接口PA0PA7PC4PC08255A甲方(发送)甲方(发送)PA0PA7PC7PC6 PC38255A乙方(接收)乙方(接收)甲方:方式1,查询方式乙方:方式0AB62甲机的初始化甲机的初始化mov dx,0fffehmov al,0a0hout dx,al;工作方式字:端
24、口工作方式字:端口A方式方式1输出输出mov al,0dh;使使PC6(INTEA)1,允许中断,允许中断out dx,al63甲机发送程序trsmt:mov dx,0fffchin al,dx;查询查询PC3(INTRA)1?and al,08hjz trsmtmov dx,0fff8h;发送数据发送数据mov al,ah;ah数据数据out dx,al64乙机的初始化mov dx,0fffehmov al,98h ;方式字:方式字:A方式方式0输入、输入、C输入输入out dx,almov al,01h;使使PC0(ACK*)1,因尚未收到数据,因尚未收到数据out dx,al65乙机:查
25、询接收receive:mov dx,0fffchin al,dx;查询查询PC4(OBF*)0?and al,10hjnz receivemov dx,0fff8h ;接收数据接收数据in al,dxmov ah,al66乙机:接收响应mov dx,0fffehmov al,00h;使使PC0(ACK*)0out dx,alnop;适当延时,产生一定宽度的低脉冲适当延时,产生一定宽度的低脉冲nopmov al,01h;使使PC0(ACK*)1out dx,al;产生高脉冲产生高脉冲ACK*信号信号678255A在IBM PC/XT上的应用v工作在基本输入/输出方式0端口A为方式0输入,用来读取
26、键盘扫描码端口B工作于方式0输出,例如控制扬声器等端口C为方式0输入,读取系统状态和配置v系统的初始化编程:mov al,10011001b;方式控制字99Hout 63h,al688255A的键盘和扬声器控制示意8255APB1PB0驱动驱动电路电路扬声器扬声器GATE2CLK2时钟信号时钟信号与门与门8253的计数器的计数器2 PA7PA0PB7PB6键盘扫描码键盘扫描码键盘控制信号键盘控制信号69PC扩展槽I/O地址分配7071并口通信小结并口通信小结v掌握基本I/O接口的工作原理v掌握8255A的结构特点和引脚功能v掌握8255A的各种工作方式、编程及方式0/1的应用v掌握LED数码管的工作原理和显示方法v了解并行打印机接口的引脚定义和接口时序v习题