用增强型51单片机实验板实现红外线遥控
TR1=0://低电平(对发射电路而言)测试结束Iow_level_time=TH1*256+TL1:
//保存低电平的数据TH1=0;TL1=0;TR1=1;//为增加计时的准确性,数据的处理都是在计时过程里//判断引导码(或重复码)是否正确,如果不正确,则设置出错标志位,并退出中断程序if((high_level_time8500)II(high_level_time>9500)II(Iow_level_time1000)II(Iow_level_time>5000)){return1://因是引导码出错,所以直接初始化后重新开始测试}
//——————————————————//对是引导码还是重复码进行判断。如果是重复码,就跳过后面数据的读取if((Iow_level—time>1000)(Iow_level_time3500))repeat_code_detected=1:
if((Iow_level_time>4000)(Iow_level_time5000))Ioad_code_detected=1;if(repeat_code_detected==1)return1;//直接结束,temp1=uPD6121_read_code_8();//读后面的系统、按健等数据,temp2=uPD6121_read_code_8();teMP3=uPD6121_read_code_8();temp4=uPD6121_read_code_8();TR1=0:
if(decode_error==1)return1://无论是哪部分解码出错,都是重新开始if((temp1!=Ntemp2)II(temp3!
=~temp4)){return1;}
sys_code=temp1:
key_code=temp3;data_available=1;return0:
如图5所示,是我们完成红外线实验所必需的设备,准备好硬件设备后,我们将红外线解码控制程序通过A51编程器烧入AT89S51单片机芯片,然后将芯片插到增强型51实验板上通电运行即可。
图6为增强型51实验板做红外解码电路,从而进行数码管显示的实验电路板。
最后,要提醒大家一下,在做红外实验需要注意的是:不同的红外线遥控器编码方式可能不同,你可能会发现有很多红外线遥控器的外表几乎都一样。
但对于同一电器设备却有些能用,有些不能用,这就是因为遥控器内部使用了不同的编码芯片的原因,或许你会想到用家中的电视机或空调的遥控器来完成红外线解码的实验,但你必须得事先知道该遥控器的红外线编码芯片是什么类型的,否则就比较麻烦了,而现在众多红外线遥控器厂商为了保护自己的知识产权已将编码芯片打磨,这对我们DIY爱好者来说就不太有利了。
评论