新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機紅外解碼查詢法(HS9148)

單片機紅外解碼查詢法(HS9148)

作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
本方案解碼對象是蘇州華芯微電子的HS9148發(fā)生芯片的遙控信號;該芯片可以有單發(fā)碼,連發(fā)碼,等組合方式。具體功能可以參考其PDF文件?,F(xiàn)在對其中6組連發(fā)碼K1-K6進行解碼。本程序采用PIC16F505進行軟件延時方法,通過查詢紅外接收口的電平變化規(guī)律,來進行按鍵解碼。

先看一下連發(fā)碼的傳輸規(guī)律,如下圖所示

本文引用地址:http://m.butianyuan.cn/article/201611/323972.htm

這個是發(fā)射器上面的碼型,經(jīng)過紅外接收模塊后,信號與發(fā)射型號是反相的。如下圖:



其中a的值可以左右計算a=(1/fosc)*192,當采用455E的晶振時候a=0.422ms.。

在看看“0”和“1”的定義,對單片機接收端而言,下面圖示是0和1的定義


由圖可以看出來,高電平過后,低電平持續(xù)時間為3a定義為邏輯1,高電平過后低電平持續(xù)時間為a定義為邏輯0。(理解了這個規(guī)律對解碼能否成功有著非常重大的意義)。

為了驗證PDF上的高低電平時間定義的正確性,用示波器檢測了其中某幾個按鍵的紅外接收端的波型。如下所示:





對其時間測試發(fā)現(xiàn)和PDF上的資料基本符合。

本程序靈敏度和抗干擾能力還有待提高。本文目的在于尋找紅外解碼的方法,如何做到簡單有效。RB2為遙控接收腳,RC0,RC1,RC2,RC3鏈接LED指示燈,程序代碼如下(下載地址:http://www.51hei.com/f/pichon.rar):

#include

__CONFIG(0X034);

#define uchar unsigned char

#define uint unsigned int

Unsigned char head_ok;//頭碼標志

unsigned char code_ok;//解碼成功標志

unsigned char code1;//系統(tǒng)碼

unsigned char code2;//按鍵碼

unsigned char i,//系統(tǒng)碼解碼次數(shù)

unsigned char n,//按鍵碼解碼次數(shù)

void delay2(uint b)//us級別延時

{

unsigned int j;

for(j=0;j

{

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

}

}


上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉