資源描述:
《紅外遙控接收端時(shí)序表(NEC協(xié)議).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、紅外遙控接收端時(shí)序表(NEC協(xié)議)3導(dǎo)碼/同步碼頭9ms2.25msI1.12ms__4.5ms[0.56ms
2、1.69ms[0.56ms[0.56ms[0.56ms[紅外遙控發(fā)射端時(shí)序表(NEC協(xié)議)(發(fā)射端與接收端時(shí)序相反,程序以接收端時(shí)序編寫)1.NEC編碼位定義圖4.2NEC編碼位定義100110101001101001101000011010002.NEC碼數(shù)據(jù)編碼格式(加黑為0.56ms載波脈沖為高電平)■IIIIIIIIIIIIIIIIIIIIIIlliIIIIIIII9m$—"g堆址碼一—堆址反碼一?<—控制碼一—控制反馬一?圖4.3NEC編碼數(shù)據(jù)格式3.發(fā)完一個(gè)數(shù)據(jù)幀
3、之后,按鍵仍按下則發(fā)送單片機(jī)開發(fā)箱鍵盤編碼表CH?45+1535ECH46EQ09408CH+4701651CLeft44100+1965ARight40200+0D742Start/Stop431OC852—0721894A邏輯左移二算數(shù)左移,右邊統(tǒng)一添0邏輯右移,左邊統(tǒng)一添0算數(shù)右移,左邊添加的數(shù)和符號(hào)有關(guān)e.g:1010101010,其中□位是添加的數(shù)字邏輯左移一位:010101010[0]邏輯右移一位:[01101010101算數(shù)左移一位:010101010[0]算數(shù)右移一位:[11101010101/************************************4o
4、
5、c***4o^*****4a
6、c**********4o^****項(xiàng)目名稱:紅外線遙控接收器晶振:12MHZ功能:通過遙控器遠(yuǎn)程控制單片機(jī)說明:*遙控器接p3.2**喇叭接pl?5**P0接LED等,并顯示地址數(shù)據(jù)*程序思路:1?采用中斷方式進(jìn)行控制(P3.2口);2.高電平時(shí)采用延時(shí)函數(shù)計(jì)時(shí)的方式進(jìn)行標(biāo)志位的累加;3?判斷是我用的if不好使,但換成wh訂e就ok了:3本程序只是判讀數(shù)據(jù)位通過發(fā)光管顯示出來;******************************)
7、afc*****)
8、a(c***3
9、a
10、c*****)
11、a
12、c**********)
13、o(c****/#include
14、#include#defineuintunsignedint??defineucharunsignedcharcharreceive(void);sbitIR=P3"2;sbitP15=P「5;〃x*0?14MS〃初始化數(shù)據(jù)ucharIRC0M[4];voiddelay(ucharx){unsignedchari;while(x一){for(i=0;i<13;i++);}}voidmain(void){P15=1;IR=1;P0=Oxff;TCON=0x01;〃中斷方式設(shè)定為下降沿觸發(fā)方式while(1);}voidint_0()interrupt
15、0{uchari,j,n=0;P15=0;EXO二0;delay(15);//關(guān)中斷,以免再次進(jìn)入中斷〃延時(shí)2.1msif(IR==1)斷,退出中斷程序{EXO二1;return;}〃檢測(cè)是否為真正的IR引導(dǎo)碼(低電平),若不是,開中while(!IR);結(jié)束while(IR);4.5ms高電平引導(dǎo)碼結(jié)束//檢測(cè)是IR引導(dǎo)碼(低電平),等待9ms的低電平引導(dǎo)碼//9ms的低電平引導(dǎo)碼過后是4.5ms高電平引導(dǎo)碼,等待for(i=0;i<4;i++)據(jù)碼){for(j=8;j>0;j—){while(!IR);while(IR)若為低電平為0{delay(1);n++;if(n>=30)描
16、〃接受4組數(shù)據(jù)(地址碼反地址碼數(shù)據(jù)碼反數(shù)//8為字長(zhǎng)〃等待0.56ms低電平結(jié)束〃判斷IR是否為高電平,若為高電平為1,〃延時(shí)0.14ms//標(biāo)志位每隔0.14ms累加一次〃判斷是否超時(shí),若超時(shí),退出中斷重新掃EXO二1;return;IRCOM[i]=IRCOMti]?1;//數(shù)據(jù)右移一位(這是默認(rèn)的情況的"0")if(n>9)//判斷髙電平是否超出1.12ms,超出為"1",若沒超出還是默認(rèn)為"0"{IRCOMti]二IRCOMti]
17、0x80;}n=0;〃數(shù)據(jù)校驗(yàn)}if(IRC0M[2]!=~IRC0M[3]){EXO=1;P15=1;:return;}P0=IRC0M[2]://
18、LED顯示編碼值EXO=1;〃掃描完成后關(guān)中斷,等待下一次中斷