是每计3个脉冲发生一次中断吗?可以将定时器0设置成计数器模式2,然后TH0和TL0都赋初值为0xfd,这样每来3个脉冲就会发生一次计数中断
用外部中断计数到3的时候,关闭外部中断EX1=0,进入中断子程序,处理完成,再打开外部中断EX1=1。主函数内打开外部中断后必须要有一个死循环。比如main()
{
EA=1;
EX1=1;
TCON=0x04;
while(1);
}
每一次脉冲记一次数,记到3时进入中断,中断中处理需要处理的数据和计数清零,然后回到循环继续!~~~
读IO,读到3个脉冲后把中断开起来并且屏蔽脉冲计数动作,然后在中断里清这三个脉冲的计数且把中断使能关掉。
这个问题可以等同于处理按键。按键按三次就触发中断。这里需要注意的是脉冲宽度,要判断合适。 为了程序的实时性,建议用状态机来写。