亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版
標題:
STM32戰艦迷你板的紅外實驗加了蜂鳴器 附程序
[打印本頁]
作者:
zhuliangyu
時間:
2019-6-15 12:08
標題:
STM32戰艦迷你板的紅外實驗加了蜂鳴器 附程序
紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強,信息傳輸可靠,功耗低,成
本低,易實現等顯著優點,被諸多電子設備特別是家用電器廣泛采用,并越來越多的應用到計
算機系統中。
由于紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設
計紅外線遙控器時,不必要像無線電遙控器那樣,每套(發射器和接收器)要有不同的遙控頻率
或編碼(否則,就會隔墻控制或干擾鄰居的家用電器),所以同類產品的紅外線遙控器,可以有
相同的遙控頻率或編碼,而不會出現遙控信號“串門”的情況。這對于大批量生產以及在家用
電器上普及紅外線遙控提供了極大的方面。由于紅外線為不可見光,因此對環境影響很小,再
由紅外光波動波長遠小于無線電波的波長,所以紅外線遙控不會影響其他家用電器,也不會影
響臨近的無線電設備。
紅外遙控的編碼方式目前廣泛使用的是:PWM(脈沖寬度調制)的 NEC 協議和 Philips
PPM(脈沖位置調制) 的 RC-5 協議的。ALIENTEK MiniSTM32 開發板配套的遙控器使用的是
NEC 協議,其特征如下:
1、8 位地址和 8 位指令長度;
2、地址和命令 2 次傳輸(確保可靠性)
3、PWM 脈沖位置調制,以發射紅外載波的占空比代表“0”和“1”;
4、載波頻率為 38Khz;
5、位時間為 1.125ms 或 2.25ms;
NEC 碼的位定義:一個脈沖對應 560us 的連續載波,一個邏輯 1 傳輸需要 2.25ms(560us
脈沖+1680us 低電平),一個邏輯 0 的傳輸需要 1.125ms(560us 脈沖+560us 低電平)。而遙控
接收頭在收到脈沖的時候為低電平,在沒有脈沖的時候為高電平,這樣,我們在接收頭端收到
的信號為:邏輯 1 應該是 560us 低+1680us 高,邏輯 0 應該是 560us 低+560us 高。
NEC 遙控指令的數據格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼
由一個 9ms 的低電平和一個 4.5ms 的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是
8 位數據格式。按照低位在前,高位在后的順序發送。采用反碼是為了增加傳輸的可靠性(可
用于校驗)。
我們遙控器的按鍵▽按下時,從紅外接收頭端收到的波形如圖
紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強,信息傳輸可靠,功耗低,成
本低,易實現等顯著優點,被諸多電子設備特別是家用電器廣泛采用,并越來越多的應用到計
算機系統中。
由于紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設
計紅外線遙控器時,不必要像無線電遙控器那樣,每套(發射器和接收器)要有不同的遙控頻率
或編碼(否則,就會隔墻控制或干擾鄰居的家用電器),所以同類產品的紅外線遙控器,可以有
相同的遙控頻率或編碼,而不會出現遙控信號“串門”的情況。這對于大批量生產以及在家用
電器上普及紅外線遙控提供了極大的方面。由于紅外線為不可見光,因此對環境影響很小,再
由紅外光波動波長遠小于無線電波的波長,所以紅外線遙控不會影響其他家用電器,也不會影
響臨近的無線電設備。
紅外遙控的編碼方式目前廣泛使用的是:PWM(脈沖寬度調制)的 NEC 協議和 Philips
PPM(脈沖位置調制) 的 RC-5 協議的。ALIENTEK MiniSTM32 開發板配套的遙控器使用的是
NEC 協議,其特征如下:
1、8 位地址和 8 位指令長度;
2、地址和命令 2 次傳輸(確保可靠性)
3、PWM 脈沖位置調制,以發射紅外載波的占空比代表“0”和“1”;
4、載波頻率為 38Khz;
5、位時間為 1.125ms 或 2.25ms;
NEC 碼的位定義:一個脈沖對應 560us 的連續載波,一個邏輯 1 傳輸需要 2.25ms(560us
脈沖+1680us 低電平),一個邏輯 0 的傳輸需要 1.125ms(560us 脈沖+560us 低電平)。而遙控
接收頭在收到脈沖的時候為低電平,在沒有脈沖的時候為高電平,這樣,我們在接收頭端收到
的信號為:邏輯 1 應該是 560us 低+1680us 高,邏輯 0 應該是 560us 低+560us 高。
NEC 遙控指令的數據格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼
由一個 9ms 的低電平和一個 4.5ms 的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是
8 位數據格式。按照低位在前,高位在后的順序發送。采用反碼是為了增加傳輸的可靠性(可
用于校驗)。
我們遙控器的按鍵▽按下時,從紅外接收頭端收到的波形如圖
紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強,信息傳輸可靠,功耗低,成
本低,易實現等顯著優點,被諸多電子設備特別是家用電器廣泛采用,并越來越多的應用到計
算機系統中。
由于紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設
計紅外線遙控器時,不必要像無線電遙控器那樣,每套(發射器和接收器)要有不同的遙控頻率
或編碼(否則,就會隔墻控制或干擾鄰居的家用電器),所以同類產品的紅外線遙控器,可以有
相同的遙控頻率或編碼,而不會出現遙控信號“串門”的情況。這對于大批量生產以及在家用
電器上普及紅外線遙控提供了極大的方面。由于紅外線為不可見光,因此對環境影響很小,再
由紅外光波動波長遠小于無線電波的波長,所以紅外線遙控不會影響其他家用電器,也不會影
響臨近的無線電設備。
紅外遙控的編碼方式目前廣泛使用的是:PWM(脈沖寬度調制)的 NEC 協議和 Philips
PPM(脈沖位置調制) 的 RC-5 協議的。ALIENTEK MiniSTM32 開發板配套的遙控器使用的是
NEC 協議,其特征如下:
1、8 位地址和 8 位指令長度;
2、地址和命令 2 次傳輸(確保可靠性)
3、PWM 脈沖位置調制,以發射紅外載波的占空比代表“0”和“1”;
4、載波頻率為 38Khz;
5、位時間為 1.125ms 或 2.25ms;
NEC 碼的位定義:一個脈沖對應 560us 的連續載波,一個邏輯 1 傳輸需要 2.25ms(560us
脈沖+1680us 低電平),一個邏輯 0 的傳輸需要 1.125ms(560us 脈沖+560us 低電平)。而遙控
接收頭在收到脈沖的時候為低電平,在沒有脈沖的時候為高電平,這樣,我們在接收頭端收到
的信號為:邏輯 1 應該是 560us 低+1680us 高,邏輯 0 應該是 560us 低+560us 高。
NEC 遙控指令的數據格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼
由一個 9ms 的低電平和一個 4.5ms 的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是
8 位數據格式。按照低位在前,高位在后的順序發送。采用反碼是為了增加傳輸的可靠性(可
用于校驗)
單片機源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "remote.h"
#include "ds18b20.h"
#include "beep.h"
void ds18b20(void)
{
u8 t=0;
short temperature;
while(DS18B20_Init()) //DS18B20初始化
{
LCD_ShowString(60,130,200,16,16,(u8*)"DS18B20 Error");
delay_ms(200);
LCD_Fill(60,130,239,90+16,WHITE);
delay_ms(200);
}
POINT_COLOR=BLUE;//設置字體為藍色
LCD_ShowString(60,130,200,16,16,(u8*)"Temp: . C");
if(t%10==0)//每100ms讀取一次
{
temperature=DS18B20_Get_Temp();
if(temperature<0)
{
LCD_ShowChar(60+40,130,'-',16,0); //顯示負號
temperature=-temperature; //轉為正數
}else LCD_ShowChar(60+40,130,' ',16,0); //去掉負號
LCD_ShowNum(60+40+8,130,temperature/10,2,16); //顯示正數部分
LCD_ShowNum(60+40+32,130,temperature%10,1,16); //顯示小數部分
}
delay_ms(10);
t++;
}
int main(void)
{
u8 key;
u8 *str=0;
delay_init(); //延時函數初始?
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組2
uart_init(9600); //串口初始化為9600
LED_Init(); //初始化與LED連接的硬件接口
LCD_Init();
Remote_Init(); //紅外接收初始化
BEEP_Init();//蜂鳴器初始化
POINT_COLOR=RED;//設置字體為紅色
LCD_ShowString(60,50,200,16,16,(u8*)"Mini STM32");
LCD_ShowString(60,70,200,16,16,(u8*)"REMOTE TEST");
LCD_ShowString(60,90,200,16,16,(u8*)"KEYVAL:");
LCD_ShowString(60,110,200,16,16,(u8*)"SYMBOL:");
while(1)
{
key=Remote_Scan();
if(key)
{
LCD_ShowNum(116,90,key,3,16); //顯示鍵值
switch(key)
{
case 0:str=(u8*)"ERROR";break;
case 162:str=(u8*)"POWER",NVIC_SystemReset();break; //復位
case 98:str=(u8*)"UP",LED1=0;break; //DS1點亮
case 2:str=(u8*)"PLAY",ds18b20();break; //DS1熄滅
case 226:str=(u8*)"ALIENTEK",play();break;
case 194:str=(u8*)"RIGHT",LED0=0;break; //DS0點亮
case 34:str=(u8*)"LEFT",LED0=1;break; //DS0熄滅
case 224:str=(u8*)"VOL-",LCD_Fill(10,200,230,300,LGRAY);break;
case 168:str=(u8*)"DOWN",LED1=1;break;
case 144:str=(u8*)"VOL+",LCD_Fill(10,200,230,300,BROWN);break;
case 104:str=(u8*)"1",LCD_Fill(10,200,230,300,WHITE);break;
case 152:str=(u8*)"2",LCD_Fill(10,200,230,300,BLACK);break;
case 176:str=(u8*)"3",LCD_Fill(10,200,230,300,BLUE);break;
case 48:str=(u8*)"4",LCD_Fill(10,200,230,300,RED);break;
case 24:str=(u8*)"5",LCD_Fill(10,200,230,300,MAGENTA);break;
case 122:str=(u8*)"6",LCD_Fill(10,200,230,300,GREEN);break;
case 16:str=(u8*)"7",LCD_Fill(10,200,230,300,CYAN);break;
case 56:str=(u8*)"8",LCD_Fill(10,200,230,300,YELLOW);break;
case 90:str=(u8*)"9",LCD_Fill(10,200,230,300,BRRED);break;
case 66:str=(u8*)"0",LCD_Fill(10,200,230,300,GRAY);break;
case 82:str=(u8*)"DELETE",LCD_Fill(60,130,239,130+16,WHITE);;break;
}
LCD_Fill(116,110,116+8*8,110+16,WHITE); //清除之前的顯示
LCD_ShowString(116,110,200,16,16,str); //顯示SYMBOL
}else delay_ms(10);
}
}
復制代碼
所有資料51hei提供下載:
紅外遙控器實驗.rar
(380.46 KB, 下載次數: 16)
2019-6-15 12:05 上傳
點擊文件名下載附件
戰艦迷你板
下載積分: 黑幣 -5
作者:
李依依
時間:
2019-12-4 17:05
添加蜂鳴器功能,怎么不響呢,上邊代碼并不是蜂鳴器的,還請大神請教
作者:
a971668215
時間:
2019-12-6 19:56
蜂鳴器代碼怎么寫啊
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1