51单片机8255A扩展IO口与单片机连接.ppt
一个芯片可扩展多个并行I/O口可用软件改变接口的功能可直接与单片机连接,进行并行数据传送,7.5 可编程并行I/O口的扩展,8255A和8155是两种常用的可编程并行I/O 口的扩展芯片,优点是:,学习要点:理解并行通信 概念及特点,掌握8255A的功能、工作方式、编程方法及其应用。,8255A是Intel系列的可编程并行接口芯片,扩展一片可获得3个8位的并行I/O口,是一种单片机与外设之间的接口电路。,1.8255A的结构及引脚功能,8255A为40引脚的双列直插式(DIP)封装,(1)引脚功能 D0D7为数据线,与单片机的数据总线连接,传数据、命令等。PA0PA7(PA口)、PB0PB7(PB口)、PC0PC7(PC口)为3个8位并行I/O口,用于8255A与外设之间传数据。读写控制逻辑线,片选信号,接单片机的地址总线,读信号,接单片机的读信号,写信号,接单片机的写信号,RESET复位信号,接单片机的复位,A1、A0 端口选择信号,接单片机的地址总线,与片选/CS一起,确定8255A访问的端口地址。,(2)内部结构,A组控制,B组控制,PA口,PC口高四位,PB口,PC口低4位,读/写控制逻辑接收CPU传来的控制信号,以控制8255A的操作,A1、A0、RESET,数据总线缓冲器双向三态8位缓冲器,与单片机的数据总线直接相连,并行I/O端口 有3个8位并行I/O口,PA、PB、PC它们可以被设置成输入或输出 A、B组控制电路 A、B两组控制电路将三个端口分成A、B两组。,一片8255A占4个端口地址:PA口、PB口、PC口、控制口,由/CS、A1、A0决定。,2.8255A端口的寻址,、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址。,、A1、A0与地址总线的连接方案不同,端口地址不同。,片选地址,片内地址,16位总线访问地址=片选地址+片内地址,PAFF7CH PBFF7DH PCFF7EH 控制口FF7FH,接A7,A1、A0接CPU的A1、A0,则端口地址:,没接的地址线设为1,则4个端口地址为:,8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,PA口:0 0 0PB口:0 0 1PC口:0 1 0控制口:0 1 1,例如,8255A端口地址的确定,片内地址,片选地址,接A15,A1、A0接CPU的A1、A0,则端口地址:,没接的地址线设为1,则4个端口地址为:,8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,PA口:0 0 0PB口:0 0 1PC口:0 1 0控制口:0 1 1,例如,8255A端口地址的确定,片内地址,片选地址,PA7FFCH PB7FFDH PC7FFEH 控制口7FFFH,3.8255A的控制字,8255A有两个控制字:,工作方式控制字,PC口置/复位控制字,这两个控制字都写到8255A的控制口,用同一个端口地址采用特征位识别。,D71,表示是工作方式控制字,D70,表示是PC口置/复位控制字,工作方式控制字,PC置/复位控制字,工作方式控制字,作用是用来设置3个并行口作输入口还是作输出口、设置8255A的工作方式,PA口有3种工作方式,PB口有2种工作方式,PC口只有一种工作方式0,在方式1或方式2,PC口自动作为PA口、PB口的控制信号,位为0,为输出口;为1,为输入口,8255A有三种工作方式:方式0 基本输入/输出方式 方式1 选通输入/输出方式 方式2 双向输入/输出方式,工作方式控制字,PC口置/复位控制字,其作用是用来设置PC口某位输出高电平或低电平。,实现某些位控制,如启/停外设、开关的通/断、继电器的吸合/释放等,例 设8255A的控制口地址为FF7FH,试编程设置:PA口为工作方式0输入,PB口为工作方式0输出,PC4PC7为输出,PC0PC3为输入。则工作方式控制字为10010001B,其初始化程序:,MOV DPTR,#0FF7FH;控制口地址 MOV A,#91H;工作方式控制字 MOVX DPTR,A;写控制字到控制口,PC置/复位控制字,4.8255A的工作方式,8255A有3种工作方式:方式0、方式1、方式2,方式0 基本输入/输出方式,2个8位I/O口(PA、PB),2个4位I/O口(PC口高4位、低4位),任意一个口可作输入口或输出口,两种数据传送方式:,无条件传送方式,不需任何应答联络信号。认为外设随时是准备好的,如键盘,显示器,查询传送方式,需要联络信号,这时,PA、PB作数据口,人为定义PC口作控制信号,提供外设状态、外设选通信号,可设置为4位作输入、4位作输出,方式1 选通输入/输出方式,PA口、PB口作输入/输出口,PC口自动提供固定关系的选通信号和应答信号,A组:,B组:,PA口为数据口,PC口高四位作联络信号,PB口为数据口,PC口低四位作联络信号,方式2双向输入/输出方式,只有PA口能够设定为方式2,PA口为8位双向数据口,能读能写,PC口的PC3PC7共5位作PA口数据输入/输出的联络信号,PB口不能工作在方式2,仍可工作在方式0或方式1,三个口分成两组:A组、B组,A口借用C口的一些信号线用作控制和状态线,形成A组;B口借用C口的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输入输出均带有锁存。,PA口有方式0、1、2PB口有方式0、1,没有方式2PC口只有方式0,PC为控制口时各引脚功能,输出缓冲器满信号,CPU已将数据送出,通知外设取。,外设响应信号,表示外设已将数取走。,IBFA输入缓冲器满信号,即外设所送数据已装入锁存器。,选通输入脉冲信号,表示外设待输入数据已经准备好。,INTRA中断请求信号,为“1”时向CPU发出中断请求。,PB口的各服务功能含义与PA口相同。,4.8255A的应用,8255A与单片机的连接,数据线D0D7接P0口,复位线RESET接到复位电路,与CPU一起复位,8255A与单片机的连接,未接的地址线设为1,则8255A的PA、PB、PC、控制口的地址:,、A1、A0接地址总线,FF7CH、FF7DH、FF7EH和FF7FH,7FFCH,7FFDH、7FFEH、7FFFH,单片机与8255A的接口电路如前图,PA口作输出口,接8个LED发光二极管,PB口作输入口,接8个按键开关,PC口不用,都工作在方式0。要实现“按下任意键,对应的LED发光”,相应的程序如下:,MOV DPTR,#0FF7FH;指向8255A的控制口 MOV A,#82H;工作方式控制字 MOVX DPTR,A;向控制口写控制字,PA口输出,PB口输入LOOP:MOV DPTR,#0FF7DH;指向8255A的PB口 MOVX A,DPTR;读PB口按键状态 MOV DPTR,#0FF7CH;指向8255的PA口 MOVX DPTR,A;从PA口输出,驱动LED发光。SJMP LOOP,例题,读PB口开关状态,送PA口输出控制LED,循环,8255A仿真界面,8255A输入/输出仿真结果,8255A输入/输出仿真结果,8255芯片工作方式设置举例,扩展8255,并将其PA置为一般输出口,PB置为选通输入口,PC上置为一般输入口,PC下置为一般输出口,PC2位置“1”,如何实现?(假设:控制端口地址7FFFH)【分析】:先定控制字,再编制芯片工作模式的初始化程序。【解】:方式字和C口控制分别为,8255初始化程序:MOV DPTR,#7FFFHMOV A,#8EHMOVX DPTR,AMOV A,#05HMOVX DPTR,A,【注意】:PC口分为三个部分:PC74为输入线;PC3为输出线;PC20为PB口的服务线。,8255芯片扩展举例,扩展8255,令A口接开关、B口接指示灯,将开关状态用指示灯显示出来,电路参见图6-6。如何实现下列使用要求:无条件动态显示开关状态。,解:依据电路得端口地址,P2.7=0、A1A0=P0.1P0.0 PA7FFCH PB7FFDH PC7FFEH CTRL7FFFH,1)方式控制字 PA、PB口均为基本I/O口,PC不用,PA输入,PB输出。仅设方式字即可确定8255的工作模式。,2)控制程序:,8255初始化PA口采集数据PB口显示数据,再作动态循环,无休止进行。,MOV DPTR,#7FFFHMOV A,#90HMOVX DPTR,ANEXT:MOV DPTR,#7FFCHMOVX A,DPTRMOV DPTR,#7FFDHMOVX DPTR,ASJMP NEXT,例题,用8255A的A,B 端口均作为输入或输出端口,有1个开关和8个发光二极管,当开关接通一次时,8个发光二极管循环亮一秒种。试编写程序段实现此功能。(8255A的端口地址是7FFCH7FFFH),