劉健+裴雨聽+汪澤睿
摘要:本文通過設(shè)計出一個遙控控制電路,并運(yùn)用了51系列單片機(jī)以及紅外發(fā)射相關(guān)技術(shù),最終實(shí)現(xiàn)在發(fā)射端按鍵控制對應(yīng)接收端led燈的點(diǎn)亮。本設(shè)計先利用c語言編寫出紅外發(fā)射端的發(fā)射程序,包括載波信號的產(chǎn)生,數(shù)據(jù)碼的編碼。再利用c語言編寫紅外接收端的接收程序,包括信號的接收,信號的解碼,以及對應(yīng)led燈的點(diǎn)亮。
關(guān)鍵詞:單片機(jī);紅外發(fā)射;紅外接收;led燈
中圖分類號:TP872 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2017)11-0008-01
20世紀(jì)60年代末,世界上的一部分國家開始研究將遙控技術(shù)應(yīng)用到大眾日常生活當(dāng)中去。在遙控方式上大致經(jīng)歷了從有線信號傳輸,發(fā)展為作為無線信號的超聲波傳輸、從振動子到紅外線、最后利用微型處理機(jī)控制紅外外號傳輸遙控這樣幾個階段。無論采用什么樣子的方式,準(zhǔn)確無誤的傳輸,最后達(dá)到滿意的控制效果是十分重要的。隨著集成電路的發(fā)展和普及,各大生產(chǎn)廠家生產(chǎn)了大量紅外遙控專用集成電路,使得紅外遙控得以在家用電器、室內(nèi)近距離遙控中得到十分廣泛的應(yīng)用,涉及人們生活的方方面面。
本文利用單片機(jī)通過紅外控制的方式點(diǎn)亮led發(fā)光二極管,led發(fā)光二極管通過紅外被點(diǎn)亮后延時2秒后自動熄滅。目前市面上有很多的遙控控制裝置,但是市面上鮮有通過遙控控制裝置通過觸發(fā)后延時讓其自動熄滅的設(shè)備。通過動手設(shè)計出一個通過紅外發(fā)射接收裝置點(diǎn)亮led發(fā)光二極管的延時熄滅裝置。此裝置能應(yīng)用到工業(yè)中,在工廠的流水線中,由于噪聲大,且工人與工人之間的距離太遠(yuǎn),當(dāng)后方的工人發(fā)現(xiàn)問題時,可以通過觸發(fā)身邊的紅外發(fā)射裝置點(diǎn)亮前面工人面前的led燈,提醒前面的工人進(jìn)行處理。而且一段時間后led燈會自動熄滅,避免長亮。
1 單片機(jī)原理介紹
單片機(jī)又能叫做單片微型控制器,是一種體積小,功耗低的器件。它的組成部分也不是很復(fù)雜,主要有一個中央處理模塊,也就是我們平常所熟知的CPU,還有一個隨機(jī)存儲器,也就是我們平常見到的計算機(jī)里面的RAM部分,同時還包括一個與隨機(jī)存儲器相對應(yīng)的只讀存儲器,也就是相當(dāng)于計算機(jī)里面的ROM部分。當(dāng)然,單片機(jī)里面還包括了中斷系統(tǒng),當(dāng)外部中斷到來時或者內(nèi)部中斷到來時,用于中斷單片機(jī)的處理裝置。同時,單片機(jī)里面還包括了定時/計數(shù)器,是用于計數(shù)功能,以及定時功能,在許多情況下具有非常重要的作用。
2 遙控控制設(shè)計
2.1 遙控控制原理
利用紅外線進(jìn)行信號的發(fā)送和接收,也就是說載波信號即為紅外光束。一般來說,紅外遙控裝置是由一個發(fā)射裝置和一個接收裝置組成的,發(fā)射和接收裝置應(yīng)用一套編碼原理,在信號的傳輸過程中傳輸?shù)闹皇羌t外光束信號的強(qiáng)弱變化。在發(fā)射端,根據(jù)發(fā)射原理,將信號轉(zhuǎn)換成不同強(qiáng)弱的紅外光束,然后通過發(fā)光二極管將不同強(qiáng)弱的紅外光束發(fā)射出去;而在接收端,同樣也是根據(jù)同一協(xié)議里面的解碼原理,對不同強(qiáng)弱的紅外光束進(jìn)行相應(yīng)的解碼,從而得到傳輸?shù)男盘朳1]。
2.2 遙控收發(fā)端整體電路設(shè)計
設(shè)計是由一個發(fā)射裝置和一個接收裝置組成。在發(fā)射端是由一個51系列單片機(jī),一個紅外發(fā)射管和4個物理按鍵組成。在接收端是由一個51系列單片機(jī),一個紅外接收管,四個led發(fā)光二極管組成。發(fā)射端主要承擔(dān)信號發(fā)射的作用,而接收端主要承擔(dān)的是信號接收和點(diǎn)亮led發(fā)光二極管的作用。
3 軟件的設(shè)計
3.1 發(fā)射端、接收端軟件設(shè)計
遙控發(fā)射器專用的芯片有很多,根據(jù)編碼格式可以分成兩大類,本設(shè)計是以日本NEC編碼協(xié)議對發(fā)射電路進(jìn)行編碼。編碼“0”波形圖,如圖1所示。編碼“1”波形圖,如圖2所示。
紅外接收器的編碼較為簡單,只需依據(jù)之前發(fā)射編碼數(shù)據(jù)幀格式,進(jìn)行相應(yīng)的解碼即可得到發(fā)射的源代碼。得到的數(shù)據(jù)存放入數(shù)組,再由I0口輸入即可。
3.2 程序算法設(shè)計剖析
3.2.1 紅外發(fā)射算法
依據(jù)NEC協(xié)議應(yīng)該首先發(fā)送9ms的AGC(自動增益控制)的高脈沖,接著發(fā)送4.5ms的起始低電平。啟動定時器0,發(fā)送高電平:TR0=1;然后通過定時器控制,使高電平持續(xù)時間達(dá)到9ms;接著,關(guān)閉定時器0,拉低電平:TR0=0;同樣通過定時器控制,使低電平持續(xù)4.5ms;之后開始發(fā)送數(shù)據(jù)。在發(fā)送數(shù)據(jù)的過程中,采取由地位開始逐位發(fā)送的方式。而對“0”和“1”的處理,采取的是NEC協(xié)議里的通過對高電平持續(xù)時間的控制。
3.2.2 紅外接收部分算法
首先進(jìn)行紅外接收頭的初始化設(shè)置,至IR_IN為高電平,開總中斷EA,開外部中斷EX0,設(shè)置觸發(fā)方式為跳變沿觸發(fā)IT0=1。然后初始化輸出口led燈。接著等待外部中斷的到來啟動紅外接收頭。在接受數(shù)據(jù)的處理中,采用由低位開始逐位取出存放于數(shù)組的方式,通過高電平的持續(xù)時間判斷是碼“0”或者碼“1”。
3.3 Keil軟件對紅外發(fā)射和接收程序的調(diào)試
在keil上首先編譯發(fā)射源程序,然后在keil上生成發(fā)射源程序的hex類型文件,并命名為Wireless.hex。接著在keil上接著編譯接收源程序,然后在keil上生成接收源程序的hex類型文件,并命名為jieshou.hex。
4 利用proteus軟件的仿真
將單片機(jī)U1讀入之前生成的Wireless.hex文件,U1讀入Wireless.hex文件后可以執(zhí)行發(fā)射編碼功能。將單片機(jī)U2讀入之前生成的jieshou.hex文件,U2讀入jieshou.hex文件后可以執(zhí)行接收信號譯碼功能。至此,proteus軟件已經(jīng)調(diào)試成功,我們下面來測試仿真情況。
首先是開始仿真時,沒有任何按鍵按下,所有l(wèi)ed燈處于熄滅狀態(tài),紅外發(fā)射裝置沒有信號的發(fā)送和接收;然后按下按鍵“1”,出現(xiàn)led燈1亮;大約2秒后led燈1自動熄滅;接著我們按下按鍵“4”,出現(xiàn)led燈4亮;大約2秒后led燈自動熄滅。此后,對按鍵“2”,“3”分別進(jìn)行了測試,對應(yīng)的led燈分別點(diǎn)亮并在大約2秒后自動熄滅。endprint
5 結(jié)語
本文立足于工業(yè)應(yīng)用,分析了單片機(jī)的工作原理和紅外發(fā)射管的工作原理,對單片機(jī)和紅外發(fā)射管的聯(lián)合應(yīng)用做了很詳盡的分析和設(shè)計,利用仿真軟件,優(yōu)化了本設(shè)計的許多參數(shù),得到了較為滿意的模擬實(shí)驗(yàn)效果。通過實(shí)物的焊接,實(shí)現(xiàn)了利用紅外線對led燈的控制,從而得到了以下結(jié)論:
本研究所建立的紅外控制模型比較合理,設(shè)計模型在仿真軟件下的工作狀態(tài)與實(shí)際狀態(tài)基本一致;紅外接收端的led燈需要串聯(lián)一個1000Ω以下的電阻,如果選擇電阻太大多使led燈無法點(diǎn)亮;紅外發(fā)射程序中,由于是點(diǎn)對點(diǎn)近距離傳輸且發(fā)生錯誤概率低,可以選擇不發(fā)送地址碼,對實(shí)驗(yàn)結(jié)果沒有影響。
參考文獻(xiàn)
[1]周航慈.單片機(jī)應(yīng)用程序設(shè)計技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.
Abstract:In this paper, through the design of a remote control circuit, and the use of 51 series microcontroller and infrared emission related technologies, and ultimately achieve the control button at the transmitter corresponding to the receiving end of the LED lights. This design uses the C language to write the infrared transmitter, including carrier signal generation, data code coding. Then, the receiving program of infrared receiver is written by C language, including signal reception, signal decoding, and lighting of corresponding LED lamp.
Key Words:single chip microcomputer;infrared emission;infrared receiving;LED lampendprint