可编程并行接口芯片和串行接口芯.ppt_第1页
可编程并行接口芯片和串行接口芯.ppt_第2页
可编程并行接口芯片和串行接口芯.ppt_第3页
可编程并行接口芯片和串行接口芯.ppt_第4页
可编程并行接口芯片和串行接口芯.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

6.1 并行接口和串行接口 6.2 可编程并行接口芯片8255A 6.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 或CE 2. 读/写概念 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 可编程并行接口芯片8255A,6.2.1 8255A的结构和引脚功能,1数据总线缓冲器 这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。 2三个8位端口PA、PB和PC PA、PB和PC端口都可由程序设定为各种不同的工作方式。 端口A(PA口)有一个8位数据输入锁存器和一个8位数据输出锁存缓冲器; 端口B(PB口)有一个8位数据输入缓冲器和一个8位数据输入输出、锁存缓冲器; 端口C(PC口)有一个8位数据输入缓冲器和一个8位数据输出锁存缓冲器。 通常PA口与PB口用作输入输出的数据端口,PC口用作控制或状态信息的端口。,一、8255A的内部结构,3A组和B组的控制电路(了解) 这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的 “控制字”,并向与其相连的端口发出适当的控制信号。 A组控制部件用来控制PA口和PC口的高4位(PC7PC4); B组控制部件用来控制PB口和PC口的低4位(PC3PCo)。 。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: 选中控制端口; D7D0:与CPU侧连接的数据线(双向) PA7PA0:A口外设数据线(双向) PB7PB0:B口外设数据线(双向) PC7PC0:C口外设数据线(双向),表 81 8255A端口功能选择,6.2.2 8255A的工作方式,一、方式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)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,表示锁存数据已完成,暂时不要再送数据。如果PC41(INTE1),这时就会使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.3 8255A 的初始化,一、方式控制字,二、C口按位置/复位(了解),例:用程序将pc口的第七位置1,第3位置0。 设控制口地址为:0EBH,MOV AL, 00001111B ; 0FH OUT 0EBH,AL,MOV AL, 00000110B ; 06H OUT 0EBH,AL,6.2.4 8255A的应用举例,例1:在一系统中,要求8255A工作在方式0。 现要求将从A口读取的数据 1)求反后从B口输出; 2)将其绝对值从C口输出,Mov al, 90h Out 63h, al ;送控制字到控制字寄存器。 Call delay1 In al, 60h ; 从A口输入数据 1) Call delay2 NOT AL Out 61h, al ; 从B口输出数据 2) Call delay3 CMP AL,0 JGE PLD NEG AL PLD: Out 62h, al ; 从C口输出数据,60h63h,1 0 0 1 0 0 0 0,例2:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,PC4PC5 为输出,禁止端口B中断.要求:1)对8255A初始化;2) 在PC4引脚上输出负脉冲信号。(了解),1) Mov al, 10100111b Mov dx, 43h ; 控制寄存器地址 Out dx, al ; 8255A初始化 Mov al, 0dh ; A口的INTE(PC6)置1 Out dx, al ; A口开放中断 Mov al, 04h ; B口的INTE(PC2)置0 Out dx, al ; B口禁止中断,40H43H,MOV AL,00001001B OUT 43H,AL CALL DELAY MOV AL,00001000B OUT 43H,AL CALL DELAY MOV AL,00001001B OUT 43H,AL,例6-2 开关接口,编程:每隔5分钟从PA口读入8个开关的状态存入2000H:3000H开始的数据区,工作10小时结束。 设8255A的端口地址为60H63H,IN AL,60H,MOV AX,2000H MOV DS,AX MOV BX,3000H,MOV CX,120,MOV AL,10010000B(90H) OUT 63H,AL,MOV BX,AL INC BX,CALL DELAY 5M,DEC CX JNZ LOP,MOV AH,4CH INT 21H,LOP:,七段LED显示接口,七段(或八段)LED数码管简介,a b c D e f g DP,a b c d e f g DP,阴极,阳极,图6-20 七段(或八段)LED数码管,例6-3 LED接口,编程:开始点亮LED7,每隔5妙钟发光灯向上移动一个,循环点亮8个灯,工作10小时结束。 设8255A的端口地址为60H63H,MOV AL,7FH OUT 60H , AL,MOV CX,7200,MOV AL,10000000B(80H) OUT 63H,AL,ROR AL,01H,CALL DELAY 5S,LOOP LOP,MOV AH,4CH INT 21H,LOP:,例6-8 LED/开关接口(p214),图623 8086CPU、8255A同开关7段LED的接口,LED,8255A,1,1,1,+5v,+5v,PA0,PA1,PA7,PB3,PB2,PB1,PB0,a,b,DP,8255A初始化 PA口输出、PB口输入 工作于方式0,从PB口读入信息,屏蔽高4位,取开关状态,查7段显示码表,从PA口输出7段显示码,延时,程序流程(工作原理),A1,A2,A0,A1,要求: 用7段显示器现实开关的状态 设:8255A端口地址0FFF8H、 0FFFAH、0FFFCH、0FFFEH,解题分析,(1)8255A的负载能力较小,所以输出口PA经驱动器同7段LED显示器连接; (2) 8255A设置为方式0工作,PA口输出,PB口输入; (3)由于8255A的A0A1与CPU的A1A2相连接,A0可以为“1”或“0”,因此,每个端口有两个地址,如: PA口地址为0FF8H或0FF9H; (4)按题意可写出控制程序如下:,ORG 2000H MOV AL,82H ;(1000 0010B)8255A方式字 MOV DX,0FFFEH ;8255A控制字端口地址 OUT DX,AL ;送方式字 RDPORTB: MOV DL,0FAH ;送端口B地址 IN AL,DX ;读端口B数据 AND AL,0FH ;屏蔽高4位 MOV BX,OFFSET SSEGCODE;求段码首地址 XLAT ;查表BX+ALAL MOV DL,0F8H ;设A口地址 OUT DX,AL ;段码输出到A口显示 MOV AX,56CH ;延时 DELAY: DEC AX JNZ DELAY JMP RDPORTB ;返回再次读B口内容 HLT ;暂停,读开关状态,处理,显示,ORG 2500H SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H, DB 92H,82H,0F8H,80H,98H,88H DB 83H,0C6H,0A1H,86H,8EH ;段码定义(共阴) 例如:0C0H=1100 0000B;显示“0” PA0=a段=“0”点亮 PA1=b段=“0”点亮 PA2=c段=“0”点亮 PA3=d段=“0”点亮 PA4=e段=“0”点亮 PA5=f段=“0”点亮 PA6=g段=“1”灭 PA7=DP段=“1”灭,a,b,c,d,e,f,g,DP,(1)如果驱动改为反向器,则段码应修改为: SSEGCODE DB 3FH,06H,5BH,4FH,66H, DB 6DH,7DH,07H,7FH,67H,77H DB 7CH,39H,5EH,79H,71H 例如:3FH= 0C0H =0011 1111B;显示“1” PA0=a段=“1”点亮 PA1=b段=“1”点亮 PA2=c段=“1”点亮 PA3=d段=“1”点亮 PA4=e段=“1”点亮 PA5=f段=“1”点亮 PA6=g段=“0”灭 PA7=DP段=“0”灭 (2)如果要求7段LED循环显示0-F十六个数,每个显示5秒,显示20遍,则程序为:,ORG 2000H MOV AL,80H(1000 0000B) ;8255A方式字 MOV DX,0FFFEH ;8255A控制字端口地址 OUT DX,AL ;送方式字 MOV BX,20 ;循环次数20次 DISFLOP: LEA DI, SSEGCODE ;求段码首地址 MOV CX,16 ;显示字符个数 LOP: MOV AL,DI ;取显示字符送A口 MOV DL,0F8H ;设A口地址 OUT DX,AL ;段码输出到A口显示 INC DI ;修改显示指针 CALL DELAY5S ;延时5秒子程序 LOOP LOP ;循环16次 DEC BX ;修改循环20次的计数值 JNZ DISPLOP ;返回再次读B口内容,A口显示 一个字符,A口显示0F共16个字符,A口重复显示(0F)16个字符共20遍,8255A初始化,HLT ;暂停 ORG 2100H DELAY5S: : : ORG 2500H SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H, DB 92H,82H,0F8H,80H,98H,88H DB 83H,0C6H,0A1H,86H,8EH ;段码定义(共阴) 例如:0C0H=1100 0000B;显示“0” PA0=a段=“0”点亮 PA1=b段=“0”点亮 PA2=c段=“0”点亮 PA3=d段=“0”点亮 PA4=e段=“0”点亮 PA5=f段=“0”点亮 PA6=g段=“1”灭 PA7=DP段=“1”灭,例:8255A组成交通灯的控制。 编写程序实现下列功能: K0、K1、K2全部闭合时,红灯亮;K0、K1、K2全部打开时,绿灯亮;其他情况黄灯亮。,分析: K0、K1、K2全部闭合,PA2PA1PA0 :000(00H),红灯亮:PB2PB1PB0:100(04H); K0、K1、K2全部打开,PA2PA1PA0 :111(07H),绿灯亮:PB2PB1PB0:010(02H); 其他情况 黄灯亮:PB2PB1PB0:001(01H); 。,根据电路图可知:8255工作于方式0,A口作输入口,B口作输出口。 方式控制字为:10010000. 端口A的地址为:340H,端口B的地址为341H,控制字寄存器地址为343H。 程序如下:,MOV DX, 343H ;控制字端口地址 MOV AL,90H ;方式控制字 OUT DX, AL ;初始化8255 AGAIN: MOV DX, 340H ;送端口A地址 IN AL,DX ;读端口A AND AL,00000111B ;取A口的低3位 CMP AL, 00000111B(07H) ;判断是否全部打开 JE GREEN CMP AL, 00000000B(00H);判断是否全部闭合 JE RED MOV AL, 1 ;黄灯亮 JMP OUTPUT RED: MOV AL, 4 ;红灯亮 JMP OUTPUT GR

温馨提示

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

评论

0/150

提交评论