- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * 强调: CPU响应中断后要由软件使其复位 * * * * * * * * 在计算机与外部设备交换信息时,存在高速的CPU和低速的外设之间的矛盾。为了保证CPU送来的数据不至于丢失,可以采取两种办法:查询方式和中断方式。 * * * * * 强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混 * * * * * * * * * * * 强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混 * * 强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混 * * 2021/3/27 * 有中断请求(标志位置1) 中断总允许位EA=1,即CPU要开中断 中断源允许位为1,即没有被屏蔽 无同级或者更高级中断正在被服务 5.3.1中断响应条件 中断响应的基本条件如下: 注意:下列任何一种情况存在时,中断响应都会阻止而无法得到响应: (1) CPU正在执行一个同级或高优先级的中断服务程序; (2) 正在执行的是一条指令还没有执行完; (3) 当前正的执行的指令是RETI或访问IE或IP的指令。 2021/3/27 * 机器周期的S6期间,CPU对中断标志位采样 阻断同级或低级中断 将程序断点存入栈区 中断矢量地址装入PC,转入对应的入口地址 中断响应时间为3~8个机器周期 5.3.2 中断响应过程 CPU在中断响应完成后完成如下操作 (1) 硬件清除中断标志(串行中断除外)。 (2) 执行一条硬件子程序,保护断点,并转向中断服务程序入口。 (3) 中断服务, 即为相应的中断源服务。 (4)结束中断服务时,通过执行RETI指令恢复断点,返回主程序。 2021/3/27 * 中断响应后,中断请求标志位和中断请求信号应及时清除,否则就意味着中断请求仍然存在。 5.3.3 中断的撤消 2021/3/27 * 关中断(防止高级中断对现场保护的干扰) 保护现场(将PSW,Rn,A等内容压入堆栈) 开中断(允许高级中断请求) 中断服务(处理中断事件) 关中断(防止高级中断对现场恢复的干扰) 恢复现场(将PSW,Rn,A等内容弹出堆栈) 开中断(允许高级中断请求) 中断返回(断点弹出→”优先级激活“触发器复位) 可视需要缺省 可视需要缺省 中断服务程序执行流程 2021/3/27 * 5.4 中断的编程及应用 5.1 中断的概念 5.2 中断控制系统 5.3 中断处理过程 5.4 中断的编程及应用 5.4.1 中断程序设计举例 5.4.2 扩展外部中断源 2021/3/27 * C51中断服务程序是一种特殊的函数,它的说明形式为: [ void] 函数名 ([void]) interrupt n [using m] { 函数体语句 } interrupt表示该函数是一个中断服务函数 整数n表示该中断服务函数对应哪一个中断源 5.4.1 中断程序设计举例 EX0 ET0 EX1 ET1 ES 中断允许位 (使能位) IE0 TF0 IE1 TF1 TI/RI 0003H 000BH 0013H 001BH 0023H 中断服务程序 入口地址 PX0 PT0 PX1 PT1 PS 外部中断0(/INT0) 定时器0溢出(T0) 外部中断1 (/INT1) 定时器1溢出(T0) 串行口中断(RI/TI) 中断优先级设置 中断源 标志位 中断 编号 0 1 2 3 4 2021/3/27 * using m 指定该中断服务程序要使用的工作寄存器组号,m为0~3。 若缺省using项,则编译系统默认为是当前工作寄存器组。 C51中断服务程序是一种特殊的函数,它的说明形式为: [ void] 函数名 ([void]) interrupt n [using m] { 函数体语句 } 2021/3/27 * 在不查询按键时,如何得知按键有动作动作? 如何保证能快速响应按键操作,又不过多占用CPU时间? 中断扫描法——只有在键盘有键按下时,才执行键盘扫描程序。如无键按下,CPU可不考虑键盘的存在。 查询扫描法需要花费很多CPU机时,在CPU任务繁重的情况下往往无法实现。 实例2 中断扫描法行列式键盘 2021/3/27 * ①增加一个与门,利用按键压下时的电平产生INT1中断请求信号;②改用P0口(中断接P3.3)。 改进硬件电路: 2021/3/27 * #include reg51.h char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6
原创力文档


文档评论(0)