新聞中心

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

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

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

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

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

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



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

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


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

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





對(duì)其時(shí)間測試發(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;//頭碼標(biāo)志

unsigned char code_ok;//解碼成功標(biāo)志

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

unsigned char code2;//按鍵碼

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

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

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

{

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 下一頁

評(píng)論


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

關(guān)閉