6.1并行接口和串行接口6.2可编程并行接口芯片8255A6.3可编程串行接口芯片8251第6章可编程并行接口芯片和串行接口芯片重庆工学院教学内容(6学时)•可编程接口芯片概述•8255A芯片的原理•8255A芯片的应用实例教学目标•理解常用可编程通信接口芯片的作用•了解8255A芯片的原理•掌握8255A初始化方法•掌握8255A作为LED显示器、开关、打印机等接口时的硬件连接方法和控制程序设计教学重点及难点•常用可编程通信接口芯片的作用•8255A方式1的工作原理及时序(难点)•8255A作为接口时控制程序设计方法(重点)重庆工学院6.1并行接口和串行接口6.1.1可编程接口芯片概述接口电路中的单元(1)输入/输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用;(2)控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息;(3)地址译码器,用来选择接口电路中的不同端口(寄存器);(4)读写控制逻辑;(5)中断控制逻辑。重庆工学院接口中的一些公用引脚作用及其连接方法√1.片选概念CS或CE2.读/写概念DB线,M/IO线,RD线,WR线,CE/CS线√3.可编程接口的概念目前所用的接口芯片大部分是多通道、多功能的:所谓多通道就是指一个接口芯片一面与CPU连接,另一面可接几个外设;所谓多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。重庆工学院√4.“联络”的概念(了解)STB:选通信号;RDY:就绪信号(Ready)1)以输入接口为例:RDY=“H”表示接口芯片中输入寄存器已空,可接受外设信息以实现外设与接口的输入操作。STB=“L”表示接口选通,是外设向接口发出的。过程:1)外设把数据送上接口芯片端口后,用STB信号有效打人接口芯片输入寄存器;2)在STB的后沿,把RDY信号拉为“L”,表明输入寄存器已有数据。RDY=“L”正是接口与外设的通信标志,外设接收RDY=”L”后,暂不送数据;3)CPU发出读数指令,读人该数据,并使RDY置“H”。然后,又开始新一轮的输入操作在输入接口中,RDY信号有时用IBF(输入缓冲器满)表示。重庆工学院输出过程:RDY=“H”,表示接口寄存器已有数据,通知外设来取数;STB=“L”,表示端口数据已为外设接收,且已处理,CPU可送新数据到接口寄存器,STB的后沿使RDY变为“L”。在输出接口中,RDY信号有时用OBF(输出缓冲器满)表示,STB信号有时用ACK(响应)表示。接口芯片的引脚⑴⑵⑶⑷重庆工学院6.1.2并行接口、串行接口和模拟接口数据信息分:数字量、模拟量和开关量;数字接口(数字量和开关量);模拟接口(模拟量);数字接口分并行接口和串行接口;接口芯片与CPU之间传送的总是并行数字量;串行接口内必须含并-串/串-并转换部件;模拟接口内必须含A/D或D/A转换器重庆工学院6.2可编程并行接口芯片8255A6.2.18255A的结构和引脚功能重庆工学院1.数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。2.三个8位端口PA、PB和PCPA、PB和PC端口都可由程序设定为各种不同的工作方式。端口A(PA口)有一个8位数据输入锁存器和一个8位数据输出锁存/缓冲器;端口B(PB口)有一个8位数据输入缓冲器和一个8位数据输入/输出、锁存/缓冲器;端口C(PC口)有一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器。通常PA口与PB口用作输入/输出的数据端口,PC口用作控制或状态信息的端口。一、8255A的内部结构重庆工学院3.A组和B组的控制电路(了解)这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读/写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制部件用来控制PA口和PC口的高4位(PC7~PC4);B组控制部件用来控制PB口和PC口的低4位(PC3~PCo)。。4.读/写控制逻辑用来管理数据信息、控制字和状态字的传送,它接收来自CPU地址总线的A1、A0和控制总线的有关信号(RD、WR、RESET等),向8255A的A、B两组控制部件发送命令。重庆工学院二、8255A的引脚功能。CS—选片信号,低电平有效,由它启动CPU与8255A之间的通信(Communication)。RD—读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。WR—写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。RESET——复位信号,高电平有效,它清除控制寄存器并置所有端口(A、B、C)为输入方式。A1,A0:片内寄存器选择信号(输入)A1A0=00:选中PA口;A1A0=01:选中PB口;A1A0=10:选中PC口;A1A0=11:选中控制端口;D7—D0:与CPU侧连接的数据线(双向)PA7—PA0:A口外设数据线(双向)PB7—PB0:B口外设数据线(双向)PC7—PC0:C口外设数据线(双向)重庆工学院A1A0RDWRCS输入操作(读)001010000111000端口A数据总线端口B数据总线端口C数据总线输出操作(写)00110101111100000000数据总线端口A数据总线端口B数据总线端口C数据总线控制寄存器断开功能(禁止)X1XX11X01X11100数据总线为三态(高阻)非法状态数据总线为三态(高阻)表8-18255A端口功能选择重庆工学院6.2.28255A的工作方式√一、方式0——基本输入输出方式0下,每一个口都作为基本的输入输出口8255A在方式0工作时1.CPU可以采用无条件读写方式与8255A交换数据;2.把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU可以通过对C口的读写,实现A口与B口的查询方式工作;3.方式0中,不允许采用中断方式工作。重庆工学院二、方式1——选通输入输出(应答式输入输出)(了解)方式1下将三个端口分成A、B两组,A、B两个口仍作为数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。1.方式1的输入重庆工学院(1)STB:输入的选通信号低电平有效。由外设提供,为低电平时,就把输入的数据信号(PA7-PA0或PB7-PB0)送入A端口(或B端口)的数据锁存器。(2)IBF:输入缓冲器满信号,高电平有效。由8255A输出,有效时,用以通知外部设备输入的数据已写入缓冲器。(3)INTR:中断请求信号高电平有效。当外部设备要向CPU传送数据或请求服务时,8255A就用INTR端的高电平向CPU提出中断请求。当STB、IBF和INTE都为高电平时,表明数据锁存器内已写入了数据.使INTR成为高电平输出。(4)INTE:中断允许信号A端口用PC4位的置位/复位控制,B端口用PC2位的置位/复位控制。只有当PC4或PC2置1时,才允许对应的端口送出中断请求。重庆工学院方式1的输入过程如下(A口):1)当外设准备好数据,在送出数据的同时,送出一个选通信号STB。8255A的A口数据锁存器在STB下降沿控制下将数据锁存。2)8255A向外设送出高电平的IBF,表示锁存数据已完成,暂时不要再送数据。如果PC4=1(INTE=1),这时就会使INTR变成高电平输出,向CPU发出中断请求。3)CPU响应中断,执行IN指令时,RD信号的下降沿清除中断请求,而RD结束时的上升沿则使IBF复位到零。外设在检测到IBF为零后,可以开始输入下一个字节。2.方式1的输出联络信号信号的作用如下:(1)OBF:输出缓冲器满信号;低电平有效。由8255A输出,当其有效时,表示CPU已经将数据输出到指定的端口,通知外设可以将数据取走。(2)ACK:响应信号,低电平有效。由外设送来,有效时表示8255A数据已经为外设所接收。重庆工学院(3)INTR:中断请求信号高电平有效。当外设接收了由CPU送给8255A的数据后,8255A就用INTR端向CPU发出中断请求,请求CPU再输出后面的数据。INTR是当ACK,OBF和INTE都为高电平时,才能被置成高电平。(4)INTE:中断允许信号。A口的INTE由PC6置/复位,B口的INTE由PC2置/复位。PC4、PC5位可以由控制字的D3,设置为输入或输出数据用。方式1的输出过程如下(A口):1)微处理器发WR信号,将数据送入端口的输出缓冲器,WR上升沿一方面清除INTR信号,另一方面使OBF有效,通知外设可以取数;2)外设取数后,发ACK信号,一方面使OBF无效(表示数已取走),另一方面使INTR有效,开始另一个新的输出过程。三、方式2——双向选通输入输出通过8位数据线与外设进行双向通信的方式,既能发送,又能接收数据。工作时可以用中断方式,也可以用查询方式与CPU联系。重庆工学院重庆工学院6.2.38255A的初始化一、方式控制字重庆工学院二、C口按位置/复位重庆工学院例:用程序将pc口的第七位置1,第3位置0。设控制口地址为:0EBHMOVAL,00001111B;0FHOUT0EBH,ALMOVAL,00000110B;06HOUT0EBH,AL重庆工学院6.2.48255A的应用举例√例1:在一系统中,要求8255A工作在方式0。现要求将从A口读取的数据1)求反后从B口输出;2)将其绝对值从C口输出0Moval,90hOut63h,al;送控制字到控制字寄存器。Calldelay1Inal,60h;从A口输入数据1)Calldelay2NOTALOut61h,al;从B口输出数据2)Calldelay3CMPAL,0JGEPLDNEGALPLD:Out62h,al;从C口输出数据60h~63h10010000重庆工学院√例2:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,PC4~PC5为输出,禁止端口B中断.要求:1)对8255A初始化;2)在PC4引脚上输出负脉冲信号。1)Moval,10100111bMovdx,43h;控制寄存器地址Outdx,al;8255A初始化Moval,0dh;A口的INTE(PC6)置1Outdx,al;A口开放中断Moval,04h;B口的INTE(PC2)置0Outdx,al;B口禁止中断40H~43H2)MOVAL,00001001BOUT43H,ALCALLDELAYMOVAL,00001000BOUT43H,ALCALLDELAYMOVAL,00001001BOUT43H,AL重庆工学院例6-2开关接口D0-D7PA0A0PA1A1PA2PA3CSPA4PA5PA6RDPA7WR8255AS0S1S2S3S4S5S6S7+5v编程:每隔5分钟从PA口读入8个开关的状态存入2000H:3000H开始的数据区,工作10小时结束。设8255A的端口地址为60H~63HINAL,60HMOVAX,2000HMOVDS,AXMOVBX,3000H内存初始化MOVCX,120循环次数初始化10×60/5=120MOVAL,10010000B(90H)OUT63H,AL8255A初始化MOV[BX],ALINCBXCALLDELAY5MDECCXJNZLOPMOVAH,4CHINT21HLOP:PA口读开关状态将开关状态送人内存并修改地址指针延时5分工作10小时吗工作结束,返回DOS系统重庆工学院七段LED显示接口七段(或八段)LED数码管简介abcdefgDPabcDefgDPabcdefgDP阴极阳极图6-20七段(或八段)LED数码管重庆工学院例6-3LED接口编程:开始点亮LED7,每隔5妙钟发光灯向上移动一个,循环点亮8个灯,工作10小时结束。设8255A的端口地址为60H~63HD0-D7PA0A0PA1A1PA2PA3CSPA4PA5PA6RDPA7WR8255A+5vLED0LED1