用TC9148遙控MCS-51單片機(jī)電路
相關(guān)元件PDF下載: TC9148 TC9150 A733 CD4069 9013 TC9148是CMOS低功耗紅外遙控發(fā)射專用IC,通常與TC9149/TC9150紅外遙控接收IC配合使用,對家用電器進(jìn)行控制。TC9148可連接18個(gè)鍵,其中12個(gè)鍵為脈沖發(fā)射鍵(即按一次發(fā)射一次編碼脈沖,接收機(jī)解調(diào)后生成一個(gè)單脈沖信號),其余6鍵,具有連續(xù)發(fā)射功能(即按下發(fā)射鍵,紅外發(fā)射管連續(xù)發(fā)射該鍵的編碼信號直到放開該鍵為止,接收機(jī)端可得到一串脈沖信號)。本文介紹不用TC9148對應(yīng)的專用接收電路,直接用MCS-51單片機(jī)的定時(shí)器及外中斷功能,接收TC9148的紅外編碼信號,即用TC9148遙控MCS-51單片機(jī)的方法。 一、TC9148的編碼 要用單片機(jī)接收TC9148的遙控信號,首先應(yīng)知道TC9148的編碼信號。筆者利用自制的以8031為CPU的仿真器,對TC9148的編碼進(jìn)行監(jiān)測分析,得出TC9148的編碼,如附表所示。 從表中可知TC9148的編碼信號規(guī)則如下: 1. 碼長24位,位寬840μs。2. 編碼的第1、3、5……23位全為1,作為識別標(biāo)記。3. 去掉1、2條中的識別標(biāo)志后的純編碼中只有4位為1,其余8位為0。4. 脈沖發(fā)射鍵的編碼以EE開頭,連續(xù)發(fā)射鍵的編碼以EF開頭(為編解碼方便,接收校驗(yàn)后將去除以上兩種識別標(biāo)記)。 手動(dòng)按鍵后,發(fā)射一次本鍵編碼,延時(shí)40位后再發(fā)射一次。若按的是連續(xù)發(fā)射鍵,延時(shí)80位后,重復(fù)上述過程,直至該鍵斷開為止。 MCS-51單片機(jī)根據(jù)以上規(guī)則對收到的編碼信號進(jìn)行校驗(yàn),若不符合,則視為無效。 二、發(fā)射、接收電原理圖 發(fā)射器原理如圖1所示。TC9148靜態(tài)功耗極低,可不設(shè)電源開關(guān)。讀者也可以選用TC9148制作的遙控器成品,使用時(shí)要注意腳至、、腳之間的二極管的接法,這三個(gè)二極管對應(yīng)編碼的前3位。筆者將前3位編碼為“101”,故第2個(gè)二極管不接。接收器原理較簡單,如圖2所示。紅外接收頭選用成品,通過一反相器倒相后,將信號送入單片機(jī)的INT1端(也可接INT0,但要修改相應(yīng)程序)。 三、接收及解碼程序 設(shè)單片機(jī)使用的晶振為6MHz。設(shè)定時(shí)器的定時(shí)時(shí)間為0.42ms、定時(shí)方式2、INT1為負(fù)沿觸發(fā)。當(dāng)?shù)谝晃粩?shù)據(jù)到來時(shí),觸發(fā)INT1中斷,產(chǎn)生中斷。在INT1中斷服務(wù)程序中關(guān)外中斷1,啟動(dòng)定時(shí)器0,0.42ms后,定時(shí)器中斷,讀數(shù)據(jù)。此時(shí)正好在該位數(shù)據(jù)的中間,以后定時(shí)器每中斷2次讀一位數(shù)據(jù),讀完24位數(shù)據(jù)后,將數(shù)據(jù)保存在內(nèi)存中,延時(shí)40位,再讀24位數(shù)據(jù),若讀出的24位數(shù)據(jù)和前面的相同,則進(jìn)行校驗(yàn)、解碼,得出相應(yīng)的控制程序入口,執(zhí)行相應(yīng)的程序。以上任何一步不能通過則放棄此次接收結(jié)果。 本文提供的程序本為嵌入其他程序而設(shè)計(jì)的,程序中使用了定時(shí)器T0,外中斷1,內(nèi)存單元10H、11H、12H、30H、31H、32H、33H、34H、35H,位地址77H,若讀者在主程序中使用了以上資源,也可進(jìn)行更換,要注意不要和棧沖突。 若將此程序嵌入其他程序,只要將其中的初始化程序編入主程序的初始化部分中即可。中斷服務(wù)程序可放在程序存儲器的任意位置。此程序相當(dāng)于在后臺執(zhí)行,不影響主控程序。注意6個(gè)連續(xù)發(fā)射鍵將導(dǎo)致相應(yīng)處理程序的反復(fù)執(zhí)行。 源程序清單(略)。 本文中的程序在自制仿真器中運(yùn)行通過。實(shí)踐證明此方法穩(wěn)定性好、可靠性高、抗干擾性能優(yōu)良。用戶將此程序嵌入控制程序中,可完成非常復(fù)雜的遙控功能。 ![]() |
|