微机原理第七章

合集下载

《微机原理及接口技术》第七章

《微机原理及接口技术》第七章

数。计数过程中,新装入值不影响原计数过程。计数为偶数,计数器减2,到
0,OUT改变,计数值重新装入,反复工作。为奇数,则第一次减1,以后减2。
10/20
一、8253的工作方式5
1、000:方式 0(计数结束产生中断)
第七章、可编程计数/定时控制器8253
本章要点:
计数器/定时器基本概念 可编程计数器/定时器8253的工作原理 可编程计数器/定时器8253结构、功能 可编程计数器/定时器8253的应用
2/20
7.1 可编程计数/定时控制器8253的结构
一、可编程计数/定时控制器
在微机应用系统中,常常要求有一些实时时钟,以实现对外部事件进行定时或 对微机外部输入的脉冲进行计数。一般有3种方法可实现定时/计数的要求。
按照CPU发来的读写信号及地址信号产生相应的控制信号,
来选择读/写操作的端口、控制数据的传送方向,以及对控制寄存器的写入。
3、控制字寄存器: 控制字寄存器是8位的,只能写不能读。
在初始化编程时,CPU写入方式控制字到控制字寄存器中,
用以选择计数通道及其相应的工作方式。
4、计数器0、计数器1、计数器2: 内部结构相同、功能相同,有各自独立的端口地址。
1、软件方法 通过编制一个延时程序段让微处理器执行,利用执行程序所需时钟状态,得到定 时的时间。这种方法通用性和灵活性好,但占用CPU时间。 2、不可编程的硬件方法 采用分频器、单稳电路或简易定时电路控制定时时间,例如555定时电路,这种 方法不占用CPU时间,但通用性、灵活性差。 3、可编程计数器/定时器方法 软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,可由软件 设定定时与计数功能,设定后与CPU并行工作,不占用CPU时间,使用灵活。

微机原理第七章

微机原理第七章

常量作用:
(1)指令语句中源操作数中作立即数。 例: MOV AX, 0A5F1H (2) 在指令语句的基址加变址的寻址方式中作位移量。例: MOV BX, [SI+32H] (3)在数据定义伪指令中。例:DB 12H

2. 数值表达式 /、MOD)、逻辑 由常量和算术(+、-、 (AND、OR、XOR、NOT)和关系(EQ、 NE、LT、GT、LE、GE)3类运算符组成的 表达式称为数值表达式。
(1) CS: MOV AX,[SI]
若 CS = 3000 H,SI = 4000 H,
34000 H 1A H 34001 H 20 H
EA=4000H,物理地址=34000H,
执行结果: AX=201A H
(2)MOV
BX,[DI]
若 DS = 5000 H,DI = 0200 H
执行结果:BX
7.1.3 变量
1.变量和地址表达式

变量是代表存放在某些存储单元的数据,这些数据在程序 运行期间随时可以修改。为了便于对变量的访问,它常常 以变量名的形式出现在程序中。


变量名:可认为是存放数据的存储单元的符号地址,即变 量名是数据的地址或数据区的首地址。 涉及到: 段地址、偏移地址
地址表达式:由变量、标号、寄存器、常量和运算符组成 的表达式。
EA=变量[基址寄存器+变址寄存器 或者EA=[基址寄存器+变址寄存器
7.1.2 标号
标号是指令地址的符号表示,也可以是过程名。过 程名是入口地址的符号表示,即过程的第一条指 令的地址。
标号定义方式: (1)用冒号‚:‛定义,直接写在指令助记符前。 CYCLE: MOV AL,[SI] (2) 用PROC和ENDP伪指令定义过程

微机原理第七章

微机原理第七章

(b)STRING2 DW (a)STRING1 DB „ABC‟ 图7-3
„AB‟,‘CD‟ (c) STRING3 DD AB‟
DB、DW、DD中的字符串表达式的存放情况
④带DUP表达式:DUP定义重复数据操作符。格式为: DB 变量名 DW 表达式1 DUP (表达式2) DD 表达式1是重复次数,表达式2是重复内容。例: DB1 DB 20 DUP(?)
7.1.1 伪指令语句格式 伪指令格式如图7-2所示。
, 标号
伪指令
伪指令语句 分4个字段:
;注释
操作数
图7-2 伪指令语句格式
1、标号
2、伪指令: 3、操作数字段 4、注释字段
7.1 宏汇编语言的基本语法
, 标号
伪指令
操作数
;注释
1、标号:内存单元的符号地址。 2、伪指令:关键字,指示汇编程序,对后 面的指令语句和伪指令的操作数应如何产 生目标代码,伪指令本身不产生机器代码。 例分析下面二条伪指: W DB 16H,18H; 数据在存储 SUM DW 16H,18H; 器存放位置
高级语言
机器语言 汇编语言 高级语言
汇编程序
• 汇编语言源程序
用助记符编写
汇编语言 源程序
汇编
目的程序
汇编程序
汇编语言程序设计与执行过程
输入汇编语言源程序
汇编(编译)
源文件 .ASM
目标文件 .OBJ
链接
调试
可执行文件 .EXE
最终程序
第七章
微型计算机汇编语言及汇编程序
目标程序 90H 04H 03H 05H 00H 03H 汇编语言又称符 号语言。汇编语 言与机器语言一 一对应。
次数 重复 内容

微机原理第7章 8086中断系统和中断控制器

微机原理第7章 8086中断系统和中断控制器

3)高级中断源能中断低级的中断处理
中断嵌套 当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时, 如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程 序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被 1 中止的中断服务程序,这一过程称为中断嵌套。 • 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。
外部中断 非屏蔽中断 可屏蔽中断
可屏蔽中断源
CPU 中断逻辑
INTR
8259A 中断 INTA 控制器
INT N 指令
INTO 指令
除法 错误
单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
内部中断: 除法错中断 指令中断 溢出中断 单步中断
硬件(外部)中断 非屏蔽中断请求 INT 2 NMI(17号引脚) 中 断 逻 辑 可屏蔽中断请求 中断类型号32~255 INTR(18号引脚)
中断指令 INT n N=32~255
溢出中断 INTO INT 4
断点 中断 INT 3
单步中断 (TF=1) INT 1
除法 错误 INT 0
软件(内部)中断
8086/8088中断源
1.软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错误的中断 执行程序时,为及时处理运算中的某些错误 ,CPU以中断方式中止正在运行的程序,提醒程 序员改错。 ① 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现 除数为0,或所得的商超过了CPU中有关寄存器所 能表示的最大值,则立即产生一个类型号为0的 内部中断,CPU转去执行除法错中断处理程序。

微机原理课件第七章

微机原理课件第七章

2)内部中断(软件中断)
(1)单步中断-----------中断类型号是1 (2)除法出错中断-------中断类型号是0 (3)断点中断-----------中断类型号是3 (4)溢出中断-----------中断类型号是4
(5)指令中断-----------中断类型号是n
内部中断的特点:
① 内部中断的类型号都是固定的,或是在中断指令中给定的。 不需要进入INTA总线周期获取类型号; ② 不受中断允许标志位IF的影响; ③ 用一条指令或由某个标志位启动进入中断处理程序,这样
查中断向量表得中断向量为:
A123H:B678H 中断服务程序入口的物理地址为: AC8A8H
01H 78H
B6H 23H A1H ┋
0089H
008AH 008BH ┋
图7.11
部分中断向量表
例2
解:
某中断源的类型号为54H,中断服务程序入口的符号地址为
MOV MOV AX,0 DS,AX
INTADD,试编一段程序设置该中断类型号的中断向量。
256种中断可分为两大类:外部中断和内部中断。
8086 INT 3 指令 INT n 指令 CPU INT O 指令 除法 出错 单步 中断 NMI 非屏蔽 中断请求
中 断




INTR 8259A 可屏蔽中断请求
图7.8
8086系统的中断源
1、中断源的类型
1)外部中断(硬件中断) 分为非屏蔽中断和可屏蔽中断两种。 (1)非屏蔽中断 (2)可屏蔽中断
IR1 中断清除
IR4处理程序 IR3中断请求 IR3处理程序 开中断 STI STI 。 。 。 。 。 。 IR3 IR4 (EOI) (EOI) 中断清除 中断清除 IRET IRET

微机原理与接口技术_第7章8253

微机原理与接口技术_第7章8253
15
§7-1 8253的工作原理 ——8253的内部结构和引脚信号
然后,开始递减计数。即每输入一个时钟脉冲,计数
器的值减1,当计数器的值减为0时,便从OUT引脚输出 一个信号。输出信号的波形主要由工作方式决定,同 时还受到从外部加到GATE引脚上的门控信号控制,它 决定是否允许计数。 当用8253作外部事件计数器时,在CLK脚上所加的计 数脉冲是由外部事件产生的,这些脉冲的间隔可以是 不相等的。 如果要用它作定时器,则CLK引脚上应输入精确的时 钟脉冲。这时,8253所能实现的定时时间,决定于计 数脉冲的频率和计数器的初值,即 定时时间=时钟脉冲周期tc×预臵的计数初值n
16
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 ③引脚 8253的3个计数器都各有3个引脚,它们是:
CLK0~CLK2:计数器0~2的输入时钟脉冲从这里输
入。频率不能大于2MHz。
OUT0~OUT2:计数器0~2的输出端。
GATE0~GATE2:计数器0~2的门控脉冲输入端。
4
第七章 可编程计数器/定时器8253及其应用 ——概述 2. 不可编程的硬件定时 555芯片是一种常用的不可编程器件,加上外接电阻和电 容就能构成定时电路。这种定时电路结构简单,价格 便宜,通过改变电阻或电容值,可以在一定的定时范 围内改变定时时间。但这种电路在硬件已连接好的情 况下,定时时间和范围就不能由程序来控制和改变, 而且定时精度也不高。 3. 可编程的硬件定时 ①可编程定时器/计数器电路利用硬件电路和中断 方法控制定时,定时时间和范围完全由软件来确 定和改变,并由微处理器的时钟信号提供时间基 准,这种时钟信号由晶体振荡器产生,故计时精
12
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 8253输入信号组合的功能表

微机原理 第七章中断控制器

微机原理 第七章中断控制器

CAS2
3
2 . 8259A的编程结构和工作原理
4
编程结构 (1)上半部分:处理部件 中断请求寄存器IRR 中断优先级裁决器PR 当前中断服务寄存器ISR (2)下半部分:7个寄存器 ICW1~ICW4 OCW1~OCW3
5
中断请求寄存器IRR
保存8条外界中断请求信号IR0-IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求
1. 中断优先权管理方式: 可见,8259A (1) 全嵌套方式 (2)特殊全嵌套方式 有多中工作方式, (3)自动循环方式 (4)特殊循环方式 使用起来很灵活, 2. 屏蔽中断源的方式 不易掌握,所以介 (1)普通屏蔽方式 (2)特殊屏蔽方式 绍编程之前,先对 3. 中断结束方式 其工作方式分类进 (1) 自动结束(AEOI)方式 行简要的介绍。 (2) 非自动结束(EOI)方式: ① 普通EOI方式;② 特殊EOI方式 4. 系统总线的连接方式(8259A级连方式) (1) 缓冲方式 (2)非缓冲方式 5. 中断请求的引入方式 (1) 边沿触发 (2)电平触发 (3)中断查询
• 优先级特殊循环方式:初始优先级队列是由编程确定的。 也可由操作命令字OCW2来设定。
10
2、屏蔽中断源的方式
• 普通屏蔽方式:8259A的每个中断请求输入端都可以通过 对应屏蔽位的设置被屏蔽,通过设置操作命令字OCW1使 屏蔽器中任一位或几位置1(对中断的屏蔽总是暂时的, eg:计算机网络通信)
5.
6.
16
五、中断响应过程(CPU与8259A的操作过程)
1、申请中断 外设 对应IR0 ~ IR7为“1”, 为“1” CPU的INTR输入“1”,申请中断。 2、响应中断的条件 CLI 使 IF = 0,禁止中断。 STI 使 IF = 1,允许中断。 判优后使INT

微机原理第7章ppt

微机原理第7章ppt

DMA方式
利用专用的接口电路直接在内存与外设端口之间直 接进行数据块传送,而不经过CPU中转的一种数据 传送方式。
特点:
无需CPU参与,无需软件介入,传送速度快,在 整个数据传输过程中都是由DMA控制器来控制 管理。
7.3
DMA控制器8237A
wws1996@
一、课前思考
1、8237A由哪几部分组成?
权,用DMA方式实现外部设备和存储器之间的
数据高速传输。
将DMA控制器中和某个接口有联系的部分
为一个通道。而一个DMA控制器一般由几个通
道组成。
wws1996@
7.3.1 8237A的主要功能
• 数据总线缓冲器
• 读写逻辑电路 • 工作方式寄存器 • 状态寄存器 • 优先选择逻辑 • 4个DMA通道
2、如何设置8237A的控制字?
3、8237A有哪些工作方式?各有何特点?
4、如何对8237A进行初始化编程?
二、学习目标
1、了解8237A的内部结构和引脚功能; 2、熟练掌握8237A控制字的设置; 3、熟练掌握8237A的工作方式及编程和应用。
wws1996@
三、难重点 1、8237A的内部结构及功能; 2、8237A的控制字的设置及其工作方式; 3、8237A的编程及应用。 四、主要知识点 1、8237A的控制字设置; 2、8237A的工作方式; 3、8237A的初始化及应用。
第7章 2、查询式输出 CPU通过执行程 序不断地读取并 测试外设的状态, 如果外设处于空 Y(忙) BUSY=1? N 输出数据 输入状态信息
闲状态,则CPU
执行输出指令,
否则就等待。
查询式输出程序流程图
第7章
DATA_PORT
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 中断控制器
博学 审问 慎思 明辨 笃行
第7章 中断控制器
第7章 中断控制器
§ 7.1 § 7.2 § 7.3 § 7.4 § 7.5 § 7.6 8259A的引脚信号、编程结构和工作原理 8259A的工作方式 8259A的初始化命令字和初始化流程 8259A的操作命令字 8259A使用举例 多片8259A组成的主从式中断系统
8259A的引脚
总线 D0 ~ D7 IOR IOW
8259A
Vcc IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 SP/EN CA0 CA1 CA2 + 5V 18.2Hz 计时 键盘 保留 串 口2 串 口1 并口 软盘 打印机
数据线
D0 ~ D7
A0
A5 ~ A9 INTA INTR
教学重点为:
8259A的编程结构; 8259A的初始化流程; 8259A的初始化命令字与操作命令字; 8259A的实例;
第7章 中断控制器
第7章 中断控制器
7.1 8259A的引脚信号、编程结构和工作原理 7.1.1 8259A的外部信号和含义
第7章 中断控制器
8259A的编程结构
第7章 中断控制器
RD WR A0
片 选 20~3FH 译 码
CS
INTA INT
用于多片 8259A 级连情况
GND
第7章 中断控制器
7.1.2 8259A的编程结构和工作原理
8259A的编程结构
总线
第7章 中断控制器
处理部分
数据线
D0 ~ D7 INTR A0 A5 ~ A9
A0
D0 ~ D7 INT
ISR 当前 中断 服务 寄存器
第7章 中断控制器
(3)优先级自动循环方式 优先级自动循环方式一般用于多个中断源优先级相同的情况下。在这种 方式中,优先级队列是循环变化的,某一中断源得到中断服务后,优先自动 降为最低。
例如:在优先级自动循环方式中,优先级初始队列由高到低为:IR0、 IR1、IR2、……、IR6、IR7,如果此时IR2端有中断请求,并予以响应,响 应结束后,IR2的优先级自动降为最低,IR3的优先级为最高,这时,系统的 优先级队列由高到低变为:IR3、IR4、IR5、IR6、IR7、IR0、IR1、IR2。
总线
D0 ~ D7 A0
A5 ~ A9 IOR
数据线
A0
片 选 CS 译 码 RD WR INTA INT
D0 ~ D7
ISR 当前 中断 服务 寄存器
0 1 0 1 0 0 0 0 0
PR
IRR 中断 申请 寄存器
优先级 裁决器
1 0 0 1 0 1 0 0
1 0 0 0 0 0 0 0 1
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
1. 优先级设置方式 (1)固定优先级(也称全嵌套方式) 在全嵌套优先级方式中,8259A的中断优先级从IR0到IR7,即IR0优先级 最高,IR7优先级最能低。这是最常用、最基本的工作方式。 (2)特殊全嵌套方式 与固定全嵌套方式基本相同,但在特殊全嵌套方式中,当正在处理某一 级中断时,如果有同级的中断请求发生,8259A也会响应,从而开放了同级 中断请求的特殊嵌套。 这种方式主要用于8259A级联系统中,在这种系统中,主片设置为特殊 全嵌套方式,从片设置为其它优先级方式,这样,某一从片的请求正在处理 时,来自同一从片中的优先级较高的中断请求也能得到响应。
第7章 中断控制器
(3)特殊的中断结束方式
这种方式是在程序中发出一条特殊的中断结束命令,具体指出要清除 ISR中的哪一位。往往用于非全嵌套方式。 具体操作是,在程序中向8259A 的偶地址端口写一个命令字OCW2, 并使其中的EOI=1,SL=1,R=0,此时L2,L1,L0这三位指出要清除ISR 中的哪一位。 需要指出的是,在级联系统中,一般不使用中断自动结束方式,而用 非自动结束方式。而且,不管是使用普通中断结束方式,还是使用特殊的 中断处理方式,在中断服务程序结束时,都必经发出两次中断结束命令, 一次是对主片,一次是对从片。
D0 ~ D7 A0 A5 ~ A9 IOR 片 选 CS 译 码 RD WR INTA INT 数据线 A0 D0 ~ D7
ISR 当前 中断 服务 寄存器
0 0 0 0 0 0 0 0
PR
IRR 中断 请求 寄存器
优先级 裁决器
1 0 0 1 0 1 0 0
0 1 0 0 0 0 0 0 0 1
(4) 优先级特殊循环方式 优先级特殊循环方式与优先级自动循环方式相比,唯一的区别在于:前 者是优先级初始队列是程序编程来决定的,如果程序规定,IR4 优先级最低, 那么IR5优先级则最高;而后者的优先级初始队列开始是IR0优先级最高,IR7 优先级最低。
第7章 中断控制器
2. 屏蔽中断源的方式 按照中断源的屏蔽方式,8259A有以下两种工作方式: (1) 普通屏蔽方式 在8259A内部有一个8位屏蔽寄存器(OCW1),对应IR0~IR7的8个 中断请求,可由程序设置将屏蔽寄存器中的任一位或几位置1,这样与之相对 应的中断请求就被屏蔽了。 当然,要清除屏蔽,只要将屏蔽寄存器(OCW1)中的对应位复位即可。 (2) 特殊屏蔽方式 特殊屏蔽方式是当设置了特殊屏蔽方式后,对屏蔽寄存器(IMR)中的 对应位置1 ,同时使当前中断服务寄存器中的对应位自动清0,这样,不只屏 蔽了当前正在处理的这级中断,还开放优先级较低的其它中断请求。因此, 特殊屏蔽方式,总是在中断服务程序中使用。
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
ICW1 芯片控制
ICW2 中断类型号 ICW3 主从片关系
OCW1 中断屏蔽寄存器 IMR
0 0
OCW2 优先级、发EOI
IOW
INTA INTR
ICW4 方式控制
OCW3 特殊屏蔽设置
第7章 中断控制器
总线
D0 ~ D7 A0
A5 ~ A9 IOR
第7章 中断控制器
3. 中断结束处理的方式
在中断服务程序结束时,必经发出中断结束命令,使ISR中对应位复位, 否则,系统便不能正常工作。使ISR对应位复位的动作称为中断结束处理。 8259A有以下三种中断结束方式:
(1)中断自动结束方式
这种中断结束方式是最简单的方式,用于系统中只有一片8259A的情况。 在这种方式中,系统一进入中断过程,在第二个中断响应信号INTA到来时, 8259A会自动将当前中断服务寄存器ISR中的相应位复位。 (2)普通(一般)中断结束方式 该方式多用于全嵌套方式下。当CPU 向8259A发出一条EOI命令时, 8259A会把当前中断服务寄存器中的最高非零位复位。 具体操作是,只要在程序中向8259A的偶地址端口写一个操作命令字 OCW2,并使其中的EOI=1,SL=0,R=O即可。
片 选 CS 译 码
RD
0 0 0 0 0 0 0 0
0 IRR 0 中断 0 请求 0 PR 寄存器 0 0 优先级 0 0 分析器 A0 1 0 0 1 0 1 0 0 1
OCW1 中断屏蔽寄存器 IMR
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
ICW1 芯片控制 A0 1 × I3 I4 0 ICW2 中断类型号
总线 D0 ~ D7 A0 A5 ~ A9 IOR IOW INTA INTR
数据线
A0
D0 ~ D7
ISR 当前 中断 服务 寄存器
片 选 CS 译 码 RD
WR INTA
0 1 0 1 0 0 0 0 0
PR
IRR 中断 申请 寄存器
优先级 裁决器
1 0 0 1 0 1 0 0
1 0 0 0 0 0 0 0 1
中断响应周期

通过 INTA 引脚发出两个负脉冲信号, 从数据总线上获取中断类型号,


进入中断响应的过程。
8259A在接收到第一个INTA中断响应信号后:
① 将 ISR 中相应位置1, 表示 CPU 响应此级中断,执行此中断源的中断子程。
② 把 IRR中对应的位清0,清除IRR中锁存的中断申请信号。
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
ICW1 芯片控制 ICW2 中断类型号
OCW1 中断屏蔽寄存器 IMR
ICW3 主从片关系
ICW4 方式控制
0 0
OCW2 优先级、发EOI OCW3 特殊屏蔽设置
INT
第7章 中断控制器
7.2 8259A的工作方式
8259A有多种工作方式,这些工作方式由程序初始化来设置, 使用起来相当灵活。
IOW INTA INTR
② 中断屏蔽寄存器 IMR 决定 IRR 中的中断申请 是否进入优先级裁决器 PR。 • IMR对应位为 0,允许中断申请进入优先级裁决器, • 为 1,不允许进入,中断申请被IMR屏蔽 。 IR0 ISR 0 IRR 1 数据线 IR1 当前 0 D0 中断 0 0 0 IR2 ~ 申请 0 中断 0 IR3 D7 寄存器 0 服务 0 PR A0 IR4 0 寄存器 0 IR5 优先级 0 0 IR6 片 1 裁决器 0 IR7 选 CS 译 1 0 0 1 0 1 0 0 ICW1 芯片控制 码 RD OCW1 中断屏蔽寄存器 IMR ICW2 中断类型号 WR 0 0 ICW3 主从片关系 OCW2 优先级、发EOI INTA ICW4 方式控制 OCW3 特殊屏蔽设置 INT
IOR IOW INTA
WR
ICW3 主从片连接关系
1 1
ICW4 方式控制
0 000 NhomakorabeaSP/EN
OCW2 优先级设置、发EOI 0 1
INTA
相关文档
最新文档