51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > 51单片机 > 详细内容
51单片机边沿触发中断响应时刻的测量
发布时间:2009/9/8  阅读次数:1276  字体大小: 【】 【】【

作者:王朋 李智 来源:单片机与嵌入式系统应用

MCS51单片机系列属于8位单片机,它是Intel公司继MCS48系列的成功设计之后,于1980年推出的产品。由于MCS51系列具有很强的片内功能和指令系统,因而使单片机的应用发生了一个飞跃,这个系列的产品也很快成为世界上第二代的标准控制器。51系列单片机有5个中断源,其中有2个是外部输入中断源INT0和INT1。可由中断控制寄存器TCON的IT1(TCON.2)和IT0(TCON.1)分别控制外部输入中断1和中断0的中断触发方式。若为0,则外部输入中断控制为电平触发方式;若为1,则控制为边沿触发方式。这里是下降沿触发中断。

1   问题的引出

  几乎国内所有的单片机资料对单片机边沿触发中断的响应时刻方面的定义都是不明确的或者是错误的。例如文献[1]中关于边沿触发中断响应时刻的描述为“对于脉冲触发方式(即边沿触发方式)要检测两次电平,若前一次为高电平,后一次为低电平,则表示检测到了负跳变的有效中断请求信号”,但实际情况却并非如此。

  我们知道,单片机外部输入的中断触发电平是TTL电平。对于TTL电平,TTL逻辑门输出高电平的允许范围为2.4~5 V,其标称值为3.6 V;输出低电平的允许范围为0~0.7 V,其标称值为0.3 V[2],在0.7 V与2.4 V之间的是非高非低的中间电平。

  这样,在实际应用中,假设单片机外部中断引脚INT0输入一路由+5 V下降到0 V的下降沿信号,单片机在某个时钟周期采样INT0引脚得到2.4 V的高电平;而在下一个时钟周期到来进行采样时,由于实际的外部输入中断触发信号由高电平变为低电平往往需要一定的时间,因此,检测到的可能并非真正的低电平(小于0.7 V),而是处于低电平与高电平之间的某一中间电平,即0.7~2.4 V的某一电平。对于这种情况,单片机是否会依然置位中断触发标志从而引发中断呢?关于这一点,国内的绝大部分教材以及单片机生产商提供的器件资料都没有给予准确的定义,但在实际应用中这种情况确实会碰到。

  以美国Analog公司生产的运算放大器芯片AD708为例,其转换速率(slew rate)为0.3 V/μs,在由AD708芯片组成的比较器电路中,其输出方波的下降沿由2.4 V下降到0.7 V,所需时间约为: (2.4 V-0.7 V)/0.3V·μs-1=4.67 μs。即需要约4.67 μs的过渡时间,下降沿才真正地由高电平下降为低电平,在实际应用电路中,这个下降时间往往可达10 μs以上。对于精密的测量系统,这么长的不确定时间是无法接受的,因此,有必要对单片机边沿中断触发时刻进行精确的测定。

2   测试波形的设计与分析

  为了测定MCS51单片机下降沿触发的实际时刻,使用Agilent公司生产的型号为33250A的80 MHz函数/任意波形发生器(function/arbitrary waveform generator),产生出如图1所示的周期为20 ms的周期波形。

图1   周期为20 ms的周期波形

  将该波形通过单片机的外部中断0输入,可以测出下降沿中断触发的实际时刻,下面对该波形进行具体分析。建立如图2所示的直角坐标。

图2   建立的直角坐标设

  图2所示波形的周期为T,单片机在电压下降到y=y′时刻触发中断,t1′、t2′、t3′分别为前后周期的中断触发时刻,则有:

按此在新窗口浏览图片

求得L1方程为:

按此在新窗口浏览图片

求得L2方程为:

按此在新窗口浏览图片

  由图2所示的电路及式(1)、式(2)、式(3),可求得:

按此在新窗口浏览图片

  将以上波形由单片机外部中断0输入,选择边沿触发方式,通过中断服务程序测取T1或者T2的值,从而可求出中断发生时刻的电平值y′,即边沿触发中断的实际时刻。

  在使用单片机对中断时刻进行测量时,使用两个计数器,均设为方式1(16位计数方式)。其中,第一个计数器用于记录从程序开始执行到第一个下降沿到来所经历的时间,第二个计数器用来记录程序开始执行到第二个下降沿到来所经历的时间,将两个计数器的计数值相减便可以得到两个下降沿之间的时间间隔。由前面的分析可知,该时间间隔可能有两种情况:一种是T1时间,即t1′与t2′之间的时间间隔;另一种是T2时间,即t2′与t3′之间的时间间隔。其中,T1+T2=T,T1时间要小于T2时间。通过测量得到T1或者T2时间,利用式(4)便可求得下降沿触发中断时刻的实际电平。

3   测试流程和相应的单片机程序

  该单片机的中断服务程序流程如图3所示。

图3   中断服务程序流程

  相应的中断服务程序为:

    INCR1
    MOVA,R1
    CJNEA,#01H,SEC
    CLRTR0
    MOV20H,TL0
    MOV21H,TH0
    CLRIE0
    RETI
  SEC:CLRTR1
    MOV22H,TL1
    MOV23H,TH1
    CLREX1
    CLREX0
    RETI

  由于程序执行有一定的延时,在中断返回后,还需对两个计数器的输出值进行校正。本实验采用伟福公司生产的H51/L仿真器为单片机测量系统,测得T1值为6.514 ms,由式(4)可得:y′=0.729 V,即当y′约为0.73 V时,单片机下降沿触发中断。

4   结论

  本文通过设计一简单的波形,对单片机的边沿触发中断响应时刻进行了准确的测量,从而纠正了国内单片机学习资料在边沿触发中断时刻方面的不明确定义,且最终结果经过了实验验证。

参考文献

[1]   梅丽凤,等.单片机原理及接口技术. 北京:清华大学出版社,2004.
[2]   曹汉房.数字电路与逻辑设计. 武汉:华中科技大学出版社,2004.
[3]   白驹衍,雷晓平. 单片计算机原理及其应用. 成都:电子科技大学出版社,1997.

王朋(硕士),主要研究方向为自动测试与系统;
李智(教授),主要研究方向为虚拟仪器与系统、自动测试总线与系统。

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号