第07章 并行接口.ppt_第1页
第07章 并行接口.ppt_第2页
第07章 并行接口.ppt_第3页
第07章 并行接口.ppt_第4页
第07章 并行接口.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第7章并行接口,主要内容:1、并行接口的特点2、可编程并行接口芯片8255A3、8255A的0方式及其应用4、8255A的1方式及其应用5、8255A的2方式及其应用重点内容:8255A的各种工作方式及其应用,2,第7章并行接口,7.1并行I/O接口的特点,一、并行接口的定义实现并行输入/输出的接口就是并行接口。通常,一个并行接口可设计为输出接口,例如连接一台打印机;也可设计为输入接口,例如连接键盘;还可设计成双向通讯接口,既可作为输入接口又可作为输出接口,例如连接像磁盘驱动器这样的需要双向通路的设备。,二、并行接口的特点(1)以字节(8位)、字(16位)或双字(32)宽度,在接口与外设之间的多根数据线上传输数据。(2)并行数据的格式无固定格式,由被连接的外设的要求决定。(3)并行数据传输过程中,一般不作差错检验和传输速率控制(4)由于并行通信所采用的电缆较多,不太适合长距离传输。所以,并行通信通常用在数据传输率要求较高、而传输的距离相对较短的场合。,3,第7章并行接口,三、并行接口与外设的连接如图所示,并行接口左边是与CPU连接的总线,右边用一个通道和输入设备相连,另一个通道和输出设备相连,输入和输出都有独立的信号交换联络控制线。在并行接口内部用控制寄存器来寄存CPU对它的控制命令,用状态寄存器来提供各种工作状态供CPU查询,此外,还有供输出和输入数据用的输出数据锁存器和输入数据缓冲器。,4,第7章并行接口,四、并行接口的基本工作原理1、数据的输入过程当外设把数据送到数据输入线上时,通过“数据输入准备好”状态线通知接口取数。接口在把数据锁存到输入缓冲器的同时,把数据输入回答线置“1”,用来通知外设,接口的数据输入缓冲器“满”,禁止外设再送数据。同时把内部状态寄存器中“输入准备好”状态位置“1”,以便CPU对其进行查询或向CPU申请中断。在CPU读取接口中的数据后,接口将自动清除“输入准备好”状态位和“数据输入回答”信号,以便外设输入下一个数据。,5,第7章并行接口,2、数据的输出过程当数据输出缓冲器“空闲”时,接口中“输出准备好”状态位置“1”。在接收到CPU的数据后,“输出准备好”状态位复位。数据通过输出线送到外设,同时,由“数据输出准备好”信号线通知外设取数据。当外设接收一个数据时,回送一个“数据输出回答”信号,通知接口准备下一次输出数据。接口将撤消“数据输出准备好”信号并且再一次置“输出准备好”状态位为“1”,以便CPU输出下一个数据。,6,第7章并行接口,7.2可编程接口芯片8255A,一、8255A的内部结构及外部引脚,数据总线缓冲器数据的输入与输出、控制字的写入和状态信息的读出。,RESET:复位信号当8255A被复位时,片内各寄存器全部清零,A、B、C三个端口自动设为输入端口,一般与CPU的RESET相连。CS:片选信号与A1、A0合起来构成A、B、C和控制口的端口地址。A1、A0:端口地址译码00端口A01端口B10端口C11控制口RD/WR:读写控制信号,8255A与外设接口为A、B、C三个8位端口寄存器,对应PA0PA7、PB0PB7和PC0PC7共24条双向三态线。通常A口和B口作为输入、输出端口,C口作为控制/状态信息端口,C口在方式控制字的控制下可分为二个4位端口,分别与A口、B口配合使用。C口还可以进行位控制,通过指令使其任何一位置位或复位。,内部控制部分A、B组控制电路组成,根据CPU送来的控制字用以决定两组端口(A组为A口和C口的高4位,B组为B口和C口的低4位)的工作方式,也可根据控制字的要求对C口控位进行置位或复位。,7,第7章并行接口,二、8255A的控制字与初始化编程,例:现要求8255A的各个端口处于如下工作方式,端口A:方式0,输出;端口B:方式0,输入;端口C的高4位为输出,端口C的低4位为输入。端口地址60H63H写出方式选择控制字。,1、方式选择控制字,8,第7章并行接口,2、C口按位置0/置1控制字,1:置10:置0,未使用,特征位,例:若8255A的端口地址为220H223H,现要求端口C的PC7置1,PC3置0。写出实现上述要求的程序。,注意:虽然是对端口C的某一位进行置1或清0,但该控制字要写入控制口而不是写入端口C。,9,第7章并行接口,练习:利用8255的PC3产生负脉冲作为打印机接口电路的数据选通信号,端口地址为300H303H。写出实现上述要求的程序。,movdx,303Hmoval,00000110Boutdx,alnopnopmoval,00000111Boutdx,al,10,第7章并行接口,3、初始化编程的步骤(1)向8255控制寄存器写入方式选择控制字,从而预置端口的工作方式。(2)当端口预置为方式1或方式2时,再向控制寄存器写入C口置0/置1控制字,使相应端口的中断允许触发器置0或置1,从而禁止或允许端口提出中断。确定8255A以查询方式还是中断方式交换信息。,11,第7章并行接口,练习:8255端口地址(200H203),8255A的A口指定为方式1,输入,C口上半部分定为输出;B口指定为0方式,输出,C口下半部分定为输入。写初始化程序。,movdx,203Hmoval,10110001Boutdx,al,12,第7章并行接口,练习:写出使口A的PA2和PA5同时复位和同时置位的初始化程序。,movdx,200Hinal,dxandal,11011011Boutdx,al,movdx,200Hinal,dxmovah,aloral,00100100Boutdx,al,13,第7章并行接口,7.3并行接口芯片8255A的工作方式,14,第7章并行接口,一、方式0及其应用(基本的输入/输出)1、特点(1)0方式是一种基本输入/输出工作方式。通常不用联络信号或不使用固定的联络信号,因此,所谓基本I/O方式是指查询方式传送,也包括无条件传送。输出锁存,输入有三态缓冲能力而无锁存功能。(2)在0方式下,彼此独立的两个8位和两个4位并行口,共24根I/O线全部由用户支配,都能被指定作为输入或者作为输出用,共有16种不同的使用组态。要特别强调的是,在0方式下,只能把C口的高4位为一组或低4位为一组同时输入或输出,不能再把4位中一部分作输入另一部分作输出,即4位一起使用。,15,第7章并行接口,一、方式0及其应用(基本的输入/输出)1、特点(3)在0方式下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪根线完成某种联络功能,这与后面要讨论的在1方式、2方式下设置固定的专用联络信号线不同。由于无固定的专用联络信号,因此也就在端口与I/O设备之间无固定的时序关系,由用户根据数据传送的要求决定输入/输出的操作过程。0方式也没有设置固定的状态字。(4)是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或作输出,不能指定端口同时既作输入又作输出。,16,2、使用场合(1)同步传送时,发送方和接收方的动作由一个时序信号来管理,双方互相知道对方的动作,不需应答信号,CPU不需要查询外设的状态。在同步传送方式下使用8255A时,3个数据端口可实现三路数据传输。(2)查询方式传输时,需要有应答信号。这时一般将A、B口作为数据端口,C口的4个数位规定为输出口,用来输出一些控制信号,C口的另外4个数位规定为输入口,用来读入外设的状态。即用C口来配合A口和B口的输入输出操作。,第7章并行接口,17,第7章并行接口,例1:设8255A端口A工作在方式0下,通过A口输出数据控制8个指示灯轮流点亮。电路连接如图所示。(地址为04A0H04A6H),18,第7章并行接口,MOVDX,04A6H;控制口地址送DXMOVAL,80H;写工作方式控制字OUTDX,ALMOVDX,04A0H;A端口地址送DXMOVAL,0FEH;低电平灯亮AA1OUTDX,AL;输出数据CALLDELAY;延时ROLAL,1;轮流点亮JMPAA1注意:执行此段程序时要注意延时子程序的延时时间,若延时时间不够,指示灯会全亮或全灭。,19,第7章并行接口,例2:开关输入与LED显示与ISA总线的接口电路如图所示。8255A端口A编程为方式0,端口A向7段LED显示器提供段码,端口C作为开关数据输入。本例中,接口的功能是:将4位开关输入的二进制数转换成对应的16进制数,并在7段LED上显示。,20,第7章并行接口,21,第7章并行接口,DATASEGMENT;定义7段码表SEGTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,10000001B;8255A控制字MOVDX,203HOUTDX,ALMOVBX,OFFSETSEGTAB,22,第7章并行接口,MOVDX,202H;输入开关状态INAL,DXMOVAH,0ANDAL,0FH;屏蔽高4位ADDBX,AX;获取输入数字对应的7段码地址MOVAL,BX;取7段码MOVDX,200H;向端口A输出7段码OUTDX,ALMOVAX,4C00H;返回DOS操作系统INT21HCODEENDSENDSTART,23,第7章并行接口,例:如下图所示8255A作为并行打印机的接口,CPU采用查询方式把存放在Buf缓冲区的256个字符(ASCII)送去打印。,打印机与CPU间传送数据的过程:(1)BUSY=1等待;BUSY=0CPU送数据至数据线(2)当CPU发STB数据选通信号,数据至打印机(3)打印机收到数据,发“忙”信号,打印机正处理数据。当数据处理完,打印机撤消“忙”信号,直至busy=0,24,第7章并行接口,codesegmentassumecs:code,ds:codeorg100hstart:movax,codemovds,axmovdx,303hmoval,10000001b()moval,00001111boutdx,almovsi,offsetbufmovcx,()L:movdx,302hinal,dxandal,()jnzLmovdx,(),moval,sioutdx,almovdx,303hmoval,00001110boutdx,alnopnopmoval,00001111boutdx,alincsideccxjnzLmovax,4c00hint21hbufdb256个子ASCII字符codeendsendstart,outdx,al,256,04h,300h,25,第7章并行接口,练习1、8255A有多少条I/O信号线?分别是什么?2、8255A使用了多少个端口?分别是什么端口?各有何功能?3、当把82H装入8255A的控制寄存器后,其端口A、B、C的工作和I/O配置是什么?4、如果8255A的端口A、B和C设置为方式0,且端口A和B用于输入而端口C用于输出,8255的端口地址为1000H1003H,编写一个装入该控制字的指令序列?5、简述8255A方式0的特点及应用场合。,26,第7章并行接口,二、方式1及其应用(选通型的输入/输出方式)A口、B口用方式1输入/输出传输时,要利用端口C提供的选通信号,而这些选通信号与端口C的各位之间有着固定的对应关系。1、特点(1)任何一个端口可作为输入口,也可作为输出口,各端口间无必然关系。(2)各个端口的输入或输出有16种不同的组合,可适用多种不同场合。(3)如果A、B口都工作在方式1,则端口C有6位被规定为配合方式1工作的信号,剩下的2位仍可作为输入或输出。,27,第7章并行接口,2、方式1时输入端口对应的控制信号,1,0,1,1,1/0,X,X,X,D7,D6,D5,D4,D3,D2,D1,A组工作于方式1输入的控制字,D0,1,X,X,X,X,1,1,X,D7,D6,D5,D4,D3,D2,D1,B组工作于方式1输入的控制字,D0,1,0,1,1,1/0,1,1,X,D7,D6,D5,D4,D3,D2,D1,A、B组都工作于方式1输入的控制字,D0,STB(Storbe):选通信号输入端,它是由外设送往8255A的,当STB有效时,8255A接收外设送来的一个8位数据,从而使8255A的输入缓冲器中得到一个新的数据。,IBF(InputBufferFull):缓冲区满信号,它是8255A输出的状态信号。表示当前已有一个新的数据在输入缓冲器中,该信号由STB置位,RD复位。,INTR(IntrruptRequest):中断请求信号,它是当STB和IBF均为高电平时,8255向CPU发出的,CPU响应读取输入缓冲器的数据,由RD复位。,INTE(IntrruptEnable):中断允许信号,它是一个控制中断允许或中断屏蔽的信号。INTE无外部引脚,由软件通过对C口PC4或PC2置1开、置0禁。,28,第7章并行接口,29,第7章并行接口,OBF(OutBufferFull):缓冲区满信号,它是8255A输出的状态信号。通知外设取走数据的信号,该信号由WR置位,ACK使其复位。,3、方式1时输出端口对应的控制信号,1,0,1,0,1/0,X,X,X,D7,D6,D5,D4,D3,D2,D1,A组工作于方式1输出的控制字,D0,1,X,X,X,X,1,0,X,D7,D6,D5,D4,D3,D2,D1,B组工作于方式1输出的控制字,D0,1,0,1,0,1/0,1,0,X,D7,D6,D5,D4,D3,D2,D1,A、B组都工作于方式1输出的控制字,D0,ACK(Acknowledge):外设响应信号,表示CPU通过8255A输出的数据已经送到外设。,INTR(IntrruptRequest):中断请求信号,它是当ACK和OBF均为高电平时,8255向CPU发出的,以使CPU再次输出数据,由WR复位。,INTE(IntrruptEnable):中断允许信号,它是一个控制中断允许或中断屏蔽的信号。INTE无外部引脚,由软件通过对C口PC6或PC2置1开、置0禁。,30,第7章并行接口,31,第7章并行接口,4、方式1的使用场合选定方式1,在规定一个端口的输入输出方式的同时,就自动规定了有关的联络、控制信号和中断请求信号。如果外设能向8255A提供输入数据选通信号或输出数据接收应答信号,就可采用方式1,方便又有效地传送数据。具体地来说,方式1有二种用法:(1)中断方式:将INTE置为1,A组和B组可以使用各自的INTR信号申请中断。(2)查询方式:CPU通过读C端口,可以查询IBF、OBF信号的当前状态,决定是否立即进行数据传输。,32,第7章并行接口,例:打印机是经常使用的外设,除少数情况都使用并行接口。它有8位数据线DATA1DATA8,数据选通信号STROBE,应答信号ACK和忙信号BUSY,8255A工作在方式1,ACK与PC6(端口A的ACKA)相连,而STROBE由PC4通过软件方式产生,PC3(INTRA)产生的中断请求送入PC的IRQ7引脚。设8255A端口地址为200H203H,8255A传送N个字符给打印机。,33,第7章并行接口,DATASEGMENTBUFDBNDUP(?)INT0F_SEGDW?;存0FH号中断向量的段地址INT0F_OFFDW?;存0FH号中断向量的偏移地址NEQU100;打印字节数DATAENDSSTACKSEGMENTPARASTACKSTACKDW100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA;初始化数据段MOVDS,AXCLIMOVAX,350FH;取0F号中断向量INT21HMOVINT0F_SEG,ES,34,第7章并行接口,MOVINT0F_OFF,BXPUSHDSMOVAX,SEGPRINT_INT;设置新中断向量MOVDS,AXMOVDX,OFFSETPRINT_INTMOVAX,250FHINT21HPOPDSINAL,21HANDAL,7FHOUT21H,AL;允许PCIRQ7中断MOVDX,203HMOVAL,10100000B;A口方式1输出,PC4为输出OUTDX,ALMOVAL,00001101B;置PC6=1,允许8255A中断OUTDX,ALMOVDX,203H;8255A控制端口地址,35,第7章并行接口,MOVAL,00001001B;8255APC4输出高电平OUTDX,ALSTI;开中断MOVBX,OFFSETBUF;缓冲区首地址MOVCL,N;传送长度MOVAL,BX;取数据INCBXMOVDX,200HOUTDX,AL;向8255A输出第一个字节DECCLMOVDX,203HMOVAL,00001000B;输出PC4低电平OUTDX,ALNOP;延时NOPMOVAL,000010001B;输出PC4高电平(产生STROBE信号)OUTDX,AL,36,第7章并行接口,HERE:CMPCL,0JNZHERECLIPUSHDSMOVAX,INT0F_SEG;恢复类型0FH原中断向量MOVDS,AXMOVDX,INT0F_OFFMOVAX,250FHINT21HPOPDSINAL,21H;禁止IRQ7中断ORAL,80HOUT21H,ALMOVAH,4CH;返回DOSINT21H,37,第7章并行接口,;*中断服务程序*PRINT_INTPROCNEARPUSHDXPUSHAXMOVDX,200HMOVAL,BXOUTDX,AL;8255A端口A输出下一个字节INCBX;修改地址DECCL;字节计数MOVAL,00001000B;产生STROBE信号MOVDX,203HOUTDX,ALNOPNOPMOVAL,00001001BOUTDX,AL,38,第7章并行接口,MOVAL,20H;结束中断OUT20H,ALPOPAXPOPDXIRETPRINT_INTENDPCODEENDSENDSTART,39,第7章并行接口,设8255A和相应的实验电路,如上图所示。要求先预置开关K2K0为一组状态,然后按下自复按钮K产生一个负脉冲信号,输入到PC4。用发光二极管LEDi亮,显示K2K0的状态。主机键盘有按任意键按下时结束演示。查询方式:当PC4收到负脉冲之后,K2K0的状态信息被存入A口数据寄存器,8255A使IBFA(PC5)=1。程序查询PC5,当PC5=1时执行A口输入指令。给程序写明注释。,40,第7章并行接口,datasegmentmesgdb8255Aready,0dh,0ah,$tabdb11111110bdb11111101bdb11111011bdb11110111bdb11101111bdb11011111bdb10111111bdb01111111bdataendscodesegmentassumecs:code,ds:databeg:movax,datamovds,axcalli8255Amovah,9movdx,offsetmesgint21h,scan:movah,1int16hjnzreturnmovdx,21ahinal,dxtestal,00100000bjzscanmovdx,218hinal,dxandal,07hmovbx,offsettabxlattabmovdx,219houtdx,aljmpscanreturn:movah,4chint21h,41,第7章并行接口,i8255aprocmovdx,21bhmoval,10110000boutdx,almoval,08houtdx,almovdx,219hmoval,0ffhoutdx,alreti8255aendp,42,第7章并行接口,设系统机外扩了一片8255A和相应的实验电路,如上图所示。要求从8255端口A逻辑开关K7K0作为输入,端口B接发光二极管LEDi编程当主机键盘无按键按下时从8255端口A输入数据并从端口B输出,验证结果。开关闭合为0,断开为1;输出PBi=0,LEDi亮。当主机键盘有键按下时结束演示。完成程序并写明注释。,43,第7章并行接口,codesegmentassume()start:movdx,21bhmoval,()outdx,alinput:movdx,()in(),dxmovdx,()outdx,()movah,1int16hjz()movah,()int21hcode()end(),44,第7章并行接口,三、方式2(双向传输方式)只适合于端口A,在方式2下,外设可以在8位数据线上,既往CPU发送数据,又从CPU接收数据。当A口工作于方式2时,C端口自动提供相应的控制信号。1、方式2工作时的控制信号,45,第7章并行接口,2、方式2的使用场合方式2是一种双向工作方式,如果一个外设既是输入设备,又是输出设备,并且输入和输出是分时进行的,那么将此设备与8255A的A口相连,并使A口工作在方式2就非常方便。例如,磁盘就是一种这样的双向外设。CPU既能对磁盘读,又能对磁盘写,并且读和写在时间上是不重合的。所以,可以将磁盘驱动器的数据线和8255A的A口相连,再使PC3PC7与磁盘控制器的控制线和状态线相连,就可以进行双向的数据传输。,46,第7章并行接口,例:使用两台CPU系统,传送100个数据,一台为主机CPU,其相应的接口称为主侧,另一台为从机CPU,其相应的接口称为从侧。主机CPU以中断方式输入输出数据,主侧8255A工作在方式2,从机CPU采用查询式输入输出数据。从侧8255A工作在方式0(两侧8255A地址都是04A0H04A6H)。分析:(1)输入数据时,由从侧8255A发给主侧8255A的控制信号STB有效时,打开主侧8255A输入锁存器,当数据被锁存后,主侧8255A输出信号IBF才有效。(2)输出数据时,主机CPU把数据输入给主侧8255A输出锁存器,发出OBF信号,通知从侧8255A,从侧8255A发回ACK信号,用来启动三态输出缓冲器输出数据。,47,第7章并行接口,48,第7章并行接口,;主程序MOVBL,64H;输入100个数计数器MOVCL,64H;输出100个数计数器MOVSI,0100H;输出数据所在内存单元首址送SIMOVDI,0200H;输入数据存放内存单元首址送DIMOVDX,04A6H;8255A控制口地址送DXMOVAL,0C0H;工作方式2控制字写入A口MOVDX,ALMOVAL,09H;PC41,允许输入中断MOVDX,ALMOVAL,0DH;PC61,允许输出中断STI;开中断AA5:CMPBL,00HJNZAA5,49,第7章并行接口,CMPCL,00HJNZAA5CLI;关中断HALT;中断服务程序INT:MOVDX,04A4H;8255状态口地址(C口)送DXINAL,DX;采集8255状态口的状态值MOVAH,AL;保存状态ANDAL,20H;判断输入缓冲器是否满(PC)JZAA1;IBF0,无数据,转走MOVDX,04A0H;A口地址送DXINAL,DX;输入缓冲器满IBF=1,取数据MOVDI,AL;保存数据,50,第7章并行接口,INCDI;修改地址指针DECBLJMPAA2AA1:MOVAL,AHANDAL,80H;判断输出缓冲器是否满JZAA2;OBF0,满,有数据,转向AA2MOVDX,04A0H;A口地址送入DXMOVAL,SI;OBF=1输入缓冲器空,取数据OUTDX,AL;输出数据INCSI;修改地址指针DECCLAA2:STIIRET,51,第7章并行接口,;从机程序MOVSI,0100H;源数所在的存储单元首地址送SIMOVDI,0200H;目标数所在的存储单元首地址送DIMOVBL,64H;设置输入数据个数计数器MOVCL,64H;设置输出数据个数计数器MOVDX,04A6H;8255控制口地址送DXMOVAL,83H;写工作方式选择控制字(口输出,B口输入)OUTDX,ALAA4:MOVDX,04A4H;C口地址送DXMOVAL,0F0H;初始化C口高4位OUTDX,ALINAL,DX;检测C口低4位状态MOVAH,ALANDAL,02H;检测主系统IBF状态,52,第7章并行接口,JNZAA1;主侧8255A输入缓冲器满转走到AA1MOVAL,SI;主侧8255A输入缓冲器空,可以取数,;向主CPU传送数据MOVDX,04A0H;口地址送DXOUTDX,AL;输出数据给主侧8255MOVDX,04A4H;C口地址送DXMOVAL,0D0H;选通主侧8255AOUTDX,ALMOVAL,0F0H;关闭选通信号OUTDX,ALINCSI;修改数据区地址指针DECCLJNZAA4CMPBL,00HJNZAA4JMPAA3,53,第7章并行接口,AA1:MOVAL,AHANDAL,01H;检测主侧8255AOBF状态JNZAA4;OBF1,主侧8255A输出缓冲器;无数据,转向AA4MOVDX,04A4HMOVAL,0E0H;从侧8255A发ACK信号,启动;主侧8255A输出缓冲器OUTDX,ALMOVDX,04A2H;B口地址选DXINAL,DX;从主侧8255A取数MOVDI,AL;保存数据MOVDX,04A4HMOVAL,0E0H;从侧8255AACK信号无效OUTDX,ALINCDI;修改数据区地址指针,54,第7章并行接口,DECBLJNZAA4CMPCL,00HJNZAA4AA3:HALT,55,第7章并行接口,7.4并行接口芯片8255A的应用,一、8255A与CPU的连接,(1)8255A和8086/8088系统连接时,数据线和控制线一般直接和系统总线的相应信号相连,片选信号和地址译码器的输出相连,三个端口的数据线和外设的数据线直接相连。但是对8255A的端口选择信号A1和A0,在连接上有所不同。(2)8088系统使用8位数据总线,8255A的A1和A0可以直接和系统地址总线的A1和A0相接。,56,第7章并行接口,(3)在8086系统中,由于采用16位数据总线,CPU在传输数据时,偶地址端口的数据总是通过低8位的数据总线输入/输出,奇地址端口的数据总是通过高8位数据总线输入/输出。所以,当8255A的D7D0和系统数据总线的低8位相连时,要求CPU访问8255A的4个端口地址均为偶地址,而8255A自身又规定其4个片内端口地址A1和A0应为00、01、10和11。为了满足CPU和8255A的各自不同要求,连接时,须将8255A的A1,A0和系统地址总线的A2,A1分别相连。也就是说,CPU访问8255A的四个端口时,其编程地址应为四个连续的偶地址,系统总线的A0总为0。8255A和8086系统的连接示意图。,57,第7章并行接口,58,第7章并行接口,二、8255A基本输入输出应用,一个输入端口组成的键盘接口。使用可编程的通用并行接口。图中的,8255A芯片A口作为行线端口,B口作为列线端口。采用“反转法”进行键盘的扫描。设8255A为方式0,A口输出,B口输入。向A口输出00H,从B口读入键盘列线值。如果无键按下,则B口读入低4位值为0FH,否则,就有键按下。在有键按下时,将8255A反向设置为A口输入,B口输出。把B口读入的列值从B口输出,同时从A口读入行值。用读入的行、列值查表,可以确定是哪一个键被按下。由于和8086相连,所以8255A的4个编程地址均采用偶地址,分别设为208H、20AH、20CH和20EH。8255A的A端口、B端口均采用方式0工作。,59,第7章并行接口,60,第7章并行接口,KEYSCANPROCNEARBEGIN:MOVDX,20EH;置8255A控制口地址MOVAL,82H;8255A方式控制字,A口工作在方式0;输出,B口工作在方式0输入OUTDX,AL;输出8255A方式控制字LOOP1:MOVDX,208H;A口地址送DXMOVAL,00HOUTDX,AL;A口输出00H扫描键盘MOVDX,20AH;B口地址送DX中INAL,DX;读入键盘列值ANDAL,0FH;保留低4位CMPAL,0FHJELOOP1;无键按下,重新扫描CALLDELAY;有键按下,延时去抖动INAL,DX;再次读B口,检查有无键按下,61,第7章并行接口,ANDAL,0FH;保留低4位CMPAL,0FHJELOOP1;无键按下,重新扫描MOVKEY,AL;有键按下,列值保存在KEY单元MOVDX,20EH;置8255A控制口地址MOVAL,90H;8255A方式控制字,B口方式0输出,;A口方式0输入OUTDX,AL;输出8255A方式控制字MOVDX,20AH;B口地址送DX中MOVAL,KEY;从KEY单元取出列值OUTDX,AL;向B口输出列值,反向扫描MOVDX,208H;A口地址送DXINAL,DX;从A口读入行值ANDAL,1FH;保留低5位CMPAL,1FH,62,第7章并行接口,JEBEGIN;无键按下,重新扫描CALLKEYVALUE;转键值处理程序:查表获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论