请教一个单片机C语言编程问题??

来源:百度知道 编辑:UC知道 时间:2024/06/06 14:52:54
硬件上是2个外部信号直接输入单片机,程序要求检测2个信号是否同时输入,也就是在1秒内有2个高电平信号输入就可以判定为同时,如果同时则在另外一个端口输出一个电平信号。

这个单片机C语言程序怎么写?本人是初学,不知道怎么编程,还请高手指教。
这样编程应该不对吧,事先不能确定是那一路信号先到,而且同时的概念很模糊,应该在一秒内检测到2路信号才算是同时啊。

if(P1.0 == 0)&&(P1.1 == 0)
{
while(1)
{
if(P1.1 || P1.0)
{
int cnt = 0;
if(P1.1)
{
while(cnt < 1000)
{
if(P1.0){P1.2 = 1;break;}
else{delay1ms();cnt++);
}
}
cnt = 0;
if(P1.0)
{
while(cnt < 1000)
{
if(P1.1){P1.2 = 1;break;}
else{delay1ms();cnt++);
}
}
}
break;//经过以上程序,如果同时的话,P1.2已经置高了。
//如果不是同时对话,应该等到P1.0,P1.1全变低时在执行这段程序。所有这里应该break;
}
}

if (p1.0) {
if (p1.1){
p1.2=1
}
}