哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳細(xì)解讀紅外遙控解碼

工程師鄧生 ? 來(lái)源:云創(chuàng)硬見 ? 作者:云創(chuàng)硬見 ? 2020-01-16 17:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

紅外遙控是我們現(xiàn)實(shí)生活中必不可少的一員。遙控,顧名思義即在遙遠(yuǎn)的地方進(jìn)行控制,其實(shí)也就是說(shuō)遠(yuǎn)程通信。紅外遙控就是以紅外線為傳輸介質(zhì)的遙控。

紅外遙控器是怎么工作的?其實(shí)它內(nèi)部就是有一個(gè)單片機(jī),單片機(jī)的I/O口控制一個(gè)紅外LED燈(當(dāng)然一般會(huì)加外部放大電路以增大傳輸距離),在內(nèi)部編碼后發(fā)送出去,然后電視或者空調(diào)之類的可以用紅外遙控控制的電器在接收到紅外信號(hào)后就會(huì)進(jìn)行解碼,并根據(jù)制定好的協(xié)議執(zhí)行特定動(dòng)作,比如電視可能換臺(tái)、調(diào)節(jié)音量等。現(xiàn)在有的手機(jī)就帶有紅外遙控功能,其實(shí)也是用單片機(jī)的功能實(shí)現(xiàn)的。

紅外遙控解碼

有的時(shí)候,我們希望模擬一些遙控器的功能,這時(shí)候就要對(duì)這些遙控器的數(shù)據(jù)進(jìn)行解碼。

在進(jìn)行解碼前,我們先來(lái)了解一下紅外編碼。紅外編碼有很多種,最常用的編碼是NEC編碼。NEC格式的編碼如下:

詳細(xì)解讀紅外遙控解碼

NEC格式的紅外編碼是連續(xù)的32位二進(jìn)制碼組。32位二進(jìn)制碼組之前的引導(dǎo)碼,用于區(qū)分每次的傳輸;在起始碼之后的才是32位二進(jìn)制碼組,其中8位用戶識(shí)別碼和8位反碼(反碼主要用于)校驗(yàn),用戶識(shí)別碼的作用主要是區(qū)分不同品牌的遙控器;接著就是8位操作碼和反碼,用于表示哪個(gè)按鍵被按下。

NEC格式的編碼除引導(dǎo)碼和起始碼外,用于交互數(shù)據(jù)的信息采用脈寬調(diào)制的串行碼,在38kHz的載波下,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如下所示:

了解了紅外編碼,就可以進(jìn)行紅外解碼了。

實(shí)現(xiàn)方法

一般,進(jìn)行紅外解碼我們需要先將接受到的有效信號(hào)與外界環(huán)境的干擾信號(hào)分離開,這就是載波的作用?,F(xiàn)在市面上有很多一體化紅外接收頭,內(nèi)部是紅外接收二極管 +放大電路 +解調(diào)器。當(dāng)接收到紅外信號(hào)后,先將其放大,然后把38kHz的信號(hào)保留下來(lái)。需要注意的是一般一體化紅外接收頭接收到信號(hào)時(shí)輸出是低電平,沒(méi)有接收信號(hào)時(shí)是高電平。

上面是常用紅外接收頭的引腳,“OUT”腳接單片機(jī)的I/O口,“-”腳接電源負(fù)極,“+”腳接電源正極。

接好電路,就要進(jìn)行解碼工作了.其實(shí)解碼工作主要是識(shí)別引導(dǎo)碼,還有數(shù)據(jù)“0”“1”。我們看波形圖,只要識(shí)別紅外接收頭“OUT”引腳高低電平持續(xù)的時(shí)間就可以了。這個(gè)可以用定時(shí)器中斷完成,也可以用延時(shí)來(lái)判斷。由于只完成解碼工作,我們就用延時(shí)的方法更方便。

首先,紅外接收頭沒(méi)有接到信號(hào)時(shí)是高電平,等待其變低。之后,每隔900us測(cè)量一次,若在10次內(nèi)電平變高,說(shuō)明這不是引導(dǎo)碼,退出重新開始;若10次內(nèi)并沒(méi)有變高,說(shuō)明這就是引導(dǎo)碼,繼續(xù)下一步。接著可以不判斷起始碼,就是直接等待引腳電平變高再變低,就可以接收數(shù)據(jù)了。

接收數(shù)據(jù),就是進(jìn)行判斷“0”和“1”。從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。

每一位“0”或者“1”在接收頭接收信號(hào)即低電平的時(shí)間都是一樣的,直接等待低電平過(guò)去,在高電平時(shí)延時(shí)600us,如果600us時(shí)還是高電平,說(shuō)明是“1”;如果是低電平即高電平過(guò)去了,說(shuō)明是“0”。將這些數(shù)據(jù)結(jié)合到一起,就是接收到的編碼了。

將單片機(jī)的串口與電腦接好,就可以在串口顯示我們讀到的紅外遙控?cái)?shù)據(jù)了。

實(shí)現(xiàn)代碼:

#include <reg52.h>

// --- 紅外接收一體化輸出口 ----------------------------------

sbit IR_Out = P3^2;

bit START_Flag = 0;

bit BOOT_REPEATING_CODE_Flag = 0;

unsigned char DATA[4] = {0};

bdata unsigned char TEMP_BIT;

sbit B0 = TEMP_BIT^0;

sbit B1 = TEMP_BIT^1;

sbit B2 = TEMP_BIT^2;

sbit B3 = TEMP_BIT^3;

sbit B4 = TEMP_BIT^4;

sbit B5 = TEMP_BIT^5;

sbit B6 = TEMP_BIT^6;

sbit B7 = TEMP_BIT^7;

// --- 有無(wú)遙控信號(hào)判斷函數(shù) ----------------------------------

bit START_Judge();

// --- 連發(fā)碼判斷函數(shù) ----------------------------------------

bit BOOT_REPEATING_CODE_Judge();

// --- "0"和"1"識(shí)別 ------------------------------------------

bit H_L_LEVEL_Judge();

bit START_Judge()

bit TEMP_Flag = 1;

unsigned char i = 0;

//在正常無(wú)遙控信號(hào)時(shí),一體化紅外接收頭輸出是高電平,程序一直在循環(huán)。

while ( IR_Out == 1);

//重復(fù)10次,目的是檢測(cè)在6876~8352微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序

for(i =0;i <9; i++)

DELAY_Us(800); // 測(cè)試實(shí)際延時(shí)約為764~928us

if ( IR_Out == 1 )

TEMP_Flag = 0;

break;

return TEMP_Flag;

bit BOOT_REPEATING_CODE_Judge()

bit TEMP_Flag = 1;

while( IR_Out == 0 ) ; // 等待高電平避開9毫秒低電平引導(dǎo)脈沖

DELAY_M(jìn)s(1); // 測(cè)試實(shí)際延時(shí)約為1.007ms

DELAY_M(jìn)s(1); // 測(cè)試實(shí)際延時(shí)約為1.007ms

DELAY_Us(200); // 0.086ms

DELAY_Us(200); // 0.086ms

DELAY_Us(200); // 0.086ms

// 共計(jì)2.272ms

if( IR_Out == 0 )

TEMP_Flag = 1; // 是連發(fā)碼

else

TEMP_Flag = 0; // 不是連發(fā)碼,而是引導(dǎo)碼

return TEMP_Flag;

bit H_L_LEVEL_Judge()

while( IR_Out == 0 ); // 等待地址碼第一位的高電平信號(hào)

DELAY_Us(800); // 測(cè)試實(shí)際延時(shí)約為764~928us

if ( IR_Out == 1)

DELAY_M(jìn)s(1); // 測(cè)試實(shí)際延時(shí)約為1.007ms

return 1;

else

return 0;

// --- 串口初始化 --------------------------------------------

void UART_Initial();

void DELAY_Us(unsigned int Us)

unsigned int x;

for(x = 0; x <= (Us/200-1); x++);

void DELAY_M(jìn)s(unsigned int Ms)

unsigned int x,y;

for(x = 0; x <= (Ms-1); x++)

for(y = 0; y <= 120; y++);

void main()

unsigned char i;

UART_Initial();

IR_Out = 1;

while(1)

START_Flag = START_Judge();

BOOT_REPEATING_CODE_Flag = BOOT_REPEATING_CODE_Judge();

if ( START_Flag && !BOOT_REPEATING_CODE_Flag )

for(i =0;i <4; i++)

B0 = H_L_LEVEL_Judge();

B1 = H_L_LEVEL_Judge();

B2 = H_L_LEVEL_Judge();

B3 = H_L_LEVEL_Judge();

B4 = H_L_LEVEL_Judge();

B5 = H_L_LEVEL_Judge();

B6 = H_L_LEVEL_Judge();

B7 = H_L_LEVEL_Judge();

DATA[i] = TEMP_BIT;

for(i =0;i <4; i++)

SBUF = DATA[i];

while( TI == 0 );

TI = 0;

void UART_Initial()

SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收

TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload

TH1 = 0xFD; // TH1: reload value for 9600 baud @

// 11.0592MHz

TR1 = 1; // TR1: timer 1 run

EA = 0; // 關(guān)閉總中斷

ES = 0; // 關(guān)閉串口中斷

1、紅外遙控的編碼不只NEC,還有很多也有廣泛應(yīng)用如RC-5,RC-6等。

2、上面的代碼所用指令是STC 89C52單片機(jī),如需用其它芯片請(qǐng)另行更改。
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 紅外遙控解碼
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1099
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MAXQ617:紅外遙控片上系統(tǒng)的卓越之選

    MAXQ617:紅外遙控片上系統(tǒng)的卓越之選 在電子設(shè)計(jì)領(lǐng)域,低功耗、高性能的芯片一直是工程師們追求的目標(biāo)。今天,我們就來(lái)深入了解一款專為低功耗應(yīng)用設(shè)計(jì)的芯片——MAXQ617 紅外遙控
    的頭像 發(fā)表于 03-27 17:25 ?530次閱讀

    紅外遙控 NEC 解碼終于搞懂了!看完直接抄作業(yè)

    從波形抓取到按鍵映射,手把手教你搞定NEC協(xié)議解碼紅外遙控解碼的朋友,有沒(méi)有過(guò)這種絕望:邏輯分析儀抓了一堆波形,看著像NEC協(xié)議,就是解不出正確的地址和按鍵?定時(shí)器配置了無(wú)數(shù)次,要么
    的頭像 發(fā)表于 03-26 19:34 ?232次閱讀
    <b class='flag-5'>紅外</b><b class='flag-5'>遙控</b> NEC <b class='flag-5'>解碼</b>終于搞懂了!看完直接抄作業(yè)

    WT2003HX語(yǔ)音芯片:內(nèi)置IIC控制器及紅外遙控解碼器,如何成為音頻IC領(lǐng)域的全能選手?

    音頻ic方案中,廣州唯創(chuàng)電子推出的WT2003HX語(yǔ)音芯片通過(guò)將IIC控制器、紅外遙控解碼器及雙16位異步分頻器定時(shí)器整合于一身,為電子產(chǎn)品帶來(lái)了前所未有的功能集成度
    的頭像 發(fā)表于 03-19 09:14 ?180次閱讀
    WT2003HX語(yǔ)音芯片:內(nèi)置IIC控制器及<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b><b class='flag-5'>解碼</b>器,如何成為音頻IC領(lǐng)域的全能選手?

    MCP2120紅外編碼器/解碼器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    MCP2120紅外編碼器/解碼器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子設(shè)計(jì)領(lǐng)域,紅外通信技術(shù)憑借其低成本、高可靠性等優(yōu)勢(shì),在眾多應(yīng)用場(chǎng)景中得到了廣泛應(yīng)用。Microchip的MCP2120紅外
    的頭像 發(fā)表于 02-04 16:05 ?422次閱讀

    基于STM32F103C8T6對(duì)紅外遙控信號(hào)解碼 實(shí)現(xiàn)HX1838接收頭接收數(shù)據(jù)

    的數(shù)據(jù)編碼格式,通過(guò)PWM調(diào)制實(shí)現(xiàn)0和1的傳輸,包含同步碼、地址碼和控制碼等結(jié)構(gòu)。最后給出了基于STM32F103的紅外解碼實(shí)現(xiàn)方案,包括硬件連接和關(guān)鍵代碼解析,展示了如何通過(guò)定時(shí)器捕獲邊沿信號(hào)來(lái)解析紅外
    的頭像 發(fā)表于 01-30 19:53 ?2689次閱讀
    基于STM32F103C8T6對(duì)<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>信號(hào)<b class='flag-5'>解碼</b> 實(shí)現(xiàn)HX1838接收頭接收數(shù)據(jù)

    使用CW32F003和SYN531R做一個(gè)315M遙控器接收解碼的小板子,無(wú)法工作是什么原因?

    想使用CW32F003系列的芯片和SYN531R接收芯片做一個(gè)315M遙控器接收解碼的小板子,我在網(wǎng)上搜了一下315M解碼的協(xié)議,做出來(lái)后發(fā)現(xiàn)無(wú)法工作,有沒(méi)有大佬做過(guò)這方面的開發(fā),能否推薦個(gè)參考資料參考一下,謝謝!
    發(fā)表于 11-20 08:00

    紅外光譜技術(shù)應(yīng)用與原理分析

    紅外光而產(chǎn)生振動(dòng)能級(jí)躍遷。技術(shù)原理紅外光譜分析測(cè)試的準(zhǔn)確性和可靠性,紅外光譜分析的本質(zhì)是解讀分子振動(dòng)的特征信息。當(dāng)一束紅外光穿過(guò)樣品時(shí),分
    的頭像 發(fā)表于 11-11 15:21 ?1191次閱讀
    <b class='flag-5'>紅外</b>光譜技術(shù)應(yīng)用與原理分析

    智能語(yǔ)音遙控器低功耗BLE藍(lán)牙芯片

    隨著AI技術(shù)持續(xù)進(jìn)步,支持語(yǔ)音識(shí)別功能的電視機(jī)、機(jī)頂盒等設(shè)備已廣泛普及。在這一趨勢(shì)下,搭載BLE藍(lán)牙芯片的語(yǔ)音遙控器逐步替代傳統(tǒng)紅外遙控,成為新一代電視產(chǎn)品的標(biāo)準(zhǔn)配件。從紅外到射頻,從
    的頭像 發(fā)表于 11-07 11:20 ?725次閱讀

    力芯微紅外遙控IC芯片ET4008MTC是家用遙控器的智能芯選

    在現(xiàn)代家居生活中,家用遙控器是我們與家電設(shè)備交互的重要工具。從電視、空調(diào)到風(fēng)扇、音響,遙控器的存在極大地提升了我們生活的便利性。而力芯微紅外遙控IC芯片ET4008MTC,憑借其高性能
    的頭像 發(fā)表于 10-23 14:41 ?787次閱讀
    力芯微<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>IC芯片ET4008MTC是家用<b class='flag-5'>遙控</b>器的智能芯選

    【項(xiàng)目實(shí)戰(zhàn)】基于WS63的鴻蒙星閃紅外遙控車(循跡、超聲波避障、遠(yuǎn)程控制、星閃/紅外遙控)有教程代碼

    的鴻蒙星閃紅外遙控車,正好把這些零散技術(shù)串成閉環(huán),還附全套教程,幫你快速把“單個(gè)知識(shí)點(diǎn)”變成“能跑的物聯(lián)網(wǎng)系統(tǒng)”。項(xiàng)目硬件清單鴻蒙星閃智能小車項(xiàng)目使用的是紅框部分
    的頭像 發(fā)表于 09-10 16:01 ?1210次閱讀
    【項(xiàng)目實(shí)戰(zhàn)】基于WS63的鴻蒙星閃<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>車(循跡、超聲波避障、遠(yuǎn)程控制、星閃/<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>)有教程代碼

    【選型】常見的遙控開關(guān)控制協(xié)議,看看哪種適合你?

    遙控開關(guān),是一種通過(guò)無(wú)線信號(hào)非接觸式遠(yuǎn)程控制電路通斷的裝置,今天我們一起聊一聊常見的無(wú)線信號(hào)類別,看看哪種更適合你?1.紅外遙控紅外遙控,
    的頭像 發(fā)表于 07-17 19:34 ?1913次閱讀
    【選型】常見的<b class='flag-5'>遙控</b>開關(guān)控制協(xié)議,看看哪種適合你?

    cyw20829能不能使用紅外解碼嗎?

    cyw20829能不能使用紅外解碼
    發(fā)表于 07-03 06:49

    藍(lán)牙語(yǔ)音遙控器:智能家居的智慧控制核心

    隨著智能家居的蓬勃發(fā)展,藍(lán)牙語(yǔ)音遙控器憑借其便捷的操作和智能交互體驗(yàn),正迅速取代傳統(tǒng)紅外遙控器,成為智能電視、機(jī)頂盒等設(shè)備的首選控制工具。 ? ? 相較于需對(duì)準(zhǔn)設(shè)備的紅外
    的頭像 發(fā)表于 06-06 14:15 ?2646次閱讀
    藍(lán)牙語(yǔ)音<b class='flag-5'>遙控</b>器:智能家居的智慧控制核心

    單片機(jī)實(shí)例項(xiàng)目:NEC紅外線協(xié)議編碼與解碼

    單片機(jī)實(shí)例項(xiàng)目:NEC紅外線協(xié)議編碼與解碼,推薦下載!
    發(fā)表于 06-03 22:03

    藍(lán)牙無(wú)線遙控小車

    藍(lán)牙無(wú)線遙控小車? ?各種無(wú)線遙控都有各自的優(yōu)缺點(diǎn)和用途,我們稍做對(duì)比:1.紅外遙控,需要固定方向,不能有物體遮擋,遙控距離一般在8米以內(nèi),
    發(fā)表于 04-19 17:08 ?3次下載
    金昌市| 佛山市| 永福县| 堆龙德庆县| 囊谦县| 资源县| 定南县| 湘西| 临桂县| 建平县| 永寿县| 砀山县| 吐鲁番市| 鄢陵县| 视频| 景德镇市| 博乐市| 邵武市| 绥江县| 准格尔旗| 绥阳县| 临城县| 安远县| 云南省| 丰台区| 鱼台县| 桐城市| 宾阳县| 同德县| 德惠市| 泗水县| 云安县| 凤翔县| 手游| 射阳县| 鹿邑县| 两当县| 太仆寺旗| 郧西县| 石门县| 德昌县|