使用的三个光盘自带的程序:
1.红外发射;2.红外万能学习型遥控器_c;3.红外万能学习型遥控器_asm
发现几个问题不太理解,
问题1:用示波器分别检测三个程序的P3.2端口都有相应的方波信号,但红外发射管的端口都没有相应的方波信息,不是太理解。
问题2:程序1与程序2都无法成功发射红外信号,但程序3可以成功发射。(成功发射是指红外接收头接收到信号并在示波器上显示出来)。
问题3:程序1中的38k方波实现过程
TL0 = 0xE5; //设定时值0为38K 也就是每隔26us中断一次
每隔26us中断一次,也就是说52us才可以完成一次01更替变化,周期为52us,频率应该为19K才对啊,怎么是38K方波呢?
void timeint(void) interrupt 1 { TH0=0xFF; TL0=0xE5; //设定时值为38K 也就是每隔26us中断一次 count++; if (flag==1) { OP=~OP; } else { OP = 0; } P2_3 = OP; }
中断程序里有这么多的语句,执行也需要好几个us,用软件仿真一下就能知道 其实是在38K左右
OP的反转时间是26US+中断程序里那几个语句的执行时间才对.
1.用摄像头观察是否发出了红外信号的方法不错,长见识了。
2.调试结果为发射程序37us进行一次反转,但这是半个周期,一个周期就是74us,对应的方波频率约为13k左右。应该是接收头无法接受到此频率的信息吧(修改了TL0的值,只进行中断操作,算上执行中断消耗的时间。反转一次的时间最小为31us)?
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |