网站大量收购独家精品文档,联系QQ:2885784924

中断及定时计数器.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断及定时计数器

单片机的中断与定时器/计数器 中断就是停止当前的任务,去做另一个需要马上处理的任务,做完后再回去做原来的任务! 如上图 8051中有5个中断: P3.2和P3.3为外部中断INT0和INT1端口, P3.4和P3.5为定时器/计数器中断T0和T1端口, 以及一个串行口中断,(此内容暂时不讲) 8052中有6个中断,比8051多一个特殊的定时器/计数器中断。(暂时不讲) 外部中断: INT0和INT1 外部中断通过其对应的引脚来接受外部中断请求,触发方式有两种: 1.低电平触发,即得到地电位就触发中断。 2.负边沿触发,即由高电平降至低电平的瞬间触发。 区别在于低电平触发属于静态触发,只要是低电平就一定触发;而负边沿触发为动态触发,必须由高电平变为低电平的时候才会触发。 控制触发方式的开关为:IT。 IT0和IT1分别对应控制INT0和INT1的触发方式。 0为低电平触发,1为负边沿触发。 例:外部中断INT0开启低电平触发: IT0=0; 定时器/计数器中断: T0和T1 它有两种工作模式:定时器与计数器。 定时器模式下,单片机对内部时钟脉冲进行计数。不使用外部端口。 计数器模式下,单片机对外部脉冲进行计数,使用外部端口,外部脉冲由外部对应端口进入。即P3.4和P3.5 至于定时器/计数器是如何触发中断的将在后半部分内容中详细说明。 中断的启用与控制: 中断平时是关闭的,只有通过打开相应的开关才能使用,打开后还需进行相应的设置。 1、EA ---- 中断允许总控制器 =0,中断总禁止,关闭所有中断。 =1,中断总允许,各中断的允许或禁止由各中断的控制位进行设置。 2、EX0 EX1 ---- 外部中断0(1)允许控制位。 =0,禁止外中断。 =1,允许外中断。 3、ET0 ET1 ---- 定时中断0(1)允许控制位。 =0,禁止定时中断。 =1,允许定时中断。定时器产生中断(触发方式后面讲),响应中断服务程序。 4、ES ---- 串行中断允许控制位。 =0,禁止串行中断。 =1,允许串行中断。 1、IE0 IE1 ---- 外部中断请求标志位。(硬件自动清零) cpu检测到中断端口出现有效中断请求时,此位被置1,再中断响应完成转向中断服务子程序时,再由硬件自动清为0。 2、IT0 IT1 ---- 外部中断触发方式控制位。(软件置位、清零) =0,时电平触发方式,低电平有效。 =1,是脉冲触发方式,下降沿触发有效; 3、TR0 TR1 ---- 定时器0(1)运行控制位。 =0,禁止定时器运行; =1,允许定时器运行。 4、TF0 TF1 ---- 内部定时/计数器0(1)溢出标志。 相应的定时器溢出时,被自动置为1。当转向中断服务子程序时,再由硬件自动清0。 中断的优先级: 多个中断同时触发时候将会按照优先级顺序来执行: 默认的自然优先顺序为: 外中断 0→定时器0→外中断1→定时器1→串口中断(8052中的定时器2与串口中断的自然优先级相同,都在最底。) 8051单片机可人工对其优先级进行调整,但只有2个级别。高级优先于低级执行,在同等级内部优先顺序依旧按照自然优先顺序排列。 1、PX0 PX1 ---- 外中断0(1)优先级设定位。 2、PT0 PT1 ---- 定时中断0(1)优先级设定位。 3、PS ---- 串行中断优先级设定位。 =0,低优先级; =1,高优先级。 举例: 假定开放外中断1,采用负边沿触发方式,高优先等级需要作如下设定: EA=1 EX1=1 IT1=1 PX1=1 中断的嵌套使用: 假如现在程序已经进入一个中断子程序进行执行。此时又一中断触发,若此中断等级高于正在执行的中断,则停止当前任务处理中断请求;若此中断等级低于或等于当前处理中断,则等当前正在处理的中断执行完后在给与处理。 中断的使用: 中断号 中断源 中断向量 0 外部中断0 0003H 1 定时器0 000BH 2 外部中断1 0013H 3 定时器1 001BH 4 串行口 0023H 5 定时器2 0X2BH (外加器件) 语法如下: void X(void) interrupt 中断号 函数X()与中断源的联系是通过使

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档