打印

低电平触发中断问题

[复制链接]
1652|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sjw766|  楼主 | 2008-5-15 22:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要实现的功能,按下按键S1,灯左移一位。中断触发方式为低电平触发。程序如下,但是在试验板实现不了。哪位大哥指点下,问题出在哪?不胜感谢!!!
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
uchar Status=0xFE;     //初始状态最左一个LED亮

//外部中断1中断程序
void INT0Int() interrupt 2 using 1
{
Status=_crol_(Status,1); //循环左移1位
}
//主程序
main()
{
EX1=1;
IT1=0;
EA=1;
while(1){
P1=Status;
}
}

相关帖子

沙发
dai_weis| | 2008-5-15 22:56 | 只看该作者

改成下沿触发看看

低电平触发,只要低电平不撤销,就会一直中断

使用特权

评论回复
板凳
rgxia| | 2008-5-17 08:19 | 只看该作者

1.要考虑开关的抖动,连续的触发不该响应 2.要用下降边沿触

1.要考虑开关的抖动,连续的触发不该响应
2.要用下降边沿触发

使用特权

评论回复
地板
薛奎| | 2008-5-18 17:24 | 只看该作者

中断处理

进入中断后先确认是否误动作,确认是中断信号后要关闭EA再执行服务程序

使用特权

评论回复
5
dfgeoff| | 2008-5-18 22:43 | 只看该作者

是一点都没有变化吗?

如果一直显示一个,从来都没变过(不管变到哪个上面),那么估计是Status被优化掉了,定义的时候加个volatile吧。

如果有变化,只是乱,那就如ls两位的指点,做个延时去抖判断。

使用特权

评论回复
6
hnsw| | 2011-7-25 21:11 | 只看该作者
mark~~~

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝