可编程并行接口8255A.ppt
《可编程并行接口8255A.ppt》由会员分享,可在线阅读,更多相关《可编程并行接口8255A.ppt(50页珍藏版)》请在三一办公上搜索。
1、第5章 可编程并行接口8255A5.1 8255A芯片引脚和内部结构 项目1:开关状态显示 5.1.2 知识讲解5.2 8255A控制字 项目2:8255A控制LED灯左循环亮 5.2.2 知识讲解5.3 8255A的工作方式 项目3:用8255A控制LED灯左右循环亮 5.3.2 知识讲解5.4 项目扩展与工程应用 项目4:用8255A控制继电器 项目5:用8255A端口控制步进电机,5.1 8255A芯片引脚和内部结构项目1:开关状态显示1项目要求与目的(1)项目要求:设定8255A的PB口为开关量输入,PC口为开关量输出,编写程序实现能随时将PB口的开关状态通过PC口的发光二极管显示出来
2、。(2)项目目的:了解8255A芯片引脚和内部结构。了解8255A输入/输出实验方法。2项目电路连接与说明(1)项目电路连接:将K0K7用导线连接至8255A的PB0PB7端口,将LED0LED7用导线连至8255A的PC0PC7端口,8255A的片选cs用导线连至地址译码处的200207插孔。(2)项目说明:可编程通用接口芯片8255A有3个8位的并行I/O口,它有三种工作方式。本项目采用8255A工作于方式0,PB口为输入,PC口为输出,输入量为开关量,通过8255A可实时显示在LED灯上。3项目电路原理框图 开关状态显示电路原理框图如图5-1所示。电路由8086CPU芯片、8255A芯片
3、、74LS245驱动芯片、8只开关K0K7和8个发光二极管LED0LED7组成。,4项目程序设计(1)程序流程图 8255A的PB口为开关量输入,PC口为开关量输出,要求能随时将PB口的开关状态通过PC口的发光二极管显示出来的程序流程图如图5-2所示。,图5-2 开关状态显示程序流程图,(2)程序清单开关状态显示程序清单如下所示。CODE SEGMENTASSUME CS:CODE START:MOV DX,203H;8255A控制口地址 MOV AL,82H;控制字10000010B(PC口输出,PB口输入,方式0)OUT DX,AL BG:MOV DX,201H;PB口地址 IN AL,D
4、X;读开关状态 MOV DX,202H;PC口地址 OUT DX,AL;输出开关状态 JMP BG;循环CODE ENDSEND START,5.1.2 知识讲解1.概述 计算机系统的信息交换有两种形式:并行数据传输方式和串行数据传输方式。并行数据传输是以计算机的字长,通常是8位、16位或32位为传输单位,一次传送个字长的数据。并行接口的“并行”含义不是指接口与系统总线一侧的并行数据而言,而是指接口与I/O设备或控制对象一侧的并行数据线。8255A是Intel公司生产的通用可编程并行接口芯片,8255A采用40脚双列直插封装,单一+5V电源,全部输入/输出与TTL电平兼容。用8255A连接外部
5、设备时,通常不需要再附加其他电路,给使用带来很大方便。它有三个输入/输出端口:端口A、端口B、端口C。每个端口都可通过编程设定为输入端口或输出端口,但有各自不同的方式和特点。端口C可作为一个独立的端口使用,但通常是配合端口A和端口B的工作,为这两个端口的输入/输出提供控制联络信号。2.8255A芯片引脚 8255A芯片引脚如图5-3(a)所示,8255A芯片有40根引脚,可分为如下三类。(1)电源与地线2根:Vcc(26脚)、GND(7脚)。(2)与外设相连的共24根,它们如下所示。PA7PA0:端口A数据信号(8根)。PB7PB0:端口B数据信号(8根)。PC7PC0:端口C数据信号(8根)
6、。,(3)与CPU相连的共14根。RESET(35脚):复位信号,高电平有效。当RESET信号有效时,内部所有寄存器都被清零。同时,3个数据端口被自动设置为输入端口。D7D0:三态双向数据线,在8086系统中,采用16位数据总线,8255A的D7D0通常是接在16位数据总线的低8位上。cs(6脚):片选信号,低电平有效。该信号来自译码器的输出,只有当cs有效时,读信号RD和写信WR号才对8255A有效。RD(5脚):读信号,低电平有效。它控制从8255A读出数据或状态信息。WR(36脚):写信号,低电平有效。它控制把数据或控制命令字写入8255A。A1、A0(8、9脚):端口选择信号。8255
7、A内部共有4个端口(即寄存器):3个数据端口(端口A、端口B、端口C)和1个控制端口,当片选信号CS有效时,规定A1、A0为00、01、10、11时,分别选中端口A、端口B、端口C和控制端口。CS、RD、WR、A1、A0这五个信号的组合决定了对3个数据端口和1个控制端口的读写操作,如表5-1所示。,表5-1 8255A端口选择和基本操作,3.8255A内部结构 8255A的内部结构如图5-3(b)所示。它包括四个部分:数据总线缓冲器、读写控制逻辑、A组控制器(包括端口A和端口C的上半部)和B组控制器(包括端口B和端口C的下半部)。(1)端口A、端口B和端口C 8255A芯片内部有三个8位端口,
8、分别为A口、B口和C口。这三个端口可与外部设备相连接,可用来与外设进行数据信息、控制信息和状态信息的交换。端口A包含一个8位数据输出锁存器缓冲器和一个8位数据输入锁存器。所以用端口A作为输入端口或输出端口时,数据均被锁存。端口B包含一个8位数据输出锁存器缓冲器和一个8位数据输入锁存器。所以用端口B作为输入端口或输出端口时,数据均被锁存。端口C包含一个8位数据输入缓冲器和一个8位的数据输出锁存器缓冲器。所以端口C作为输入端口时不能对数据进行锁存,作为输出端口时能对数据进行锁存。端口C可以分成两个4位端口,分别可以定义为输入端口或输出端口,还可定义为控制、状态端口,配合端口A和端口B工作。,(2)
9、A组和B组 端口A和端口C的高4位(PC7PC4)构成A组,由A组控制部件来对它进行控制;端口B和端口C的低4位(PC3PC0)构成B组,由B组控制部件对它进行控制。这两个控制部件各有一个控制单元,接收来自数据总线送来的控制字,并根据控制字确定各端口的工作状态和工作方式。(3)数据总线缓冲器 数据总线缓冲器是一个双向三态的8位缓冲器,它与CPU系统数据总线相连,是8255A与CPU之间传输数据的必经之路。输入数据、输出数据、控制命令字都是通过数据总线缓冲器进行传送的。(4)读写控制逻辑 读写控制逻辑接收来自CPU地址总线的信号和控制信号,并发出命令到A组和B组,把CPU发出的控制命令字或输出的
10、数据通过数据总线缓冲器送到相应的端口,或者把外设的状态或输入的数据从相应的端口通过数据总线缓冲器送到CPU。8255A接口芯片的地址译码电路设计需考虑的问题是:对于8086系统,由于采用16位数据总线,CPU在进行数据传送时,总是将低8位数据送往偶地址端口,而将高8位数据送往奇地址端口;反过来,从偶地址端口取得数据总是通过低8位数据线传送到CPU,从奇地址端口取得数据总是通过高8位数据线传送到CPU。在微机80386以上的32位外部数据总线的系统中,则应将8255A的A1端与地址总线的A3相连,将8255A的A0端与地址总线A2相连,并使CPU访问8255A时地址总线的A1、A0两位总是为00
11、。,5.2 8255A控制字及状态字项目2:8255A控制LED灯左循环亮 1.项目要求与目的(1)项目要求:根据开关的状态,用8255的PA端口控制8只LED发光二极管,PB口接1只开关,编写程序实现K0闭合,LED灯左循环亮。(2)项目目的:了解8255控制方式的设置。掌握8255的初始化及编程方法。2项目电路连接与说明(1)项目电路连接:8255A的片选CS孔用导线接至译码处200H207H插孔,8255A的PA0-PA7用导线接至LED0-LED7,PB0用导线接至开关K0。(2)项目说明:Intel 8255A是常用的并行可编程接口芯片,它有3个8位并行输入/输出端口,可利用编程方法
12、设置3个端口是作为输入端口还是作为输出端口,在使用时,要对8255进行初始化。本项目PA口作为输出口,PB口作为输入口,工作于方式0。当开关K0闭合,LED灯左循环亮。,3项目电路原理框图 用8255A控制LED灯左循环亮电路框图如图5-4所示。电路由8086CPU芯片、8255A芯片、8只LED发光二极管和1只开关K0等组成。,图5-4 8255A控制LED灯左循环亮电路原理框图,4项目程序设计(1)程序流程图用8255A控制LED灯左循环亮程序流程图如图5-5所示。,图5-5 8255A控制LED灯左循环亮程序流程图,(2)程序清单用8255A控制LED灯左循环亮程序清单如下所示。CODE
13、 SEGMENTASSUME CS:CODE START:MOV DX,203H;8255控制端口 MOV AL,82H;PA输出,PB输入 OUT DX,AL MOV DX,200H;PA端口地址 MOV AH,0FEH;置LED0亮初始值 BG:MOV AL,AH OUT DX,AL;点亮LED灯 CALL DELAY;调延时子程序 MOV DX,201H;PB端口地址 IN AL,DX;读开关的状态 TEST AL,01H;PB0=0吗?(K0闭合吗)JNZ BG;PB00,转移 ROL AH,1;PB0=0,左移 MOV DX,200H JMP BG,DELAY PROC NEAR;延
14、时子程序MOV BL,100DELAY2:MOV CX,374DELAY1:NOP NOP LOOP DELAY1 DEC BL JNZ DELAY2 RETDELAY ENDPCODE ENDS END START,5.2.2 知识讲解 8255A是可编程并行接口芯片。可编程就是用指令的方法先对芯片进行初始化,设置芯片的端口是处于输入数据状态还是处于输出数据状态,以及每个端口的工作方式。要使8255A工作,必须把工作命令控制字写入8255A的控制字寄存器。8255A共有两种控制字:工作方式选择控制字,可使8255A的3个数据端口工作在不同的方式。端口C按位置位/复位控制字,它可使C端口中的任
15、何一位进行置位或复位。1.工作方式选择控制字8255A的3种基本工作方式:由方式选择控制字来决定。方式0:基本的输入/输出方式。方式1:选通的输入/输出方式。方式2:双向的传输方式。端口A可以工作于方式0、方式1、方式2共三种工作方式,可以作为输入端口或输出端口。端口B可以工作于方式0、方式1两种工作方式,可以作为输入端口或输出端口。端口C分成高4位(PC7PC4)和低4位(PC3PC0),可分别设置成输入端口或输出端口;端口C的高4位与端口A配合组成A组,端口C的低4位与端口B配合组成B组。D71(特征位)表明是设定方式选择控制字。,通过对8255A工作方式控制字的设置可将PA、PB和PC
16、3个端口分别定义为3种不同工作方式的组合,工作方式选择控制字格式及各位含义如图5-6所示。,在使用8255A芯片前,必须先对其进行初始化。初始化的程序很简单,只要CPU执行一条输出指令,把控制字写入控制寄存器就可以了。,图5-6 8255A的工作方式选择控制字,【例5-1】按下述要求对8255A进行初始化。要求A口设定为输出数据,工作方式为方式0;B口设定为输入数据,工作方式为方式1;C口设定为高四位输入,低四位输出。(地址为200H203H)MOV DX,203H;8255控制口地址送DXMOV AL,8EH;写工作方式控制字10001110BOUT DX,AL;控制字送到控制口 需要注意的
17、是,C端口高四位和低四位的数据传输方向可以相同,也可以不同,无论是哪一种情况,IN/OUT指令总是把C端口当作一个整体对其进行读写操作。2.端口C按位置位复位控制字 端口C按位置位复位控制字可实现对端口C的每一位进行控制。置位是使该位为1,复位是使该位为0。控制字的格式及各位含义如图5-7所示。,D7位是特征位,用来区分该控制字是工作方式控制字还是对端口C按位置位复位控制字。D71,为工作方式控制字;D70为端口C按位置位复位控制字。D6、D5、D4三位无意义,可为任意值。D3、D2、D1按二进制编码,用来选择对端口C的哪一位进行操作。选择的位将由D0位规定是置位(D0=1)还是复位(D0=0
18、)。D0位用来选择对所选定的端口C的哪一位是置位(D0=1)还是复位(D0=0)。需要注意如下三点:端口C按位置位复位控制字,必须写入控制寄存器,而不是写入端口C。当C端口被设置为输出时,端口C按位置位复位控制字,可以对C口的某一根端口线按位操作,也就是说,使C口某一根端口线输出高低电平,而不影响其他端口线输出高低电平。当A端口工作在方式1或方式2,B端口工作在方式1时候,端口C按位置位复位控制字,可以使内部的“中断允许触发器”置“1”或置“0”。,【例5-2】要求通过8255A芯片C口的PC2位产生一个方脉冲信号。(地址为200H203H)MOV DX,203H;控制口地址送DXAA MOV
19、 AL,05H;对PC2置位的控制字OUT DX,ALCALL DELAY1;调用延时程序(省略)MOV AL,04H;对PC2复位的控制字OUT DX,ALCALL DELAY2;调用延时程序(省略)JMP AA,5.3 8255A的工作方式项目3:用8255A控制LED灯左右循环亮 1项目要求与目的(1)项目要求:根据开关的状态,用8255的端口PA控制8只LED发光二极管,PB口接两只开关K0和K1,编写程序实现K0闭合,LED灯左循环亮,K1闭合,LED灯右循环亮。(2)项目目的:了解8255控制方式的设置。掌握8255的编程方法。了解8255控制外部设备的常用电路。2项目电路连接与说
20、明(1)项目电路连接:8255的片选CS孔用导线接至译码处200H207H插孔,8255的PA0-PA7用导线接至LED0-LED7,PB0-PB1用导线接至开关K0和K1。(2)项目说明:8255是常用的并行接口芯片,在使用时,只要对8255进行初始化就可使用。本项目PA口作为输出口,PB口作为输入口,工作于方式0。当开关K0闭合,LED灯左循环亮,当开关K1闭合,LED灯右循环亮。,3项目电路原理框图 用8255A控制LED灯左右循环亮电路框图如图5-8所示。电路由8086CPU芯片、8255A芯片、8只LED发光二极管和两只开关K0和K1等组成。,图5-8 用8255A控制LED灯左右循
21、环亮电路框图,4项目程序设计(1)程序流程图用8255A控制LED灯左右循环亮程序流程图如图5-9所示。,图5-9用8255A控制LED灯左右循环亮程序流程图,(2)程序清单用8255A控制LED灯左右循环亮程序清单如下所示。CODE SEGMENTASSUME CS:CODE START:MOV DX,203H;8255控制口地址 MOV AL,82H;PA口输出,PB口输入 OUT DX,AL MOV DX,200H;PA口地址 MOV AH,0FEH;置LED0亮初始值 BG:MOV AL,AH OUT DX,AL;点亮LED灯 CALL DELAY;调延时子程序 MOV DX,201H
22、;PB端口地址 IN AL,DX;读开关的状态 TEST AL,01H;PB0=0吗?(K0闭合吗)JNZ OPR;PB00,转移 ROL AH,1;PB0=0,左移 MOV DX,200H;PA口地址 JMP BG,OPR:IN AL,DX;读开关的状态 TEST AL,02H;PB1=0吗?(K1闭合吗)JNZ BG;PB10,转移 ROR AH,1;PB1=0右移 MOV DX,200H;PA口地址 JMP BG DELAY PROC NEAR;延时子程序MOV BL,100DELAY2:MOV CX,374DELAY1:NOP NOP LOOP DELAY1 DEC BL JNZ DE
23、LAY2 RETDELAY ENDPCODE ENDS END START,5.3.2 知识讲解 8255A有3种工作方式,可以通过编程来进行设置。方式0为简单I/O,查询方式,端口A、端口B、端口C均可使用。方式1为选通I/O,中断方式,端口A、端口B可以使用。方式2为双向I/O,中断方式,只有端口A可以使用。工作方式的选择可通过向控制端口写入控制字来实现。在不同的工作方式下,8255A的3个I/O端口的排列如图5-10所示。1方式0 方式0也叫基本输入/输出方式。一种方式,不需要应答联络信号,端口A、端口B和端口C的高4位及低4位都可以作为输入或输出端口。方式0的应用场合有无条件传送和查询
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 并行 接口 8255
链接地址:https://www.31ppt.com/p-6555604.html