1、一个芯片可扩展多个并行一个芯片可扩展多个并行I/OI/O口口可用软件改变接口的功能可用软件改变接口的功能可直接与单片机连接,可直接与单片机连接,进行并行数据传送进行并行数据传送7.5 7.5 可编程并行可编程并行I/OI/O口的扩展口的扩展 8255A和和8155是两种常用的可编程并行是两种常用的可编程并行I/O 口的扩展芯口的扩展芯片,优点是:片,优点是:学习要点:学习要点:理解并行通信的概念及特点,掌握理解并行通信的概念及特点,掌握8255A8255A的功能、工作方式、编程的功能、工作方式、编程方法及其应用。方法及其应用。单片机单片机8255A外设外设 8255A 8255A是是Intel
2、Intel系列的可编程并行接口芯片,扩展一片系列的可编程并行接口芯片,扩展一片可获得可获得3 3个个8 8位的并行位的并行I/OI/O口,是一种单片机与外设之间的接口,是一种单片机与外设之间的接口电路。口电路。1.8255A1.8255A的结构及引脚功能的结构及引脚功能 8255A8255A为为4040引脚的双列直插式(引脚的双列直插式(DIPDIP)封装)封装(1 1)引脚功能)引脚功能 D0 D0D7D7为数据线,与单片机的数据为数据线,与单片机的数据总线连接,传数据、命令等。总线连接,传数据、命令等。PA0 PA0PA7PA7(PAPA口)、口)、PB0PB0PB7PB7(PBPB口)、
3、口)、PC0PC0PC7PC7(PCPC口)为口)为3 3个个8 8位并行位并行I/OI/O口,用于口,用于8255A8255A与外设之间传数据。与外设之间传数据。读写控制逻辑线读写控制逻辑线CSRDWR片选信号,接单片机的地址总线片选信号,接单片机的地址总线读信号,接单片机的读信号读信号,接单片机的读信号写信号,接单片机的写信号写信号,接单片机的写信号RESETRESET复位信号,接单片机的复位复位信号,接单片机的复位 A1 A1、A0 A0 端口选择信号,接单片机的端口选择信号,接单片机的地址总线,与片选地址总线,与片选/CS/CS一起,确定一起,确定8255A8255A访问访问的端口地址
4、。的端口地址。(2)内部结构)内部结构A组控制组控制B组控制组控制PA口口PC口高四位口高四位PB口口PC口低口低4位位 读读/写控制逻辑写控制逻辑接收接收CPUCPU传来的控制信号,以控制传来的控制信号,以控制8255A8255A的操作的操作CSWRA1、A0、RESET 数据总线缓冲器数据总线缓冲器双向三态双向三态8 8位缓冲器,与单片机的数据总线直接相连位缓冲器,与单片机的数据总线直接相连 并行并行I/O端口端口 有有3个个8位并行位并行I/O口,口,PA、PB、PC它们可以被设置成输入或输出它们可以被设置成输入或输出 A、B组控制电路组控制电路 A、B两组控制电路将三个端口两组控制电路
5、将三个端口分成分成A、B两组。两组。一片一片8255A占占4个端口地址:个端口地址:PA口、口、PB口、口、PC口、控口、控制口,由制口,由/CS、A1、A0决定决定。2.8255A2.8255A端口的寻址端口的寻址CS控制口控制口1 11 10 0PCPC口口1 01 00 0PBPB口口0 10 10 0PAPA口口0 00 00 0选选 择择A1 A0A1 A0CS、A1、A0接单片机的地址总线,构成单片机访问接单片机的地址总线,构成单片机访问8255A的的16位地址。位地址。、A1A1、A0A0与地址总线的连接方案不同,端口地址不同。与地址总线的连接方案不同,端口地址不同。CS片选地址
6、片选地址片内地址片内地址16位总线访问地址位总线访问地址=片选地址片选地址+片内地址片内地址 PAFF7CH PBFF7DH PCFF7EH 控制口控制口FF7FHCS接接A7,A1、A0接接CPU的的A1、A0,则端口地址:,则端口地址:CSA1 A0A1 A08255A8255A没接的地址线设为没接的地址线设为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 A
7、5 A4 A3 A2 A1 A0PA口:口:0 0 0PB口:口:0 0 1PC口:口:0 1 0控制口:控制口:0 1 1例如例如8255A端口地址的确定片内地址片内地址片选地址片选地址CS接接A15,A1、A0接接CPU的的A1、A0,则端口地址:,则端口地址:CSA1 A1 A0A08255A8255A没接的地址线设为没接的地址线设为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
8、A9 A8 A7 A6 A5 A4 A3 A2 A1 A0PA口:口:0 0 0PB口:口:0 0 1PC口:口:0 1 0控制口:控制口:0 1 1例如例如8255A端口地址的确定片内地址片内地址片选地址片选地址 PA7FFCH PB7FFDH PC7FFEH 控制口控制口7FFFH3.8255A3.8255A的控制字的控制字8255A8255A有两个控制字:有两个控制字:工作方式控制字工作方式控制字PC口置口置/复位控制字复位控制字 这两个控制字都写到这两个控制字都写到8255A的控制口,用的控制口,用同一个端口地址采用特征位识别。同一个端口地址采用特征位识别。D71,表示是工作方式控制字
9、,表示是工作方式控制字 D70,表示是,表示是PC口置口置/复位控制字复位控制字工作方式控制字工作方式控制字PC置置/复位控制字复位控制字 工作方式控制字工作方式控制字 作用是用来设置作用是用来设置3个并行口作输入口还是作输出口、设置个并行口作输入口还是作输出口、设置8255A的工作方式的工作方式PA口有口有3种工作方式,种工作方式,PB口有口有2种工作方式,种工作方式,PC口只有一种工作方式口只有一种工作方式0在方式在方式1或方式或方式2,PC口自动作为口自动作为PA口、口、PB口的控制信号口的控制信号位为位为0,为输出口;为,为输出口;为1,为输入口,为输入口8255A有三种工作方式:有三
10、种工作方式:方式方式0 基本输入基本输入/输出方式输出方式 方式方式1 选通输入选通输入/输出方式输出方式 方式方式2 双向输入双向输入/输出方式输出方式工作工作方式控制字方式控制字 标志位标志位 A 组方式设置组方式设置 A口口 C上上 口口 B 组方式组方式 B口口 C下下 口口 1 1/0 1/0 1/0 1/0 1/0 1/0 1/0 含义含义 方式方式 0、1、2 输入输入/输出输出 输入输入/输出输出 方式方式 0、1 输入输入/输出输出 输入输入/输出输出 工作方式控制字工作方式控制字C 口口置置/复位控制复位控制字字 标志位标志位 不使用位不使用位 C 口位地址编码口位地址编码
11、 位状态位状态 0 1/0 1/0 1/0 1/0 含义含义 一般取简码一般取简码 000 选择选择 PC7PC0 位位 置位置位/复位复位 PC PC口置口置/复位控制字复位控制字其作用是用来设置其作用是用来设置PC口某位输出高电平或低电平。口某位输出高电平或低电平。实现某些位控制,如启实现某些位控制,如启/停外设、开关的通停外设、开关的通/断、继电器的吸合断、继电器的吸合/释放等释放等 例例 设设8255A的控制口地址为的控制口地址为FF7FH,试编程,试编程设置:设置:PA口为工作方式口为工作方式0输入,输入,PB口为工作方口为工作方式式0输出,输出,PC4PC7为输出,为输出,PC0P
12、C3为输入。为输入。则工作方式控制字为则工作方式控制字为10010001B,其初始化程序:,其初始化程序:MOV DPTRMOV DPTR,#0FF7FH#0FF7FH ;控制口地址;控制口地址 MOV AMOV A,#91H#91H ;工作方式控制字;工作方式控制字 MOVX DPTR,A MOVX DPTR,A ;写控制字到控制口;写控制字到控制口PC置置/复位控制字复位控制字4.8255A4.8255A的工作方式的工作方式8255A有有3种工作方式:方式种工作方式:方式0、方式、方式1、方式、方式2 方式方式0 0 基本输入基本输入/输出方式输出方式2个个8位位I/O口(口(PA、PB)
13、,),2个个4位位I/O口(口(PC口高口高4位、低位、低4位)位)任意一个口可作输入口或输出口任意一个口可作输入口或输出口两种数据传送方式:两种数据传送方式:无条件传送方式无条件传送方式 不需任何应答联络信号。认为外设随时是准备好的,如键盘,显示器不需任何应答联络信号。认为外设随时是准备好的,如键盘,显示器查询传送方式查询传送方式需要联络信号,这时,需要联络信号,这时,PA、PB作数据口,人为定义作数据口,人为定义PC口作控制信号口作控制信号提供外设状态、外设选通信号,可设置为提供外设状态、外设选通信号,可设置为4位作输入、位作输入、4位作输出位作输出 方式方式1 1 选通输入选通输入/输出
14、方式输出方式PA口、口、PB口作输入口作输入/输出口,输出口,PC口自动提供固定关系的选通信号和应答信号口自动提供固定关系的选通信号和应答信号 A组:组:B组:组:PA口为数据口口为数据口 PC口高四位作联络信号口高四位作联络信号PB口为数据口口为数据口 PC口低四位作联络信号口低四位作联络信号 方式方式2 2双向输入双向输入/输出方式输出方式只有只有PA口能够设定为方式口能够设定为方式2,PA口为口为8位双向数据口,能读能写位双向数据口,能读能写PC口的口的PC3PC7共共5位作位作PA口数据输入口数据输入/输出的联络信号输出的联络信号 PB口不能工作在方式口不能工作在方式2,仍可工作在方式
15、,仍可工作在方式0或方式或方式1 三个口分成两组:三个口分成两组:A组、组、B组组 A口借用口借用C口的一些信号线用作控制和状态线,形成口的一些信号线用作控制和状态线,形成A组;组;B口借用口借用C口口的一些信号线用作控制和状态线,组成的一些信号线用作控制和状态线,组成B组。在方式组。在方式1下,下,A口和口和B口的输入口的输入输出均带有锁存。输出均带有锁存。PA口有方式口有方式0、1、2PB口有方式口有方式0、1,没有方式,没有方式2PC口只有方式口只有方式0 8255 PC为控制口时各引脚功能为控制口时各引脚功能8255A PC 口各引脚服务功能定义表口各引脚服务功能定义表 端口端口 工作
16、方式工作方式 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 方式方式 1 输入输入 IBFA ASTB INTRA 方式方式 1 输出输出 AOBF AACK INTRA PA 方式方式 2 双向双向 AOBF AACK IBFA ASTB INTRA 方式方式 1 输入输入 BSTB IBFB INTRB PB 方式方式 1 输出输出 BACK BOBF INTRB AOBF 输出缓冲器满信号,输出缓冲器满信号,CPU已将数据送出,通知外设取。已将数据送出,通知外设取。外设响应信号,表示外设已将数取走。外设响应信号,表示外设已将数取走。AACKIBFA输入缓冲器满信号,即外
17、设所送数据已装入锁存器。输入缓冲器满信号,即外设所送数据已装入锁存器。选通输入脉冲信号,表示外设待输入数据已经准备好。选通输入脉冲信号,表示外设待输入数据已经准备好。ASTBINTRA中断请求信号,为中断请求信号,为“1”时向时向CPU发出中断请求。发出中断请求。PB口的各服务功能含义与口的各服务功能含义与PA口相同。口相同。4.8255A4.8255A的应用的应用8255A与单片机的连接与单片机的连接数据线数据线D0D7接接P0口口 RDWRRDWR接单片机的接单片机的、复位线复位线RESET接到复位电路,与接到复位电路,与CPU一起复位一起复位 8255A与单片机的连接与单片机的连接 未接
18、的地址线设为未接的地址线设为1,则,则8255A的的PA、PB、PC、控制口的地址:、控制口的地址:CS、A1、A0接地址总线接地址总线CSP0.7、P0.1、P0.0经锁存器经锁存器74LS373接接、A1、A0FF7CH、FF7DH、FF7EH和和FF7FH CS如将如将接接P2.7,则,则8255A的四个端口地址为:的四个端口地址为:7FFCH,7FFDH、7FFEH、7FFFH 单片机与单片机与8255A的接口电路如前图,的接口电路如前图,PA口作输出口,接口作输出口,接8个个LED发光二极管,发光二极管,PB口作输入口,接口作输入口,接8个按键开关,个按键开关,PC口不口不用,都工作
19、在方式用,都工作在方式0。要实现。要实现“按下任意键,按下任意键,对应的对应的LED发光发光”,相应的程序如下:,相应的程序如下:MOV DPTRMOV DPTR,#0FF7FH#0FF7FH ;指向;指向8255A8255A的控制口的控制口 MOV AMOV A,#82H#82H ;工作方式控制字;工作方式控制字 MOVX DPTR,A MOVX DPTR,A ;向控制口写控制字,;向控制口写控制字,PAPA口输出,口输出,PBPB口输入口输入LOOPLOOP:MOV DPTRMOV DPTR,#0FF7DH#0FF7DH ;指向;指向8255A8255A的的PBPB口口 MOVX A,DP
20、TR MOVX A,DPTR ;读;读PBPB口按键状态口按键状态 MOV DPTRMOV DPTR,#0FF7CH#0FF7CH ;指向;指向82558255的的PAPA口口 MOVX DPTR,A MOVX DPTR,A ;从;从PAPA口输出,驱动口输出,驱动LEDLED发光。发光。SJMP LOOPSJMP LOOP例题例题8255A+5VK0PB0PB3PB4PB7K3K4K7.PA0PA7PA4PA3发光发光二级二级管驱管驱动器动器.L0L7L4L3.+5V读读PB口开关状态,送口开关状态,送PA口输出控制口输出控制LED,循环,循环 8255A8255A仿真界面仿真界面8255A
21、8255A输入输入/输出仿真结果输出仿真结果8255A8255A输入输入/输出仿真结果输出仿真结果8255芯片工作方式设置举例芯片工作方式设置举例 扩展扩展8255,并将其,并将其PA置为一般输出口,置为一般输出口,PB置为选通输入口,置为选通输入口,PC上上置置为一般输入口,为一般输入口,PC下下置为一般输出口,置为一般输出口,PC2位置位置“1”,如何实现?(,如何实现?(假设:假设:控制端口地址控制端口地址7FFFH)【分析分析】:先定控制字,再编制芯片工作模式的初始化程序。:先定控制字,再编制芯片工作模式的初始化程序。【解解】:方式字和:方式字和C口控制分别为口控制分别为8255初始化
22、程序:初始化程序:MOV DPTR,#7FFFHMOV A,#8EHMOVX DPTR,AMOV A,#05HMOVX DPTR,A【注意注意】:PC口分为三个部分:口分为三个部分:PC74为输入线;为输入线;PC3为输出线;为输出线;PC20为为PB口的服务线。口的服务线。8255芯片扩展举例芯片扩展举例 扩展扩展8255,令,令A口接开关、口接开关、B口接指示灯,将开关状态用口接指示灯,将开关状态用指示灯显示出来,电路参见图指示灯显示出来,电路参见图6-6。如何实现下列使用要求:。如何实现下列使用要求:无条件动态显示开关状态。无条件动态显示开关状态。K0 K7+5V+5V CS A1 PB
23、0 A0 8255 PB7 D0 D1 D2 D3 D4 D5 D6 D7 PA0 WR RD RESET PA7 P2.7 8031 ALE P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 WR RD RESET EA G 74LS373 OE 解:依据电路得端口地址解:依据电路得端口地址 P2.7=0、A1A0=P0.1P0.0 PA7FFCH PB7FFDH PC7FFEH CTRL7FFFH 标志标志 A 组组 A口口 C上上口口 B 组组 B口口 C下下口口 方式字方式字 含义含义 方式方式 0 输输入入 不用不用 方式方式0 输输出出 不用不用 90
24、H 1 0 0 1 0 0 1)方式控制字)方式控制字 PA、PB口均为基本口均为基本I/O口,口,PC不用,不用,PA输入,输入,PB输出。仅输出。仅设设方式字方式字即可确定即可确定8255的工作模式。的工作模式。K0 K7+5V+5V CS A1 PB0 A0 8255 PB7 D0 D1 D2 D3 D4 D5 D6 D7 PA0 WR RD RESET PA7 P2.7 8031 ALE P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 WR RD RESET EA G 74LS373 OE 2)控制程序:)控制程序:8255初始化初始化PA口采集数据口采
25、集数据PB口显示数据,再作动态口显示数据,再作动态循环,无休止进行。循环,无休止进行。K0 K7+5V+5V CS A1 PB0 A0 8255 PB7 D0 D1 D2 D3 D4 D5 D6 D7 PA0 WR RD RESET PA7 P2.7 8031 ALE P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 WR RD RESET EA G 74LS373 OE MOV DPTR,#7FFFHMOV A,#90HMOVX DPTR,ANEXT:MOV DPTR,#7FFCHMOVX A,DPTRMOV DPTR,#7FFDHMOVX DPTR,ASJMP
26、 NEXT例题例题用用8255A的的A,B 端口均作为输入或输出端口,有端口均作为输入或输出端口,有1个开关和个开关和8个个发光二极管,当开关接通一次时,发光二极管,当开关接通一次时,8个发光二极管循环亮一秒种。个发光二极管循环亮一秒种。试编写程序段实现此功能。试编写程序段实现此功能。(8255A的端口地址是的端口地址是7FFCH7FFFH)8255A+5VK(CPU 数据总数据总 线)线)D0D7A1RESET(CPU)WR(CPU)RDA0CSPB7PA0PA7PA4PA3发光发光二级二级管驱管驱动器动器.L0L7L4L3.+5V8255A8255A初始化初始化A A口输出口输出AK K闭合吗?闭合吗?读读B B口数据口数据A A左移位左移位调调1 1秒钟延时程序秒钟延时程序A 01HA A0 0?YYNN