微控制器(九) IR紅外線通訊

2021-07-22 18:22:10 字數 2341 閱讀 4279

有關紅外線,首先我們要知道它長什麼樣子:

這是紅外線發光管,通電後會產生光波波長為940nm左右的紅外線。

這是紅外線接收頭,裡面有高頻的濾波電路,能夠濾掉紅外線合成訊號的載波訊號(38khz)。

紅外遙控系統的結構大致如下:

那麼紅外線發射為什麼需要載波呢?

1.能更好減少周邊環境對紅外線的干擾。比如選擇38khz的紅外線,那麼接收時只接收38khz的訊號,其它訊號一律不接。

2.能提高發射效率,降低電源功耗。

下面我們來看看,紅外基帶訊號的傳送協議;

對於各個碼的作用:

引導碼:相當於一把鑰匙,微控制器只有檢測到引導碼出現了,才確認接收後面的資料。

客戶嗎:用來區分紅外遙控裝置,使之不會互相干擾。

操作碼:使用者實際需要的編碼。

操作反碼:用來校驗。

下面我們來看看各部分是如何工作的:

引導碼:

客戶嗎、操作碼:

下面請看程式:

#include

#include "delay.h"

#define lcdport p0

#define lcd_write_data 1

#define lcd_write_com 0

sbit rs = p2^4;

sbit rw = p2^5;

sbit e = p2^6;

unsigned int irtime = 0;

unsigned char irdata[33] = ;

unsigned char ircode[4] = ;

bit irok = 0;

bit startflag = 0;

// bit irprocessok = 0;

void lcd_write(unsigned char byte,unsigned char flag)//

else

rw = 0;//ð´

e = 1;  //ñ¡öðlcd

lcdport = byte;//

delay_us(5);

e = 0;

}void lcd_dis_char(unsigned char x,unsigned char y,unsigned char byte)//ïôê¾ò»¸ö×ö·û

if(0 == y)

else

lcd_write(byte,lcd_write_data);

}void lcd_str(unsigned char x,unsigned char y,unsigned char *s)//ïôê¾×ö·û´®

if(0 == y)

else

while(*s != '\0')

}void lcd_init()//lcd ³õê¼»¯

void timer0_init()

void timer0_isr() interrupt 1

void int0_init()

void int0_isr() interrupt 0

irdata[bitnum] = irtime;

bitnum++;

irtime = 0;

if(33 == bitnum)

}else

}unsigned char irprocess()

// void irprocess()

k++;

}ircode[j] = temp;        

}if((ircode[0] + ircode[1] == 0xff) && (ircode[2] + ircode[3] == 0xff))

}return 0xff;

}void display(unsigned char s)

}void main()

}}}到這裡,紅外線知識講完,不明白可以互相討論哦!

紅外線額溫槍微控制器方案

一 紅外額溫槍方案功能 1 非接觸式測量 它不需要直接接觸到人體,而且紅外探測器只需感應人體輻射的紅外線即可。因此,不會干擾人體,也不會給人體帶來任何損傷。特別適合對小孩溫度測量。2 測量範圍廣 因為人體紅外測溫儀是非接觸式原理測溫,所以測溫儀工作在正常的溫度或測溫儀允許的條件下進行測量的,所以測量...

微控制器 紅外通訊

人的眼睛能看到的可見光按波長從長到短排列,依次為紅 橙 黃 綠 青 藍 紫。其中紅光的波長範圍為0.62 0.76 m 紫光的波長範圍為0.38 0.46 m。比紫光波長還短的光叫紫外線,比紅光波長還長的光叫紅外線.紅外線遙控就是利用波長為0.76 1.5 m之間的近紅外線來傳送控制訊號的。紅外線遙...

51微控制器紅外通訊

本文是武漢市海聯天下物聯網 技術團隊內部學習筆記,將詳細講解紅外遙控的基本原理以及51微控制器如何利用外部中斷和定時器0對紅外訊號進行解碼。技術部 張傲 使用紅外遙控器對準hl stc51開發板紅外置收頭,按下不同的按鍵,在開發板數碼管上將顯示對應按鍵的數字。8位位址碼,8位命令碼 完整發射兩次位址...