任務(wù)54紅外遙控解碼_第1頁
任務(wù)54紅外遙控解碼_第2頁
任務(wù)54紅外遙控解碼_第3頁
任務(wù)54紅外遙控解碼_第4頁
任務(wù)54紅外遙控解碼_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、任務(wù)5.4 紅外遙控器解碼5.4.1 任務(wù)介紹紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,成本低,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用,并越來越多的應(yīng)用到計(jì)算機(jī)系統(tǒng)中。本節(jié)的任務(wù)是:通過51單片機(jī)定時(shí)器來捕捉紅外一體化接收頭接收到的遙控編碼,并將遙控編碼輸出到8位LED上。5.4.2 知識(shí)準(zhǔn)備1、 紅外發(fā)射和接收原理紅外遙控系統(tǒng)一般由紅外發(fā)射裝置和紅外接收設(shè)備兩大部分組成。紅外發(fā)射裝置由鍵盤電路、紅外編碼芯片、電源和紅外發(fā)射電路組成。紅外接收設(shè)備由紅外接收電路、紅外解碼芯片、電源和應(yīng)用電路組成。通常為了使信號(hào)能更好的被傳輸,發(fā)送端將基帶二進(jìn)制信

2、號(hào)調(diào)制為脈沖串信號(hào),通過紅外發(fā)射管發(fā)射。常用的有通過脈沖寬度來實(shí)現(xiàn)信號(hào)調(diào)制的脈寬調(diào)制(PWM)和通過脈沖串之間的時(shí)間間隔來實(shí)現(xiàn)信號(hào)調(diào)制的脈時(shí)調(diào)制(PPM)兩種方法。圖5.4.1是紅外遙控接收與發(fā)射示意圖。 圖5.4.1 紅外遙控器收發(fā)示意圖2、調(diào)制與解調(diào)紅外遙控器發(fā)射出的紅外信號(hào)屬于無線信號(hào),為了避免被其它無線信號(hào)干擾,通常需要把發(fā)送的信息(基帶信號(hào))調(diào)制到一定頻率的載波上傳輸,利用載波的不同頻率來避免相互干擾,如我們手機(jī)信號(hào)的載波頻段是900MHz,藍(lán)牙的頻段是2.4GHz,紅外的就是38kHz,保證這些信號(hào)在相同的空間傳輸時(shí)相互之間不干擾。載波頻率為一般在30KHz與60KHz之間,實(shí)際上

3、大多使用的是頻率為38KHz,占空比為1/3的矩形波。(1)調(diào)制紅外遙控器的編碼調(diào)制指的是把編碼后的二進(jìn)制信號(hào)調(diào)制成頻率為頻率為38KHz的間隔脈沖串,相當(dāng)于用二進(jìn)制信號(hào)的編碼乘以頻率為38KHz的脈沖信號(hào)得到的間隔脈沖串,圖5.4.2所示。 圖 5.4.2 紅外信號(hào)的調(diào)制(2)解調(diào)紅外接收頭接收到信號(hào)后,需要將調(diào)制信號(hào)解調(diào),解調(diào)是調(diào)制的逆過程。其過程為當(dāng)接收到調(diào)制信號(hào)時(shí),輸出高電平,否則為低電平。 圖5.4.3 紅外信號(hào)的解調(diào)3、紅外遙控器的編碼紅外遙控的編碼有多種方式,我們的開發(fā)板上配套的紅外遙控器采用PPM編碼,如果5.4.4所示。圖5.4.4 PPM編碼當(dāng)發(fā)射器按鍵按下后, 將發(fā)射一組

4、108ms的編碼脈沖。遙控編碼脈沖由前導(dǎo)碼、16位地址碼(8 位地址碼和位地址碼的反碼)和16位操作碼(8位操作碼和8位操作碼的反碼)組成。每個(gè)遙控器1個(gè)地址碼,這樣可以有效地防止多個(gè)設(shè)備之間的干擾。操作碼是遙控器上按鍵的編碼。反碼用來檢驗(yàn)編碼接收的正確性,防止誤操作,增強(qiáng)系統(tǒng)的可靠性。前導(dǎo)碼是一個(gè)遙控碼的起始部分,由一個(gè)9ms 的高電平(起始碼)和一個(gè)4. 5ms的低電平(結(jié)果碼)組成,作為接受數(shù)據(jù)的準(zhǔn)備脈沖。地址碼和操作碼的編碼格式為:脈寬0. 56ms、周期1.12ms的組合表示二進(jìn)制0;脈寬1.68ms 、周期2. 24ms的組合表示二進(jìn)制的1,如圖5.4.5所示。 圖5.4.5 1和

5、0的編碼格式4、紅外接收頭紅外接收電路通常被廠家集成在一個(gè)元件中,稱為一體化接收頭。一體化接收頭中包含了紅外檢測(cè)二極管、放大管、限幅器、帶通濾波器、積分電路和比較器等。紅需要注意的是紅外接收頭解調(diào)出的編碼與發(fā)射的編碼反相。即發(fā)射的編碼為高電平,則接受的編碼為低電平。紅外一體化接收頭分為電平型和脈沖型。電平型的紅外接收頭,開發(fā)板上使用的紅外接收頭屬于脈沖型,型號(hào)為HS1838外觀如圖5.4.6(a)所示,其引腳定義從左到右分別是OUT、GND、VCC。接口電路如圖5.4.6(b)所示,為了保證電源的穩(wěn)定,輸入電源和VCC之間串如了100歐姆的電阻,同時(shí)在VCC和GND之間加濾波電容。輸出加上拉,

6、上拉電阻選取22K歐姆。 (a) (b) 圖5.4.6 一體化接收頭外觀和電路 5、定時(shí)器測(cè)量脈寬紅外接收頭接收到的編碼與發(fā)送的編碼電平相反,二進(jìn)制0和1的區(qū)別在于高電平時(shí)間長(zhǎng)度不同,0的高電平時(shí)間長(zhǎng)度是0.56ms,1的高電平時(shí)間長(zhǎng)度是1.68ms,而兩者的低電平時(shí)間長(zhǎng)度是相同的,都為0.56ms。要讀取紅外接收頭的編碼,可以從測(cè)量“0”和“1”脈寬(高電平時(shí)間長(zhǎng)度)入手。我們?cè)谥v定時(shí)器0的內(nèi)部構(gòu)造中提到,如果門控位GATE為0,則定時(shí)器的開啟由TR0來決定。如果門控位GATE不為0,則定時(shí)器的開啟不僅需要TR0的參與,還需要中斷引腳(INTn,n為0或1)的參與,圖5.4.7為定時(shí)/計(jì)數(shù)器

7、1的內(nèi)部結(jié)構(gòu)圖。 圖5.4.7 定時(shí)/計(jì)數(shù)器0的內(nèi)部結(jié)構(gòu)框圖當(dāng)門控位GATE為1時(shí),經(jīng)過非門輸出為0,然后再與外中斷引腳()經(jīng)過或門輸出,則或門的輸出為外部中斷引腳()的電平,最后再和TR0經(jīng)過與門的輸出來控制定時(shí)器開關(guān)。由此可見,定時(shí)器的開啟,不僅需要TR0置1,還需要外部中斷引腳變?yōu)楦唠娖?。利?1單片機(jī)的這個(gè)特點(diǎn)可以測(cè)量接在外中斷引腳信號(hào)的脈寬。脈寬測(cè)量的思路如下:當(dāng)外部信號(hào)為低電平時(shí),定時(shí)器關(guān)閉,當(dāng)外部信號(hào)為高電平時(shí),定時(shí)器開始計(jì)時(shí)。當(dāng)外部信號(hào)由高變低時(shí),定時(shí)器停止計(jì)時(shí),同時(shí)觸發(fā)外中斷函數(shù)。在外部中斷服務(wù)函數(shù)中,計(jì)算定時(shí)器測(cè)量的時(shí)間長(zhǎng)度,這個(gè)時(shí)間長(zhǎng)度為外中斷引腳所接信號(hào)的脈寬。5.4.

8、3 任務(wù)實(shí)施圖5.4.8是本程序的工程結(jié)構(gòu)圖:圖5.4.8 工程結(jié)構(gòu)框圖(1)主函數(shù)main.c:#include#includeInfrered.h#includeMicroDefine.h/*函數(shù)名稱:main()*功能 :主函數(shù)*入口參數(shù):無*出口參數(shù):無*說明 :*/void main() DelayMs(200); InfraredInit(); /定時(shí)器測(cè)量脈寬初始化 while(1) if(FlagInfraredGet=1) /捕獲到新的按鍵值 FlagInfraredGet=0; P0=InfraredValue; /將鍵值送往P0口顯示 程序解釋:InfraredInit(

9、)函數(shù)挖成紅外解碼的初始化,實(shí)際上是定時(shí)器0完成脈寬測(cè)量功能的初始化。在大循環(huán)中,如果捕獲到了按鍵值,則將鍵值送往P0口顯示。(2) 紅外測(cè)量模塊Infrared.h:#ifndef _INFRERED_H#define _INFRERED_H#include#includeMicroDefine.h/變量聲明extern bit FlagInfraredGet;extern uchar InfraredValue;/函數(shù)聲明extern void InfraredInit();#endifInfrared.c:#includeInfrered.hbit FlagInfraredGet=0;

10、/捕獲信號(hào)標(biāo)志位uchar InfraredValue=0; /遙控鍵值/*函數(shù)名稱:InfraredInit()*功能 :定時(shí)器測(cè)量脈寬功能初始化*入口參數(shù):無*出口參數(shù):無*說明 :*/void InfraredInit() TMOD=0x09; /定時(shí)器0,GATE=1,C/T=0,M1M0=01; TH0=TL0=0x00; /定時(shí)器0初值為0 TR0=1; /開定時(shí)器0 EX0=1; /開外中斷0 IT0=1; /中斷0下降沿觸發(fā) EA=1; /開總中斷/*函數(shù)名稱:Intr0Init()*功能 :在外部中斷0服務(wù)函數(shù)中完成解碼*入口參數(shù):無*出口參數(shù):無*說明 :*/void In

11、tr0_Isr(void) interrupt 0 uint PulseWidth=0; /脈寬 uchar OriginalCode=0; /操作碼原碼 uchar AntiCode=0; /按鍵碼反碼 static bit FlagStart=0; /捕獲結(jié)果碼標(biāo)志位 static uchar IntrNum=0; /中斷次數(shù) static unsigned long int InfraredDecode=0; /32位的地址碼+操作碼 PulseWidth=(TH04000)&(PulseWidth450)&(PulseWidth800) /脈寬在450-800之間, /則判定為0 In

12、fraredDecode=InfraredDecode1500)&(PulseWidth2000) /脈寬在1500-2000之間 /,則判定為1 InfraredDecode=(InfraredDecode=32) /捕獲32位碼 IntrNum=0; AntiCode=InfraredDecode&0xff; /操作碼反碼 OriginalCode=(InfraredDecode8)&0xff;/操作碼原碼 if(AntiCode+ OriginalCode=0xff) /原碼和反碼互補(bǔ) FlagInfraredGet=1; /紅外遙控捕捉標(biāo)志位置位 InfraredValue=OriginalCode; /紅外遙控鍵值 FlagStart=0; /清空結(jié)果碼標(biāo)志位 程序解釋:(1) 在Infrared_Init()函數(shù)中,配置定時(shí)器和中斷。注意TMOD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論