打印

51单片机INT0脚可以这样使用么

[复制链接]
7220|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
2001myp|  楼主 | 2009-5-13 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当GATE=1,且TR0=1时,或门和与门全部打开,外部信号电平通过INT0直接开启或关闭定时器技术。输入1电平,允许计数,否则停止计数。这种操作方法可用来测量外部信号的脉冲宽度。
上面这一段话告诉我定时器可以这样用来测量脉冲宽度,于是我准备测量这个脉冲宽度并用数码管显示(动态显示)。因为显示程序放到主程序里面会对我测量精度造成影响,所以我打算在中断处理程序里面显示,并且一直循环显示下去不需要跳回主程序。但现在的问题是我想利用这一段脉冲计数完成后,顺便用其下降沿来通知我可以进入中断0处理函数并显示数值了,那是不是说我这个INT0脚一脚两用了,这样我试了好像不可以,该如何解决呢,高手指教

相关帖子

沙发
lyjian| | 2009-5-13 12:45 | 只看该作者

本来就可以,不可以是你的软件有问题

使用特权

评论回复
板凳
2001myp|  楼主 | 2009-5-13 13:51 | 只看该作者

回复楼上高手

我INT0脚接一个1K的下拉电阻,设置IT0=1即下降沿有效进入中断,结果实际上一上电就进入中断,后来论坛里一前辈指点是51一上电就会认为低电平中断有效,所以应该在IT0=1后面加上一句IE0=0,目的是清楚中断标志位,我这样去做后结果问题是上电不会进入中断,但给脉冲也不会进入中断,想知道其中的原因
TMOD=0x02;            
    TH0=0x77;            
    TL0=0x77;                           
    TR0=1; 
    ET0=1;
以上是定时器设置                   
    
    EX0=1;                    
    IT0=1;                    
    EA=1; 
以上是外中断0设置,我自己实在看不出毛病关键了,还请指点

使用特权

评论回复
地板
twz8858877| | 2009-5-13 14:25 | 只看该作者

建议看看中断硬件结构

给脉冲不能进入中断是因为你使能了T0中断却没有相应中断服务程序,CPU响应T0中断后不能不能释放中断,导致其它同级/低优先级中断均被封锁,不再被响应,这个是硬件自动完成的

使用特权

评论回复
5
2001myp|  楼主 | 2009-5-13 14:32 | 只看该作者

回楼上高手

T0中断在优先级上应该低于INT0中断,虽然我T0中断应用了INT0脚,但并不会因此优先级提高吧?另外T0中断我之所以没给出处理程序是因为我不需要在里面处理什么,无非就是计数而已,如果非要处理一下那该如何写呢,给个空语句可以么,小弟愚钝,谢谢指点。

使用特权

评论回复
6
2001myp|  楼主 | 2009-5-13 16:08 | 只看该作者

再回楼上高手

首先谢谢各位指点,小弟调试算是基本成功,只是有一点影响,就是我给INT0脚搭上高电平时候,是不是由于抖动的缘故,有时候会显示0000,就是没有计算高电平的时间就立刻进入中断,我用一根电源线直接搭在INT0脚还好,一般松开后就会有个数值,但是如果用开关连接INT0脚和电源脚,来模拟脉冲输入的话,每次都显示0000,希望高手指教

使用特权

评论回复
7
bear15888| | 2009-7-30 21:36 | 只看该作者
有些出错的地方,可以单击定位!
比如少}的,单击定位的是在下一行。
但有时候出现:unterminated comment encountered(自我翻译:遇到不正确的注释)提示符后,单击就没用了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

210

帖子

0

粉丝