在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機如何通過捕獲來實現對紅外遙控器解碼

GReq_mcu168 ? 來源:未知 ? 作者:胡薇 ? 2018-05-14 09:11 ? 次閱讀

一、內容提要

上講介紹并應用了單片機動態掃描驅動數碼管,并給出了實例。這一講將重點介紹單片機如何通過捕獲來實現對紅外遙控器解碼。通過該講,讀者可以掌握紅外遙控器的編碼原理以及如何通過單片機對遙控器進行解碼。

二、原理簡介

隨著家用電器、視聽產品的普及,紅外線遙控器已被廣泛使用在各種類型的家電產品上(如遙控開關、智能開關等)。其具有體積小、抗干擾能力強、功耗低、功能強、成本低等特點,在工業設備中也得到廣泛應用。

一般而言,一個通用的紅外遙控系統由發射和接收兩大部分組成,如圖1 所示:

圖1 紅外遙控系統框圖

其中發射部分主要包括鍵盤矩陣、編碼調制、紅外發射管;接收部分包括光、電信號的轉換以及放大、解調、解碼電路。舉例來說,通常我們家電遙控器信號的發射,就是將相應按鍵所對應的控制指令和系統碼( 由0 和1 組成的序列),調制在32~56kHz 范圍內的載波上,然后經放大、驅動紅外發射管將信號發射出去。此外,現在流行的控制方法是應用編/ 解碼專用集成電路芯片來實現(如下文提到的SAA3010 紅外編碼芯片和HS0038 紅外接收頭)。

不同公司的遙控芯片,采用的遙控碼格式也不一樣。在此介紹目前廣泛使用較普遍的兩種,一種是NEC Protocol 的PWM( 脈沖寬度調制) 標準,一種是Philips RC-5 Protocol 的PPM( 脈沖位置調制) 標準。

NEC 標準:遙控載波的頻率為38kHz( 占空比為1:3) ;當某個按鍵按下時,系統首先發射一個完整的全碼,然后經延時再發射一系列簡碼,直到按鍵松開即停止發射。簡碼重復為延時108ms,即兩個引導脈沖上升沿之間的間隔都是108ms。一個完整的全碼如圖2所示。

圖2 NEC標準下的全碼表示

其中,引導碼高電平4.5ms,低電平4.5ms ;用戶碼8 位,數據碼8 位,共32 位;數據0 可用“高電平0.56ms +低電平0.56ms”表示,數據1 可用“高電平0.56ms +低電平1.68ms”表示,如圖3 所示。一個簡碼可等同于引導碼、系統碼位0 的反碼和結束位(0.56ms) 高電平時間總和。

圖3 NEC標準下的數據0和1的表示

PHILIPS 標準:載波頻率為38kHz ;沒有簡碼,點按鍵時,控制碼在1 和0 之間切換,若持續按鍵,則控制碼不變。一個全碼可等同于起始碼、控制碼、系統碼、數據碼的時間總和,如圖4 所示。

圖4 PHILIPS標準下的全碼表示

數據0 用“低電平0. 889ms +高電平0. 889ms”

表示;數據1 用“ 高電平0. 889ms + 低電平0.

889ms”表示(圖5)。連續碼重復延時114ms。

圖5 PHILIPS標準下的數據0和1的表示

在本講中采用的是SAA3010 這款紅外遙控器(見圖6(a)),其符合常見的PHILIPS 標準中的RC-5 編碼格式,其一幀碼序列是由2 位控制碼,1 位翻轉碼,5 為地址碼,6 位數據碼,結束碼組成。其數據位時間長度是1.688ms。連續碼重復延時為108ms,即在每按鍵一直被按下時延時為108ms 再輸出同樣的一幀數據。

圖6 (a) SAA3010遙控器外觀圖 (b) SAA3010的數據位 (c) SAA3010的數據重復周期

從圖6 中可以看出,SAA3010 的位傳送方式是采用雙相位,位1 和位0 的相位正好相反。在解碼時可以用定時采樣的方式進行解碼,一個位采樣二次,分別在位波形的四分之一和四分之三處進行采樣,如位1 用這種方法采樣的值就是0 和1。當然也可以只采樣一次,例如在波形的四分之一處進行采樣,然后定時一個波形的周期再采樣,這樣位1 采樣的值就是0(本講的實例即是采用這種方法)。

三、電路詳解

如圖7 (a) 中所示,紅外接收頭解碼電路非常簡單,采用的是一體化紅外線接收頭,一體化的紅外接收頭將遙控信號的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機識別的TTL 信號,這樣大大簡化了接收電路的復雜程度和電路的設計工作,方便使用。在本講中采用的是紅外一體化接收頭HS0038,其外觀圖如7(b) 所示。其為黑色環氧樹脂封裝,不受日光、熒光燈等光源干擾,內附磁屏蔽,功耗低,靈敏度高。在用小功率發射管發射信號情況下,接收距離可達30m。它能與TTL、COMS 電路兼容。HS0038 為直立側面收光型。它接收紅外信號頻率為38 kHz, 周期約26μs,同時能對信號進行放大、檢波、整形,得到TTL 電平的編碼信號。

圖7 (a) 紅外接收頭解碼電路 (b) HS0038外觀圖

其三個管腳分別是地、電源正、解調信號輸出端。

為了響應速度,紅外接收頭的解碼信號輸出接入到單片機P3.3(外部中斷1)端口上,這樣一旦有紅外解碼信號輸出就可觸發進去中斷。此外,電容C7 用于電源去耦濾波,保證紅外接收頭穩定工作。

四、程序設計

本講設計的核心程序如下:

void time0() interrupt 1 ( 1)

bit in = ~IR_Input; ( 2)

TH0 = 0XFF; ( 3)

TL0 = 0X83; ( 4)

IR_Data[IR_sign] = IR_Data[IR_sign] | in; ( 5)

IR_count++; ( 6)

if(IR_count == 1 || IR_count == 2) ( 7)

{

if(in == 0) ( 8)

{

TR0 = 0; ( 9)

EX1 = 1; ( 10)

return; ( 11)

}

}

if(IR_count == 3) ( 12)

{

IR_sign = 1; ( 13)

}

else if(IR_count == 8) ( 14)

{

if(IR_Data[1] != 0) ( 15)

{

TR0 = 0; ( 16)

EX1 = 1;

return;

}

IR_sign = 2; ( 17)

}

else if(IR_count == 14) ( 18)

{

IR_sign = 3; ( 19)

}

else if(IR_sign == 3) ( 20)

{

TR0 = 0; ( 21)

IR_Success(); ( 22)

return; ( 23)

}

else

IR_Data[IR_sign] = IR_Data[IR_sign] 《 1; ( 24)

程序詳細說明:

(1)定時器中斷0 服務函數,紅外接收頭解碼數據觸發外部中斷1 后,引發定時器中斷,從而進行捕獲解碼。

(2)解碼時, 將載頻部分變為低電平, 即低電平實際為1, 高電平實際為0。

(3)設置定時器0 高八位初值,因為要定時間長度為一個數據位周期。

(4) 設置定時器0 低八位初值。經過實測,SAA3010 的位時間在1.655ms 左右。

(5)將紅外數據放入最低位。

(6)紅外計數沒進一次定時器中斷就加1。

(7)如果當前是第1 次和第2 次進入定時器中斷。

(8)如果此時in 的值為0,即如果發現起始兩位不全是1 的情況。

(9)關閉定時器0。

(10)重新打開外部中斷進行接收。即起始兩位必須都為1。

(11)退出返回。

(12)如果接收完起始位(2 位)和控制位(1 位)。

(13)IR_sign 置1,即將接收到的紅外系統碼放到IR_Data[1] 中。

(14)如果當前計數達到第8 次,即接收完5 位系統碼。

(15)如果接收到的系統碼不為0,即要求系統碼全為0 才正確。

(16)則關閉定時器和重開外部中斷并返回。

(17)IR_sign 置2,將接收到的紅外數據位放到IR_Data[2] 中。

(18)如果當前計數達到第14 次,即接收完6 位數據碼。

(19)IR_sign 置3,表示數據碼接收成功。

(20)如果IR_sign 等于3,即表示如果接收完成。

(21)接收完成,關閉定時器0,不再捕獲。

(22)接收完成后跳轉到執行IR_Success() 函數,進行顯示以及重新初始化等。

(23)返回。

(24)將數據左移一位, 以便將一下位數據并于最低位。

五、調試要點與實驗現象

接好硬件,通過冷啟動方式將程序所生成的。hex 文件下載到單片機運行后,打開串口調試助手軟件,設置好波特率9600,復位單片機,然后按下SAA3010 遙控器上的相應按鍵,可以觀察到在接收窗口有接收到的數據顯示見圖8,此外電路板上的串行通信指示燈也會閃爍,P0 口也會將所接到的數據顯示在LED 燈上。

值得注意的是,不同紅外遙控器的編碼格式不同,即便是同一型號的紅外遙控器,其發射出來的碼值也可能稍有微小的區別,例如筆者手里所用的SAA3010 紅外遙控器,其位時間實測在1.655ms 左右,而不是在標稱的1.688ms,因此,有條件的讀者可以用示波器或者邏輯分析儀之類的儀表對遙控器發射出來的碼值進行測量,從而相應的修改所捕獲的時間,確保無誤。此外,紅外的穿透能力較弱,例如我們用手遮擋住遙控器的發射頭或者接收頭時,此時難以收到數據或者引入干擾。

六、總結

本講介紹了51 單片機如何利用外部中斷觸發和內部定時器捕獲的方式進行紅外遙控器解碼,現簡單總結如下:

要對紅外遙控器解碼,首先應當知道遙控器的編碼標準,無論是本文中所介紹的NEC 標準和PHILIPS 標準,還是其他編碼格式,因為不了解編碼格式,難以對編碼進行判斷,從而造成解錯碼。其次,由于晶振(如遙控器內部和單片機晶振)本身的不穩定性等,為保證解碼的準確性,應對每位碼長時間經行測量,如利用儀表或者使用單片機本身,從而得到準備結果。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635354
  • 紅外遙控器
    +關注

    關注

    3

    文章

    133

    瀏覽量

    21673

原文標題:跟我學51單片機(六):單片機外部中斷及紅外遙控器解碼

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單片機實現紅外遙控解碼全部資料

    `紅外遙控器解碼并對電器進行遙控一直是廣大單片機愛好者的一個心愿。自己動手實現
    發表于 08-12 10:16

    如何讓紅外遙控器控制單片機

    各位大神 ,求助 我有紅外遙控器紅外線接收模塊stc52單片機 就是不知道如何將三者聯系起來并通過
    發表于 04-23 17:11

    如何實現單片機解碼紅外遙控器,并且重新編碼轉發?

    將升降儀自帶的紅外遙控器發射信號解碼,然后用單片機寫程序控制升降儀運行。因為我不想使用遙控器按鍵,我想
    發表于 03-31 15:47

    紅外遙控器單片機的硬件接口及軟件解碼方法

    通過對紅外遙控器各按鍵發送脈沖波形的分析可以識別碼型,從而為軟件解碼提供依據。本文以實例介紹紅外遙控器
    發表于 04-16 10:51 ?92次下載

    紅外遙控器軟件解碼及其應用

    通過對紅外遙控器各按鍵發送脈沖波形的分析可以識別碼型,從而為軟件解碼提供依據。本文以實例介紹紅外遙控器
    發表于 05-14 16:08 ?50次下載

    紅外遙控器單片機的硬件接口的設計

    紅外遙控系統設計及應用:本文介紹了紅外遙控系統的設計,紅外遙控器
    發表于 05-24 01:34 ?279次下載

    紅外遙控器軟件解碼及其應用

    通過對紅外遙控器各按鍵發送沖波形的分析可以識別碼型,從而為軟件解碼提供依據。本文以實例介紹紅外遙控器
    發表于 07-19 17:46 ?116次下載

    基于單片機系統的紅外遙控器應用

    摘要:本文介紹紅外遙控器單片機的硬件接口,并從原理出發給出軟件解碼的方法。通過軟件程序對紅外
    發表于 08-16 09:26 ?247次下載

    基于單片機紅外遙控器解碼器的設計

    基于單片機紅外遙控器解碼器的設計 TC9012F是一種通用型紅外遙控信號發送用CMOS大規模
    發表于 03-18 15:15 ?2814次閱讀
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b><b class='flag-5'>解碼器</b>的設計

    51單片機解碼紅外遙控器原理介紹

    紅外解碼的一般原理,51單片機紅外遙控接收的原理圖
    發表于 11-16 17:47 ?90次下載

    單片機解碼紅外遙控器

    本文以TC9012編碼芯片的遙控器為例,談談如何用常用的51系統單片機進行遙控解碼
    發表于 03-30 17:02 ?6次下載

    紅外遙控器編碼大全

    幫助大家更好的理解單片機紅外遙控器編程,對紅外編程更加深刻理解
    發表于 07-13 16:12 ?8次下載

    如何使用單片機實現紅外接收遙控器解碼

    本文檔的主要內容詳細介紹的是如何使用單片機實現紅外接收遙控器解碼
    發表于 05-29 17:56 ?23次下載
    如何使用<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>紅外</b>接收<b class='flag-5'>遙控器</b>的<b class='flag-5'>解碼</b>

    基于單片機系統的紅外遙控器的應用程序

    紅外遙控器由于其體積小、功耗低、功能強、成本低的特點,已經在家電產品設備中廣泛應用。現代智能化儀器儀表系統、工業設備中的控制輸入也較多地使用紅外遙控器。本文給出
    發表于 07-15 15:06 ?5085次閱讀
    基于<b class='flag-5'>單片機</b>系統的<b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>的應用程序

    基于紅外遙控的門禁系統設計

    本設計要求使用紅外遙控器控制控制步進電機的轉動,從而達到開門效果。通過51單片機設定密碼鎖,并對紅外
    發表于 11-17 11:27 ?31次下載
    基于<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>的門禁系統設計
    主站蜘蛛池模板: 狠狠狠狠狠狠| 中文在线免费看影视| 亚洲国产美女精品久久| 国产成人精品影视| 亚洲最大成人在线| 久久天堂网| 久久人人干| 中国xxxxx高清免费看视频| 免费一级特黄a| 手机福利在线观看| 色噜噜狠狠大色综合| 欧美激情亚洲色图| 视频免费在线| 久久婷婷婷| 精品三级国产精品经典三| 久久久久久人精品免费费看| 99热国内精品| 国产性片在线| 456成人网| 特级毛片aaaa级毛片免费| ts人妖在线观看| 69日本xxxxxxxx59| 欧美透逼视频| 美女牲交毛片一级视频| 最近2018中文字幕免费看在线| 久久国产精品亚洲综合| 国产亚洲精品aa在线观看| 亚洲男同tv| fc2 ppv sss级素人美女| h在线免费观看| 欧洲性freefree大白屁股| 去毛片| 一个色亚洲| ts 人妖 另类 在线| 亚洲系列中文字幕一区二区| 毛片在线播放网站| 成人黄色在线| 人人插人人插| 国产午夜在线观看视频播放| 天使色| 热九九精品|