久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于stm32的紅外遙控器學習與發(fā)射程序源碼
[打印本頁]
作者:
wjs1033
時間:
2018-7-12 15:21
標題:
基于stm32的紅外遙控器學習與發(fā)射程序源碼
通過載波學習紅外,并可還原發(fā)送出去
單片機源程序如下:
#include "stdio.h"
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "myuart.h"
#include "ir.h"
#include "irsend.h"
#include "learn.h"
#include "key.h"
#include "pwm.h"
#include "remoteflash.h"
#include "lcd.h"
/* 接口
發(fā)送指示燈 LED_SEND -- PC.0
學習指示燈 LED_COPY -- PC.1
按鍵 K1 -- PA.3
K2 -- PA.4
K3 -- PA.5
K4 -- PA.6
K5 -- PA.7
學習按鍵 KEY -- PA.2
接收使能 DQ -- PC.3
紅外接收引腳 OUT -- PA.1
載波38K 38K -- PA.0
發(fā)送控制 Txd -- PC.2
*/
u8 Flag_RemoteSet = 0;
u8 Flag_LearnState = 0;
extern u16 PulseTab[];
int main(void)
{
u16 i;
u8 temp = 0;
/* 延時函數(shù)初始化 */
DelayInit();
NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
/* MYUART 初始化 */
MY_UartInit(9600);
/* KEY 初始化 */
KEY_Init();
LearnKEY_Init();
/* PWM 初始化 */
TIM2_PWM_Init(1895,0); //72000/(1895+1) = 37.99K
/* LED 初始化 */
LED_Init();
/* IR 初始化 */
IR_Init(); // 紅外接收函數(shù)
SendPort_Init();
/* TFT1.8初始化 */
LCD_PortInit();
LCD_Init();
/***************************** 以下添加代碼區(qū) *****************************/
/* 設置窗口 */
LCD_SetRamAddr(0,127, 0,29);
for(i=0; i<3839; i++) LCD_Wirte_Data16(CYAN);
ChineseChar(32,10,0,BLACK,CYAN,1); // 遙
ChineseChar(48,10,0,BLACK,CYAN,2); // 控
ChineseChar(64,10,0,BLACK,CYAN,3); // 器
ChineseChar(80,10,0,BLACK,CYAN,4); // 碼
LCD_SetRamAddr(0,127,30,89);
for(i=0; i<11520; i++) LCD_Wirte_Data16(YELLOW);
ChineseChar(0,40,0,BLACK,YELLOW,5); // 紅
ChineseChar(15,40,0,BLACK,YELLOW,6);// 外
ChineseChar(30,40,0,BLACK,YELLOW,7);// 協(xié)
ChineseChar(45,40,0,BLACK,YELLOW,8);// 議
LCD_ShowChar(55,40,BLACK,YELLOW,':');
LCD_SetRamAddr(0,127,90,159);
for(i=0; i<11520; i++) LCD_Wirte_Data16(PUEPLE);
ChineseChar( 0,100,0,BLACK,PUEPLE,1); // 紅
ChineseChar(15,100,0,BLACK,PUEPLE,2); // 外
ChineseChar(30,100,0,BLACK,PUEPLE,9); // 狀
ChineseChar(45,100,0,BLACK,PUEPLE,10); // 態(tài)
LCD_ShowChar(55,100,BLACK,PUEPLE,':');
/***************************** 以上添加代碼區(qū) *****************************/
LEARN_ON = 0; // 關閉紅外接收
LED1 = 1; // 收到脈沖指示
LED_SEND = 1; // 發(fā)送狀態(tài)指示
LED2 = 0;
LED2 = 1;
LED3 = 1;
LED4 = 1;
LED5 = 1;
// TFTDisplay(); // 測試
while(1)
{
/* 頁面定義 */
//#define KEY1_ADDR 0x0807E000 VOL+
//#define KEY2_ADDR 0x0807E800 VOL-
//#define KEY3_ADDR 0x0807F000 CH+
//#define KEY4_ADDR 0x0807F800 CH-
//#define KEY5_ADDR 0x0807D800 POWER
//#define VOL_UP 1
//#define VOL_DOWN 2
//#define CH_UP 3
//#define CH_DOWN 4
//#define PWR_ON 5
LED2 = 0;
temp = KEY_Scan(0); // 按鍵掃描,非連按模式
/* 紅外協(xié)議檢測 */
if(PulseTab[1]>3500 && PulseTab[1]<5500) {
LCD_ShowString(50,65,BLACK,YELLOW,"NEC ");
}else{
LCD_ShowString(50,65,BLACK,YELLOW,"Other");
}
/* 遙控器狀態(tài)檢測 */
if((Flag_RemoteSet==0) && (temp!=0)) {
LCD_ShowString(18,120,BLACK,PUEPLE,"Sending....");
}
if((Flag_RemoteSet==0) && (temp==0)) {
LCD_ShowString(18,120,BLACK,PUEPLE,"Idle State ");
}
// TFTDisplay(); // 測試
//=======================學習狀態(tài)=======================//
if(Flag_RemoteSet == 1){
// ChineseChar(20,110,2,BLACK,PUEPLE,1);// 學
// ChineseChar(45,110,2,BLACK,PUEPLE,2);// 習
// ChineseChar(70,1` 10,2,BLACK,PUEPLE,3);// 中
// LCD_ShowString(95,115,BLACK,YELLOW,"...");
//LCD_ShowString(18,115,BLACK,PUEPLE,"Learning...");
switch(temp){
case VOL_UP :temp = 0; // 按鍵按下標志清零
LED3 = ~LED3; // 調(diào)試用
FLASH_WriteData(KEY1_ADDR,PulseTab,200); // 紅外脈沖寬度值保存到相應按鍵下
break;
case VOL_DOWN:temp = 0; // 按鍵按下標志清零
LED3 = ~LED3;
FLASH_WriteData(KEY2_ADDR,PulseTab,200); // 紅外脈沖寬度值保存到相應按鍵下
break;
case CH_UP :temp = 0; // 按鍵按下標志清零
LED3 = ~LED3;
FLASH_WriteData(KEY3_ADDR,PulseTab,200); // 紅外脈沖寬度值保存到相應按鍵下
break;
case CH_DOWN :temp = 0; // 按鍵按下標志清零
LED3 = ~LED3;
FLASH_WriteData(KEY4_ADDR,PulseTab,200); // 紅外脈沖寬度值保存到相應按鍵下
break;
case PWR_ON :temp = 0; // 按鍵按下標志清零
LED3 = ~LED3;
FLASH_WriteData(KEY5_ADDR,PulseTab,200); // 紅外脈沖寬度值保存到相應按鍵下
break;
}
}
//=======================發(fā)送狀態(tài)=======================//
if(Flag_RemoteSet == 0){
//LCD_ShowString(18,115,BLACK,PUEPLE,"SendingStat");
switch(temp){
case VOL_UP :temp = 0; // 按鍵按下標志清零
SendLight(1); // 發(fā)送指示燈亮
//LED3 = ~LED3; // 調(diào)試用
IR_SendData(KEY1_ADDR); // 紅外發(fā)送
delay_ms(150);
SendLight(0); // 發(fā)送完熄滅
break;
case VOL_DOWN:temp = 0; // 按鍵按下標志清零
SendLight(1); //發(fā)送指示燈亮
//LED3 = ~LED3;
IR_SendData(KEY2_ADDR);
delay_ms(150);
SendLight(0);
break;
case CH_UP :temp = 0; // 按鍵按下標志清零
SendLight(1); //發(fā)送指示燈亮
//LED3 = ~LED3;
IR_SendData(KEY3_ADDR);
delay_ms(150);
SendLight(0);
break;
case CH_DOWN :temp = 0; // 按鍵按下標志清零
SendLight(1); //發(fā)送指示燈亮
//LED3 = ~LED3;
IR_SendData(KEY4_ADDR);
delay_ms(150);
SendLight(0);
break;
case PWR_ON :temp = 0; // 按鍵按下標志清零
SendLight(1); //發(fā)送指示燈亮
//LED3 = ~LED3;
IR_SendData(KEY5_ADDR);
delay_ms(150);
SendLight(0);
break;
}
}
}
}
復制代碼
所有資料51hei提供下載:
IR_remote.zip
(382.88 KB, 下載次數(shù): 579)
2018-7-12 15:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
擇一城終老
時間:
2018-7-30 15:54
樓主你好,很有用的學習資料,這里想問個問題,這個紅外發(fā)射的硬件電路,你是通過三極管b基級(即PC2口)負責控制,c集電極是38K載波信號,是這樣的嗎?
作者:
擇一城終老
時間:
2018-7-30 15:58
樓主你好,資料非常有用,想問個問題,紅外發(fā)射模塊的硬件電路,是b基級(PC2口)負責控制,然后c集電極是38K載波信號嗎?
作者:
leng_qian
時間:
2018-11-14 11:18
樓主你好,很有用的學習資料,這里想問個問題,這個紅外發(fā)射的硬件電路,你是通過三極管b基級(即PC2口)負責控制,c集電極是38K載波信號,是這樣的嗎?
作者:
hughtain
時間:
2019-2-28 10:31
感謝樓主的分享,我下載來參考,如果可行,真的感激
作者:
li121788501
時間:
2019-3-25 16:42
感謝樓主的分享,我下載來參考,如果可行,真的感激
作者:
1436925556
時間:
2019-5-1 07:47
下載試試看,謝謝分享
作者:
yuanxiang1
時間:
2019-5-2 07:45
資料不錯值得學習
作者:
hopepan
時間:
2019-7-17 11:48
就想要個積分下載,以后可能用得上,先儲存
作者:
zxasq
時間:
2019-7-20 11:12
很好像下載過來看看
作者:
wang930626
時間:
2019-8-2 09:38
下載學習學習,感謝樓主分享!!!
作者:
BG6BXN
時間:
2019-8-2 18:52
沒有看到硬件原理圖
作者:
壹勿所知
時間:
2019-11-18 15:59
感謝樓主分享
作者:
czr027010
時間:
2019-11-19 20:35
非常感謝
作者:
Monday_
時間:
2019-11-24 20:41
非常感謝樓主的分享
作者:
取個名字真的難
時間:
2020-3-21 23:05
感謝樓主的分享,我下載來參考,如果可行,真的感激
作者:
roadgo
時間:
2020-3-24 21:40
感謝樓主的分享,我下載來參考,如果可行,真的感激
作者:
potatoo
時間:
2020-3-25 15:23
非常感謝樓主分享,下載來做參考,感謝。
作者:
lyseg
時間:
2020-3-27 09:55
非常感謝樓主的分享
作者:
liberv
時間:
2021-1-29 08:41
沒有看到硬件原理圖
作者:
Grey.Tu
時間:
2021-7-25 16:33
@擇一城終老
好像紅外頻率是38K吧, 三極管選型需要支持38K.
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区国产
|
在线视频h
|
xxxx亚洲
|
www.99热
|
亚洲欧美一区二区三区在线
|
99国产精品99久久久久久
|
国产一级片免费看
|
免费在线毛片
|
国产成人一区二区三区
|
亚洲黄色片
|
黄色小说视频
|
啪啪免费网站
|
色婷婷久久久
|
欧美日韩在线一区二区三区
|
精品一区三区
|
午夜丁香
|
日本中文在线观看
|
国产一区中文字幕
|
欧美视频免费在线观看
|
日韩欧美三区
|
玖玖在线观看
|
日韩一区二区在线观看视频
|
在线观看国产小视频
|
国产成人精品一区二区三区福利
|
成人永久免费视频
|
国产精品高潮呻吟久久
|
国产精品久久久久久中文字
|
91丝袜一区在线观看
|
欧美区在线
|
欧洲美一区二区三区亚洲
|
亚洲国产精品suv
|
中文字幕日韩视频
|
天天综合网站
|
91看片在线观看
|
亚洲日本国产
|
黄色av免费
|
黄色大毛片
|
羞羞网站在线观看
|
精品亚洲一区二区三区
|
国产成人精品av在线观
|
日韩专区在线观看
|