计数器 中断处理.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.中断返回
中断服务程序中 的最后一条指令必须是中断返回指 令RETI. 具体功能:1.从堆栈中弹出断点地址送回PC 2.中断优先级状态触发器清0,通知中断 服务结束。
用到中断0设置: 必须要有: 用到中断1设置:
中断 0服务程序名
void int0() interrupt 0
中断 1服务程序名
2 . 中断响应的时间 从中断源提出中断申请,到CPU响应中断至少需要3个完整的机器 周期。
期间包括:中断有效、标志锁存、标志查询、保护断点、长调用至 入口、中断服务等过程。
中断处理
1. 中断响应过程
• 将相应的优先级状态触发器置1 • 执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈 保存,再将相应的中断服务程序的入口地址送入PC.
如果设置触发方式: 电平方式:由于IT0\IT1本身为0,不用设置了
脉冲方式:
IT0 = 1 ;
IT1 = 1 ;
void int1() interrupt 2
还必须设置IE: 字符设置方法: 位设置方法是: IE = 0x85; (或者0x81 、0x84) EA = 1 ; EX0 = 1 ; EX1 = 1 ;
如果有优先级 字符设置方法:IP = 0x01 ; (或者0x04 、 0x05) 位设置方法是: PX0 = 1 ; PX1 = 1 ;
• 执行中断服务程序
注意:
来自百度文库
两个相邻的的中断源中断服务入口地址相距只有8个单元, 一般中断服务程序放不下通常是在相应的中断服务程序入 口地址单元放一条长转移指令LJMP,这样可以使中断服务 程序灵活的安排在64KB程序存储器的任何地方
只是将PC的断点地址压入到堆栈保护,而对其他寄存器如 PSW、A等的内容并不做保护处理,所以在中断服务程序中, 首先用软件保护现场,在中断服务之后、中断返回之前恢 复现场,以防止中断返回后,丢失原寄存器中的内容。
天津现代职业技术学院
机电电子工程系
单片机技术
中断处理
中断响应条件和时间
1.
中断响应条件
CPU响应中断的条件有:
有中断源发出中断请求。 中断总允许位EA=1,即CPU开中断。 申请中断的中断源的中断允许位为1,即中断没有被屏蔽。 无同级或更高级中断正在被服务。 当前的指令周期已经结束。 若现行指令为RETI或者是访问IE或IP指令时,该指令以及紧接着的另一 条指令已经执行完毕。