用增強型51單片機實(shí)驗板實(shí)現紅外線(xiàn)遙控
TR1=0://低電平(對發(fā)射電路而言)測試結束Iow_level_time=TH1*256+TL1:
//保存低電平的數據TH1=0;TL1=0;TR1=1;//為增加計時(shí)的準確性,數據的處理都是在計時(shí)過(guò)程里//判斷引導碼(或重復碼)是否正確,如果不正確,則設置出錯標志位,并退出中斷程序if((high_level_time8500)II(high_level_time>9500)II(Iow_level_time1000)II(Iow_level_time>5000)){return1://因是引導碼出錯,所以直接初始化后重新開(kāi)始測試}
//——————————————————//對是引導碼還是重復碼進(jìn)行判斷。如果是重復碼,就跳過(guò)后面數據的讀取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://無(wú)論是哪部分解碼出錯,都是重新開(kāi)始if((temp1!=Ntemp2)II(temp3!
=~temp4)){return1;}
sys_code=temp1:
key_code=temp3;data_available=1;return0:
如圖5所示,是我們完成紅外線(xiàn)實(shí)驗所必需的設備,準備好硬件設備后,我們將紅外線(xiàn)解碼控制程序通過(guò)A51編程器燒入AT89S51單片機芯片,然后將芯片插到增強型51實(shí)驗板上通電運行即可。
圖6為增強型51實(shí)驗板做紅外解碼電路,從而進(jìn)行數碼管顯示的實(shí)驗電路板。
最后,要提醒大家一下,在做紅外實(shí)驗需要注意的是:不同的紅外線(xiàn)遙控器編碼方式可能不同,你可能會(huì )發(fā)現有很多紅外線(xiàn)遙控器的外表幾乎都一樣。
但對于同一電器設備卻有些能用,有些不能用,這就是因為遙控器內部使用了不同的編碼芯片的原因,或許你會(huì )想到用家中的電視機或空調的遙控器來(lái)完成紅外線(xiàn)解碼的實(shí)驗,但你必須得事先知道該遙控器的紅外線(xiàn)編碼芯片是什么類(lèi)型的,否則就比較麻煩了,而現在眾多紅外線(xiàn)遙控器廠(chǎng)商為了保護自己的知識產(chǎn)權已將編碼芯片打磨,這對我們DIY愛(ài)好者來(lái)說(shuō)就不太有利了。
評論