我的光电对射
电路是这么设计的,如图所示!我把这个
电路的信号输出端(J1-2脚)接在了stc89c52
单片机的外部中断口1口,可是每当出现一个物体遮挡过去之后,
单片机的外部中断1服务函数执行了好几次,我设置的外部中断是单片机下降沿触发!我的服务函数里面没有加去抖延迟,因为中断函数里面不想出现那些延迟什么的函数,影响单片机运行的整体效率!各位大神们有什么好的建议?能有什么办法用硬件去掉这个电路电平变化的过程产生的抖动?或者程序上怎么修改比较好,希望得到帮助!谢谢!
下面是我的外部中断函数:
void tuiqiu() interrupt 2 //检测上升沿触发,快进快
{
//假如没有加延迟去抖,下面的函数会被执行多次,中断里不加延迟!
if(score_over>0)
{
if(T10s_flag==1) //到了十秒的时间,说明电机要开始反转了
{
count=201; //从第二个十秒开始
}
else
count=0;
if(score_over>0)
{
uart_senddata(m+5); //发送地址位
m++;
if(m==13)
m=0;
score_over--;
if(score_over==0)
{
djz=0; //停止电机
djf=0;
TR2=0; //关定时器2
T10s_flag=0; //10秒标志位清零
count=0; //10秒计数值清零
m=0;
}
}
}
}
一周热门 更多>