汇编语言之中断技术

思考:

1 中断的定义。 
2 中断处理过程。
3 中断优先级。
4  8259A的级联。
5  中断向量表相关知识。

一、中断技术
1、中断的定义
计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,而转去执行对异常事件或者外部请求的处理操作。当处理完毕后,CPU再返回到被暂停执行的程序,继续执行,这个过程称为程序中断。
2、中断系统
为实现中断功能而设置的硬件电路和与之相应的软件,称为中断系统。
3、中断源
引起中断的原因或发出中断请求的来源称为中断源。中断源可分为硬件中断源和软件中断源
4、中断处理过程
对于单个中断源的中断处理应包括中断请求、中断响应、保护断点、中断处理和中断返回等五个过程。
1)中断请求:是中断源向CPU发出的请求中断的要求。软件中断源是在CPU内部由中断指令或程序出错直接发中断;硬件中断源必须通过专门的电路将中断请求信号送给CPU,CPU也有专门的引脚接收中断请求信号。
2)中断响应:是指计算机系统接收到中断请求后应做出的反应。对于可屏蔽中断的响应要具备2个条件:一是中断允许触发器的状态为1(即开中断),二是CPU在执行完现行指令之后。
3)保护断点:所谓断电是指处理完中断后返回主程序时执行的第一条指令的地址。保护断点是为了在中断处理结束后能正确返回。
4)中断处理:是指执行中断服务子程序,完成中断服务功能。主要包括保护现场、中断服务和恢复现场等过程。
5)中断返回:是指执行完中断服务程序后返回到被中断的主程序的断点处,继续向下执行,即恢复断点。
5、中断优先级
1) 多个中断请求急
要分中断优先级
不同中断按高低
同级中断等处理
低级中断让高级
高级中断封低级
屏蔽中断要允许
等到最后一个T4

2)中断优先级的确定
软件查询法

特点:各中断的优先级由查询顺序决定,最先查询的设备,其优先级最高,最后查询的设备,其优先级最低。
优点:节省硬件
缺点:由于CPU每次响应中断时都要对各中断进行逐一查询,所以其响应速度较慢

硬件排队电路法

专用中断控制芯片法
采用可编程中断控制器8259A,管理和控制外部中断请求。
6、中断嵌套

二、8086/8088中断系统
1、中断向量表:是存放中断向量的一个特定的内存区域
2、中断向量:中断服务子程序的入口地址。所有中断服务子程序的入口地址都存放在中断向量表中。
每个中断服务程序的入口地址占4个存储单元:
低地址的两个单元存放中断服务程序入口地址的偏移量(IP)
高地址的两个单元存放中断服务程序入口地址的段地址(CS)
3、将入口地址置入中断向量表的方法有2种:
A、DOS系统功能调用法和直接装入法
功能号:
(AH)= 25H
入口参数:
(AL)=中断类型号
(DS)=中断服务程序入口地址的段地址
(DX)=中断服务程序入口地址的偏移地址

PUSH	DS	;保护DS
LEA		DX,INT60	;取服务程序偏移地址
MOV		AX,SEG  INT60	;取服务程序段地址
MOV		DS,AX	
MOV		AL,60H	;送中断类型号
MOV		AH,25H	;送功能号
INT		21H	;DOS功能调用
POP		DS;恢复DS

B、直接装入法
用传送指令直接将中断服务子程序首地址INT60置入矢量表中。

XOR	AX,AX
MOV	DS,AX
MOV	AX,OFFSET INT60
MOV	DS:[0180H],AX		;置服务程序偏移地址
MOV	AX,SEG INT60
MOV	DS:[0180H+2],AX		;置服务程序所在代码段的段地址
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要了解中断控制和直流电机的基本原理。 中断是指当系统执行某个任务时,突然发生了一个优先级更高的事件,需要中断当前任务,转而去处理更紧急的事件。在单片机中,中断可以通过硬件中断和软件中断来实现。硬件中断是由外部设备触发的,例如定时器、外部中断等;软件中断则是由程序中的指令触发的,例如软中断指令等。 直流电机是一种常见的电机类型,它的转速可以通过改变电压或电流来控制。在单片机中,可以通过PWM技术来实现对电机的控制。 接下来是汇编语言的编程流程: 1. 初始化IO口,将电机的控制引脚设置为输出模式; 2. 初始化定时器,用于产生中断信号; 3. 初始化中断向量表,将定时器中断的地址写入中断向量表; 4. 开启定时器中断; 5. 进入主程序循环,等待中断触发; 6. 中断触发后,进入中断服务程序,改变电机控制引脚的电平,使电机转动; 7. 中断服务程序结束后,返回主程序,继续等待下一次中断触发。 下面是一个简单的示例代码: ``` ORG 0 JMP START ORG 0x08 ;中断服务程序 MOV P1, #0x01 ;将P1.0口电平置为高电平,使电机转动 RETI ;中断返回指令 START: ;初始化IO口 MOV P1, #0x00 ;将P1口所有引脚设置为输出模式 ;初始化定时器 MOV TMOD, #0x01 ;定时器1工作在模式1下 MOV TH1, #0xFE ;设置定时器初值 MOV TL1, #0x00 SETB TR1 ;启动定时器 ;初始化中断向量表 MOV IE, #0x88 ;开启中断总开关和定时器1中断 MOV P3, #0x08 ;将定时器1中断的入口地址写入中断向量表 MAIN: SJMP MAIN ;进入主程序循环,等待中断触发 ``` 上面的代码中,定时器1产生的中断信号将触发地址为0x08的中断服务程序,使P1.0口电平置为高电平,使电机转动。定时器初值的设置需要根据实际电机的控制要求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值