|
紅外遙控器資料
0.png (57.26 KB, 下載次數(shù): 41)
下載附件
2018-3-13 01:11 上傳
0.png (252.57 KB, 下載次數(shù): 28)
下載附件
2018-3-13 01:10 上傳
0.png (119.8 KB, 下載次數(shù): 33)
下載附件
2018-3-13 01:11 上傳
┌──┬──┬──┬──┬──┬──┐
│名稱│鍵值│名稱│鍵值│名稱│鍵值│
├──┼──┼──┼──┼──┼──┤
│CH- │0x45│CH │0x46│CH+ │0x47│
├──┼──┼──┼──┼──┼──┤
│VOL-│0x44│VOL+│0x40│PLAY│0x43│
├──┼──┼──┼──┼──┼──┤
│- │0x07│+ │0x15│EQ │0x09│
├──┼──┼──┼──┼──┼──┤
│0 │0x16│100+│0x19│200+│0x0D│
├──┼──┼──┼──┼──┼──┤
│1 │0x0C│2 │0x18│3 │0x5E│
├──┼──┼──┼──┼──┼──┤
│4 │0x08│5 │0x1C│6 │0x5A│
├──┼──┼──┼──┼──┼──┤
│7 │0x42│8 │0x52│9 │0x4A│
└──┴──┴──┴──┴──┴──┘
單片機(jī)源程序如下:
- /******************************************************************/
- #include <reg51.h>
- sbit IRIN = P3^2; //紅外接收器數(shù)據(jù)線
- void IRdelay(char x); //x*0.14MS
- unsigned char IRCOM[7];
- unsigned char Y0;
- /*******************************************************************/
- void IRInit()
- {
- IE |= 0x81; //允許總中斷中斷,使能 INT0 外部中斷
- TCON |= 0x01; //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
-
- IRIN=1; //I/O口初始化
- }
- /**********************************************************/
- void IR_IN(void) interrupt 0
- {
- unsigned char j,k,N=0;
- EX0 = 0;
- IRdelay(15);
- if (IRIN==1)
- { EX0 =1;
- return;
- }
- //確認(rèn)IR信號(hào)出現(xiàn)
- while (!IRIN) //等IR變?yōu)楦唠娖剑^9ms的前導(dǎo)低電平信號(hào)。
- {IRdelay(1);}
- for (j=0;j<4;j++) //收集四組數(shù)據(jù)
- {
- for (k=0;k<8;k++) //每組數(shù)據(jù)有8位
- {
- while (IRIN) //等 IR 變?yōu)榈碗娖剑^4.5ms的前導(dǎo)高電平信號(hào)。
- {IRdelay(1);}
- while (!IRIN) //等 IR 變?yōu)楦唠娖?br />
- {IRdelay(1);}
- while (IRIN) //計(jì)算IR高電平時(shí)長
- {
- IRdelay(1);
- N++;
- if (N>=30)
- { EX0=1;
- return;} //0.14ms計(jì)數(shù)過長自動(dòng)離開。
- } //高電平計(jì)數(shù)完畢
- IRCOM[j]=IRCOM[j] >> 1; //數(shù)據(jù)最高位補(bǔ)“0”
- if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補(bǔ)“1”
- N=0;
- }//end for k
- }//end for j
-
- if (IRCOM[2]!=~IRCOM[3])
- { EX0=1;
- return; }
- IRCOM[5]=IRCOM[2] & 0x0F; //取鍵碼的低四位
- IRCOM[6]=IRCOM[2] >> 4; //右移4次,高四位變?yōu)榈退奈?br />
- if(IRCOM[5]>9)
- { IRCOM[5]=IRCOM[5]+0x37;}
- else
- IRCOM[5]=IRCOM[5]+0x30;
- if(IRCOM[6]>9)
- { IRCOM[6]=IRCOM[6]+0x37;}
- else
- IRCOM[6]=IRCOM[6]+0x30;
- //if(IRCOM[2]==0x4c) RELAY=0; //打開繼電器
- //else RELAY=1; //關(guān)閉繼電器
- Y0=0;
- switch(IRCOM[2])
- {
- case 0x8C: Y0=1; break;
- case 0x98: Y0=2; break;
- case 0xDE: Y0=3; break;
- case 0x88: Y0=4; break;
- case 0x9C: Y0=5; break;
- case 0xDA: Y0=6; break;
- case 0xC2: Y0=7; break;
- case 0xD2: Y0=8; break;
- case 0xCA: Y0=9; break;
- case 0x96: Y0=0; break;
-
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
紅外遙控器資料.rar
(711.1 KB, 下載次數(shù): 74)
2018-3-12 23:12 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|