我现在想自己对红外进行编码,做一个38K的载波,我的思路是这样的:用单片机的一个口产生38K的方波,再用另一个口发送数据,然后把两个口发出的信号用与门与一下.然后再接到发射管上发射,不知道这样做对不对?还有38K的方波是不是只要是方波就好了,占空比有没有什么要求?<br /><br />我测了一下接收头的信号,跟我发出的数据一点也不一致.<br /><br />这是我写的程序: <br /><br />void main()<br />{<br /> unsigned int i;<br /> TMOD=0x02;<br />TH0=-24; //22.1184 38k<br />TL0=-24;<br />ET0=1;<br />TR0=1;<br />EA=1;<br /> while(1)<br />{ <br /> for(i=0;i<=20000;i++);<br /> P11=0;<br /> for(i=0;i<=20000;i++);<br /> P11=1;<br />}<br /><br />} <br /><br />void timer0() interrupt 1<br />{<br /> <br />P10=~P10;<br />} <br /><br />P10为38K的载波,P11为发送的数据,在我看来接收的波形应该是50%的方波,但是情况并不是这样.是我写错了?还望高手能够帮忙,在下感激不尽! |