91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2026-03-26 19:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從波形抓取到按鍵映射,手把手教你搞定 NEC 協(xié)議解碼

紅外遙控解碼的朋友,有沒有過(guò)這種絕望:

  • 邏輯分析儀抓了一堆波形,看著像 NEC 協(xié)議,就是解不出正確的地址和按鍵?
  • 定時(shí)器配置了無(wú)數(shù)次,要么捕獲不到邊沿,要么時(shí)序算出來(lái)全錯(cuò)?
  • 好不容易解出數(shù)據(jù),按鍵映射又亂成一鍋粥,按“開關(guān)”出“音量+”?

別慌!NEC 協(xié)議作為紅外遙控里的“通用語(yǔ)言”,其實(shí)邏輯巨簡(jiǎn)單,看完直接抄作業(yè)就能用!


一、NEC 協(xié)議原理:大白話講明白

NEC 協(xié)議的核心是“用脈沖寬度表示 0 和 1”,就像用專屬的摩斯密碼,遙控器和單片機(jī)之間靠這個(gè)密碼傳遞按鍵信息。

一幀數(shù)據(jù)由引導(dǎo)碼、地址碼、地址反碼、數(shù)據(jù)碼、數(shù)據(jù)反碼組成,總共32 位。

關(guān)鍵時(shí)序參數(shù)(38kHz 載波)

類型時(shí)序說(shuō)明

引導(dǎo)碼

9ms 高電平 + 4.5ms 低電平(“敲門磚”,告訴 MCU 要發(fā)數(shù)據(jù)了)

邏輯“0”

562.5μs 高電平 + 562.5μs 低電平,總時(shí)長(zhǎng) 1.125ms

邏輯“1”

562.5μs 高電平 + 1.6875ms 低電平,總時(shí)長(zhǎng) 2.25ms

重復(fù)碼

9ms 高 + 2.25ms 低 + 0.56ms 高(長(zhǎng)按按鍵時(shí)發(fā)送)

數(shù)據(jù)校驗(yàn)邏輯

  • 地址碼 + 地址反碼 =0xFF
  • 數(shù)據(jù)碼 + 數(shù)據(jù)反碼 =0xFF

校驗(yàn)通過(guò)才是有效數(shù)據(jù)。

b00759da-2907-11f1-96ea-92fbcf53809c.png


二、解碼實(shí)現(xiàn)

第一步:精準(zhǔn)捕捉信號(hào),記錄時(shí)間差

最通用的方案:

  • 用單片機(jī)的外部中斷,專門捕捉信號(hào)的下降沿,每來(lái)一次下降沿,就觸發(fā)一次中斷
  • 同時(shí)用一個(gè)定時(shí)器持續(xù)不間斷計(jì)時(shí)
  • 每次中斷觸發(fā)時(shí),記下當(dāng)前的定時(shí)器數(shù)值,和上一次中斷的數(shù)值做減法,就能算出兩次下降沿之間的時(shí)間差

這個(gè)時(shí)間差,就是我們判斷引導(dǎo)碼、邏輯 0、邏輯 1的唯一依據(jù)。只要時(shí)間算準(zhǔn)了,解碼就成功了一大半!


第二步:用狀態(tài)機(jī)一步步解析數(shù)據(jù)

光有時(shí)間差還不夠,我們需要給解碼過(guò)程分階段,就像流水線一樣按順序推進(jìn),避免亂序出錯(cuò)——這就是狀態(tài)機(jī)的核心思路。

大致分為四個(gè)階段:

  1. 空閑狀態(tài):等待信號(hào)到來(lái)
  2. 引導(dǎo)碼狀態(tài):識(shí)別引導(dǎo)碼
  3. 數(shù)據(jù)接收狀態(tài):逐位解析地址和數(shù)據(jù)
  4. 完成狀態(tài):校驗(yàn)并輸出結(jié)果

b018e0b0-2907-11f1-96ea-92fbcf53809c.png


三、按鍵映射實(shí)現(xiàn):一鍵對(duì)應(yīng),再也不會(huì)按錯(cuò)鍵

解出了正確的按鍵數(shù)據(jù)碼,只是第一步。我們最終要的是:“按哪個(gè)鍵,就觸發(fā)對(duì)應(yīng)的功能”——這就是按鍵映射的核心。

實(shí)現(xiàn)起來(lái)特別簡(jiǎn)單,核心就是做一張“按鍵對(duì)應(yīng)表”

  1. 先用邏輯分析儀或調(diào)試好的解碼程序,記錄遙控器各按鍵對(duì)應(yīng)的數(shù)據(jù)碼
  2. 整理成「數(shù)據(jù)碼 → 按鍵功能」固定對(duì)照表,存入單片機(jī)
  3. 每次解碼出有效數(shù)據(jù)碼,即用該碼查表匹配,觸發(fā)對(duì)應(yīng)按鍵功能

b026a4e8-2907-11f1-96ea-92fbcf53809c.jpg


四、調(diào)試避坑技巧

序號(hào)技巧說(shuō)明

邏輯分析儀是神器

采樣率設(shè) 1MHz 以上,直接看波形時(shí)間,比瞎調(diào)定時(shí)器快 10 倍

定時(shí)器分頻要合適

設(shè) 1MHz 計(jì)數(shù)頻率,時(shí)間差直接就是 μs 數(shù),不用換算

紅外接收頭別買錯(cuò)

常用VS1838B是 38kHz 載波,別買成 40kHz 的

反碼校驗(yàn)必須加

過(guò)濾干擾信號(hào),避免解出亂碼

重復(fù)碼單獨(dú)處理

長(zhǎng)按按鍵時(shí)會(huì)發(fā)重復(fù)碼,別當(dāng)成新按鍵

總結(jié)

其實(shí) NEC 解碼的核心,從來(lái)不是復(fù)雜的代碼,而是搞懂時(shí)序的本質(zhì)——把時(shí)間差算準(zhǔn)、把校驗(yàn)做對(duì),剩下的就是水到渠成的事。

哪怕是剛?cè)腴T單片機(jī)的新手,搞懂這一套邏輯,也能一下午就實(shí)現(xiàn)紅外遙控解碼。


小貼士:調(diào)試時(shí)先用邏輯分析儀抓一組已知按鍵的波形,對(duì)照本文的時(shí)序參數(shù),確認(rèn)無(wú)誤后再寫代碼,事半功倍!

聲明:本文內(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)投訴
  • NEC
    NEC
    +關(guān)注

    關(guān)注

    0

    文章

    240

    瀏覽量

    100954
  • 信號(hào)
    +關(guān)注

    關(guān)注

    12

    文章

    2917

    瀏覽量

    80288
  • 紅外遙控
    +關(guān)注

    關(guān)注

    22

    文章

    353

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    這個(gè)NEC紅外遙控怎么解碼???求C51程序代碼。

    `這個(gè)NEC紅外遙控怎么解碼???求C51程序代碼。`
    發(fā)表于 03-24 18:32

    NEC 紅外解碼求助

    本人初學(xué)FPGA,看著教程寫了一個(gè)紅外解碼的例程,仿真能夠通過(guò),可將程序下載到板子上,無(wú)論按遙控器哪個(gè)按鍵,收到總是0。ir_out 引出,直接連接到 ir_in,通過(guò)邏輯分析儀表明收
    發(fā)表于 09-12 08:48

    藍(lán)牙學(xué)習(xí)型紅外遙控器(NEC協(xié)議編解碼

    學(xué)習(xí)型紅外遙控器(NEC協(xié)議編解碼) 單片機(jī):STC89C52RC晶振:11.0592M 波特率:9600編譯環(huán)境:Keil uVision4
    發(fā)表于 02-26 10:34

    紅外遙控NEC協(xié)議介紹

    NEC協(xié)議紅外遙控
    發(fā)表于 12-21 07:51

    如何利用NEC協(xié)議實(shí)現(xiàn)紅外遙控?

    NEC協(xié)議具有什么特征?如何利用NEC協(xié)議實(shí)現(xiàn)紅外遙控
    發(fā)表于 04-19 10:14

    NEC協(xié)議紅外遙控器的相關(guān)資料推薦

    文章目錄NEC 協(xié)議紅外遙控NEC 協(xié)議紅外遙控器家電遙控
    發(fā)表于 12-06 06:24

    STM32 NEC紅外遙控解碼的相關(guān)資料推薦

    STM32 NEC紅外遙控解碼紅外遙控編碼格式一體化紅外
    發(fā)表于 01-25 08:07

    紅外遙控解碼DIY

    紅外遙控解碼DIY,喜歡的朋友可以下載來(lái)學(xué)習(xí)。
    發(fā)表于 01-14 15:29 ?61次下載

    基于STM32的紅外遙控解碼遙控程序解析

    文 本主要包含 兩個(gè)內(nèi)容:一、紅外遙控協(xié)議的的講解;二、解碼程序解析(參考正點(diǎn)原子的代碼) 紅外的介紹、優(yōu)點(diǎn)、缺點(diǎn)就不給大家說(shuō)了,網(wǎng)上書上都有,下面進(jìn)入正題 一、
    發(fā)表于 11-30 01:57 ?5218次閱讀
     基于STM32的<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>和<b class='flag-5'>解碼</b><b class='flag-5'>遙控</b>程序解析

    基于AVR的NEC紅外解碼

    1 摘要 基于AVR的NEC格式紅外解碼解碼。主要是用通過(guò)定時(shí)器和外部中斷兩個(gè)外設(shè)完成解碼功能,全中斷方式
    發(fā)表于 11-15 11:51 ?8次下載
    基于AVR的<b class='flag-5'>NEC</b><b class='flag-5'>紅外</b><b class='flag-5'>解碼</b>

    單片機(jī):NEC 協(xié)議紅外遙控

    文章目錄NEC 協(xié)議紅外遙控NEC 協(xié)議紅外遙控器家電遙控
    發(fā)表于 11-23 18:06 ?31次下載
    單片機(jī):<b class='flag-5'>NEC</b> 協(xié)議<b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>器

    STM32 NEC紅外遙控解碼

    STM32 NEC紅外遙控解碼紅外遙控編碼格式一體化紅外
    發(fā)表于 11-30 14:36 ?31次下載
    STM32 <b class='flag-5'>NEC</b><b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>器<b class='flag-5'>解碼</b>

    紅外遙控器快速編碼解碼NEC

    紅外遙控器快速編碼解碼 NEC解碼模塊 紅外遙控
    發(fā)表于 12-17 17:44 ?24次下載
    <b class='flag-5'>紅外</b><b class='flag-5'>遙控</b>器快速編碼<b class='flag-5'>解碼</b>(<b class='flag-5'>NEC</b>)

    STM32: NEC紅外線協(xié)議解碼(超低成本無(wú)線傳輸方案)

    這是NEC協(xié)議的紅外遙控器: 如果自己手機(jī)沒有紅外遙控器的功能,可以淘寶上買一個(gè)小遙控器來(lái)
    的頭像 發(fā)表于 03-14 09:48 ?6001次閱讀
    STM32: <b class='flag-5'>NEC</b><b class='flag-5'>紅外</b>線協(xié)議<b class='flag-5'>解碼</b>(超低成本無(wú)線傳輸方案)

    Linux驅(qū)動(dòng)開發(fā)-編寫NEC紅外線協(xié)議解碼驅(qū)動(dòng)

    NEC協(xié)議是眾多紅外線協(xié)議中的一種,以前廣泛用在電視機(jī),投影儀設(shè)備里,很早之前經(jīng)常說(shuō)的萬(wàn)能電視遙控器就是NEC協(xié)議的;當(dāng)前文章就介紹如何在Linux下通過(guò)
    的頭像 發(fā)表于 09-17 15:20 ?3167次閱讀
    Linux驅(qū)動(dòng)開發(fā)-編寫<b class='flag-5'>NEC</b><b class='flag-5'>紅外</b>線協(xié)議<b class='flag-5'>解碼</b>驅(qū)動(dòng)