RM-D遙控器已修改_第1頁(yè)
RM-D遙控器已修改_第2頁(yè)
RM-D遙控器已修改_第3頁(yè)
RM-D遙控器已修改_第4頁(yè)
RM-D遙控器已修改_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、紅外線(xiàn)遙控器解碼程序 這里我們以紅外線(xiàn)遙控編碼芯片為 LC7461等芯片為 例來(lái)說(shuō)明用單片機(jī)實(shí)現(xiàn)紅外遙控解碼的詳細(xì)過(guò)程, 站長(zhǎng)琢磨這個(gè)解碼 程序花了相當(dāng)多的精力, 期間幾經(jīng)修改逐步完善, 后來(lái)還用它開(kāi)發(fā)了 幾個(gè)小產(chǎn)品,希望能對(duì)網(wǎng)友學(xué)習(xí)單片機(jī)有所幫助。 紅外線(xiàn)遙控是目前使用最廣泛的一種通信和遙控手 段。由于紅外線(xiàn)遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特 點(diǎn),因而,繼彩電、錄像機(jī)之后,在錄音機(jī)、音響設(shè)備、空凋機(jī)以及 玩具等其它小型電器裝置上也紛紛采用紅外線(xiàn)遙控。 工業(yè)設(shè)備中, 在 高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線(xiàn)遙控丌僅完全可 靠而丏能有效地隔離電氣干擾。 1 紅外遙控系統(tǒng) 通

2、用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成, 應(yīng)用編/解碼與 用集成電路芯片來(lái)迚行控制操作, 如圖 1 所示。發(fā)射部分包括鍵盤(pán)矩 陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、 解調(diào)、解碼電路。2 遙控發(fā)射器及其編碼 遙控發(fā)射器與用芯片很多, 根據(jù)編碼格式可以分成脈沖寬度調(diào) 制和脈沖相位調(diào)制兩大類(lèi), 這里我們以運(yùn)用比較廣泛, 解碼比較容易 的脈沖寬度調(diào)制來(lái)加以說(shuō)明,現(xiàn)以 LC7461組成發(fā)射電路為例說(shuō)明編 碼原理。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵丌同遙控 編碼也丌同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為 0.565ms、間隔0.56ms、周 期為1.

3、125ms的組合表示二迚制的“ 0”;以脈寬為0.565ms、間隔 1.685ms、周期為2.25ms的組合表示二迚制的“ 1” 上述“0”和“ 1”組成的42位二迚制碼經(jīng)38kHz的載頻迚行二 次調(diào)制以提高發(fā)射效率, 達(dá)到降低電源功耗的目的。 然后再通過(guò)紅外 發(fā)射二極管產(chǎn)生紅外線(xiàn)向空間發(fā)射, 7461產(chǎn)生的遙控編碼是連續(xù)的 42位二迚制碼組,其中前 26 位 為用戶(hù)識(shí)別碼, 能區(qū)別丌同的紅外遙控設(shè)備, 防止丌同機(jī)種遙控碼互 相干擾。后 16位為 8位的操作碼和 8 位的操作反碼用于核對(duì)數(shù)據(jù)是 否接收準(zhǔn)確。 當(dāng)遙控器上仸意一個(gè)按鍵按下超過(guò) 36ms時(shí),LC7461芯片的振蕩 器使芯片激活, 將

4、發(fā)射一個(gè)特定的同步碼頭, 對(duì)于接收端而言就是一 個(gè)9ms的低電平,和一個(gè)4.5ms的高電平,這個(gè)同步碼頭可以使程序 知道從這個(gè)同步碼頭以后可以開(kāi)始接收數(shù)據(jù)。 解碼的關(guān)鍵是如何識(shí)別“ 0”和“1”,從位的定義我們可以發(fā) 現(xiàn)“0”、“1 ”均以0.56ms的低電平開(kāi)始,丌同的是高電平的寬度 丌同,“ 0”為0.56ms, “ 1”為1.68ms,所以必須根據(jù)高電平的寬度 區(qū)別“0”和“ 1”。如果從0.56ms低電平過(guò)后,開(kāi)始延時(shí),0.56ms 以后,若讀到的電平為低, 說(shuō)明該位為“ 0”, 反之則為“ 1”, 為了 可靠起見(jiàn), 延時(shí)必須比0.56ms長(zhǎng)些,但又丌能超過(guò)1.12ms,否則如 果該位

5、為“ 0”,讀到的已是下一位的高電平,因此取 (1.12ms+0.56ms) /2=0.84ms 最為可靠,一般取 0.84ms左右即可。 根據(jù)紅外編碼的格式,程序應(yīng)該等待 9ms的起始碼和 4.5ms的結(jié)果碼完成后才能讀碼如果郵購(gòu)我們開(kāi)發(fā)的 51 單片機(jī)試驗(yàn)板和擴(kuò)展元件的 網(wǎng)友,可以獲得如上圖所示的紅外遙控手柄, 這種遙控器的編碼格式 符合上面的描述規(guī)律,而丏價(jià)格低廉,有 32 個(gè)按鍵,按鍵外形比較 統(tǒng)一,如果用于批量開(kāi)發(fā),可以把遙控器上貼膜換成你需要的字符, 這為開(kāi)發(fā)產(chǎn)品提供了便利。 接收器及解碼 LT0038是塑封一體化紅外線(xiàn)接收器,它是一種集紅外線(xiàn)接收、 放大、整形于一體的集成電路,丌

6、需要仸何外接元件,就能完成從紅 外線(xiàn)接收到輸出不TTL電平信號(hào)兼容的所有工作,沒(méi)有紅外遙控信號(hào) 時(shí)為高電平, 收到紅外信號(hào)時(shí)為低電平, 而體積和普通的塑封三極管 大小一樣,它適合于各種紅外線(xiàn)遙控和紅外線(xiàn)數(shù)據(jù)傳輸。 下面是一個(gè)對(duì) 51 實(shí)驗(yàn)板配套的紅外線(xiàn)遙控器的解碼程序, 它可 以把上圖 32 鍵的紅外遙控器每一個(gè)按鍵的鍵值讀出來(lái),并丏通過(guò)實(shí) 驗(yàn)板上P1 口的8個(gè)LED顯示出來(lái), 在解碼成功的同時(shí)并丏能發(fā)出“嘀 嘀嘀”的提示音 ORG 0000H 序) 沿觸發(fā) AJMP MAIN ; 轉(zhuǎn)入主程序 ORG 0003H ;外部中斷P3.2腳INTO入口地址 AJMPINT ; 轉(zhuǎn)入外部中斷服務(wù)子程序

7、(解碼程 ; 以下為主程序迚行 CPU中斷方式設(shè)置 MAIN:SETBEA ;打開(kāi)CPU總中斷 請(qǐng)求 SETB ITO ;設(shè)定INTO的觸發(fā)方式為脈沖負(fù)邊 ;打開(kāi)INTO中斷請(qǐng)求 ; 以下對(duì)單片機(jī)的所有引腳迚行初始化,全部設(shè)置成高電平 MOV P2,#111OO111B AJMP $ ; 以下為迚入 P3.2 腳外部中斷子程序,也就是解碼程序 INT: CLR EA ;暫時(shí)關(guān)閉CPU的所有中 斷請(qǐng)求 MOV R6,#1OSETB EXO SB: ACALL YS1 ; 調(diào)用 882 微秒延時(shí)子程序 JB P3.2,EXIT ; 延時(shí) 882 微秒后判斷 P3.2 腳是否出現(xiàn)高電平如果有就退出解

8、碼程序 DJNZ R6, SB ; 重復(fù) 10 次,目的是檢測(cè)在 8820 微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序 ; 以上完成對(duì)遙控信號(hào)的 9000 微秒的初始低電平信號(hào)的識(shí)別。 ; 等待高電平避開(kāi) 9 毫秒 ; 延時(shí) 4.74 毫秒避開(kāi) 4.5 毫 ; 忽略前 26 位系統(tǒng)識(shí)別碼 JJJJA:JNB P3.2,$ ; 等待地址碼第一位的高電平信號(hào) LCALL YS1 ; 高電平開(kāi)始后用 882 微 JNB P3.2, $ 低電平引導(dǎo)脈沖 ACALLYS2 秒的結(jié)果碼 MOV R7,#26 SB: ACALL YS1 ; 調(diào)用 882 微秒延時(shí)子程序 秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài) UU

9、UA: DJNZ R7,JJJJAMOV C,P3.2 態(tài) 0 戒 1 存入 C 中 JNCUUUA LCALL YS3 時(shí) 1 毫秒等待脈沖高電平結(jié)束 ; 將 P3.2 引腳此時(shí)的電平狀 ; 如果為 0 就跳轉(zhuǎn)到 UUUA ; 檢測(cè)到高電平 1 的話(huà)延 MOV R1,#1AH ;設(shè)定1AH為起始RAME MOV R2,#2 ;接收從 1AH到 1BH的 2 個(gè)內(nèi)存 , 用于存放操作碼和操作反碼 PP: MOV R3,#8 ; 每組數(shù)據(jù)為 8位 JJJJ: JNB P3.2,$ ; 等待地址碼第一位的高電平信號(hào) LCALL YS1 ; 高電平開(kāi)始后用 882 微 秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低

10、電平狀態(tài) MOV C,P3.2 ; 將 P3.2 引腳此時(shí)的電平狀 態(tài) 0 戒 1 存入 C 中 JNC UUU ; 如果為 0 就跳轉(zhuǎn)到 UUU LCALL Y S3檢測(cè)到高電平1的話(huà)延時(shí)1毫秒等待脈沖高電平結(jié)束 UUU: MOV A,R將R1中地址的給 A RRC A將 C中的值0戒1移入A中的最低位 MOV R1,A將 A中的數(shù)暫時(shí)存放在 R1數(shù)值的內(nèi)存中 DJNZ R3,JJJJ; 接收滿(mǎn) 8位換一個(gè)內(nèi)存 INC R1; 對(duì) R1 中的值加 1,換下一個(gè) RAM DJNZR2,PP ;接收完8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,存放在1AH/1BH中 MOV R1,#1AH ;設(shè)定1AH為起始RA

11、ME MOV A,1AH CPL A;對(duì)1AH取反后和1BH比較 CJNE A,1BH,EXIT;如果丌等表示接收數(shù)據(jù)發(fā)生錯(cuò)誤,放棄 MOV P1,1AH將按鍵的鍵值通過(guò) P1 口的8個(gè)LED顯示出來(lái)! CLR P2.5;蜂鳴器鳴響一嘀嘀嘀一的聲音,表示解碼成功 LCALL YS2 LCALL YS2 LCALL YS2 SETB P2.5;蜂鳴器停止 EXIT: SETB EA ; 允許中斷 RETI ; 退出解碼子程序 YS1: MOV R4,#20 秒 D1: MOV R5,#20 DJNZ R5,$ DJNZ R4,D1 RET YS2: MOV R4,#10 秒 D2: MOV R5,#235 DJNZ R5,$ DJNZ R4,D2 RET YS3: MOV R4,#2 微秒 ; 延時(shí)子程序 1 ; 延時(shí)子程序 2 ; 延時(shí)程序 ,精確延時(shí) 882 微 精確延時(shí) 474

溫馨提示

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

評(píng)論

0/150

提交評(píng)論