- 4
- 0
- 约1.92千字
- 约 24页
- 2021-03-03 发布于北京
- 举报
(4)无同级或更高级中断正在被服务 (5)当前的指令周期已经结束。 (6)若现行指令为RETI或者是访问IE或IP指令时,该指令以及紧接着的另一条指令已经执行完毕。 单片机原理与应用 济南职业学院 机械制造系 机械制造系 项目六 抢答器的设计(三) 主讲: 张雪淞 职称: 助 教 单片机中断系统 本项目内容 中断处理过程 中断系统应用 中断响应及响应过程 中断处理 中断返回 中断请求的撤除 机械制造系 任务一、中断处理过程 中断处理过程可分为三个阶段:中断响应、中断处理和中断返回。 PC断点 中断请求 RETI 主程序 响应中断 中断服务子程序 返主程序 继续执行主程序 中断的响应与返回 中断请求 PC断点 任务一、中断处理过程 对于MCS-51单片机,中断处理过程如下: 1.中断响应的条件 中断源向CPU发出中断请求,CPU响应中断应满足下列条件: (1)有中断源发出中断请求; (2)中断总允许位EA=1,即CPU开放中断; (3)申请中断的中断源的中断允许位为1,即没有被屏蔽。 任务一、中断处理过程 由于外部中断每个机器周期被采样一次,因此,输入的高电平或低电平至少必须保持12个振荡周期(1个机器周期),以保证能被采样到。 任务一、中断处理过程 2.中断响应 如果中断响应条件满足,则CPU响应中断,在响应中断的三个周期内CPU必须做以下几件事: (1)关闭中断:CPU首先使被响应中断的相应“优先级激活”触发器置位,以阻断同级和低级的中断。 (2)断点保护:把中断点的地址(断点地址),也就是当前程序计数器PC中内容压入堆栈,以便中断返回时继续原程序。 (3)清楚相应的中断请求标志位IE0、IE1、TF0、TF1。 (4)将对应的中断源的矢量地址装入计数器PC,使程序转至中断服务程序的入口地址。 任务一、中断处理过程 外部中断请求INT0 定时/计数器T0溢出 定时/计数器T1溢出 串行口UART 定时/计数器T2溢出 外部中断请求INT1 中断入口地址: 0003H 000BH 0013H 001BH 0023H 002BH 中断源 矢量地址 任务一、中断处理过程 M1 M3 M4 M5 M2 S5P1 S5P2 INTi被采样并 锁存到IE0 IE1中 CPU进行 中断查询 保护断点, 长调用至入口 中断服务 1、中断响应顺利,不受阻,需要3个机器周期 2、如果中断受阻, 即满足上述三个条件 ① 正在处理同级或高级中断,这要视中断服务程序的长短 ② 执行的指令不是最后一个机器周期,等待不超过3个周期 ③ 正在执行指令是RETI,或正访问IE、IP,则需返回主程 序后,再执行一条主程序的指令才能响应该中断,等待不 超过5个周期 则需要3~8个机器周期 任务一、中断处理过程 3.中断处理 在中断服务程序中,CPU完成指定的任务。从中断服务程序的第一条指令到返回指令为止,这个过程称中断处理或中断服务。 4.中断返回 中断服务程序的最后一条指令必须是中断返回指令RETI。CPU执行这条指令时,把响应中断时置位的优先级触发器复位,再从堆栈中弹出断点地址送入程序PC,以便从断点处重新执行被中断的主程序。 任务一、中断处理过程 任务二、中断系统应用 例题:一直单片机的晶振频率 ,试利用定时器T0(方式0)产生的中断,使P1.0引脚上输出周期为4ms的方波。 解: 要使P1.0输出4ms的方波,只要使P1.0每隔2ms取一次反就可以了。因此将定时器T0的定时时间设为2ms。 T0的方式字为:TMOD=00H (TMOD.1=TMOD.0=0 即M1M0=00,T0为方式0,为13位定 时/计数方式; TMOD.2=C/ =0 T0为定时状态; TMOD.3=GATE=0 由软件控制TR0位启动定时器; TMOD.4~TMOD.7 为定时器T1的方式字段,此处任意,本例全取0) 定时时间计算: 设T0的计数初值为X,则 解之可得 X=7192=1C18H 11000B 所以TH0初值设为E0H,TL0初值设为18H
原创力文档

文档评论(0)