《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于mega128單片機的學習型紅外遙控器設計
基于mega128單片機的學習型紅外遙控器設計
來源:微型機與應用2011年第8期
陳天水, 秦 文, 胡天友
(電子科技大學 機械電子工程學院, 四川 成都611731)
摘要: 提出一種基于mega128單片機學習型紅外遙控器的設計與實現。對該遙控器的工作原理、軟硬件進行介紹,并對紅外編碼學習的實現過程進行詳細描述。該學習型紅外遙控器是通過測量脈沖寬度的方法來復制紅外脈沖信號并進行保存,以軟件形式實現38 kHz載波,最后通過紅外發射二級管發送紅外編碼來控制家用電器。
Abstract:
Key words :

摘   要: 提出一種基于mega128單片機學習型紅外遙控器的設計與實現。對該遙控器的工作原理、軟硬件進行介紹,并對紅外編碼學習的實現過程進行詳細描述。該學習型紅外遙控器是通過測量脈沖寬度的方法來復制紅外脈沖信號并進行保存,以軟件形式實現38 kHz載波,最后通過紅外發射二級管發送紅外編碼來控制家用電器。
關鍵詞: mega128; 學習型紅外遙控器; 測量脈沖寬度

    紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強、信息傳輸可靠、功耗低、成本低、易實現等顯著優點,被諸多電子設備特別是家用電器廣泛采用。隨著人們生活水平的提高,家用電器的數量逐漸增加,使用紅外遙控器的頻率越來越高。但是由于各種紅外遙控器編碼格式不同[1],所以各種紅外遙控器不能兼容,這樣一個家庭就需要很多個遙控器,很不方便。
    目前國內學習型遙控器大部分采用復制遙控器紅外波形的思想,方法很多。但是由于采用專用遙控發射芯片,集成度高但成本也高。
    本文介紹一種基于mega128單片機的具有學習型的紅外遙控器的設計,其思想是通過測量經過紅外接收芯片解調后輸出的編碼脈沖寬度[2],然后存入單片機內部eeprom指定地址。當要發生紅外信號時,從存儲區還原出相應的紅外遙控編碼,并調制到38 kHz的載波信號上,最后直接驅動紅外發光二極管發射紅外信號,實現一個遙控器控制多種紅外家電設備。
1 學習型紅外遙控器基本硬件結構
    學習型紅外遙控器由以下幾個模塊組成[3]:單片機、紅外接收模塊、紅外發射模塊和矩陣鍵盤,如圖1所示。系統采用8 MHz晶振,直接采用mega128內部E2PROM來存儲紅外遙控編碼,其容量為4 KB。

 

 

    紅外接收模塊電路如圖2所示。紅外接收芯片采用HS0038A2,此芯片對接收到的紅外信號進行放大,檢波整形并解調出紅外遙控編碼,得到TTL電平,反相輸入到mega128 的PD0和PD1口,即外部中斷0和外部中斷1口。通過上升沿和下降沿兩個邊沿觸發中斷來控制定時器的開與關,從而記錄高低電平的脈沖寬度值。

    紅外發射模塊電路如圖3所示。當系統進入發射功能時,單片機首先掃描矩陣鍵盤,識別相應按鍵的按下情況,然后從E2PROM中取出相應鍵值的遙控信號[4],即通過學習后保存到E2PROM里的高低電平的寬度值。與此同時,利用單片機T0定時器產生38 kHz的載波信號。最后將遙控信號調制到載波上,通過IO口直接驅動紅外發射二極管發射紅外信號。這里的調制完全通過軟件實現,取代了直接用與門來調制的方式,方便準確。由于mega128 單片機IO口的驅動能力強,可以直接驅動二極管,避免了傳統三極管放大后再驅動的繁瑣。

2 系統軟件設計
2.1主程序設計

  系統上電后不斷掃描鍵盤,當檢測到學習鍵按下時,調入學習子程序,對相應功能鍵的遙控編碼進行學習并寫入E2PROM;當發射鍵按下時,先識別按下的功能鍵,然后從E2PROM中讀出相應的已經學習到的紅外遙控編碼,然后通過發射程序發射出去。如圖4所示。

2.2 學習子程序
     學習程序的功能是對紅外遙控編碼的學習,即對高低脈沖寬度的測量。當中一定會存在一定誤差,不可能毫無誤差地復制出被測的紅外編碼。不過,由于所有的紅外設備在接收端都允許一定的誤差,只要保證在誤差范圍內都可以對紅外設備進行控制。學習程序的主要思路是通過邊沿觸發中斷來控制定時器的開和關,從而測出高低脈沖寬度。mega128單片機的外部中斷0和1口的中斷方式分別設置為下降沿和上升沿觸發中斷。當沒有接收到紅外信號時,外部中斷0、1口都為高,此時程序等待紅外信號的到來。當紅外到達時,下降沿觸發中斷,學習程序跳到下降沿中斷服務程序。在中斷服務程序里,停止定時器3,保存其寄存器的值并清零,最后啟動定時器1,這樣開始測量低電平。當高電平到來時,上升沿觸發中斷,程序跳到上升沿中斷服務程序里,此時停止定時器1,保存其寄存器的值并清零,最后啟動定時器3,高電平開始測量。當下一個低電平到來時,程序又跳到下降沿中斷服務程序,重復上面的工作。這樣,高低電平的測量就在兩個邊沿觸發中斷服務程序里面來回跳轉。最后一次跳入邊沿觸發中斷服務程序時,一旦產生定時器溢出,則程序跳入定時器溢出中斷服務程序,只要設定一個標志位,讓程序跳回主程序即可。到此,紅外編碼學習完畢,只需把學習到的編碼寬度值存入E2PROM即可。如圖5所示。

2.3發射子程序
    發射程序是把已經學習到的紅外編碼發射出去控制紅外設備。首先要根據所按下鍵來找到E2PROM相應的紅外編碼。這里是通過紅外接收芯片接收到的紅外編碼經過一個反相器,所以發射時要把原來的高低電平翻轉一下。紅外發射程序的思想是通過兩個定時器的配合來調制出38 kHz的紅外信號。定時器0產生38 kHz的載波信號,用已經學習到的低電平寬度來確定定時器0的定時長度。當發送低電平時,啟動定時器0;發送高電平時,停止定時器0。如此就能發送一個與接收到的紅外編碼反相并且高電平是經過38 kHz載波調制過的紅外遙控信號,這個信號就是普通遙控器發送出去用來控制紅外設備的信號。如圖6所示。

3 實驗測試
    實驗中用格力的一臺柜式空調進行試驗。圖7是接收波形,圖8是還沒有經過38 kHz調制的發射波形。比較兩個波形可以看出,接收和發射的波形高低電平持續時間相同,只是波形正好相反,原因是在接收芯片里有一個反相過程。此時,只需將38 kHz的波形調制到波形里,再通過紅外發光二極管發射出去,即可對空調進行控制。把空調遙控器上的所有功能鍵都嘗試過一次,都可以對空調進行控制。

    本文所設計的學習型紅外遙控器可以準確地測量并學習紅外編碼信號,將所學的信號復制,保存并通過紅外發射二極管發射,可以控制紅外家用設備。不同類型的紅外遙控器,各種編碼格式都可以對其進行學習并對電器進行穩定控制。
參考文獻
[1] 邱士安.通用遙控器的解決方案[J].昆明理工大學學報, 2001(26):197-199.
[2] 蘆健,彭軍,顏自勇,等.自學習智能型紅外遙控器的設計[J].國外電子測量技術,2006,25(8):63-65.
[3] 徐志,何明華,林武,等.一類基于軟件載波的學習型遙控器的設計與實現[J].現代電子技術,2009(2):36-38.
[4] 耿德根,宋建國,馬潮,等.AVR高速嵌入式單片機原理與應用[M].北京:北京航空航天出版社,2002.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 奇米影视7777久久精品 | 日韩不卡在线 | 婷婷的久久五月综合先锋影音 | 成人国产精品一级毛片天堂 | 国产又粗又黄又湿又大 | 精品三级国产 | 成年女人看片免费视频频 | 欧美在线一级片 | 国产日韩久久久精品影院首页 | 亚洲综合一二三区 | 成人免费国产欧美日韩你懂的 | 国产欧美日韩成人 | 中文三级视频 | 香蕉国产人午夜视频在线 | 伊人色综合久久天天人手人停 | 亚洲一级毛片免费在线观看 | 18视频免费网址在线观看 | 2021最新国产精品一区 | m男亚洲一区中文字幕 | 国内交换一区二区三区 | 国产亚洲欧美日韩在线观看不卡 | 亚洲午夜在线播放 | 欧美国产日韩在线播放 | 怡红院免费的全部视频国产a | 美国一级毛片免费 | 国产精品成人在线播放 | 香蕉久久久 | 欧美日本综合一区二区三区 | 成人国产精品一级毛片了 | 亚洲欧美色视频 | 亚洲最大网站在线 | 国产一级大片 | 欧美午夜伦y4480私人影院 | 国产成人精品高清不卡在线 | 久9精品视频 | 欧美不卡视频在线观看 | 在线观看亚洲欧美 | 在线免费公开视频 | 成人国产精品一级毛片了 | 亚洲天堂成人 | 亚洲欧美久久一区二区 |