微机接口技术.ppt

上传人:本田雅阁 文档编号:3195767 上传时间:2019-07-29 格式:PPT 页数:115 大小:2.23MB
返回 下载 相关 举报
微机接口技术.ppt_第1页
第1页 / 共115页
微机接口技术.ppt_第2页
第2页 / 共115页
微机接口技术.ppt_第3页
第3页 / 共115页
微机接口技术.ppt_第4页
第4页 / 共115页
微机接口技术.ppt_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《微机接口技术.ppt》由会员分享,可在线阅读,更多相关《微机接口技术.ppt(115页珍藏版)》请在三一文库上搜索。

1、1,微机接口技术,复习: 微机框图:三部件、三总线 指令执行过程:取指、取数、运算、存数 指令系统及汇编语言编程:IN、OUT,请按本PPT及实验讲义顺序预习! 有些内容要查阅参考书; 与实验内容有关的部分:精读! 作业、实验报告必须手写!,体系独立的学科技术,2,接口技术概述,几个基本问题: 1、什么是接口电路? 2、为什么外设与CPU间必须要有接口电路? 3、接口电路功能 4、接口电路最基本功能 5、接口电路分类,存储器与CPU连接呢?,3,1、什么是接口电路? Interface,CPU与外设间电路,简称I/O接口 微机系统中最复杂的部分, 接口设计:硬件电路设计、驱动程序设计。,接口电

2、路,2、为什么外设与CPU间必须要有接口电路? 外设种类繁多,速率不匹配:机械/电子 信号类型和电平幅度不匹配:数字/模拟 信号格式不匹配:位数不同,并/串 时序不匹配:特定工作原理/控制逻辑,4,接口电路功能,3、接口电路功能 (1)寻址 类似存储器找到地址 (2)输入/输出 类似存储器读或写 (3)数据转换 外设可用的格式 (4)联络 传送过程控制 (5)中断管理 一种实时的传送方式 (6)复位 使接口本身初始化 (7)可编程 工作方式可用软件设置 (8)错误检测 串口中,传输错误等 ,5,接口电路最基本功能,4、接口电路最基本功能:由总线结构决定 端口译码:寻址,片选 输出锁存:锁存器

3、CPU输出数据出现在总线上的时间有限 输入缓冲:三态缓冲器 多个电路都挂在总线上,实际上存储器芯片也都具备上述三项基本功能!,要解决两个问题:1、引脚对接;2、时序配合,6,七个方面的内容: 名称、功能、方向、 三态、有效(高/低/边缘)、多功能、驱动能力,CPU引脚,按功能分三类:(早期CPU地址/数据复用) 地址:A0A9A16A20A32 数据:D0D7D15D31 控制:RD、WR、IO/M NMI、INTR、INTA,,8086为40脚DIP,80486为168脚PGA,,7,8086引脚,AD0AD15: 地址/数据(出/双向) A16/S3A19/S6:地址/状态(出) /BHE

4、/S7:高字节有效/状态(出) /RD:读控制(出) /WR:写控制(出) M/IO:存储器/IO选择(出) DT/R:数据发送/接收(出) /DEN:数据使能(出) ALE:地址锁存使能(出),8,*8086的引脚,AD0AD15 :地址/数据复用总线; A16/S3A19/S6 :地址状态总线; BHE/S7:高8位数据总线允许/状态复用引脚; RD:读信号; WR:写信号; M/IO:存储器或I/O端口访问信号; READY:读写准备就绪信号; INTR:可屏蔽中断请求信号; INTA:中断响应信号; NMI:不可屏蔽中断请求信号,上升沿触发;,9,*8086的引脚(续),ALE:地址锁

5、存允许信号,将地址送上系统AB; DT/R:数据发送/接收控制信号; DEN:数据允许信号,将数据送上系统DB; HOLD:总线请求信号,由另一主控模块发起; HLDA:总线请求响应信号,由CPU应答; TEST:测试信号,执行WAIT指令时决定是否继续等待; RESET:复位; MN/MX:最小/最大模式选择; CLK:时钟,10,存储器举例,6264:8K8位SRAM,A0A12: 地址线13根(入); I/O0I/O7 : 数据线8根(双向); /CS1、CS2: 片选信号(入); /OE:输出允许(入); /WE:写控制(入);,I/O接口电路的引脚类似,11,端口译码,用地址线确定要

6、操作的端口。,片选:全译码、线译码、部分译码,译 码 电 路,接口1,接口2,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,Y7 Y0,74HC138 74HC139 ,/CS /CS,RD/WR IO/M,12,*全译码,所有地址线均参与译码 端口地址唯一 结构复杂 一般用在I/O空间较大的场合 高位地址线用于片选,低位地址线用于片内字选,13,*线选法,少数几根地址线经简单逻辑或将某地址线直接作为片选 没参加译码的地址线不论为0或为1均不影响片选结果 结构简单,但地址重叠,地址空间浪费 适用于I/O空间较小的场合 难以扩展,14,*简单逻辑译码,15,*线选译码的地址空间,1

7、6,*部分译码法,某些最高位地址线不参加译码(即悬空,造成地址重叠)或以简单逻辑接入 低位地址线作为字选 剩余中间地址线接入译码器 最常用也最容易设计的方法 适用于I/O空间较大的场合,17,*输入输出指令,直接寻址(端口号小于100H) IN AL/AX , N OUT N , AL/AX DX寄存器间接寻址(所有16位端口号) MOV DX , PORT IN AL/AX , DX OUT DX , AL/AX,18,CPU读/写时序,19,*指令、总线与时钟周期,执行一条指令所需时间为指令周期,不同指令其周期不等长。 当CPU从存储器或I/O设备存取一次数据就需要一个总线周期。一个或多个

8、总线周期组成一个指令周期。 CLK周期即时钟周期T,一个总线周期至少由四个时钟周期T1、T2、T3、T4组成。,20,*总线周期,在T1期间送出地址; 在其他三个T周期传送数据; 如果无法在规定时间内完成传送,必须通过READY引脚发出请求信号,在T3与T4之间插入一个或数个等待周期Tw,直到READY有效。Tw也以T为单位。,21,*8086读周期时序,22,*8086写周期时序,23,*中断响应周期时序,24,*总线保持/响应时序,25,*复位时序,26,*最小方式下的总线形成,27,*三态锁存器8282,28,*数据收发器8286,29,接口电路分类,5、接口电路分类 按通用性分:专用接

9、口、通用接口 按可编程性分:可编程接口、 不可编程接口 按外设传送数据格式分:并行接口、 串行接口 按工作对象分:面向CPU的外围接口、 面向外设的I/O接口,8253、8259、8255、8251、8237,30,外设与CPU传送的信息,数据信息:数字量、模拟量、开关量,双向 状态信息:由外设到CPU,输入 控制信息:由CPU到外设,输出,存储单元I/O端口 地址 端口号(端口地址),存储器:程序、数据 (数据有各种不同的物理意义) I/O接口:信息,分三种:,31,I/O端口,接口电路可抽象为三组寄存器(端口) 数据端口、状态端口、控制端口,I/O端口编址方式:统一编址、单独编址,CPU,

10、存储器,I/O接口,I/O设备,AB,DB,CB,读/写,输入/输出,32,CPU与外设信息传送控制方式,(1)无条件传送方式 (2)条件传送方式(查询方式) (3)中断传送方式 (4)直接存储器存取(DMA)方式 必须理解清楚:硬件、软件配合的过程,33,无条件方式,三态 缓冲器,端口译码,锁存器,端口译码,/IOR,AB,DB,输入数据,DB,AB,/IOW,输出数据,输入,输出,0,0,0,0,1,1,74HC244,74HC273,74HC138,软件原理:一条IN或OUT指令,典型应用:按键/开关输入,LED显示输出,注意:端口译码有效为低或高?,34,条件方式(输入),硬件框图,输

11、 入 设 备,锁 存 器,三 态 缓 冲 器,+5V,R,D,Q,端口译码,AB,DB D7,/IOR,/IOR,STB,输入软件流程,0,0,0,0,1,1,准备好?,读状态,输入数据,N,Y,SCAN:IN AL,0F1H TEST AL,80H JZ SCAN IN AL,0F0H MOV BUF,AL,保存数据,F0 F1,状态寄存器,35,条件输入流程改进,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,一个子程序(OTHER),一个子程序(INPUT),主程序: MAIN: CALL OTHER CALL INPUT

12、JMP MAIN,必须考虑:与硬件配合、与其它操作配合。 数据准备好所花时间与指令执行时间比较。,36,条件方式(输出),硬件框图,输出软件流程,输 出 设 备,锁 存 器,端口译码,AB,Q,R,D,DB,ACK,+5V,/IOR,/IOW,去DB,其它操作,设备忙?,读状态,输出数据,N,Y,0,0,0,0,1,1,与条件输入一样的流程改进请同学们思考。,37,中断方式(输入),硬件框图,输 入 设 备,锁 存 器,三 态 缓 冲 器,+5V,R,D,Q,端口译码,AB,DB,/IOR,/IOW,STB,0,0,0,1,Q,D,INTR,1,0,IRR,IMR,D0,软件原理,主程序,中

13、断 子 程 序,输出较少使用中断方式。,为提高CPU利用率,并实时处理随机事件,状态寄存器改为中断请求寄存器,38,DMA方式,适用于高速大量的数据传送,CPU,存储器,I/O接口,DMAC,AB,DB,CB,前三种方式都要CPU干预,传送时间长; 实际数据是放在存储器中的。,39,1、如何确定外设准备好? 2、几种方式的优先级? 3、软件中设置I/O缓冲区问题:与缓冲器区分!,共性问题讨论,接口与系统的连接:P13图1-11,接口技术的发展: 从非标准化到标准化,从硬件到软件; 内嵌CPU,智能化; 新总线标准; 软件接口标准化;,40,*典型的IO接口与外部连接,41,端口译码实验(1),

14、A B C E1,0,Y4Y5 0 1 A3 0 0 A4 1 1 A5,0 A6 1 A7 0 A8 1 A9,/IOW /IOR,Y4 Y5,CLK,R,D,PR,Q,L0R(LED),5V,A9A8,A7A6A5A4,A3A2A1A0 Y0 1 0 1 0 0 0 0 X X X 280287 Y4 1 0 1 0 1 0 0 X X X 2A02A7 Y5 1 0 1 0 1 0 1 X X X 2A82AF Y7 1 0 1 0 1 1 1 X X X 2B82BF,需连线,74HC138,74HC74,0,42,端口译码实验(2),流程图,2A0端口输出,延时,2A8端口输出,延时

15、,有按键?,结束,2A0和2A8输出数据任意; 用IN或OUT指令均可; 延时时间长则LED闪烁; 延时时间短则 示波器上可观察到波形。,Y,N,为调试程序方便一般要有 按任意键结束程序的功能,43,并行口实验(1),244,1A1 1A4 2A1 2A4,273,1Y1 2Y4,1/G 2/G,Q1 Q8,D0 D7,CLK,/IOR,/IOW,2A0,2A8,DB,DB,L0R L1R L2R L3R L4R L5R L6R L7R,K0 K1 K2 K3 K4 K5 K6 K7,需连线,验证无条件和条件传送原理,CLR,VCC,问题: 为什么LED显示、 开关(按键)输入 可以用无条件方

16、式?,0,0,44,并行口实验(2),无 条 件 方 式 流 程 图,从2A0输入,暂存到BL,从2A8输出,到屏幕显示,从2A0输入,与BL相等?,有按键?,暂存到BL,从2A8输出,到屏幕显示,结束,N,N,Y,Y,改为查询方式: 用K7作为状态位,不做此判断则现象如何?,注意:按键输入的抖动现象 软件办法消除,编写控制硬件的程序必须 注意程序执行时间与硬件 工作速度的配合。,其它操作,45,数码LED动态扫描(1),273,Q1 Q8,D0 D7,CLK,/IOW,2A8,DB,CLR,VCC,273,Q8 Q1,D0 D7,CLK,/IOW,2A0,DB,CLR,VCC,LED0,LE

17、D7,DP SA,a,b,c,d,e,f,g,. h,1、硬件原理图,字型,位型,1,0,反相,静态显示:8个锁存器 动态显示:2个锁存器,46,数码LED动态扫描(2),2、一般软件流程(八位显示),指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,8位完?,指针位型初始化,延时,N,Y,注意: 亮度不均问题,1ms2ms,位型输出全1,47,数码LED动态扫描(3),软件流程 一位显示子程序:,3、实验程序,字型表: LED DB 3FH,06H,71H 显示数据表: BUF DB 8 DUP(?) 显示指针:初值0 LPTR DW ?;07 显示位型:初值01H LBIT

18、DB ?;02H,04H.80H,指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,数据结构,主程序,指针初始化,位型初始化,段初始化,调用显示 子程序,键盘输入,有按键?,返回,Y,N,不存在亮度不均问题,其它操作,48,键盘扫描(1),273,Q1 Q2 Q3,D0 D7,CLK,/IOW,2A0,DB,CLR,VCC,行输出,1、硬件原理,244,2A4 2A1 1A4 1A1,1Y1 2Y4,1/G 2/G,/IOR,2A8,DB,列输入,VCC,F E D C B A 9 8,7 6 5 4 3 2 1 0,KEY5,KEY1,KEY2,KEY3,KEY7,KEY6,K

19、EY0,KEY4,KB0,KB1,KB2,3行8列,49,键盘扫描(2),2、一般软件流程(三行全部扫描),拼键值,返回,行输出全0,读入列值,列值全1?,一行输出0,返回,读入列值,列值全1?,下一行,行扫完?,返回,延时(20ms),再输出行值,读入列值,列值相同?,返回,行输出全0,读入列值,列值全1?,延时(20ms),N,Y,Y,Y,Y,N,N,N,Y,等待键松开,消抖,消除抖动,10ms,10ms,100ms,50,键盘扫描(3),3、实验程序,数据结构:,BUF DB 8 DUP(?);键盘输入缓冲区(环形) KPTR DW ? ;键盘输入缓冲区指针(07) KBIT DB ?

20、;行输出位型(01H,02H,04H) KROW DB ? ;按键行值 KCOL DB ? ;按键列值 KCNT DB ? ;按键消抖计数 KEY DB ? ;按键键值(00H07H,08H0FH,10H17H) 子程序与主程序传递参数用,常数:,CNTMAX EQU 80H ;按键消抖计数最大值, 可根据其它操作时间长短调整,主程序用,子程序用,51,键盘扫描(4),一行键盘扫描子程序流程图,AHKROW,KBIT左移,KBIT=08H?,KBIT01H,KCOL=0?,KBIT= KROW?,返回,Y,N,Y,Y,N,N,KBIT取反输出,列输入取反,列值= KCOL?,KCOL列值,KR

21、OWKBIT,KEYIN1,KEYIN0,KCNT0,KCNT+1,KCNT= CNTMAX?,N,返回参数: CF=1:无 CF=0:AL=键,KCNT0,KCOL=0?,KEY=FF?,KEYIN2,KEYIN3,ALKEY,KEYFF,有键返回,KEYIN4,AL0,AHKCOL,AH右移,CF=1?,CF=1?,返回,返回,Y,N,Y,KEYIN5,返回,Y,N,N,Y,AL加1,AH右移,AL加8,KEYAL,返回,Y,Y,N,N,KEYIN6,KEYIN8,KEYIN7,KEYIN9,是否扫描,扫描,拼键值,按键松开,判按下松开,图例:,问题:多键 连续键 数字键/功能键,52,键

22、盘扫描(5),主程序流程图,AL0A?,返回,段初始化,KPTR0,KBIT01H,KROW0,KCOL0,KCNT0,KEYFF,CF=1?,读PC机键盘,PC有按键?,调用键盘扫描,缓冲区AL,KPTR加1,AL10H?,ALAL+7,ALAL+30H,显示,Y,N,Y,N,N,Y,其它操作,Y,N,53,键盘扫描(6),键盘行列扫描与动态LED显示综合: 0F的按键在数码LED上显示 必须解决的问题:,1、因为键盘行输出与LED位型输出是共用的, 所以软件上两者必须配合好; 如何配合?若末配合好会有什么问题? KEYIN子程序稍加修改,LBIT和KBIT合一。 2、BUF缓冲区可共用,

23、但存入指针KPTR和取出指针LPTR还是分开使用。,若用8位显示和3行扫描的子程序,则非常麻烦。,54,可编程定时/计数器基本原理,(3)基本功能:位数、二进制/十进制、加/减 8253/8254:16 减 8254有读出控制字和读出状态字,8253无。,(2)定时/计数器基本原理: 可预置初值; 对输入信号进行加或减计数; 计到0或FFFF时有输出信号,从原初值重新计数.,(1)区分:可编程接口芯片(8253等) 可编程器件(PLD、GAL、CPLD、FPGA),55,(4)定时功能:周期性输出信号 设输入时钟周期t,输出信号周期T,计数初值TC 减计数器:tTC=T 加计数器:t(2n-T

24、C)=T,二进制:2n改为10m,(5)计数功能:测量脉冲宽度 设输入时钟周期t,待测信号周期T, 计数终值TC,初值置为0 加计数器:tTC=T 减计数器:t(2n-TC)=T,定时计数公式,56,8253/8254引脚图,与外设连接: 三个计数器独立 CLK0:计数信号(入) GATE0:门控信号(入) OUT0:输出信号(出) 与CPU连接: D0D7:数据线 ,57,8253/8254内部结构,数据 总线 缓冲器,读/写 逻辑,控制字 寄存器,0号 计数器,1号 计数器,2号 计数器,内 部 数 据 总 线,D0D7,CLK0 GATE0 OUT0,CLK1 GATE1 OUT1,CL

25、K2 GATE2 OUT2,/RD /WR A0 A1 /CS,左与CPU连接 右与外设连接,/IOR /IOW A0 A1 /2A0,共24根引脚,58,8253/8254寄存器读写,59,8253/8254工作方式,输出波形不同,启动计数的触发方式不同, GATE作用不同,初值自动重装功能不同,波形图参见教材.,60,8253/8254控制字,计数器选择 00=CH0 01=CH1 10=CH2 11=8254读出,读写控制 00=锁存 01=低字节 10=高字节 11=先低后高,工作方式 000=方式0 001=方式1 x10=方式2 x11=方式3 100=方式4 101=方式5,数制

26、 1=BCD 0=二进制,61,计数值的读出:两种方法 (1)直接读出:低、高字节切分两次读, 计数器未停则有可能读错 (2)锁存读出:先用RL1,RL0=00锁存,再读出,02,00 01,FF 01,FE,8253/8254初始化编程及计数读出,初始化编程:三个计数独立 1、写控制字; 2、写计数初值。,62,8253/8254应用,PC机中: 40H43H,CLK02=1.19MHZ,二进制 CH0:方式3,55ms,实时时钟 CH1:方式2,15.1us,DRAM刷新 CH2:方式3,900HZ,扬声器, 由PB0、PB1控制,CLK0 CLK1 CLK2,GATE0 GATE1 GA

27、TE2,OUT0 OUT1 OUT2,Fclk,+5V,PB0,8259IR0,DRAM刷新电路,扬声器,PB1,MOV AL,00110110B OUT 43H,AL MOV AL,0 OUT 40H,AL OUT 40H,AL MOV AL,01010100B OUT 43H,AL MOV AL,12H OUT 41H,AL MOV AL,10110110B OUT 43H,AL MOV AX,0533H OUT 42H,AL MOV AL,AH OUT 42H,AL,63,(1)6种工作方式的波形验证 软件启动、硬件启动 初值(分频比) 3、2、1、5、0、4 (2)参考:书P182,8

28、253,CLK0 CLK1 CLK2,GATE0 GATE1 GATE2,OUT0 OUT1 OUT2,1MHZ,+5V,CS8253,Y0,示波器,8253/8254实验,64,中断系统(1),1、中断概念的引入:CPU与外设同时工作,输 入 设 备,输 入 接 口,现 行 程 序,中 断 服 务 子 程 序,启动,CPU,中断请求,数据,中断响应,数据,2、中断定义:是一个硬件、软件配合的过程,3、中断源:时钟、外设、故障、调试。内部/外部,4、中断系统:CPU中处理中断功能的硬件电路 基本功能:屏蔽开放、判优先级、中断嵌套、进入返回,65,中断系统(2),5、CPU响应中断的三个条件:

29、无总线请求(DMA) CPU允许中断(IF=1) 现行指令执行完,6、CPU响应中断后自动完成三项任务: 关闭中断 保护关键现场:断点、FLAGS 获得中断服务子程序入口地址,转入,7、中断子程序中要处理六件事: 保护现场 开中断 中断服务 关中断 恢复现场 开中断返回,8、中断源的识别: 软件方法 硬件方法,9、优先级的确定 解决:同时、嵌套 软件方法 硬件方法:编码比较 菊花链排队,66,中断向量表,1、中断向量:中断子程序入口地址 偏移地址、段基址,共4 个字节,2、中断向量表:在00000003FFH中, 共256个中断源,中断类型码(n)0FFH,3、中断向量表原理: 类型码n的表中

30、位置为4n+04n+3 4n+0,4n+1=偏移地址 4n+2,4n+3=段地址,4、中断向量表操作:功能调用INT 21H (1)读中断矢量:入:AH=35H,AL=类型码 出:ES:BX=读出的中断向量 (2)置中断矢量:入:AH=25H,AL=类型码 DS:DX=要写入的中断向量 出:无,5、特殊向量:n=1DH,1EH,1FH,41H,46H,67,中断分类,1、CPU中断 0:除法错 1:单步中断 2:NMI 3:断点中断 4:溢出中断,2、软件中断 (1)BIOS中断:05H,10H1FH (2)DOS中断:DOS专用:22H、23H、24H、28H3FH 用户可用:20H、21H

31、、25H、25H、27H 用户可开发:60H66H DOS保留:42H45H、4BH5FH、 68H6FH、72H74H 77H7FH,共256个中断源 软件中断 硬件中断:INTR、NMI,68,8259引脚图,69,可编程中断控制器8259(1),1、8259内部结构和引脚,中断服务 寄存器 ISR,优先权 判别电路 PR,中断请求 寄存器 IRR,中断屏蔽寄存器IMR,控制逻辑,数据总 线缓冲,读/写逻辑,级连/缓冲,D7D0,/RD /WR A0 /CS,CAS0 CAS1 CAS2 /SP/EN,/INTA,INT,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,共2

32、8根引脚,70,可编程中断控制器8259(2),工作原理 IR0IR7引脚上来请求存入IRR; IMR控制是否送到PR; PR选中优先级最高的中断源并从INT引脚向CPU发请求。 CPU若响应,从/INTA向8259发两个负脉冲作为应答; 8259收到/INTA第一个负脉冲时,将ISR中与被选中的中断源 对应的位置1,同时将IRR中对应位清0; 8259收到/INTA第二个负脉冲时,从数据总线把被选中中断源 的类型码送给CPU; CPU根据类型码从中断向量表查到中断子程序的入口地址, 从而跳转到中断服务子程序; 中断服务子程序结束前,CPU通知8259中断服务结束, 8259将ISR中对应位清

33、0,从而可再接受其它中断。,注意:8259与CPU配合,软件与硬件配合,71,可编程中断控制器8259(3),2、工作方式,中断触发方式:上升沿触发、高电平触发,中断屏蔽方式:一般屏蔽方式、特殊屏蔽方式,优先级方式:一般完全嵌套方式 特殊完全嵌套方式 优先级循环方式:一般、自动、特殊,中断结束方式:自动EOI、一般EOI、特殊EOI,总线连接方式:缓冲方式、非缓冲方式,72,可编程中断控制器8259(4),3、8259的编程,(1)使用端口两个:A0=0,偶端口、A0=1,奇端口 PC机中: 20H 21H,(2)共有7 个命令字 初始化命令字:ICW1ICW4 ICW1写入偶端口,其余按顺序

34、写入奇端口 操作命令字: OCW1OCW3 OCW1写入奇端口,OCW2、3写入偶端口 写入偶端口的ICW1、OCW2、OCW3用特征位区别 读奇端口为为OCW1,读偶端口为IRR、ISR或有效中断源,(3)PC 机中设置的工作方式不能更改!,73,可编程中断控制器8259(5),ICW1:,LTIM:中断触发方式,1=高电平触发 0=上升沿触发,SNGL:单片或级连,1=单片 0=级连,要写ICW3,IC4:1=要写ICW4 0=不写ICW4,D4为特征位,写入ICW1后自动对8259初始化,74,可编程中断控制器8259(6),ICW2:中断类型码,T7T3:中断类型码,低3位为IR7IR

35、0的编号,ICW3:主片/从片,主片 从片,Si=1,对应IRi上接有从片, Si=0,对应IRi上未接从片,ID20:本从片接至主片的IRi的编号,75,可编程中断控制器8259(7),ICW4:,SFNM=1,特殊完全嵌套方式,同级可响应,用于主片 =0,一般完全嵌套方式,同级不响应,用于从片,BUF=0,非缓冲方式,主从由/SP引脚决定,/SP=0为从片 1,缓冲方式,主从由M/S位决定,M/S=0,从片;M/S=1,主片,AEOI=0,非自动EOI,要用EOI命令清ISRi 1,自动EOI,8259收到第二个/INTA时将ISRi对应位清0,76,可编程中断控制器8259(8),OCW

36、1:中断屏蔽字,Mi:对IRi的屏蔽位,1=屏蔽,0=允许,OCW3:特殊屏蔽和读出命令 D4、D3为特征位,ESMM,SMM:11=设置特殊屏蔽方式,10=撤消,RR,RIS:读寄存器命令,10=读IRR,11=读ISR,P=1:查询命令,读入的D7=1表示有请求,D2D0为编号,读 偶 端 口,77,可编程中断控制器8259(9),OCW2:中断结束和优先级循环字,R=1:优先级循环;R=0:优先级固定 EOI=1:中断结束命令 SL=1:对由L2L0指定的IRi 操作,中断结束,EOI且循环,优先级循环,78,PC机中的中断源使用,主8259: IR0:时钟 IR1:键盘 IR2:从片

37、IR3:辅串行口 IR4:主串行口 IR5:并行口2 IR6:软盘 IR7:并行口1 端口号:20H、21H 类型码:08H0FH,从8259: IR8: 时钟 IR9: 用户中断 IR10:保留 IR11:保留 IR12:保留 IR13:协处理器 IR14:硬盘 IR15:保留 端口号:A0H、A1H 类型码:70H77H,79,8259实验(1),中断子程序: INT7:PUSH DS PUSH AX MOV AX,DATA MOV DS,AX DEC CNT2 MOV AL,20H OUT 20H,AL POP AX POP DS IRET,硬件原理: 正脉冲接到IR7,BUF DB “

38、THIS IS A IRQ7!”,0ah,0dh,“$” CNT1 DB ?;数据段 CNT2 DB ?,MOV AX,CS MOV DS,AX LEA DX,INT7 MOV AX,250FH INT 21H MOV AX,DATA MOV DS,AX MOV CNT1,10 MOV CNT2,10 IN AL,21H AND AL,7FH OUT 21H,AL W0:MOV AL,CNT2 CMP AL,CNT1 JZ W1,MOV CNT1,AL LEA DX,BUF MOV AH,9 INT 21H CMP CNT1,0 JZ EXIT W1: MOV AH,6 MOV DL,0FFH

39、 INT 21H CMP AL,0 JZ W0 EXIT:IN AL,21H OR AL,80H OUT 21H,AL MOV AH,4CH INT 21H,主程序,80,8259实验(2),主 程 序 流 程 图,置中断向量,置数据段,置计数初值,开屏蔽,CNT1=CNT2?,CNT1CNT2,显示,CNT1=0?,有按键?,屏蔽,保护DS,AX,结束,Y,Y,N,N,N,Y,发EOI命令,CNT2减1,置数据段,恢复AX,DS,中断返回,中 断 服 务 子 程 序 流 程 图,注意中断重入问题 如何改为查询方式? 传递参数一般用内存变量方法,81,键盘中断(1),1、键盘中断原理,主板 键

40、盘接口,键盘,主8259,CPU,IR1,INTR,D7D0,5芯串口 VCC GND CLK DATA RESET,键盘由单片机控制,扫描码:通码、断码 键盘接口进行串转并,发中断请求 键盘中断子程序:将键代码存入40H:1EH3DH 的FIFO循环缓冲区,INT 16H,60H,82,键盘中断(2),2、实验:显示按键对应的扫描码,读中断向量,保护中断向量,关中断,置中断向量,开屏蔽,开中断,置数据段,指针清0,空?,其它操作,从BUF读数据,指针加1,显示低4位,显示高4 位,显示空格,ESC?,恢复中断向量,关中断,开中断,结束,主程序流程图,N,N,Y,Y,PTR1读出,PTR2写入

41、,环形:INC BX AND BX,0FH,空:PTR1=PTR2,满:PTR2+1=PTR1,83,键盘中断(3),中断服务子程序流程图,保护BX,AX,发EOI命令,读入扫描码,置数据段,恢复DS,中断返回,保护DS,复位键盘,断码?,存入缓冲区,指针加1,满?,恢复AX,BX,Y,Y,N,N,断码不存入缓冲区,数据段段地址DS保护问题,实验内容: 1、列出字母和数字键 对应的扫描码 2、修改主程序,将字母键大、 小写各显示一次,其它按键 不显示。,84,可编程并行接口芯片8255(1),1、内部结构及引脚,数据 总线 缓冲器,读/写 控制 逻辑,A组 控制,B组 控制,A组 A口,A组

42、C口上,B组 B口,B组 C口下,D7D0,/RD /WR A0 A1 RESET /CS,PA7PA0,PB7PB0,PC7PC4,PC3PC0,共40根引脚,85,8255(2),2、控制字与编程,(1)方式控制字,方式字标志 1=有效,A口方式 00=方式0 01=方式1 1x=方式2,A口 1=输入 0=输出,C口上 1=输入 0=输出,B口方式 0=方式0 1=方式1,B口 1=输入 0=输出,C口下 1=输入 0=输出,86,8255(3),(2)、C口位控字,位控字标志 0=有效,位选择 000=PC0 001=PC1 111=PC7,1=置位 0=复位,注意:方式控制字C口位控

43、字都是写入控制口,A1 A0 0 0 A口 0 1 B口 0 C口 1 1 控制口,87,8255(4),3、工作方式,方式0:基本输入/输出,PA、PB、PC;无条件方式 方式1:选通输入/输出,PA、PB 条件方式、中断方式 方式2:双向输入/输出,PA 条件方式、中断方式,(1)方式0 输入时序,/RD 输入 /CS,A1,A0 D7D0,最短,最长,有效,88,8255(5),(1)方式0 输出时序,/WR D7D0 /CS,A1,A0 输出,最短,最长,有效,89,8255(6),(2)方式1 输入时序,/STB IBF INTR /RD 输入,联络信号,PC3,PC4,PC5,IN

44、TEA (PC4),PC6,7,PA07,/STBA IBFA,INTRA,PC0,PC2,PC1,INTEB (PC2),PB07,/STBB IBFB,INTRB,90,8255(7),(2)方式1 输出时序,联络信号,PC3,PC6,PC7,INTEA (PC6),PC4,5,PA07,/ACKA /OBFA,INTRA,PC0,PC2,PC1,INTEB (PC2),PB07,/ACKB OBFB,INTRB,/WR /OBF INTR /ACK 输出,91,8255(8),(3)A口方式2:方式1输入输出的组合。,(4)从C口读状态,(5)C口联络线功能,92,8255(9),4、8255的应用,PC机中:60H63H,方式0 PA口:输入,键盘扫描码 PB口:输出,控制,PB7、PB6控制键盘 PB1、PB0控制扬声器 PC口:输入,系统配置开关,5、实验 (1)方式1输出,中断方式,要求改为查询方式 /ACKA接单负脉冲,INTRA接PC总线的IRQ7 (2)方式1输入,可用查询或中断方式 /STBB接单负脉冲,INTRB接PC总线的IRQ7 PA口输出接LED,PB口输入接开关,93,8255(10)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1