#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key=P3^5;
sbit shuchu=P3^3;
void delay(uint n)
{
uint i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
void main()
{
uchar i;
while(1)
{
if(key==0)
delay(100);
if(key==0)
{
i++;
if(i==2)
{
i=0;
shuchu=1;
}
while(!key);
}
if(i<2)
shuchu=0;
}
}
上面的的程序仿真時正常下載到單片機中就不行了,程序思路是獨立按鍵按動兩次才有一次輸出,可是實際按動按鍵時有時候三次才有輸出,有時候連著兩次輸出,延時函數應該沒有問題,請教各位大師指點一下 |