版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 I/O接口概述接口概述 并行接口并行接口 8255A 掌握可编程并行接口芯片掌握可编程并行接口芯片 8255A的连接与编程的连接与编程 微机系统的信息交换有并行微机系统的信息交换有并行通信通信和串行通信两种方式。和串行通信两种方式。 并行通信是以微机的字长为传输单位;适合并行通信是以微机的字长为传输单位;适合于外部设备与微机之间进行近距离、大量和快速于外部设备与微机之间进行近距离、大量和快速的信息交换。的信息交换。 实现并行通信的接口称之为并行接口。实现并行通信的接口称之为并行接口。 概概 述述一、一、8255A的内部结构和引脚信号的内部结构和引脚信号1. 8255A内部结构内部结构11.1
2、 可编程并行接口芯片可编程并行接口芯片8255AA组控制部件数据总线缓冲器读/写控制部件B组控制部件 RESETRDA0A1A组端口A8位A组A组端口C(高4位)B组端口C(低4位)8位B组端口BPA7PA0PC7PC4PC3PC0PB7PB0双向D7D0WRCSA组组A口:PA0PA7C口的高4位:PC4PC7B组组B口:PB0PB7C口的低4位:PC0PC3 A组,B组的控制寄存器,接收来自数据总线的控制字,并根据控制字确定各端口的工作状态和工作方式。CS:片选信号,接CPU高位地址的译码输出WR:写信号,:写信号,WR有效,有效,CPU向向8255A写入控制或写入控制或数据信息。数据信息
3、。RD:读信号,RD有效,CPU读8255A的数据或状 态;RESET:复位信号。RESET有效时,清 8255A 所有控制寄存器内容, 并将各端口置成输入方式。2. 8255A的引脚的引脚8 2 5 5 A采用采用40线双线双列直插封装,列直插封装,引 脚 图 如 图引 脚 图 如 图所示。所示。图11.2 8255A引脚定义432140371834.27D7D0A0A1CSRDRESETVCCGND986536358255APPI数据总线数据总线控制线控制线电源线电源线通道通道A通道通道B通道通道CCPU接口外设接口.PA7PA0.PB7PB0.PC7PC0WR25141516 17131
4、2 11 10 * PA7PA0:A端口数据信号引脚端口数据信号引脚* PB7PB0:B端口数据信号引脚端口数据信号引脚* PC7PC0:C端口数据信号引脚端口数据信号引脚* D7D0: 8255A的的8位数据线位数据线* A1A0: 端口选择信号端口选择信号表11.1 8255A的读写操作控制 1. 控制字控制字二二 、 8255A的控制字及其工作方式的控制字及其工作方式D7 D6 D5 D4 D3 D2 D1 D0B组端口C(PC3PC0)1=输入, 0=输出端口B1=输入,0=输出方式选择0方式0, 1=方式1A组端口C(PC7PC4)1=输入, 0=输出端口A1=输入,0=输出方式选择
5、00端口A方式0, 01=端口A方式1,1=端口A方式2方式设置标志1=有效图11.3 8255A工作方式控制字格式(2) (2) 端口端口C C的置位的置位/ /复位控制字复位控制字控制字的格式如图所示。控制字的格式如图所示。图11.4 8255A 置位/复位控制字格式D7 D6 D5 D4 D3 D2 D1 D0位的置位/复位1=置位,0=复位位 选 择D3 D2 D1 通道C位按位置位/复位控制标志0=有效0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7不使用设置为000关于控制字要说明几点:
6、关于控制字要说明几点:(1) 方式方式0 基本输入基本输入/输出方式输出方式2. 工作方式工作方式图11.5 8255A工作方式0控制字格式 方式0中,端口C被分成两个4位端口,它们可被定义为输入或输出端口,CPU与3个端口之间交换数据,可直接由CPU执行IN和OUT指令来完成。(2) 工作方式工作方式1选通式输入选通式输入/输出方式输出方式 方式方式1选通输入选通输入方式1操作使端口A或端口B作为锁存输入设备工作。端口C也可按方式1操作使用但不是对数据,而是对控制信号,或当端口A或端口B为选通输入端口时的握手信号。下图示出下图示出8255A方式方式1选通输入时的内部选通输入时的内部结构图。结
7、构图。图11.6工作方式1输入控制字格式(a端口A方式1输入(b端口B方式1输入图11.7方式1输入端口状态IBF:输入缓冲器满信号,向外设输:输入缓冲器满信号,向外设输 出,高电平有效。出,高电平有效。STB:选通信号。由外设输入,低电平:选通信号。由外设输入,低电平 有效。有效。INTR:中断请求信号,高电平有效。:中断请求信号,高电平有效。INTE:中断允许信号,它是通过端:中断允许信号,它是通过端口口PC4(端口端口A)或或PC2(端口端口B)的位来编程的内部位。的位来编程的内部位。 方式方式1选通输出选通输出当端口A或端口B为方式1输出时,各指定PC的3条线作为8255A与外设及CP
8、U之间应答信号。下图为方式1选通输出操作的内部结构图。 图11.8 方式1输出控制字格式图11.9 方式1输出端口状态INTRAPC3PC6PC7PA70方式1输出端口AAOBFPC4,5I/OINTEA2AACKWR方式1输出端口BINTRBPC0PC2PC1INTEBBOBFBACKPB70WR(a端口A方式1输出(b端口B方式1输出OBF:输出缓冲器满信号。向外设:输出缓冲器满信号。向外设 输出,低电平有效。输出,低电平有效。ACK: 外设应答信号。由外设输外设应答信号。由外设输入,入, 低电平有效。低电平有效。INTE:中断允许信号。INTR:中断请求信号。高 电平有效。(3) 工作方
9、式工作方式2双向选通输入双向选通输入/输出方式输出方式方式2只允许A组采用,此时端口A变为双向,允许数据在同一组8条线上发送和接收。下图示出方式下图示出方式2操作内部结构图。操作内部结构图。图11.10 端口A方式2控制字 图11.11 端口A工作在方式2的端口状态OBFA:输出缓冲器满信号,向外设输:输出缓冲器满信号,向外设输出,低电平有效。出,低电平有效。ACKA:应答信号,由外设输入,低电:应答信号,由外设输入,低电平有效。平有效。STBA: 数据选通输入信号。由外设输入,数据选通输入信号。由外设输入, 低电平有效。低电平有效。IBFA:输入缓冲器满信号,向外设输出,:输入缓冲器满信号,
10、向外设输出,高电平有效。高电平有效。INTE:中断允许信号:中断允许信号 (INTE1和和INTE2)。高电平有效。高电平有效。INTRA:中断请求信号,高电平有:中断请求信号,高电平有效。效。 8255A中端口A工作在方式2时,允许端口B工作于方式0或方式1,完成输入/输出功能。4种组合状态及其工作方式控制字格式如表11.3。3. 8255A的工作方式初始化初始化) 根据根据8255A8255A与与CPUCPU接口硬件电路图确接口硬件电路图确 定定8255A8255A四个端口地址。四个端口地址。 根据根据8255A8255A的具体应用,确定的具体应用,确定8255A8255A工工 作方式控制
11、字内容。作方式控制字内容。 利用输出指令,将工作方式控制字送利用输出指令,将工作方式控制字送 至控制命令寄存器中。至控制命令寄存器中。 4. 8255A中中PC口置位口置位/复位操作复位操作 根据根据8255A8255A与与CPUCPU接口硬件电路确定接口硬件电路确定 8255A8255A四个端口的端口地址。四个端口的端口地址。 根据对根据对PCPC口具体哪一位操作,确定口具体哪一位操作,确定 8255A8255A的按位置位的按位置位/ /复位控制字复位控制字内容。内容。 利用输出指令,将按位置位利用输出指令,将按位置位/ /复位控复位控制制 字送至字送至8255A8255A控制命令寄存器中。
12、控制命令寄存器中。 目前打印机一般采用并行接口Centronics标准,其主要信号与传送时序如图11.12。打印机接收主机传送数据的过程是这样的:11.2 8255A的应用实例的应用实例一、一、 8255A与打印机接口与打印机接口1、用方式、用方式0与打印机接口与打印机接口 当主机准备好输出打印的一个数据时,通过8255A把数据送给打印机接口的数据引脚DATA0DATA7,同时送出一个数据选通信号STROBE 给打印机。打印机收到该信号后,把数据锁存到内部缓冲区,同时在BUSY信号线上发出忙信号。待打印机处理好输入数据时,打印机撤消忙信号,同时向主机送出一个响应信号ACK。主机根据信号BUSY
13、或信号ACK决定是否输出下一个数据。图11.12 方式0的打印机接口 本例中,CPU与8255A采用查询方式输出数据。端口A设置为方式0,输出打印数据,端口C的PC7产生负脉冲选通信号,PC2连接打印机的BUSY信号查询其状态,PC0连接打印机的ACK信号。 假设8255A的A、B、C口的I/O地址为FFF8H、FFFAH和FFFCH,控制端口地址为FFFEH。 ;初始化程序段初始化程序段 MOV DX , 0FFFEH MOV AL , 81H ; A口方式口方式0输出输出, C口上半口上半部输出部输出, ;下半部输入下半部输入 OUT DX , AL ; 输出工作方式字输出工作方式字 MO
14、V AL , 0FH ; C口的置位口的置位/复位控制字复位控制字, ; 使使PC7 = 1, 即即置置STROBE= 1 OUT DX , AL PUSH AX ;输出打印数据子程序输出打印数据子程序, 打打印数据印数据 ; 在在AH中中 PUSH DXPM: MOV DX , 0FFFCHSTROBE2、用方式、用方式1与打印机接口与打印机接口11.13。图11.13 方式1的打印机接口 假设8255A的A、B、C口的I/O地址为FFF8H、FFFAH和FFFCH。控制端口的地址为FFFEH。以下为采用选通方式输出缓冲区BUF中的打印字符的子程序,输出的字节数为M。 本例与上例的主要区别是
15、:在上例中,由软件对PC7复位和置位来产生打印机的选通信号,而本例中,8255A工作在选通方式,当执行输出指令时,自动由硬件从PC7OBFA输出负脉冲选通信号。当打印机ACK变为有效时,自动将PC7置为高电平。 最简单的键盘如图11.14(a)所示,其中每个键对应I/O端口的一位。没有键闭合时,各位均处于高电平;当有一个键按下时,就使对应位接地而成为低电平,而其它位仍为高电平。这样,CPU只要检测到某一位为0,便可判别出对应键已按下。二、二、 8255A与键盘接口与键盘接口1、键盘的工作原理、键盘的工作原理图11.14 键盘的结构2、键的识别、键的识别 图11.15 键盘接口电路 实际应用中,
16、一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。为此,先使所有行线为低,然后检查列线。这时如果列线有一位为0,则说明必有键被按下, 采用扫描法可进一步确定按键的具体位置。 图11.15中将行线与8255A端口B相连,端口B设置为输出。CPU使端口B的某一位为0,便相当于将该行线接低电平;某位为1,则该行线接高电平。将列线与端口A相连,端口A设置为输入。CPU只要读取端口A的数据,就可以判别是否有键被按下及是第几列的键被按下。 键盘扫描程序的第二步是逐行扫描以判断哪一个键被按下了。开始时,将计数值设置为行数。扫描初值11111110使第0行为低电平,其它行为高。输出扫描初值后,马上读
17、取列线的值,看是否有列线处于低电平。若无,则将扫描初值循环左移一位,变为11111101,同时,计数值减1,如此下去,直到计数值为0,或找到按键所在行时止,程序段如下:; 为了查找键代码,键盘程序设计时,可将各个键对应的行、列值放在一个表中,程序通过查表来确定哪一个键被按下,进而在另一个表中找到这个键的代码。 如果遇到多个键同时闭合的情况,则输入的行值或者列值中一定有一个以上的0,而由程序预先建立的键值表中不会有此值,因而可以判为重键而重新查找。用这种方法可以方便地解决重键问题。 ;查找键代码MOV SI , OFFSET TABLE ; TABLE为键值表MOV DI , OFFSET CH
18、AR ; CHAR为键对应的代码表 MOV CX , 64 ; 键的个数KEY3: CMP AX, SI ;与键值比较 JZ KEY4 ; 一样 ,说明查到 INC SI ;不相同 ,继续比较 INC SI INC DI LOOP KEY3 JMP KEY1 ;全部比较完, 仍无相同, 说明是重键 KEY4: MOV AL , DI ; 获取键代码送AL ; 判断按键是否释放,没有则等待 当用手按下一个键时,往往会出现按键在闭合和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动持续时间随操作员而异,一般不大于10ms。抖动问题不解决就会引起对闭合键
19、的错误识别。 利用硬件很容易消除抖动,如图11.16的硬件消抖电路所示。3、抖动和重键问题、抖动和重键问题 所谓重键就是指两个或多个键同时闭合。出现重键时,读取的键值必然出现有一个以上的0。于是就产生了到底识别哪一个键的问题。 对重键问题的处理,简单的情况下,可以不予识别,即认为重键是一个错误的按键。 LED数码管的主要部分是七段发光二极管,如图11.17a所示。这七段发光二极管分别称为a、b、c、d、e、f、g,有的产品还附带有一个小数点h,通过7个发光段的不同组合,可以显示09和AF共16个字母数字或其它异形字符。三、三、8255A与与LED数码管接口数码管接口1、LED数码管的工作原理数
20、码管的工作原理 LED数码管有共阳极、共阴极两种结构,如图11.17(b)和(c)所示。表11.4表示了共阴极与共阳极结构字符0F的编码表。编码的低位为a,高位为g。 由于发光二极管发光时,通过的平均电流为10mA20mA,而通常的输出锁存器不能提供这么大的电流,所以LED各段必须接驱动电路,如图11.17(d)所示。显示数字编码共阴极 共阳极 0 3FH C0H 1 06H F9H 2 5BH A4H 3 4FH B0H 4 66H 99H 5 6DH 92H 6 7DH 82H 7 07H F8H 8 7FH 80H 9 67H 98H A 77H 88H B 7CH 83H C 39H
21、C6H D 5EH A1H E 79H 86H F 71H 8EH . 80H 7FH 为了将一位十六进制数在一个LED上显示出来,就需要将十六进制数译为LED的7位显示代码。 硬件译码:采用专用的带驱动的LED段译码器。 软件译码:在程序设计时,将0F这16个数字也可为09对应的显示代码组成一个表。 MOV BX , OFFSET BUFDATA ; BUFDATA区存放 待显示的数字 MOV AL , BX ; 取出要显示的数字 MOV BX , OFFSET TABLE ;取显示代码表首地址 XLAT ;换码为显示代码 MOV DX , PORT ;PORT为与数码管 ;相接的端口地址
22、OUT DX , AL ; 输出显示 TABLE DB 3FH , 06H , 5BH , ; 显示代码表2、多位显示、多位显示反相驱动器反相驱动器位控制端口位控制端口同相驱动器同相驱动器段控制端口段控制端口 综上所述,只要CPU通过段控制端口送出段代码,然后通过位控制端口送出位代码,指定的数码管便显示相应的数字。如果CPU顺序地输出段码和位码,依次让每个数码管显示数字,并不断地重复,当重复频率达到一定程度,利用人眼的视觉暂留特性,从数码管上便可见到相当稳定的数字显示。 程序设计时可以开辟一个BUFDATA缓冲区,依次存放要显示的数字。还需要建立一个显示代码表TABLE,依次存放0F对应的七段
23、显示代码。显示代码是和硬件连接有关的,在图11.18的接口电路中,数字0的显示代码为C0H,1的显示代码为F9H,。 四、四、8255A与键盘与键盘/LED接口接口8255A与键盘和LED连接电路8255APB0PB1PB2PB3PB4PB5PB6PB7PC7PC6PC5PC4PC3PC2PC1PC0LED3 LED2 LED1 LED0+5VD0D7D0D7RDWRA0A1RSTCSIORIOWA0A1ResetY1程序流程如下:程序流程如下:开场在CRT上显示提示信息写8255A控制字80H字型码送B口延时且关指示灯写8255A控制字88H有键按下行扫描键盘列扫描键盘延时消抖等待释放S1S
24、4按下否 退 出YNNY流程图相应程序如下:相应程序如下:DATA SEGMENTdisc DB 0BBH, 0A0H, 097H, 0B5H, 0ACH, 3DHDB 3FH, 0A1H, 0BFH, 0BDH, 0AFH, 3EH, 0B6HDB 1FH, 0FH ; 0f 显示段码表显示段码表DISO DB Press any of the keys to quit !. 24H; 提示信息提示信息DQQ DB 0DATA EndsCODE SEGMENTMAIN PROC FARASSUME CS:CODE DS:DATA START: MOV AL, 3 ; 清屏幕清屏幕MOV AH
25、, 0INT 10HMOV AX, DATA ;显示提示信息;显示提示信息MOV DS, AXMOV AH, 2 ;光标定位;光标定位MOV BH, 0MOV DX, 0614HINT 10HMOV DX, OFFSET DISO;显示:;显示:“Press”QWE: MOV DX, 347H ;8255A控制寄存器初始化控制寄存器初始化MOV AL, 80H ;B口、口、C口设为输出口设为输出OUT DX, ALMOV DX, 345H ; 345H为为8255A的的B口地址口地址MOV BL, DQQMOV BH, 0MOV DI, BXMOV AL, DI;取;取0F显示字形码显示字形码
26、OUT DX, AL;将显示字形码送;将显示字形码送B口口MOV DX,346H;8255A C口地址口地址MOV AL,0E0HOUT DX,AL;MOV BX,DLYC1LPO:MOV CX,DLYC2;延时;延时LP1:LOOP LP1DEC BXJNZ LPOKS:MOV DX,350H;指示灯显示;指示灯显示MOV AL,DQQ;按下键的二进制值;按下键的二进制值OUT DX,ALMOV DX,347H;8255A初始化,写控制字初始化,写控制字88HMOV AL,88H; PC0PC3为输出,为输出,PC4PC7为输入为输入OUT DX,AL; B口输出,方式口输出,方式0,A口输出。口输出。KSLP:MOV DX,346H ; 读键盘读键盘IN AL,DXAND AL,0F0HCMP AL,0F0HJNE KP;有键按下,转处理判别;有键按下,转处理判别MOV DX,350H;若键未按,查;若键未按,查S1S4键是否退出键是否退出IN AL,DXAND AL,0F0HCM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026银河金融控股校招题库及答案
- 2026标准版离婚协议书(有子女有财产)
- 企业合同管理与服务保障手册
- 小车科一考试题及答案
- 消防知识试卷及答案
- 宪法试题题库及答案
- 石雕工春节假期安全告知书
- 电缆金属护套制造工春节假期安全告知书
- 航空运输业务流程与规范手册
- 房地产开发项目全程管理指南(标准版)
- 2025南航机械复试试题及答案
- 急性胰腺炎诊疗指南解读2025
- 辽宁省建筑施工安全生产标准化考评实施细则
- 电站火灾事故应急预案
- GJB827B--2020军事设施建设费用定额
- 娃娃菜栽培技术
- 工业锅炉司炉课件
- 数字营销专业人才培养方案
- 新疆概算管理办法
- 女性中医健康养生讲座
- 《养老服务政策法规与标准》智慧健康养老服务专业全套教学课件
评论
0/150
提交评论