微机原理与接口技术1课件_第1页
微机原理与接口技术1课件_第2页
微机原理与接口技术1课件_第3页
微机原理与接口技术1课件_第4页
微机原理与接口技术1课件_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

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

文档简介

第7章12/29/2022第7章12/28/20221第7章并行接口教学目的和要求:掌握8255A的功能、结构和工作原理掌握并行接口电路的设计方法了解键盘、LED显示器的工作原理能够编写基于8255A的简单控制程序3112/29/2022第7章并行接口教学目的和要求:3112/28/20222本章难点18255A的工作方式1的理解2基于8255A芯片的接口电路设计3012/29/2022本章难点18255A的工作方式1的理解3012/28/203并行通信特点:以数据字节或字为单位进行数据传送;适合近距离传送;对传送的信息不要求固定格式。分类输入和输出数字和模拟单向和双向简单接口和可编程接口12/29/2022并行通信特点:12/28/20224串行通信特点:按位传送造价低,适合于远距离传送传送方式全双工半双工单工12/29/2022串行通信特点:12/28/20225芯片简介:Intel8255A是一种的可编程的并行接口芯片。通过编写初始化程序,可以设定芯片的工作方式。8255A通用性强,灵活性高,可以为多种不同的CPU与外设之间提供并行输入/输出通道。7.3并行接口芯片8255A2812/29/2022芯片简介:7.3并行接口芯片8255A2812/28/261.引线连接系统端的主要引线:D0----D7CSRDWRA0,A1

REAST

A1A000A端口01B端口10C端口11控制寄存器12/29/20221.引线连接系统端的主要引线:A1A012/287引线连接外设端的引脚:PA0——PA7PB0——PB7PC0——PC7分别对应A、B、C三个端口12/29/2022引线连接外设端的引脚:分别对应A、B、C三个端口12/28/87.3.18255A的内部结构8255A内部具有三个带锁存的数据端口,可以与外设进行并行数据交换,各个端口内具有中断控制逻辑和选通控制逻辑。外设与CPU之间可通过条件传输方式或中断方式进行数据交换。2712/29/20227.3.18255A的内部结构8255A内9它是具有多种功能的可编程并行接口芯片最基本的接口电路:三态缓冲器和锁存器是CPU与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路有3个端口有三种输入输出工作方式特点2612/29/2022它是具有多种功能的可编程并行接口芯片特点2612/28/20108255A的内部结构数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESETB组:端口B+端口CA组:端口A+端口C2512/29/20228255A的内部结构数据内部控制线内部数据线D0~D7A组A111.外设数据端口A、B、C端口A:PA0~PA7A组,支持工作方式0、1、2端口B:PB0~PB7B组,支持工作方式0、1端口C:PC0~PC7仅支持工作方式0A组控制高4位PC4~PC7B组控制低4位PC0~PC3端口A:PA0~PA7常作数据端口,功能最强大端口B:PB0~PB7常作数据端口端口C:PC0~PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握2412/29/20221.外设数据端口A、B、C端口A:PA0~PA7端口A122.A组控制和B组控制它们可以接收芯片内部总线的控制字,也可以接收来自读写控制电路的读/写命令。由此决定两组端口的工作方式和读/写操作。1)A组控制电路控制端口A和端口C的高4位(PC7-PC4)的工作方式和读/写操作。2)B组控制电路控制端口B和端口C的低4位(PC3-PC0)的工作方式和读/写操作。23A口上C口下C口B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0内部总线12/29/20222.A组控制和B组控制它们可以接收芯片内133.数据总线缓冲器8255A具有一个双向三态的8位数据缓冲器,它是8255A与CPU系统总线的数据接口。1)当CPU执行OUT输出指令时,可将控制字或数据通过该缓冲器传送给8255A.2)当CPU执行IN输入指令时,可将状态信息或数据通过该缓冲器传送给CPU.因此,输入数据、输出数据、CPU给8255A发送的控制字都要通过它。可见,它是CPU与8255A数据交换的必由之路。22缓冲器数据总线DBoooRDWRA0A1RESETCS读/写控制逻辑内部总线至数据端口至控制寄存器12/29/20223.数据总线缓冲器8255A具有一个双向三态的8位144.读/写控制逻辑电路负责管理整个8255A的数据传输方向及过程。接收CS和地址总线A1、A0的信号(8086系统中为A2、A1)。接收控制总线的信号RESET、WR、RD。将这些信号组合得到A组和B组的控制部件的控制命令,完成对数据、状态和控制信息的传输。21缓冲器数据总线DBoooRDWRA0A1RESETCS读/写控制逻辑内部总线至数据端口至控制寄存器12/29/20224.读/写控制逻辑电路负责管理整个8255A的数据传输方向及158255A控制信号和数据传输之间的关系CSA1A0RDWR数据传输说明00001从端口A送到数据总线00101从端口B送到数据总线01001从端口C送到数据总线00010从数据总线送到端口A并锁存00110从数据总线送到端口B并锁存01010从数据总线送到端口C并锁存01110将控制字送到控制寄存器1××××D7~D0高阻态,8255A不工作01101非法状态0××11D7~D0高阻态2012/29/20228255A控制信号和数据传输之间的关系CSA1A0RDWR数168255A的初始化8255A的端口有3种基本的工作方式。具体采用哪一种工作方式是依靠写入控制寄存器中的控制字确定。通常把这个过程叫做8255A的初始化编程。CPU通过OUT指令往8255A的控制端口写入控制字来决定它的工作方式。1912/29/20228255A的初始化8255A的端口有3种基本的工177.3.28255A的工作方式方式0:基本的输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通的输入输出方式

适用于查询和中断方式的接口电路方式2:双向传输方式用于与双向传送数据的外设适用于查询和中断方式的接口电路1812/29/20227.3.28255A的工作方式方式0:基本的输入输188255A的工作方式与端口之对应17

端口A:方式0、方式1、方式2端口B:方式0、方式1端口C:方式012/29/20228255A的工作方式与端口之对应17端口A:方式0、方19方式0方式0称为基本的输入/输出方式。端口A和端口B可以通过方式选择控制字设定该端口作为输入端口或输出端口来工作。端口C则分为两个4位端口,高4位作为一个端口,低4位作为另一个端口。它们可以通过方式选择控制字规定该端口作为输入端口或输出端口1612/29/2022方式0方式0称为基本的输入/输出方式。1612/28/20220方式0基本特点:1.4个端口相互独立,都可作为输入端口或输出端口2.各个端口的输入输出可以有16种不同组合(P187表9-2)3.各个端口工作于方式0时,输出具有锁存功能,而输入没有锁存。输出锁存是在没有新的数据输出之前,一直保持以前的输出信息。4.端口C工作于方式0时,可以按照置1/置0控制字改变端口C的任一引脚的电平。1512/29/2022方式0基本特点:1.4个端口相互独立,都可作为输入端口或输21方式1方式1称为选通的输入/输出方式。与方式0的区别点:端口A和端口B用方式1进行输入或输出数据时,利用端口C提供的选通信号和应答信号,而这些信号与端口C中的数位有着固定的对应关系。这种关系是8255A本身决定的,不能用程序改变。而使用方式0没有固定的对应关系。1412/29/2022方式1方式1称为选通的输入/输出方式。与方式0的区别点:1422基本特点:1、端口A和端口B可分别作为两个输入或输出端口工作在方式1。具体安排由方式选择控制字决定。2、若端口A和端口B只有一个端口工作方式1,则端口C中就有3条线被规定为配合方式1工作的联络信号。此时另一个端口可以工作在方式0,端口C中剩余的5条线也可以工作于方式0。3、若端口A和端口B都工作于方式1,则端口C中就有6条线被规定为配合方式1工作的联络信号。此时端口C中剩余2条线仍可以工作于方式0。4、端口A和端口B在方式1下,输入和输出均具有锁存功能。5、当端口C的相应引脚规定为联络信号时,将不能通过编程再改变。1312/29/2022基本特点:1、端口A和端口B可分别作为两个输入或输出端口工23方式1输入引脚:端口A数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中断允许触发器1212/29/2022方式1输入引脚:端口A数据选通信号输入缓冲器满信号中断请求信24方式1输入引脚:端口BPC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能1112/29/2022方式1输入引脚:端口BPC2PC1PC0PB7~PB0INT25方式1输入联络信号STB——(Strobe)选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF——(InputBufferFull)输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR——(InterruptRequest)中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据1012/29/2022方式1输入联络信号STB——(Strobe)选通信号,26方式1输入时序dataINTRIBF

data输入端口D0~D7STBRDSTB和IBF是外设和8255A的一对应答联络信号,为的是可靠地输入数据912/29/2022方式1输入时序dataINTRIBFdata输入端口D027方式1中断控制8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2812/29/2022方式1中断控制8255A的中断由中断允许触发器INTE控制828方式1输出引脚:端口A外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中断允许触发器712/29/2022方式1输出引脚:端口A外设响应信号输出缓冲器满信号中断请求信29方式1输出引脚:端口BPC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器612/29/2022方式1输出引脚:端口BPC2PC1PC0PB7~PB0INT30方式1输出联络信号OBF——(OutputBufferFull)输出缓冲器满信号,低电平有效8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK——(Acknowledge)响应信号,低电平有效外设的响应信号,指示8255A的端口数据已由外设接收INTR——(InterrruptRequest)中断请求信号,高电平有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续发送数据端口A的INTEA对应PC6端口B的INTEB对应PC2512/29/2022方式1输出联络信号OBF——(OutputBufferF31方式1输出时序

INTR

datadata输出端口D0~D7WROBFACK

OBF和ACK是外设和8255A的一对应答联络信号,为的是可靠地输出数据412/29/2022方式1输出时序INTRdatadata输出端口D0~D732INTE-中断允许信号。是控制8255A能否向CPU发中断请求信号,它没有外部引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。PA7~PA08PC4STBAPC5IBFAPC3INTRAPC6PC7I/O线&INTEAoRD方式1(A口)INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当IBF=1、STB=1且INTE=1时,INTR=1。注意12/29/2022INTE-中断允许信号。是控制8255A能否向CPU发中断33方式2双向传输方式方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据312/29/2022方式2双向传输方式方式2将方式1的选通输入输出功能组合成一34方式2双向引脚PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号212/29/2022方式2双向引脚PC6PC7PC3PA7~PA0INTE1OB35方式2双向时序data-out

INTR

data-outdata-indata-inPA0~PA7D0~D7IBF

WROBFACKSTBRD112/29/2022方式2双向时序data-outINTRdata-ou36端口C状态字8255A工作在方式0时,C口各位作输入输出用。当工作在方式1和方式2时,C口产生与外设的联络信号。此时。读入C口各位的内容可检查或测试外设的状态。C口的状态字如下:(1)方式1I/OI/OIBFA输入INTEAINTRAINTEBIBFBINTRBD7D6D5D4D3D2D1D0I/OI/O输出INTEAINTRAINTEBOBFBINTRBD7D6D5D4D3D2D1D0OBFA(2)方式2*INTE1INTRAINTE2IBFAD7D6D5D4D3D2D1D0OBFA**12/29/2022端口C状态字8255A工作在方式0时,C口377.3.3基于8255A的应用编程初始化编程:设定方式控制字的过程采用控制寄存器端口的地址:A1A0=11工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10278255控制字方式控制字C口置0/置1控制字12/29/20227.3.3基于8255A的应用编程初始化编程:设定方式控388255A的内部结构数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESETB组:端口B+端口CA组:端口A+端口C2512/29/20228255A的内部结构数据内部控制线内部数据线D0~D7A组A3911.方式控制字D6D5D4D3D2D1D0端口C(PC3-PC0)1=输入0=输出端口B1=输入0=输出方式选择0:方式01:方式1B组方式选择00:方式001:方式11*:方式2端口A1=输入0=输出端口C(PC7-PC4)1=输入0=输出A组标识位12/29/202211.方式控制字D6D5D4D3D2D1D0端口C端口B401.方式控制字:例1MOVDX,0F006H ;控制端口为F006H MOVAL,91H ;方式控制字 OUTDX,AL ;送到控制端口D7D6D5D4D3D2D1D0如果8255A芯片的按照下列要求工作:端口A:方式0,输入;端口C上半部:输出;端口C下半部:输入;端口B:方式0,输出。设控制端口的地址为:F006H。请编写相应的初始化程序。1)先写出方式控制字2)编写初始化程序11000010方式控制字:10010001B或91H2512/29/20221.方式控制字:例1MOVDX,0F006H 418255A输入输出输出PA7PA6PA5PA4PA3PA2PA1PA0端口APC7PC6PC5PC4端口C的上半部PB7PB6PB5PB4PB3PB2PB1PB0端口BPC3PC2PC1PC0端口C的下半部24输入12/29/20228255A输入输出输出PA7PA6PA5PA4PA3PA2P42例2:在一个系统中,8255A的四个端口地址分别为:320H、322H、324H和326H。要求:

1)端口A、B、C均工作于方式0,端口A作为输入端口,端口B和C作为输出端口。

2)将端口A输入的信息直接输出到端口B。

3)检测端口A输入的信息的PA7位。当PA7=1时,端口C输出FFH,否则,输出00H。

请编写程序,完成上述功能。2312/29/2022例2:在一个系统中,8255A的四个端口地址分别为:320H43程序流程图8255初始化读A口的信息PA7=1?N开始从B口输出YC口输出FFHC口输出00H结束设定8255的方式全部为:方式0A:输入;C和B:输出用IN指令读入端口A的信息用OUT指令从端口B输出信息PA7=1:C口输出FFHPA7=0:C口输出00H12/29/2022程序流程图8255初始化读A口的信息PA7=1?N开始从B口441)先写出8255A的方式控制字。D7D6D5D4D3D2D1D010000010方式控制字为10010000B或90H2)编写实现的程序(题目)MOVDX,0320H;端口A的地址送DXINAL,DX;读端口A的输入数据22MOVAL,90H;将8255A的方式控制字MOVDX,0326H;控制口的地址送DXOUTDX,AL;初始化8255A12/29/2022D7D6D5D4D3D2D1D010000010方式控制字为45MOVAH,AL;将端口A的输入的数据保存在AH中MOVDX,0322H;端口B的地址送DXOUTDX,AL;将从端口A输入数据从端口B输出MOVDX,0324H;端口C的地址送DXMOVAL,00H;当PA7=0时,端口C输出00HTESTAH,80H;检测从端口A输入的数据的PA7位JNZKK;当PA7=1时,转移到KKOUTDX,AL;当PA7=0时,端口C输出00HJMPEXITKK:MOVAL,0FFH;当PA7=1时,端口C输出FFHOUTDX,ALEXIT:HLT2112/29/2022MOVAH,AL;将端口A的输入的数46输出输出8255A

PB7PB6PB5PB4PB3PB2PB1PB0端口BPC7PC6PC5PC4PC3PC2PC1PC0端口CPA7PA6PA5PA4PA3PA2PA1PA0端口A输入10001010B10001010B11111111B01101011B01101011B00000000B程序执行过程演示12/29/2022输出输出8255APB7PB6PB5PB4PB3PB2P472.读写数据端口初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备8255A具有锁存输出数据的能力对输出方式的端口同样可以输入不是读取外设数据读取的是上次CPU给外设的数据2012/29/20222.读写数据端口初始化编程后:2012/28/2022482.读写数据端口:例3利用8255A的输出锁存能力,可实现按位输出控制

对输出端口B的PB7位置位的程序段: MOVDX,OFFFAH;B端口假设为FFFAH INAL,DX ;读出B端口原输出内容 ORAL,80H ;使PB7=1NOPNOP OUTDX,AL ;输出新的内容1912/29/20222.读写数据端口:例3利用8255A的输出锁存能力,可实493.读写端口C:归纳1C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出在控制上,端口C上半部和A端口编为A组,端口C下半部和B端口编为B组1812/29/20223.读写端口C:归纳1C端口被分成两个4位端口,两个端口503.读写端口C:归纳2当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用其余引脚仍可设定工作在方式01712/29/20223.读写端口C:归纳2当A和B端口工作在方式1或方式2时513.读写端口C:归纳3对端口C的数据输出有两种办法通过端口C的I/O地址:向端口C直接写入字节数据。这一数据被写进端口C的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0。此时的控制字称为置0/置1控制字。1612/29/20223.读写端口C:归纳3对端口C的数据输出有两种办法16152端口C的位控制字(置0/置1控制字)15标识位位控制字写入控制端口特别便于置位复位端口C的指定位的状态(1/0)12/29/2022端口C的位控制字(置0/置1控制字)15标识位位控制字写入控533.读写端口C:归纳4读取的C端口数据有两种情况未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字1412/29/20223.读写端口C:归纳4读取的C端口数据有两种情况141254小结1、方式选择控制字8255A有3种基本的工作方式,在对8255A进行初始化编程时,应向控制寄存器写入方式选择控制字,以规定各端口的工作方式。方式选择控制字格式下C口I/O1=输入0=输出B口I/O1=输入0=输出B组方式0=方式01=方式1上C口I/O1=输入0=输出标识位D7=1A组方式:00=方式001=方式11x=方式2A口I/O1=输入0=输出12/29/2022小结1、方式选择控制字8255A有3种基本的工作方552、C口按位置位/复位控制字端口C常用作控制或应答信号,通过对8255A的控制口写入按位置位/复位控制字,可使C口的任一个引脚的输出单独置1或置0。C口按位置位/复位控制字格式1置位0复位无关位特征位D7=0000选中PC0001选中PC1

111选中PC7位选择例:要使端口C的bit3置位的控制字为:00000111B;MOVAL,00000111BOUT0FBH,AL而使端口C的bit3复位的控制字为:00000110B;MOVAL,00000110BOUT0FBH,AL12/29/20222、C口按位置位/复位控制字端口C常用作控制或应答信号,通过567.3.48255A的应用作为通用的并行接口电路芯片,8255A具有广泛的应用应用在IBMPC/XT微机上应用于打印机接口电路连接简易键盘驱动LED数码管……1212/29/20227.3.48255A的应用作为通用的并行接口电路芯571.键盘及其接口键盘是微机系统最常使用的输入设备小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入独立键盘:通过5芯电缆与PC主机连接6012/29/20221.键盘及其接口键盘是微机系统最常使用的输入设备601258编码键盘能自动提供对应于被按键的编码,如ASCII码,并能同时产生一个脉冲通知CPU。编码键盘还具有处理抖动和多键串键的保护电路。这种键盘的优点是使用方便,但需要较多的硬件,价格昂贵。非编码键盘有一组开关组成,提供行和列的键盘矩阵,其工作过程:按键的识别;按键代码的产生;防止串键和消除抖动等均由程序来实现。故这种键盘的优点是所需要的硬件较少,价格便宜,宜用微机化仪表的面板的键盘。键盘两种类型:编码键盘(独立键盘)和非编码键盘(小键盘)。12/29/2022编码键盘能自动提供对应于被按键的编码,如AS59简易键盘的工作原理最简单的线性结构键盘1.每一个引脚连接一个键2.输入0/1反映健是否被按下键0键1键2并行接口111+5V+5V+5V016112/29/2022简易键盘的工作原理最简单的线键0键1键2并111+5V+60+5V+5V+5V+5V+5V+5V+5V第0行第1行第2行第0列第1列第2列第3列控制线检测线0123456789ABPA0PA1PA2PB0PB1PB2PB38255A矩阵式键盘结构6212/29/2022+5V+5V+5V+5V+5V+5V+5V第0行第1行第2行61+5V+5V+5V+5V+5V+5V+5V第0行第1行第2行第0列第1列第2列第3列控制线检测线0123456789ABPA0PA1PA2PB0PB1PB2PB38255A矩阵式键盘结构6212/29/2022+5V+5V+5V+5V+5V+5V+5V第0行第1行第2行621).逐行扫描法先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电平实现)此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出通过组合行线和列线可识别此刻按下的是哪一键6312/29/20221).逐行扫描法先使第0行接低电平,其余行为高电平,然后63逐行扫描法扫描键盘流程图开始8255A初始化有键闭合吗?延时,行扫描初值0FEHDL键基值0BL,行计数器8CL输出行扫描初值行扫描初值循环左移1位,读列值有键闭合吗?键基值+8,行计数器-1行扫描完吗?列值右移1位有键闭合吗?键值寄存器+1键值在BL11NYNY64NYYN12/29/2022逐行扫描法扫描键盘流程图开始8255A初始化有键闭合吗64第1段:8255A初始化INTIA:MOVDX,PORT8255;PORT8255为控制;寄存器的地址MOVAL,82H;A口为输出,B口为输入;,工作方式0OUTDX,AL;设定控制字

12/29/2022第1段:8255A初始化INTIA:MOVDX,PORT865第2段:是否有键按下KEY1:MOVAL,00 MOVDX,PORTA;端口A的地址 OUTDX,AL;使所有行线为低电平 MOVDX,PORTB;端口B的地址 INAL,DX;读取列值 CMPAL,0FFH;判定有无列线为低电平 JZKEY1;无闭合键,循环等待 CALLDELAY;有,延迟20ms清除抖动6512/29/2022第2段:是否有键按下KEY1:MOVAL,0066第2段:识别按键(扫描) MOVBL,0MOVCL,8 ;行数送CX MOVDL,0FEH;扫描初值送AHKEY2: MOVAL,DL MOVDX,PORTA; OUTDX,AL ;输出行扫描值ROLDL,1 MOVDX,PORTB INAL,DX ;读入列值6612/29/2022第2段:识别按键(扫描) MOVBL,06612/2867第2段:识别按键(判断)

CMPAL,0FFH;判断有无低电平的列线 JNZKEYCODE;有,ADDBL,8;DECCL;JNEKEY2JMPKEY1KEYCODE:RCRAL,1 ;无,则移位扫描值 JNCPROCEINCBL JMPKEYCODE PROCE:…6712/29/2022第2段:识别按键(判断) CMPAL,0FFH;判断有无低682).行列反转法首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口CPU通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入端口将刚才读得的列值从列线所接端口输出,再读取行线的输入值这样,当一个键被按下时,必定可以读得一对唯一的行值和列值条件:连接行线和列线的接口电路必须支持动态改变输入、输出方式6812/29/20222).行列反转法首先,将行线作为控制线接一个输出端口,将693).抖动和重键问题机械按键存在抖动现象当按下或释放一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态抖动的持续时间通常不大于10ms采用硬件消抖电路或软件延时方法解决重键指两个或多个键同时闭合出现重键时,读取的键值必然出现有一个以上的0是否给予识别和识别哪一个键12/29/20223).抖动和重键问题机械按键存在抖动现象12/28/2070重健问题的处理简单情况:不予识别,认为是错误的按键通常情况:只承认先识别出来的键连锁法:直到所有键都释放后,读入下一个键巡回法:等被识别的键释放以后,就可以对其它闭合键作识别,而不必等待全部键释放正常的组合键:都识别出来12/29/2022重健问题的处理简单情况:不予识别,认为是错误的按键12/28712.LED数码管及其接口发光二极管LED是最简单的显示设备由7段LED就可以组成的LED数码管LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中LED数码管可以显示内存地址和数据等LEDLightEmittingDiode12/29/20222.LED数码管及其接口发光二极管LED是最简单的显示设721).LED数码管的工作原理主要部分是7段发光管顺时针分别称为a、b、c、d、e、f、g有的产品还附带有一个小数点h通过7个发光段的不同组合主要显示0~9也可以显示A~F(实现16进制数的显示)还可以显示个别特殊字符,如-、P等12/29/20221).LED数码管的工作原理主要部分是7段发光管12/273LED数码管hgfedcba12/29/2022LED数码管hgfedcba12/28/202274LED数码管的结构共阳极阳极+5Vabcdefgh阴极abcdefgh共阴极12/29/2022LED数码管的结构共阳极阳极+5Va阴极a共阴极12/28/752).单个LED数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7驱动电路abcdefgh12/29/20222).单个LED数码管的显示8255APA0a12/2876单个数码管的显示 LEDTB DB3FH,06H,5BH;显示代码表 ……MOVAL,1 ;AL←要显示的数字 MOVBX,OFFSETLEDTBXLAT;换码:AL←DS:[BX+AL] MOVDX,PORT OUTDX,AL ;输出显示12/29/2022单个数码管的显示 LEDTB DB3FH,06H,5BH778255练习设8255A的口地址为300H~303H,A口接4个开关K3~K0,B口接一个七段LED显示器,用来显示4个开关所拨通的16进制数0~F,开关都合上时,显示0,都断开时显示F,每隔2秒检测一次,试画出硬件连线图,并编写实现这种功能的程序。12/29/20228255练习设8255A的口地址为300H~303H,A口接78接口电路D7~D0RDWRA0A1CS+5V8255APB7PB0~K0K1K2K3PA3PA2PA1PA0反向驱动器gfa...12/29/2022接口电路D7~D0+5V8255APB7PB0~K0K179PORT_AEQU300H;A口地址PORT_BEQU301H;B口地址PORT_CTREQU303H;控制端口的地址DATASEGMENTTABLEDB40H,79H,24H,30H,19H,12H,DB02H,78HDB00H,18H,08H,03H,46H,21H,DB06H,0EH;7段代码表DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,PORT_CTR12/29/2022PORT_AEQU300H;A口地址12/80MOVAL,10010000B;A口输入,;B口输出OUTDX,ALTEST:MOVDX,PORT_AINAL,DX;读A口ANDAL,00001111BMOVBX,OFFSETTABLEXLATMOVDX,PORT_B;B口输出,;点亮LEDOUTDX,ALMOVBX,9;延时2S12/29/2022MOVAL,1001081CNT1:MOVCX,FFFFHCNT2:LOOPCNT2DECBXJNZCNT1JMPTESTCODEENDSEND12/29/2022CNT1:MOVCX,FFFFH12/28/282第7章12/29/2022第7章12/28/202283第7章并行接口教学目的和要求:掌握8255A的功能、结构和工作原理掌握并行接口电路的设计方法了解键盘、LED显示器的工作原理能够编写基于8255A的简单控制程序3112/29/2022第7章并行接口教学目的和要求:3112/28/202284本章难点18255A的工作方式1的理解2基于8255A芯片的接口电路设计3012/29/2022本章难点18255A的工作方式1的理解3012/28/2085并行通信特点:以数据字节或字为单位进行数据传送;适合近距离传送;对传送的信息不要求固定格式。分类输入和输出数字和模拟单向和双向简单接口和可编程接口12/29/2022并行通信特点:12/28/202286串行通信特点:按位传送造价低,适合于远距离传送传送方式全双工半双工单工12/29/2022串行通信特点:12/28/202287芯片简介:Intel8255A是一种的可编程的并行接口芯片。通过编写初始化程序,可以设定芯片的工作方式。8255A通用性强,灵活性高,可以为多种不同的CPU与外设之间提供并行输入/输出通道。7.3并行接口芯片8255A2812/29/2022芯片简介:7.3并行接口芯片8255A2812/28/2881.引线连接系统端的主要引线:D0----D7CSRDWRA0,A1

REAST

A1A000A端口01B端口10C端口11控制寄存器12/29/20221.引线连接系统端的主要引线:A1A012/2889引线连接外设端的引脚:PA0——PA7PB0——PB7PC0——PC7分别对应A、B、C三个端口12/29/2022引线连接外设端的引脚:分别对应A、B、C三个端口12/28/907.3.18255A的内部结构8255A内部具有三个带锁存的数据端口,可以与外设进行并行数据交换,各个端口内具有中断控制逻辑和选通控制逻辑。外设与CPU之间可通过条件传输方式或中断方式进行数据交换。2712/29/20227.3.18255A的内部结构8255A内91它是具有多种功能的可编程并行接口芯片最基本的接口电路:三态缓冲器和锁存器是CPU与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路有3个端口有三种输入输出工作方式特点2612/29/2022它是具有多种功能的可编程并行接口芯片特点2612/28/20928255A的内部结构数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESETB组:端口B+端口CA组:端口A+端口C2512/29/20228255A的内部结构数据内部控制线内部数据线D0~D7A组A931.外设数据端口A、B、C端口A:PA0~PA7A组,支持工作方式0、1、2端口B:PB0~PB7B组,支持工作方式0、1端口C:PC0~PC7仅支持工作方式0A组控制高4位PC4~PC7B组控制低4位PC0~PC3端口A:PA0~PA7常作数据端口,功能最强大端口B:PB0~PB7常作数据端口端口C:PC0~PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握2412/29/20221.外设数据端口A、B、C端口A:PA0~PA7端口A942.A组控制和B组控制它们可以接收芯片内部总线的控制字,也可以接收来自读写控制电路的读/写命令。由此决定两组端口的工作方式和读/写操作。1)A组控制电路控制端口A和端口C的高4位(PC7-PC4)的工作方式和读/写操作。2)B组控制电路控制端口B和端口C的低4位(PC3-PC0)的工作方式和读/写操作。23A口上C口下C口B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0内部总线12/29/20222.A组控制和B组控制它们可以接收芯片内953.数据总线缓冲器8255A具有一个双向三态的8位数据缓冲器,它是8255A与CPU系统总线的数据接口。1)当CPU执行OUT输出指令时,可将控制字或数据通过该缓冲器传送给8255A.2)当CPU执行IN输入指令时,可将状态信息或数据通过该缓冲器传送给CPU.因此,输入数据、输出数据、CPU给8255A发送的控制字都要通过它。可见,它是CPU与8255A数据交换的必由之路。22缓冲器数据总线DBoooRDWRA0A1RESETCS读/写控制逻辑内部总线至数据端口至控制寄存器12/29/20223.数据总线缓冲器8255A具有一个双向三态的8位964.读/写控制逻辑电路负责管理整个8255A的数据传输方向及过程。接收CS和地址总线A1、A0的信号(8086系统中为A2、A1)。接收控制总线的信号RESET、WR、RD。将这些信号组合得到A组和B组的控制部件的控制命令,完成对数据、状态和控制信息的传输。21缓冲器数据总线DBoooRDWRA0A1RESETCS读/写控制逻辑内部总线至数据端口至控制寄存器12/29/20224.读/写控制逻辑电路负责管理整个8255A的数据传输方向及978255A控制信号和数据传输之间的关系CSA1A0RDWR数据传输说明00001从端口A送到数据总线00101从端口B送到数据总线01001从端口C送到数据总线00010从数据总线送到端口A并锁存00110从数据总线送到端口B并锁存01010从数据总线送到端口C并锁存01110将控制字送到控制寄存器1××××D7~D0高阻态,8255A不工作01101非法状态0××11D7~D0高阻态2012/29/20228255A控制信号和数据传输之间的关系CSA1A0RDWR数988255A的初始化8255A的端口有3种基本的工作方式。具体采用哪一种工作方式是依靠写入控制寄存器中的控制字确定。通常把这个过程叫做8255A的初始化编程。CPU通过OUT指令往8255A的控制端口写入控制字来决定它的工作方式。1912/29/20228255A的初始化8255A的端口有3种基本的工997.3.28255A的工作方式方式0:基本的输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通的输入输出方式

适用于查询和中断方式的接口电路方式2:双向传输方式用于与双向传送数据的外设适用于查询和中断方式的接口电路1812/29/20227.3.28255A的工作方式方式0:基本的输入输1008255A的工作方式与端口之对应17

端口A:方式0、方式1、方式2端口B:方式0、方式1端口C:方式012/29/20228255A的工作方式与端口之对应17端口A:方式0、方101方式0方式0称为基本的输入/输出方式。端口A和端口B可以通过方式选择控制字设定该端口作为输入端口或输出端口来工作。端口C则分为两个4位端口,高4位作为一个端口,低4位作为另一个端口。它们可以通过方式选择控制字规定该端口作为输入端口或输出端口1612/29/2022方式0方式0称为基本的输入/输出方式。1612/28/202102方式0基本特点:1.4个端口相互独立,都可作为输入端口或输出端口2.各个端口的输入输出可以有16种不同组合(P187表9-2)3.各个端口工作于方式0时,输出具有锁存功能,而输入没有锁存。输出锁存是在没有新的数据输出之前,一直保持以前的输出信息。4.端口C工作于方式0时,可以按照置1/置0控制字改变端口C的任一引脚的电平。1512/29/2022方式0基本特点:1.4个端口相互独立,都可作为输入端口或输103方式1方式1称为选通的输入/输出方式。与方式0的区别点:端口A和端口B用方式1进行输入或输出数据时,利用端口C提供的选通信号和应答信号,而这些信号与端口C中的数位有着固定的对应关系。这种关系是8255A本身决定的,不能用程序改变。而使用方式0没有固定的对应关系。1412/29/2022方式1方式1称为选通的输入/输出方式。与方式0的区别点:14104基本特点:1、端口A和端口B可分别作为两个输入或输出端口工作在方式1。具体安排由方式选择控制字决定。2、若端口A和端口B只有一个端口工作方式1,则端口C中就有3条线被规定为配合方式1工作的联络信号。此时另一个端口可以工作在方式0,端口C中剩余的5条线也可以工作于方式0。3、若端口A和端口B都工作于方式1,则端口C中就有6条线被规定为配合方式1工作的联络信号。此时端口C中剩余2条线仍可以工作于方式0。4、端口A和端口B在方式1下,输入和输出均具有锁存功能。5、当端口C的相应引脚规定为联络信号时,将不能通过编程再改变。1312/29/2022基本特点:1、端口A和端口B可分别作为两个输入或输出端口工105方式1输入引脚:端口A数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中断允许触发器1212/29/2022方式1输入引脚:端口A数据选通信号输入缓冲器满信号中断请求信106方式1输入引脚:端口BPC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能1112/29/2022方式1输入引脚:端口BPC2PC1PC0PB7~PB0INT107方式1输入联络信号STB——(Strobe)选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF——(InputBufferFull)输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR——(InterruptRequest)中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据1012/29/2022方式1输入联络信号STB——(Strobe)选通信号,108方式1输入时序dataINTRIBF

data输入端口D0~D7STBRDSTB和IBF是外设和8255A的一对应答联络信号,为的是可靠地输入数据912/29/2022方式1输入时序dataINTRIBFdata输入端口D0109方式1中断控制8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2812/29/2022方式1中断控制8255A的中断由中断允许触发器INTE控制8110方式1输出引脚:端口A外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中断允许触发器712/29/2022方式1输出引脚:端口A外设响应信号输出缓冲器满信号中断请求信111方式1输出引脚:端口BPC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器612/29/2022方式1输出引脚:端口BPC2PC1PC0PB7~PB0INT112方式1输出联络信号OBF——(OutputBufferFull)输出缓冲器满信号,低电平有效8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK——(Acknowledge)响应信号,低电平有效外设的响应信号,指示8255A的端口数据已由外设接收INTR——(InterrruptRequest)中断请求信号,高电平有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续发送数据端口A的INTEA对应PC6端口B的INTEB对应PC2512/29/2022方式1输出联络信号OBF——(OutputBufferF113方式1输出时序

INTR

datadata输出端口D0~D7WROBFACK

OBF和ACK是外设和8255A的一对应答联络信号,为的是可靠地输出数据412/29/2022方式1输出时序INTRdatadata输出端口D0~D7114INTE-中断允许信号。是控制8255A能否向CPU发中断请求信号,它没有外部引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。PA7~PA08PC4STBAPC5IBFAPC3INTRAPC6PC7I/O线&INTEAoRD方式1(A口)INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当IBF=1、STB=1且INTE=1时,INTR=1。注意12/29/2022INTE-中断允许信号。是控制8255A能否向CPU发中断115方式2双向传输方式方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据312/29/2022方式2双向传输方式方式2将方式1的选通输入输出功能组合成一116方式2双向引脚PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号212/29/2022方式2双向引脚PC6PC7PC3PA7~PA0INTE1OB117方式2双向时序data-out

INTR

data-outdata-indata-inPA0~PA7D0~D7IBF

WROBFACKSTBRD112/29/2022方式2双向时序data-outINTRdata-ou118端口C状态字8255A工作在方式0时,C口各位作输入输出用。当工作在方式1和方式2时,C口产生与外设的联络信号。此时。读入C口各位的内容可检查或测试外设的状态。C口的状态字如下:(1)方式1I/OI/OIBFA输入INTEAINTRAINTEBIBFBINTRBD7D6D5D4D3D2D1D0I/OI/O输出INTEAINTRAINTEBOBFBINTRBD7D6D5D4D3D2D1D0OBFA(2)方式2*INTE1INTRAINTE2IBFAD7D6D5D4D3D2D1D0OBFA**12/29/2022端口C状态字8255A工作在方式0时,C口1197.3.3基于8255A的应用编程初始化编程:设定方式控制字的过程采用控制寄存器端口的地址:A1A0=11工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10278255控制字方式控制字C口置0/置1控制字12/29/20227.3.3基于8255A的应用编程初始化编程:设定方式控1208255A的内部结构数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESETB组:端口B+端口CA组:端口A+端口C2512/29/20228255A的内部结构数据内部控制线内部数据线D0~D7A组A12111.方式控制字D6D5D4D3D2D1D0端口C(PC3-PC0)1=输入0=输出端口B1=输入0=输出方式选择0:方式01:方式1B组方式选择00:方式001:方式11*:方式2端口A1=输入0=输出端口C(PC7-PC4)1=输入0=输出A组标识位12/29/202211.方式控制字D6D5D4D3D2D1D0端口C端口B1221.方式控制字:例1MOVDX,0F006H ;控制端口为F006H MOVAL,91H ;方式控制字 OUTDX,AL ;送到控制端口D7D6D5D4D3D2D1D0如果8255A芯片的按照下列要求工作:端口A:方式0,输入;端口C上半部:输出;端口C下半部:输入;端口B:方式0,输出。设控制端口的地址为:F006H。请编写相应的初始化程序。1)先写出方式控制字2)编写初始化程序11000010方式控制字:10010001B或91H2512/29/20221.方式控制字:例1MOVDX,0F006H 1238255A输入输出输出PA7PA6PA5PA4PA3PA2PA1PA0端口APC7PC6PC5P

温馨提示

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

评论

0/150

提交评论