第8章 并行接口_第1页
第8章 并行接口_第2页
第8章 并行接口_第3页
第8章 并行接口_第4页
第8章 并行接口_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

PAGE11第八章并行接口基本内容:并行通讯概念;并行接口芯片8255A的结构、引脚定义及8255与CPU的连接;8255控制字的使用;8255的工作方式;8255的应用;键盘的工作原理(行反转法、行扫描法);LED数码显示的工作原理及常用的驱动电路;LED多位显示的解决方案。基本要求:了解并行通讯的概念;掌握8255A的结构、引脚定义及与CPU的连接;会正确选用8255的工作方式,熟练使用8255;了解键盘及LED的工作原理;会设计简单的键盘和显示电路。重点内容:8255的结构、与CPU的连接;8255的工作方式0;键盘、LED的工作原理难点内容:8255的工作方式;LED的多位显示问题。第一节可编程并行通讯接口8255A一、8255A的编程结构8255A的内部结构框图8255A的芯片引脚信号8255A的内部结构框图8255A的芯片引脚信号数据端口A、B、C8255A有3个8位数据端口,即端口A、端口B、端口C;设计人员可以编程设定其作为输入口还是输出口。PA口:一个八位输入寄存器和一个八位输出锁存缓冲器。输入输出时受锁存PB口:一个八位输入缓冲器和一个八位输出锁存缓冲器。PC口:一个八位输入缓冲器和一个八位输出锁存缓冲器。在实际应用中,端口A和端口B常用作独立的输入输出口,端口C可以用作独立的I/O口,也可以分成2个四位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出锁存器/缓冲器,它们分别用来为端口A和端口B提供控制信号和状态信号。(用控制字实现)读写逻辑控制电路这部分电路是用来完成对8255A内部三个数据口及控制口(含A组和B组)的译码工作,由CPU的地址总线A1、A0和8255A的片选信号CS和WR、RD信号组合后产生控制命令,从而完成对数据信息的传输控制。接收和A1、A0信号、RESET信号及读写信号、产生相应的控制。A组控制和B组控制实际应用中,根据情况将PC口分成两组4位口:PC0~PC3与PB口配合作为B组,PC4~PC7与PA口配合作为A组,数据总线缓冲器这是一个双向三态的8位数据缓冲器,8255A正是通过它与系统总路线相连。输入数据、输出数据、CUP发给8255A的控制字都是通过这个缓冲器传递的。8位双向CPU送出的控制字与数据、8255的状态信息及数据通过此通讯。二、8255A的引脚信号8255A共40个引脚,采用双列直插式封装—DIP,除电源和地以外,其他信号可分为两组:与外设相连的引脚PA0~PA7:A组数据信号PB0~PB7:B组数据信号PC0~PC7:C组数据信号与CPU相连的引脚RESET: 复位信号,高电平有效。复位后,内部寄存器清空,3个数据端口被自动设为输入端口。 D0~D7: 8255A的数据线引脚,和系统数据总路线相连。、: 读写控制信号,低有效。有效时,CPU可从8255A中读取输入数据;有效时,CPU可往8255A中写入控制字或数据。: 片选信号(芯片选择信号),低电平有效。为低电平时,才能对8255A进行读写。A1、A0: 端口选择信号。8255内部有PA、PB、PC三个数据端口和一个控制端口,共四个端口,用A1、A0来选择对哪一个端口进行操作。规定:A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制端口。可参见P155页图5.4为8255A的控制信号和传输动作之间的对应关系。三、8255与CPU的连接8086中16位数据线,低8位数据通过D0~D7传送,而低8位总线总要连接偶地址单元与偶地址单口,怎样保证8255的PA、PB、PC口是偶地址端口呢?一般用地址线的A2、A1与8255的A1、A0相连,而访问8255时令A0=0,则PA、PB、PC的端口地址为00111000PA00111010PB00111100PC00111110控制口四、8255的控制字8255有几种工作方式,可以输入也可以输出,靠写控制字来实现,即使用前要对8255初始化。控制端口由一个8位的寄存器组成,共有两类控制字:一类用于定义各端口的工作方式,称为方式选择控制字;另一类用于对C端口的一位进行置1或置0操作,称为C端口置1/置0控制字。两种控制字通过控制字D7位(标识位)的状态来区别。方式选择控制字的第7位总是1,而C端口置1/置0控制字的第7位总是0,8255A正是通过这一位来识别这两个同样写入控制端口中的控制字到底是哪一个,所以,第7位称为标识位。1称为方式选择控制字的标识符,0称为C端口置1/置0控制字的标识符。方式选择控制字即设定3个口的工作方式对8255A的方式选择控制字,先作如下几点说明:①8255A共有三种基本工作方式:方式0:基本的输入输出方式。方式1:选通输入/输出方式(应答方式)方式2:双向传输方式②端口A可以工作在3种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C则常常配合端口A和端口B工作,为这两个端口的输入/输出传输提供控制信号和状态信号。可见,只有端口A能工作在方式2。③归为同一组的两个端口可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式。而一个端口具体到底作为输入还是输出端口,这也由方式选择控制字来决定。下图为方式选择控制字的格式:D7位为方式选择控制字的标识位,必须为“1”,。A组控制:(D6、D5、D4、D3位)(控制A口和C口高4位)D6、D5位决定A端口的工作方式,D6D5位为00、01、1x时分别表示A端口工作在方式0、方式1和方式2下。D4位决定A端口工作在输入还是输出方式。D4位为0时,A端口工作在输出方式;D4位为1时,A端口工作在输入方式。D3位决定用于A端口的C端口高4位PC7~PC4是作为输入端口,还是作为输出端口。D3位为0时,PC7~PC4作输出;D3位为1时,PC7~PC4作输入。B组控制:(D2、D1、D0位)(控制B口和C口低4位)D2位用来选择B端口的工作方式。D2位为0时,B端口工作在方式0,D2位为1时,B端口工作在方式1。D1位决定B端口作为输入还是输出端口。D1位为1时B端口工作在输入方式;D1位为0时B端口工作在输出方式。D0位决定C端口低4位PC3~PC0用来输入还是输出。D0位为0时,PC3~PC0作输出;D0位为1时,PC3~PC0作输入。例1:某8255A的控制端口地址为237H,现要求将其3个数据端口设置为基本的输入输出方式,其中端口A和端口C的低4位为输出,端口B和端口C的高4位为输入。由方式选择控制字格式图可知,该8255A的方式选择控制字应为8AH,其初始化程序如下:MOVAL,8AHMOVDX,237HOUTD例2:如果要求8255A的A端口作输入,B端口和C端口作输出,A组工作在方式0,B组工作在方式1,编程完成对该芯片工作方式的选择。分析:方式选择控制字:10010100(94H)则用三条指令可完成对该芯片工作方式的选择。MOV AL,94H ;方式选择控制字送ALMOVDX,PortCtr ;控制端口地址PortCtr送DXOUT DX,AL ;方式选择控制字输出给8255A的控制端口,完成方式选择。端口C置1/置0控制字端口C常用于配合A口、B口工作,常要将其按位置0、置1。需要注意的是,虽然是对端口C的某一位进行置1或清0,但该控制字要写入控制口而不是写入端口C。该控制字可使C端口某一位输出高电平或低电平,不影响其他位。显然,只有当该位被置为输出方式时这项设置才有效。**一定要注意D7=0D6D5D4D3D2D1D0标志位表明对端口C操作无关,可为1,也可为0选择对PC口的哪一位进行操作000——PC0001——PC1010——PC2…111——PC7进行什么操作1——置10——清0D3~D1位用来决定对C端口8位中的哪一位进行操作。D0位用来决定对D3~D1所选择的位是置1,还是置0。D6~D4位可为任意值,不影响操作。例:设3~8译码器A、B、C分别接于AD13、AD14、AD15,8255片选信号接,A0A1与总线A1、A2相连,现要求:对8255A初始化,PA口工作于方式0,输入口;PB口工作于方式0,输出方式;PC4~PC7输出,PC0~PC3输入;将PC7置1,PC3置0。分析:1、首选必须确定各端口地址PA 010XXXXXXXXXX000 4000HPB 010XXXXXXXXXX010 4002HPC 010XXXXXXXXXX100 4004H控制口 010XXXXXXXXXX110 4006H2、要设定方式,必须初始化8255,即正确选定控制字MOVDX,4006HMOVAL,10010001BOUTDX,AL3、对PC7置1,PC3置0,即向控制口写控制字MOVDX,4006HMOVAL,00001111BOUTDX,ALMOVAL,00000110BOUTDX,AL例:设8255A控制口的地址为237H,现要对C口的最高位PC7置1,将次高位PC6清0。可用如下程序实现。MOVDX,237HMOVAL,0FH;PC7置1OUTDXMOVAL,0CH;PC6清0OUTDX五、8255的工作方式方式0基本输入输出方式特点:A、B可规定为输入口或输出口,端口C可独立作8位口使用,也可分为2个4位端口,可独立使用为I/O口,共有24=16种组合。总结:四个I/O(2个8位,2个4位)或三个I/O(3个8位)使用场合:1)无条件传送不需联络信号,直接进行数据传输2)查询传送要给外设控制信号,要查询外设状态,可以将C口的一半工作于输入状态,另一半工作于输出状态。PC0~PC3作为输出口,由PC0发出启动信号。PC4~PC7作为输入口,由PC4接收转换完成信号。例:设8255A端口A工作在方式0下,通过A口输出数据控制8个指示灯轮流点亮。电路连接如图8.24所示。(地址为04A0H~04A6H)MOVDX,04A6H;控制口地址送DXMOVAL,80H;写工作方式控制字OUTDX,ALMOVDX,04A0H;A端口地址送DXMOVAL,0FEH;低电平灯亮AA1:OUTDX,AL;输出数据CALLDELAY;延时ROLAL,1;轮流点亮JMPAA1执行此段程序时要注意延时子程序的延时时间,若延时时间不够,指示灯会全亮或全灭。2、方式1选通输入输出方式特点:①A、B端口传输数据,作I/O口使用,端口C提供选通信号与应答信号,与方式0中查询传送类似,但是端口C的数位有固定的用途,不能改变,而查询方式中可以自己定义。②A、B任何一个可以工作在方式1,也可以两个都工作在方式1。(1)、方式1的输入状态端口A:端口B PC3—INTRA中断请求信号输出端 PC0—INTRB PC4— 选通信号输入端 PC2— PC5—IBFA 输入缓冲器满信号输出 PC1—IBFB例:工作过程:当8255向外设读取数据时,如果外设已经将数据准备好,则向8255的引脚送出一个低电平,此时8255将数据存入输入缓冲器,存入后,8255在IBF引脚上送出高电平,告诉CPU数据已经准备好,供CPU查询;同时8255通过INTR引脚向CPU发出中断请求信号,如果CPU响应中断,则从输入缓冲器中将数据取走,INTR降低位低电平,IBF为高电平。若要保证CPU响应中断,必须8255能够送出INTR信号,则PC4或PC2必须为一,若为0,则禁止相应端口的中断。(2)、方式1的输出状态端口A: 端口B PC3—INTRA中断请求信号输出端 PC0—INTRB PC6— 外设接收数据后的响应信号输入端 PC2— PC7— 输出缓冲器满信号输出 PC1—工作过程:CPU要送数据给外部设备,需要先将数据打入8255的输出缓冲器,如果8255的输出缓冲器中的数据尚未被外设取走,则为低电平,通知外设取走数据,外设接收到信号后将数据取走,送给8255一个信号,表示数据已经取走,8255接收到信号后,则向CPU发出中断请求信号INTR,通知CPU再发送下一个数据。可见:A口工作方式1时,C口有三根线参与,B口也一样。当只有A口在方式1时,B口可在方式1,也可在其他方式,C口其他位一样当只有A口在方式1时,B口可在方式1,也可在其他方式,C口其他位一样当A、B都工作在方式1时,C口有6位参与,剩余两位仍可以用作输入输出口。方式2—双向传输方式只能用于端口A特点:外设可以向CPU送出数据,也可以向CPU接收数据,端口C中有6位参与配合,分别作控制信号和状态信号。PC3—INTRAPC6—PC7—PC4—PC5—IBFA 这样,端口B只能工作在方式0,因为端口B在方式1时要用到PC0—PC2,冲突!使用场合:外设即可输入又可输出,且不同时进行,能提供应答信号!例:8255的A、B口工作方式0,A口为输入口,接4个开关,B口为输出口,接七段发光二极管,如图:要从LED显示开关所拨通的数字(0—0FH)分析:要从A口读入键盘状态,必须为输入方式,B口为输出状态,工作方式0所以控制字为:10010000即为90H。要从A口读出状态,向B口输出数据,必须确定出端口的地址。A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0PA1000000000001000PB1000000000001010PC1000000000001100PK1000000000001110所以:PA口地址为:8008H,PB口地址为:800AH,PC口地址为:800CH控制口地址为:800EH要让LED显示数字,要显示0,应该g不发光,其他发光,小数点dp不亮,应向端口B送数据00111111B,即3FH。其他类似。程序清单: DATA SEGMENT TAB DB3FH,06H,5BH,…31H DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DSTAMAINPROCFARSTART: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV AL,90H MOV DX,800EH OUT DX,AL MOV DX,8008H IN AL,DX AND AL,0FH MOV BX,OFFSETTAB XLAT MOV DX,800AH OUT DX,AL MOV CX,0400HDELAY: LOOP DELAY JMP NEXT RETMAIN ENDPCODE ENDSEND START第二节、键盘及其接口电路一.键盘的基本工作原理键盘是计算机必备的输入设备,数据录入大多数是通过击键完成的,DOS方式下的多数操作也是通过键入命令行来执行的。和CRT显示器一样,键盘是一个单独的部件,通过一根五芯电缆接到机箱背面的圆形键盘插座上。键盘是由一组规则排列的按键组成,它主要由键开关和键扫描电路两部分组成。按物理结构分,键盘有机械式、薄膜式和电容式三种。电容式键盘采用无触点按键,触感好,操作灵活。按键盘键数分,常见的有83/84键、101/102键等。Windows95面市后,在101/102键盘的基础上改进而推出104/105键。目前微机以配备101/102键、104/105键电容式键盘的居多。在微机系统中运用的按键,通常仅需提供逻辑的通与断,其机械结构往往是比较简单的。构成形式可如图12.1所示。它主要的功能是把机械上的通断转换成电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。在按键电路中的电阻R用于限制其中流过的电流。从按键的定位方式看,它有无锁的、自锁的和互锁的。在逻辑上它们等效于单稳态、双稳态和多稳态。在计算机系统中,常用的是机械结构最简单的无锁单稳式的按键(常态为开路),它的工作寿命可达100万次以上。图1最简单的键盘结构 键盘的矩阵式结构最简单的键盘如图1所示,其中,每个键对应I/O端口的一位,没有什么键闭合时,各位均处于高电位。当有一个键按下时,就使对应位接地而成为低电位,而其他位仍为高电位。这样,CPU只要检测到某一位为“0”时,便可判别出对应键已经按下。但是,用图1的结构来设计键盘有一个很大的缺点,就是当键盘上的键较多时,引线太多,占用的I/O端口也太多。比如,一个有64个键的键盘,采用这种方法来设计时,就需要64条连线和8个8位并行端口。所以这种简单结构只用在仅有几个键的小键盘中。通常使用的键盘结构是矩阵式的,如图2所示。设有m×n个键,那么,采用矩阵式结构以后,便只要m+n条引线就行了。比如,有8×8个键,那么,只要用两个并行端口和16条引线便可以完成键盘的连接。二、键的识别为了识别键盘上的闭合键,通常采用两种方法,一种称为行扫描法,另一种称为行反转法。1、行扫描法的原理行扫描法识别闭合键的原理如下:首先判断是否有键被按下,即先进行全扫描,将所有行线置成低电平;然后扫描全部列线,如果扫描的列值全是高电平,则说明没有任何一个键被按下;如果读入的列值不是全1,则说明有键按下,再用逐行扫描的方法确定哪一个键被按下。先扫描第一行,即置该行为低电平,其他行为高电平,然后检查列线,如果某条列线为低电平,则说明第一行与该列相交的位置上的按键被按下;如果所有列线全是高电平,则说明第一行没有键被按下,接着扫描第二行,以此类推,直到找到被按下的键。(分行扫描;检查是否有键按下;若有,确定哪个键被按下)图3行线与列线分别接到两个并行端口的示意图在硬件上,行线和列线的接法如图3所示。图3中是一个8×8=64键的键盘,将行线和一个并行输出端口相接。CPU每次使并行输出端口的某一位为0,便相当于将某一行接地;而其他位为1,则相当于使其他行线处于高电平。为了检查列线的的电位,将列线和一个并行输入端口相接,CPU只要读取输入端口中的数据,就可以设法判别出第几号键被按下。下面,对键盘扫描程序作具体说明。第一步、判断是否有键被按下。为此,使输出端口各位均输出为0,即相当于将所有各行都接地。然后,从输入端口读取数据,如果读得的数据不是FFH,则说明必有列线处于低电平,从而可断定必有某键被按下。此时,为了消除键的抖动,所心调用延迟程序,然后再判别具体按下的到底是哪个键。如果读得的数据是FFH,则程序在循环中等待。这段程序如下:;判断是否有按键WAIT: MOV AL,00H MOV DX,OUTPORT OUT DX,AL ;往所有行线上输出低电平,OUTPORT为行线所连的输出端口MOVDX,INPORT IN AL,DX ;读取列值 AND AL,0FFH CMP AL,0FFH ;是否有列线为低电平 JZ WAIT ;否,则循环等待DONE:CALLDELAY ;是,则延迟去抖动 …第二步、判断哪一个键被按下了。这段程序的流程图如图4所示。开始时,程序先将键号寄存器置0,将计数器值设置为键盘行的数目,然后设置扫描初值。扫描初值11111110使第0行为地电位,而其他行为高电位。输出扫描初值循环左移一位,变为11111101,这样,使第1行为地电位,而使其他行为高电位。同时,使键号成为8,即从第2行上第1个键开始检查。此外,计数值减1……。如此下去,一直查到计数值为0.如果在此过程中,查到有一列线为地电位,则将列线数据保留,并右移一位,使进位位相当于第0列线的状态。如果此位为地电位对应值0,则相当于第0列线上的0号键(在第二次循环中为8号键…等等)闭合;否则,继续循环右移。由于已经确定了此行上有一键闭合,所以,一定可以在列线中检查出某列处于地电位。程序见课本254页。图4用扫描法判断哪一个键被按下的流程图2、行反转法的原理行反转法也是识别闭合键的常用方法,行反转法又称线反转法,利用一个可编程的并行接口(如8255A)来实现。它的原理如下:将行线接一个并行

温馨提示

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

评论

0/150

提交评论