版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 数字量输入输出(4)*概念:总线、接口电路、接口芯片、端口地址 *中断及其处理 中断控制器8259 *定时器/计数器*并行I/O /串行I/O DMA电路与应用1CPU(总线)与外设间的数据传送方式一、无条件传送方式二、条件传送方式( 查询方式)三、中断传送方式四、DMA传送方式( Direct Memory Access )2回顾中断传送方式的特点CPU和外设大部分时间处在并行工作状态, 只在CPU响应外设的中断申请后, 进入I/O数据传送的过程这一I/O数据传送过程8259中断控制器无法完成 需要并行/串行接口电路来完成基本的I/O数据传送过程称为通信: 查询、中断数据传送方式3并
2、行接口/通信的基本概念通信 指计算机与外设、计算机与计算机间的信息交换 (近义词:并行/串行传输) 通信的基本方法: 并行通信和串行通信数据状态/控制HandshakingA计算机B计算机外设宽度:多位/1位4并行通信将数据的各位同时在多根并行传输线上进行传输。数据的各位同时由源到达目的地 快多根数据线速度快,距离短、线路费用高(空间 时间 ) D0D1D2D3D4D5D6D7目标D0D1D2D3D4D5D6D7源01010110并行通信适于短距离、高速通信5串行通信将数据的各位按时间顺序依次在一根传输线上传输。数据的各位依次由源到达目的地 慢数据线少 速度慢但线路费用低(线路空间时间 ) R
3、D目的TD源串行通信适于长距离、中低速通信6不可编程并行接口和可编程并行接口(灵活性和通用性)并行接口并行接口连接CPU与并行外设,实现 两者间的并行通信,在信息传送过程中,起到输出锁存或输入缓冲的作用。 并行接口的典型硬件结构1、一个或一个以上具有锁存或缓冲的数据端口2、与CPU进行数据交换所必须的控制和状态信号3、与外设进行数据交换所必须的控制和状态信号4、端口译码电路5、控制电路7并行接口与外设连接示意图输入过程:输入设备Ready-ACK/Busy;INT请求握手输出过程:PIO Ready(数据输出缓冲器空)-CPU WR;Output Ready当外设接收一个数据并ACK,通知接口
4、准备下一次输出数据 地址译码CPU控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器数据总线读出信号写入信号复位准备好中断请求A0A1输入设备输出设备数据输入准备好数据输入回答数据输入数据输出数据输出准备好数据输出回答片选输入设备输出设备8就绪(Ready)在输入场合“就绪”说明输入接口已准备好送往CPU的数据,正等着CPU来读取该状态也可用接口中数据缓冲器已“满”来描述在输出场合“就绪”说明输出接口已做好准备,等待接收CPU要输出的数据该状态也可用接口数据缓冲器已“空”、或者用接口(外设)“闲”或不“忙(Busy)”来描述就绪:满,空、闲、不忙9可编程并行接口i8255A(P276) Prog
5、rammable Peripheral Interface Intel系列的8位并行接口芯片通用性强,使用灵活可用程序设置和改变芯片的工作方式典型的可编程并行接口芯片40PDIP,+5V,24条可编程I/O引脚,直接位清零/置1功能内部具有三个可独立寻址的8位数据端口:A、B、C;三个端口可分A、B组控制;数据总线缓冲器以及读/写控制逻辑。8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB310resetD7D0A9A2
6、A1A0IORIOW片选译码数据缓冲器读写控制片内译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口端口A端口C端口B +5VGNDD7D0外设8255A总线片内译码电路A0A1=数据端口A、B、C 每个端口8位,通过编程设定其为 输入口或输出口和外设传送信息 00 A口;01=B口; 10 C口;11 控制口8255内部结构与外部接线图118255内部译码与读写由CS、A1、A0、RD、WR引脚的不同组合,实现各种不同的功能。(教材P276表5.8)控制端口控制端口不可读128255内部: C口上下结构上(PC74)下(PC30)数据总线缓冲器读写控制逻辑A组控制B
7、组控制A口C口C口B口PA7PA0PC7PC4PC3PC0PB7PB0DB70RDWRCSA1A0RESETC下半口C上半口138255编程1个控制端口,2个控制字 C口位控控制字0D6D5D4D3D2D1D0标识位XXX位选择: 000111-Bit0Bit71-置位; 0-复位例: MOV DX,283H; MOV AL,8AH ;10001010BOUT DX,AL1D6D5D4D3D2D1D0标识位A组:00-方式0;01-方式1;1X-方式2 A口:0-出1-入C上半口0-出1-入B组:0-方式 0;1-方式 1B口:0-出1-入C下半口:0-出1-入 方式控制字148255控制字举
8、例(对照P277控制字)MOV DX,283HMOV AL, 0B8H ; OUT DX, AL ;A口输入,方式1,B口输出,C口输入,方式0 控制字:10111001 例A口输入,B口输出,C口上半口输入,下半口输出,方式0 控制字:10011000= 98H 片选地址 280H283H A1A1,A0A0 控制寄存器地址283HMOV DX,283HMOV AL,98HOUT DX,AL158255A的C口位控操作例:设8255A控制端口地址为283H使端口C的PC7=1,控制字为00001111B,即0FH;而要使PC3=0,则控制字为00000110B,即06H。0D6D5D4D3D
9、2D1D0标识位XXX位选择: 000111-Bit0Bit71-置位; 0-复位16程序:MOV AL,0FH ;置PC7=1的控制字MOV DX,0283H ;控制端口地址OUT DX,AL ;置PC7=1MOV AL,06H ;置PC3=0的控制字OUT DX,AL ;置PC3=08255A的C口位控操作178255内部三个端口可编程特性(1)A组、B组控制电路内有控制寄存器接受CPU输出的命令字,决定各自的工作方式及对端口C的按位置位或复位操作。(2)三个数据端口A、B、C每个端口均为8位,可选输入或输出操作。(3)端口A和B:各有一个8位数据输入锁存/缓冲器和一个8位数据输出锁存器。
10、(4)端口C:一个8位数据输入缓冲器(没有锁存)和一个8位数据输出锁存/缓冲器。可分为两个4位端口使用或用作控制或状态信息端口,依工作方式而定。可编程特性188255A方式0(A、B、C) 基本的输入输出无需专用联络信号就可直接进行的I/O1 基本I/O功能 输入、输出;三口全部可以当作数据端口 输入缓冲不锁存,输出锁存; 用查询方式,不可实现中断。A、B作数据口,C作控制状态口,(联络信号线可由用户自行安排)例P278图5.43 注:此时,对C口各位无特定要求:可做I/O口或联络信号线 2 读时序(常规) 过程: CPU发地址RD读数据 外设 读周期内保持数据 有效读取数据条件: AB、RD
11、、外设数据有效保持;198255A工作方式(P278)方式0基本输入/输出方式(16种组合)208255A方式1(A、B) 选通的输入输出必须经过专用联络信号的协调才能进行1基本功能 一个输入/输出端口 包括8位数据端口(A口或B口) 和3位控制线(分别借助C口的3位);注:对C口各位有严格要求:规定用C的某些线作状态或控制用,这些线是固定的,不可由用户随意改变 C口余两个口作I/O(方式0),均锁存; 在方式1下工作(查询或中断方式): A口和B口可作输入或输出 支持查询或中断方式。 只有A、B口可工作于方式12方式1输入两套系统交换信息:传输方向固定例:传统的打印机连接218255A方式1
12、输入PA7PA0INTEAPC4PC5PC3STBAIBFAINTRAPB7PB0INTEBPC2PC1PC0STBBIBFBINTRBSTB 选通输入,低电平有效使数据送入输入锁存器 STROBEIBF 输入缓冲器满(STB下降沿产生)INPUT BUFFER FULLINTR中断请求信号STB=1,IBF=1,INTE=1 则INTR=1,(/STB上升沿产生),CPU中断服务程序读走数据由RD信号清INTRINTEA 中断允许=位控写PC4=1 INTEA=1; PC6,7 I/OINTEB 中断允许=位控写PC2=1 INTEB=1228255A 方式1输出 OBF 输出缓冲器满(写端
13、口WR上升沿),ACK使OBF=1即ACK清OBF信号 ACK 外设接受到数据响应信号 INTEA(用位控方式写PC6=1 INTEA=1中断允许 ;输出缓冲器空-OBF=1申请中断,CPU响应中断往该端口写一字节数据,写端口清INTR INTEB用位控方式写PC2=1 INTEB=1中断允许 INTR由/ACK的后沿在INTE=1且/OBF=1的条件下产生;写端口清 INTRPA7PA0INTEAPC6PC7PC3ACKAOBFAINTRAPB7PB0INTEBPC2PC1PC0ACKBOBFBINTRBPC6PC223方式1-选通I/O时序外部数据处理器读8255端口外设读数据INTRIB
14、FRDSTBWROBFINTRACK输出选通输入选通输出外设写数据处理器写8255端口248255方式1C口状态输入C口状态: D7 D6 D5 D4 D3 D2 D1 D0I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB(其中D4,D2为中断允许,事先位控写入)输出C口状态: D7 D6 D5 D4 D3 D2 D1 D0OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB(其中D6,D2为中断允许,事先位控写入)258255方式2双向传输方式(端口A)PA7PA0双向8位数据:查询/中断方式。(输入和输出均是锁存的) 借助5位
15、控制端口(C)用于联络线。/ACK有效时PA输出数据到I/O线PA7PA0上(下降沿8255输出数据,上升沿锁存于外设中并发中断请求信号)INTE1输出/INTE2输入中断允许(共用INTRA)但中断允许位独立端口C状态:(PC20仍可为B口方式1服务:联络线,或方式0时和B口一起成为独立I/OC口状态:OBFA INTE1 IBFA INTE2 INTRA X X X88方式2的控制字268255方式2双向传输方式时序数据从CPU写往8255输出缓冲区满数据从外设到8255(PA口)数据从8255到外设数据从8255到CPU外设信号外设总线278255A应用举例(一)PC/XT中8255A在
16、系统板上连接:方式0-检测系统配置、状态,管理键盘 P282图5.47A口 60H,输入,部件测试码或键盘扫描码B口 61H,输出,-输出系统内部控制信号:-允许键盘工作/+清除键盘数据,-保持键盘时钟为低,-允许I/O通道校验,-允许 RAM奇偶校验,+扬声器发声,+定时器2门控C口 62H,输入,测试状态和系统配置情况:RAM校验状态,I/O通道校验,测T2输出,测扬声器状态 控制R:63H (自检A口输出:10001001B,开机自检时输出部件检测码,逐个检测有关部件是否正常,完成自检后A口输入: 10011001B,输入键盘扫描码正常A出入) 写完控制字后,CPU可通过IN/OUT指令
17、来与8255A传送数据。 如:IN AL,60H ;读端口A的数据 MOV DATAB,AL OUT 61H,AL ;将数据DATAB送端口B IN AL,62H MOV DATAC,AL ;读端口C的数据288255编程举例编写8255A的初始化程序段和中断服务程序(注:CPU采用中断方式从8255A中读取转换后的数据)。 8255的A、B、C及控制端口的地址分别为PORTA、POATB、PORTC和PCON,则一种可能的程序段实现如下: 主程序:; 初始化8255A MOVAL,10011110B ; 设置8255A的工作方式控制字 OUT PCON, AL XOR AX,AX ;置数据段
18、寄存器DS主0000段 MOV DS,AX MOV AX,2000H ;置中断向量1000:2000至2CH-2FH单元 MOV WORD PTR002CH,AX MOV AX,1000H MOV WORD PTR002EH,AXMOVAL,00000101B ; 设置C口置位/复位控制字,使INTEB(PC2)为高电平,允许B口中断 OUT PCON, AL MOV AL,00000010B ; 设置C口置位/复位控制字,使PC1(IBFB)输出低电平,启动第一次A/D转换 OUT PCON, AL ; 298255编程举例中断处理子程序入口在1000:2000H处,其主要程序如下: ; 取
19、数,并自动启动下一次A/D转换 MYINT:MOV AL,00000011B ; PC1(IBFB)输出高电平,停止A/D转换 OUT PCON,AL INAL,PORTB ; 取8位转换值放到AL中 MOV SI, ALMOV AL,00000010B ; PC1(IBFB)输出低电平,再次启动A/D转换 OUT PCON, AL IRET30简易键盘的工作原理+5V+5V+5V最简单的线性结构键盘每一个引脚连接一个键输入0/1反映健是否高低31简易键盘的工作原理+5V+5V控制线检测线常用的矩阵结构键盘每行连接一个引脚每列连接一个引脚利用控制线为低、读取检测线来识别闭合键32扫描法先使第0
20、行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电位实现)此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出通过组合行线和列线可识别此刻按下的是哪一键33第1段:是否有键按下key1:mov al,00mov dx,rowportout dx,al;使所有行线为低电平 mov dx,colport in al,dx;读取列值cmp al,0ffh;判定是否有列线为低电平jz key1;无闭合键,循环等待call delay;有,延迟20ms清除抖动键盘扫描程序34第2段:识别按键(
21、扫描)mov cx,8;行数送CXmov ah,0feh;扫描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;输出行值(扫描值)mov dx,colportin al,dx;读进列值键盘扫描程序35第2段:识别按键(判断)cmp al,0ffh;判断有无低电平的列线jnz key3;有,则转下一步处理rol ah,1;无,则移位扫描值loop key2;准备下一行扫描jmp key1;所有行都没有键按下,则返回继续检测key3: ;此时,al列值,ah行值键盘扫描程序36反转法首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口CPU通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入端口将刚才读得的列值从列线所接端口输出,再读取行线的输入值这样,当一个键被按下时,必定可以读得一对唯一的行值和列值37第1段:是否有键按下;设置行线接输出端口,列线接输入端口key2:mov al,00mov dx,rowportout dx,al;设置行线全为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024工程协议管理实务精要
- 北京2024二手轿车买卖正式协议
- 2024年三方租赁场地协议范例
- DB11∕T 1655-2019 危险化学品企业装置设施拆除安全管理规范
- 2024年BF场地出租协议模板
- 2024年跨国贸易代表协议基本格式
- 2024年分公司加盟协议模板
- 城市大型广告牌2024制作及安装协议
- 2024年度运动设备采购协议模
- 2024年全新鸡舍租赁与经营协议
- 江苏省徐州市铜山区2023-2024学年九年级上学期期中英语试卷(含答案解析)
- 三年级体育下册 前滚翻(水平二)说课稿
- 刘润年度演讲2024
- 2023-2024学年浙江省温州市鹿城区八年级(上)质检科学试卷(12月份)
- GB/T 44653-2024六氟化硫(SF6)气体的现场循环再利用导则
- 410th循环流化床锅炉本体化学清洗方案(HCL)
- 2024~2025学年度八年级数学上册第1课时 等边三角形的性质和判定教学设计
- 山东省济南市2023-2024学年高一上学期语文期中考试试卷(含答案)
- 2024年广西无纸化学法用法普法考试学习资料02
- 花键轴工序卡片5
- 河湖生态系统保护与修复工程技术导则 SLT800-2020_(高清-有效)
评论
0/150
提交评论