51單片機(jī)輕松入門—基于STC15W4K系列(C語(yǔ)言版)
李友全 編著 詳見:http://www.torrancerestoration.com/bbs/dpj-37954-1.html
第18章 紅外通信 1 電路圖 2 程序移植
0.png (203.99 KB, 下載次數(shù): 187)
下載附件
2016-3-28 23:03 上傳
紅外遙控普遍運(yùn)用在家用電器上,在工業(yè)控制中,對(duì)于存在高壓、輻射、有毒 氣體、粉塵等場(chǎng)合,可以使用紅外遙控。
1電路圖 1號(hào)單片機(jī)與紅外接收頭連接電路如圖所示,紅外接收頭一般都可互換使用。
1.png (130 KB, 下載次數(shù): 207)
下載附件
2016-3-28 23:03 上傳
2 程序移植
例18.4 紅外接收數(shù)據(jù),使用一個(gè)定時(shí)器模擬外中斷方式,并通過(guò)串口發(fā)送接收到的用戶碼 與鍵碼,R/C時(shí)鐘:22.1184MHz,波特率9600, 要求串口助手按字符格式顯示。 程序優(yōu)點(diǎn):通用性極強(qiáng),可使用任意IO口接收紅外數(shù)據(jù),紅外接收部分自適應(yīng)R/C時(shí)鐘頻率 5~35M,模擬串口輸出部分需要根據(jù)R/C時(shí)鐘頻率調(diào)整延時(shí)函數(shù)參數(shù),此程序移植時(shí)只需更 改紅外接收引腳定義與模擬串口發(fā)送引腳即可。 #include "STC15W4K.H" #define MAIN_Fosc 22.1184 // 定義主時(shí)鐘, 紅外接收會(huì)自動(dòng)適應(yīng)5~36MHZ, #define User_code 0xFD02 // 定義紅外接收用戶碼 sbit Ir_Pin = P3^6; // 定義紅外接收輸入端口 sbit TXD1 = P3^1; // 定義模擬串口發(fā)送腳 void InitTimer0(void) { TMOD = 0x01; // 16位計(jì)數(shù)方式. TH0 = Timer0_Reload / 256; TL0 = Timer0_Reload % 256; ET0 = 1; TR0 = 1; EA = 1; } void main(void) { InitTimer0(); // 初始化Timer0 PrintString("定時(shí)器0初始化完畢\r\n"); // 上電后串口發(fā)送一條提示信息 while(1) { if(IR_OK) // 接收到一幀完整的紅外數(shù)據(jù) { PrintString("紅外鍵碼: 0x"); // 提示紅外鍵碼 Tx1Send(HEX2ASCII(IR_code >> 4)); // 鍵碼高半字節(jié) Tx1Send(HEX2ASCII(IR_code)); // 鍵碼低半字節(jié) if(IrUserErr) // 用戶碼錯(cuò)誤,則發(fā)送用戶碼 { Tx1Send(' '); // 發(fā)空格 Tx1Send(' '); // 發(fā)空格 PrintString("用戶碼: 0x"); // 提示用戶碼 Tx1Send(HEX2ASCII(IR_UserH >> 4)); // 用戶碼高字節(jié)的高半字節(jié) Tx1Send(HEX2ASCII(IR_UserH)); // 用戶碼高字節(jié)的低半字節(jié) Tx1Send(HEX2ASCII(IR_UserL >> 4)); // 用戶碼低字節(jié)的高半字節(jié) Tx1Send(HEX2ASCII(IR_UserL)); // 用戶碼低字節(jié)的低半字節(jié) } Tx1Send(0x0d); // 發(fā)回車 Tx1Send(0x0a); // 發(fā)回車 IR_OK = 0; // 清除IR鍵按下標(biāo)志 } } }
程序運(yùn)行結(jié)果如下圖所示。
2.png (310.73 KB, 下載次數(shù): 192)
下載附件
2016-3-28 23:03 上傳
只要單片機(jī)能獲取紅外鍵碼,單片機(jī)就可根據(jù)不同的鍵碼執(zhí)行不同的控制功能。
程序:
1.1—IR查詢方式解碼:
2.3—IR-中斷方式(復(fù)雜的)
IR中斷方式(簡(jiǎn)單版)的單片機(jī)紅外解碼程序:http://www.torrancerestoration.com/bbs/dpj-47283-1.html
只用一個(gè)單片機(jī)定時(shí)器的紅外接收解碼程序:http://www.torrancerestoration.com/bbs/dpj-47284-1.html
全部完整的4個(gè)源碼請(qǐng)下載附件:
第18章 紅外通信.rar
(84.33 KB, 下載次數(shù): 169)
2016-3-28 23:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|