51单片机问题,请指教

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:09:59
我现在写一段程序用来控制单片机(w78e65)接收遥控器的代码,P2^0口连接遥控器的接收头,遥控器的代码诸如010101010101之类,一段高电平,然后是一段低电平.我需要记录每段电平持续的时间,然后发送到串口就好了.下面是段我写的程序,在Keil C中仿真运行正常,但是用遥控器的时候就不对了,而且程序只接收一次,连续按两次接收不到后面的,请高手帮我看看,追加分数.字数限制,程序发不上来,发几段主要的.
void Timer0_int (void) interrupt 1
{if ( ++Timer0Count > 10000 )
{flag_Receive = 0;Timer0Count = 0;TR0 = 0;}}
int length_n(int n)
{int j;
if(n>=0 && n<=9) return 1;
else
{for(j=1;j<n;j++)
{n /=10;
if(n>=0 && n<=9) return j+1;}}
void IntToStr(int x) //convert int to char
{ int i,len;len=length_n(x);
for(i=len-1;i>=0;i--)
{strdata[i] = tab[x%10];x /= 10;
}
strdata[len]='\0';
}
void Send(char a[])
{int Len,i;Len = strlen(a);
for(i=0;i<Len;i++)
{SBUF=a[i]; while(TI==0); TI=0;}
}
void SendSignal(void)
{int i;Send("Signal:");
for(i=0;i<Number_bit;i++)
{IntToStr(i);Send(strdata);Send(":");IntToS

额,这个很麻烦,说实话兄弟你最好自己做了,我估计没人可以解决你的问题..

太浪费资源了。用汇编写的我还能看看。

哇靠,我发现花开满山简直是个骗子!