NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序

NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序

ID:38582218

大?。?24.00 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2019-06-15

NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序_第1頁(yè)
NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序_第2頁(yè)
NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序_第3頁(yè)
NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序_第4頁(yè)
資源描述:

《NEC協(xié)議的紅外遙控器驅(qū)動(dòng)程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、是不是覺(jué)得紅外遙控+51單片機(jī)是絕妙組合?但是在編程時(shí)才發(fā)現(xiàn)超級(jí)糾結(jié)?其實(shí)也沒(méi)那么糾結(jié),自己摸索摸索,總能找出辦法來(lái)的。本程序占用了51單片機(jī)的定時(shí)器0以及中斷1兩個(gè)資源,為的是使單片機(jī)能接收到每一個(gè)紅外脈沖信號(hào),一個(gè)都不能少。如果舍不得用這兩個(gè)資源,還有另一種查詢的辦法,就是不一定每個(gè)信號(hào)都能收到,可自己琢磨一下。需要全套NEC協(xié)議紅外遙控器資料的,到網(wǎng)上找,到處都有,而且很全。另外,對(duì)著資料寫(xiě)程序如果實(shí)在寫(xiě)不出,可以找個(gè)示波器,把波形錄下來(lái)好好研究研究。畢竟有些時(shí)候資料會(huì)過(guò)時(shí),只要里面有一點(diǎn)東西變化了,程序就完全不一樣了。這種彎路

2、,盡量少走。本程序只是頭文件,具體到應(yīng)用上還要各位自己動(dòng)腦筋了,希望對(duì)大家有所幫助。共同學(xué)習(xí),共同進(jìn)步!/******************************************************************INF_NEC.h用于NEC協(xié)議的遙控器,主控器為51單片機(jī)。用戶碼8位,分布于2-17個(gè)脈沖;按鍵碼8位,分布于18-33個(gè)脈沖。皆為前8原碼,后8反碼。注意:本驅(qū)動(dòng)占用51單片機(jī)的外部中斷1以及定時(shí)器0兩個(gè)資源,編程時(shí)注意不要再亂動(dòng)這兩個(gè)資源。***************************

3、****************************************/#include#defineucharunsignedchar#defineuintunsignedintucharnec_flag=0;//nec_flag:遙控碼的標(biāo)志位。0:無(wú)信號(hào);1、2:信號(hào)采集;3、可用信號(hào)ucharnec_num=0;//nec_num:紅外碼的序號(hào)uintnec_time=0;//nec_time:定時(shí)器的計(jì)時(shí)次數(shù)nec_time*250usucharnec_cod[2]={0,1};//遙控器的編號(hào),

4、編號(hào)0為原碼,編號(hào)1為反碼ucharnec_dat[2]={0,1};//遙控器的數(shù)據(jù),數(shù)據(jù)0為原碼,數(shù)據(jù)1為反碼#ifndef__INF_NEC__#define__INF_NEC__externvoidnec_init();externvoidnec_act();#endifvoidnec_init()//外中斷1及定時(shí)器0的初始化函數(shù){TMOD=(TMOD&0xf0)

5、0x02;//定時(shí)器0模式2,8位自動(dòng)重裝TH0=0x19;TL0=0x19;//11.0592MHz晶振,計(jì)數(shù)230次,大概時(shí)間250usET0=1;TR0=0

6、;//定時(shí)器0使能,先關(guān)著IT1=1;EX1=1;//外部中斷1使能,用來(lái)接收紅外信號(hào)EA=1;//開(kāi)總中斷}voidnec_act()//按鍵功能程序{if((nec_dat[0]==~nec_dat[1])&&(nec_flag==3)){switch(nec_dat[0]){case69:break;case70:break;case71:break;case68:break;case64:break;case67:break;case7:break;case21:break;case9:break;case22:break;c

7、ase25:break;case13:break;case12:break;case24:break;case94:break;case8:break;case28:break;case90:break;case66:break;case82:break;case74:break;}}}voidtimer0(void)interrupt1{nec_time++;if(nec_time>1000)//長(zhǎng)時(shí)間無(wú)紅外遙控信號(hào)時(shí)關(guān)定時(shí)器{nec_time=0;nec_num=0;nec_flag=0;TR0=0;}}voidexint1(vo

8、id)interrupt2{uintintime=0;//intime:為了不打擾計(jì)時(shí)器工作,所以用intime把nec_time提出來(lái)intime=nec_time;nec_time=0;//nec_time置0,準(zhǔn)備計(jì)數(shù)if(nec_num==0)TR0=1;//開(kāi)定時(shí)器,開(kāi)始計(jì)數(shù)if(nec_num==1){if((intime>50)&&(intime<60))nec_flag=1;}if(nec_num==2){if((intime>2)&&(intime<11))nec_flag=2;}if(nec_flag==2){if

9、((nec_num>=2)&&(nec_num<=9)){if((intime>2)&&(intime<6))nec_cod[0]=nec_cod[0]&~(0x01<<(nec_num-2));elseif((inti

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。