第一,直接使用硬件来复位,将原本要接到P33的电平接到硬件复位上,当然需要一定的设计
第二,还是硬件,直接将此电平接到看门狗电路上
第三,软件,前提是你的单片机支持软件复位(包括直接复位和内置的看门狗)
当然不一样了
1电平触发是在高或低电平保持的时间内触发,
2而边沿触发是由高到低或由低到高这一瞬间触发
3 边沿触发一般时间短,边沿触发一般时间都是us级的,响应要快的,而电平触发只须是高和低就可以了,没时间要求,比如10s 时间内总是低电平,那么它也是触发的,
比如中断计时或计数,最好用边沿触发,用电平触发误差会很大,电平触发一般用于简单报警,开关一类(时间要求不高的)
it0、it1这个寄存器是设置外部中断0和1的触发方式。it0、it1都为1,是边沿触发,为0是低电平触发,ex0、ex1是设计外部中断允许,ex0=1,ex1=1是允许中断,可以配合it0、it1来使用,可以不用对其进行设置,默认是0(低电平)触发。it0的主要任务是支持商业流程,以满足企业的业务需求,提供高效的数据存储、数据处理和计算服务。
你以P33口为低电平时触发中断,那是INT1,中断号是2,中断子程序应该这么写
void exter1() interrupt 2 //这是2
{
d1 = 0; //P1^0为低电平
}
不过,你的P1^0外部接LED了吗,否则你怎么知道变成低电平了。
还有,虽然在中断子程序中,P1^0变成了低电平,你也能知道,可是回到主程序后,
for(num = 0;num < 16;num++)
{
d1 = 1; //这里马上又变成了高电平,那个低电平是看不到的,不能这么写呀!!!!!
DUAN = 1;
P0 = table[num];
DUAN = 0;
delay(100);
}
你好,你可以在退出中断时不要打开外部中断使能,在主循环程序里加一条判断就像判断按键一样恢复高电平以后再使能外部中断允许就可以克服这个问题了,还有就是选择边沿触发(上升沿或下降沿)也不会有次问题
以上就是关于c语言独立按键控制程序复位全部的内容,包括:c语言独立按键控制程序复位、单片机中IT0=1与IT0=0有什么区别啊一个是下降沿,一个是低电平,下降过后不就是低电平啦、it0置0或置1的作用是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)