微处理器结构与嵌入式系统设计第六讲讲解.pptVIP

微处理器结构与嵌入式系统设计第六讲讲解.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文档。上传文档
查看更多
微处理器结构与嵌入式系统设计 第六讲 单片机的中断系统 中断的比喻 任何一件事情的发生都会中断 小林看电视的进程而去响应和 处理事件。例如,邮递员上门 送信,小林必须去开门签收信 件,当事件处理完后,小林回 去接着看电视。这里,小林比 喻的就是单片机,而 5 个可能 发生的事件为单片机的 5 个中 断源 —— 外部中断 0 、外部中 断 1 、 Timer 0 中断、 Timer 1 中 断、串行通信中断。 外部中断 1 例 两支发光二极管 D1 (绿色) 和 D2 (红色)与单片机的 P0.0 和 P0.1 相连,在外部 中断 1 ( P3.3 ( /INT1 ), 13 管脚)上有一个按钮开 关 S1 。按下按钮开关 S1 可 以模拟外部中断信号的发 生:当开关 S 闭合时, P3.3=0 ,外部中断 1 产生。 “ MAIN ” 段的 “ MOV IE, #84H ”设置 中断使能寄存器 IE ,使单片机可以响应 P3.3 的外部中断 1 。“ GREEN ” 段将 P0.0 口上的绿色发光二极管 D1 点亮。 D1 的来说是一个死循环。只有当中断持续 发光对于主程序发生时 —— 按下开关 S1 , P3.3=0 ,外部中断 1 产生,单片机放下正 在执行的循环而进入中断服务子程序中执 行程序。从标号“ EXT1_RED ”到指令 “ RETI ”之间的程序是中断服务子程序段, 子程序段将熄灭绿色发光二极管 D1 ,并点 亮红色发光二极管 D2 ,延时 100ms 后熄灭。 中断服务子程序以“ RETI ”为结束的标志, 中断服务子程序结束。单片机又回到主程 序执行,绿色发光二极管 D1 又被点亮。 ? 中断服务的指挥 —— 中断向量表 当外部中断 1 发生时,单片机怎么知道要 去“ EXT1_RED ”段去执行呢?这都是指 令“ ORG 13H ”的功劳,该指令 重新设置了一个新的地址 13H ,这就使得 中断服务子程序段“ EXT1_RED ”从 13H 开始存储在程序存储器中。 当指令“ MOV IE, #84H ”使能外部中断 1 后,一旦外部中断 1 发生,单片机会自动 到程序存储器的地址 13H 上去执行程序。 换句话说,外部中断 1 发生时,程序计数 器 PC 被硬件修改成 0013H ,而 PC 指向的 地址正是单片机取下一条指令的地址,于 是单片机会从 13H 开始执行中断服务子程 序段“ EXT1_RED ”直到遇到指令 “ RETI ”为止。 中断服务程序的 C 语言 实现 #includereg52.h #define uchar unsigned char #define uint unsigned int sbit led0=P0^0; sbit led1=P0^1; void main() { EA=1; EX1=1; while(1) { led0 = 0; } void ext1_read() interrupt 2 { led0 = 1; led1 = 0; delay(100); led1 =1; void delay(uint ms) { uint i, j; for(i=ms;i0;i- -) for(j=110;j0;j- -); } AT89S51 单片机有 5 个中断源:外部中断 0 ( /INT0 )、外部中 断 1 ( /INT1 )、 Timer 0 中断( TF0 )、 Timer 1 中断( TF1 )、 串行通信中断( RI/TI )。当中断使能后,任何一个中断发生时 单片机都会到表 14-1 所示的对应地址上去执行中断服务子程序。 中断的控制及处理 ? 中断的响应及处理 AT89S51 单片机的中断源有 5 种,也就是说有 5 种方式使单片机产生 中断。当一个中断产生时,单片机会按以下的步骤进行响应与处理。 ①-立即暂停当前正在执行的任何指令,并把下一条将要执行的指令 地址压入堆栈中。 ②-根据中断的类型在中断向量表中找到对应的地址。 ③-到该地址上开始执行中断服务子程序,直到遇到指令“ RETI ”, 中断服务子程序结束。 ④-执行完中断服务子程序后,从堆栈中弹出在中断产生时保存的将 要执行的下一条指令的地址到程序计数器 PC 中,单片机开始从 PC 指 示的地址继续执行程序。 ? 中断的响应及处理 一个潜在的问题:每一个中断服务子 程序的存放空间都非常有限,例如, 外部中断 0 的中断向量为 0003H ,而 Timer 0 中断向量地址为 000BH ,可 见外部中断 0 的中断服务子程序只有 000BH-0003H=8 个字节的空间来存 放,这 8 个字节的空间实在也放不

文档评论(0)

wq1987 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档