案例抢答器设计(外部中断)资料.pptVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
案例抢答器设计(外部中断)资料

例1 如图按下S0,对D0取反 查询方式 中断方式 例1-查询方式 查询方式 #include reg51.h sbit S0=P3^2; sbit D0=P0^0; void main(void) { bit pre_S0=1; while(1) { if(pre_S0==1S0==0)//S0按下 { D0=~D0; } pre_S0=S0; } } 8051 INT0相关寄存器与控制位 案例6-抢答器设计(外部中断) 物理与电子工程学院 2014.11 8051中断系统 中断 中断源:向CPU提出中断请求的源称为中断源 外部中断:INT0、INT1 定时/计数器:T0、T1 串行口:RXD、TXD 中断优先级:同时有两个以上中断提出申请或执行一个中断时又有一个中断申请 默认:中断编号越小,优先级越高 自定义:通过中断优先级寄存器设置 中断嵌套 8051中断系统 中断:当CPU正处理某项事务时,若外界或内部发生紧急事件,要求CPU暂停正在处理的工作转而去处理这个紧急事件,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。(堆栈) 8051中断系统 中断优先级:当几个中断源同时请求中断时,CPU应优先响应最需紧急处理的中断请求。为此,需要规定各个中断源的优先级。在优先级高的中断请求处理完了以后。再响应优先级低的中断请求。 中断嵌套:当CPU正在处理一个优先级低的中断请求的时,如果发生另一个优先级比它高的中断请求,CPU能暂停当前处理的中断,转去处理优先级高的中断请求,待处理完以后,再回到原来正在处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理称为中断嵌套。 8051中断系统 8051单片机有 5个中断源 2个中断优先级(2级中断嵌套),优先级可通过编程实现 IE(中断允许寄存器):中断源的中断请求是否能得到响应,受IE的控制;EX0 ET0 EX1 ET1 ES EA IP(中断优先级寄存器):各个中断源的优先级可由IP的各位来确定;同一优先级中的各中断源同时请求中断时,由内部的查询逻辑来确定响应的次序。 PX0 PT0 PX1 PT1 PS 8051中断系统 8051中断系统 8051五个中断源 INT0中断(P3.2) T0中断 (P3.4) INT1中断(P3.3) T1中断 (P3.5) 串行中断(P3.0、P3.1) 8051中断系统-中断号与入口地址 中断源 中断号(n) 中断入口地址(8n+3) 中断优先级 INT0中断 0 0003H 高 低 T0中断 1 000BH INT1中断 2 0013H T1中断 3 001BH 串行口中断 4 0023H T2中断 5 002BH 查询方式存在问题:实时性 8051 INT0中断原理 当INT0引脚输入如下信号: 下降沿(IT0=1)或 低电平(IT0=0) CPU自动(硬件)产生中断标志(IE0=1) 此时 若INT0中断允许(使能EX0=1,EA=1),则CPU立即停止当前程序,跳转到INT0对应的中断入口(ROM保留地址0x0003)执行中断服务程序(中断服务程序后CPU自动对中断标志清零:IE0=0),待INT0中断服务程序执行完毕后再回原执行程序处; 若INT0中断未允许,则程序不能跳转到INT0中断入口,不执行中断服务程序(中断标志IE0不能自动清0)。 问提:中断标志IE0的产生与中断使能是否有关? INT0中断方式执行流程 #include reg51.h sbit S0=P3^2; sbit D0=P0^0; void delay(unsigned int n) { unsigned int i; for(i=0;in;i++) ; } void INT0_ISR(void) interrupt 0 { D0=~D0; } void main (void) { IT0=1; //外部中断触发方式:下降沿 EX0 = 1; //INT0中断使能 EA = 1; //总中断使能 while(1) //等待中断标志IE0的到来 { delay(20000); delay(20000); } } 主程序 中断响应 初始化中断 等待中断 中断服务程序 返回中断 自动清中断标志 …… 中断如何扩充1-定时器 定时器中断作为外部中断使用 把8051的T0 、T1用作对外部脉冲计数方式。每当P3.4(T0)或P3.3(T1)引脚上发生负跳变时, T0、T1计数器加1。利用这个特性,可以把P3.4和P3.5引脚作为外部中断请求输入线,而定

文档评论(0)

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

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

1亿VIP精品文档

相关文档