单片机原理及接口技术第6章 中断系统.pptVIP

单片机原理及接口技术第6章 中断系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.6 外部中断的触发方式选择   外部中断有两种触发方式:电平触发方式和跳沿触发方式。 6.6.1 电平触发方式 若外中断定义为电平触发方式,外部中断申请触发器状态随着?CPU?在每个机器周期采样到的外部中断输入引脚电平变化而变化,这能提高CPU对外部中断请求的响应速度。当外部中断源被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求输入必须无效(即外部中断请求输入已由低电平变为高电平),否则CPU返回主程序后会再次响应中断。 所以电平触发适合于外部中断以低电平输入且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。如何清除电平触发的外部中断请求源的电平信号,本章后将介绍。 6.6.2 跳沿触发方式   外部中断若定义为跳沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断请求标志也不会丢失。在这种方式下,如果相继连续两次采样,一个机器周期采样到外部中断输入为高,下一机器周期采样为低,则中断申请触发器置“1”,直到CPU响应此中断时,该标志才清“0”。这样就不会丢失中断,但输入的负脉冲 宽度至少要保持1个机器周期(若晶振频率为6MHz,则为2s),才能被CPU采样到。外部中断的跳沿触发方式适合于以负脉冲形式输入的外部中断请求。 6.7 中断请求的撤销   某中断请求被响应后,就存在着一个中断请求撤销问题。下面按中断请求源的类型分别说明中断请求的撤销方法。 1.定时器/计数器中断请求的撤销   定时器/计数器中断的中断请求被响应后,硬件会自动把中断请求标志位(TF0或TF1)清“0”,因此定时器/计数器中断请求是自动撤销的。   2.外部中断请求的撤销  (1)跳沿方式外部中断请求的撤销   中断请求撤销两项内容:中断标志位清“0”和外中断信号的撤销。其中,中断标志位(IE0或IE1)清“0”是在中断响应后由硬件自动完成的。而外中断请求信号的撤销,由于跳沿信号过后也就消失了,所以跳沿方式的外部中断请求也是自动撤销的。 (2)电平方式外中断请求撤销   中断请求标志自动撤销,但中断请求信号低电平可能继续存在,在以后的机器周期采样时,又会把已清“0”的IE0或IE1标志位重新置“1”。要彻底解决电平方式外部中断请求撤销,除标志位清“0”之外,还需在中断响应后把中断请求信号输入引脚从低电平强制改变为高电平。为此,可增加图6-8所示电路。 图6-8 电平方式的外部中断请求的撤销电路   由图6-8,D触发器锁存外来的中断请求低电平,并通过其输出端Q接到(INT0*或INT1*)。所以,增加的D触发器不影响中断请求。中断响应后,为撤销中断请求,可利用D触发器直接置“1”SD端实现,即把SD端接AT89S51的P1.0。因此,只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而就撤销低电平的中断请求信号。负脉冲可在中断服务程序中先P1.0置1,再让P1.0为0,再把P1.0置1。 3.串行口中断请求的撤销  只有标志位清“0”的问题。串行口中断标志位是TI和RI,但对这两个中断标志CPU不自动清“0”。   因为响应串口中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标志位来判定,然后才清除。所以串口中断请求撤销只能使用软件在中断服务程序中把串行口中断标志位TI、RI清0。 6.8 中断函数   为直接使用C51编写中断服务程序,C51中定义了中断函数。这在第3章中已简要介绍。由于C51编译器在编译时对声明为中断服务程序的函数自动添加相应现场保护、阻断其他中断、返回时自动恢复现场等处理的程序段,因而在编写中断函数时可不必考虑这些问题,减小编写中断服务程序烦琐程度。 中断服务函数的一般形式为:   函数类型 函数名(形式参数表)interrupt n using n   关键字interrupt后面的 n是中断号,对于8051单片机,n的取值为0~4,编译器从8×n+3处产生中断向量。AT89S51中断源对应的中断号和中断向量见表6-3。 AT89S51内部RAM中可使用4个工作寄存器区,每个工作寄存器区包含8个工作寄存器(R0~R7)。关键字using后面的n用来选择4个工作寄存器区。using是一选项,如不选,中断函数中的所有工作寄存器内容将被保存到堆栈中。        关键字using对函数目标代码的影响如下: 在中断函数的入口处将当前工作寄存器区内容保护到堆栈中,函数返回前将被保护的寄存器区内容从堆栈中恢复。使用using在函数中确定一个工作寄存器区须十分小心,要保证任何工作寄存器区的切换都只在指定的控制区域中发生,否则将产生不正确的函数结果。   例如,外中断1()中断服务

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档