有關紅外線,首先我們要知道它長什麼樣子:
這是紅外線發光管,通電後會產生光波波長為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位命令碼 完整發射兩次位址...