色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用51單片機(jī)中斷法解碼pt2262無(wú)線遙控器

          用51單片機(jī)中斷法解碼pt2262無(wú)線遙控器

          作者: 時(shí)間:2012-11-15 來(lái)源:網(wǎng)絡(luò) 收藏

          /***********************************************
          解碼軟件修正版
          使用了位操作代替前版本的位尋址,使用三個(gè)字節(jié)變量存儲(chǔ)獲取的數(shù)據(jù),便于以后將地址和數(shù)據(jù)進(jìn)行操作
          增加了兩次數(shù)據(jù)比對(duì)的功能,降低誤碼的干擾
          2007.8.24
          接受模塊的信號(hào)輸出端接INT0中斷口。。。
          P1.0,p1.1上接LED顯示接受的情況。。。
          解碼測(cè)試通過(guò)。。。
          注意:使用的是4M的晶振以減少mcu對(duì)接受模塊的干擾。。。
          程序開(kāi)發(fā):http://www.51hei.com
          運(yùn)行平臺(tái):51hei單片機(jī)開(kāi)發(fā)板+315m無(wú)線模塊,用杜邦線連接.
          使用時(shí)可能要改變檢測(cè)的特征值,視遙控的中心頻率而定,可以通過(guò)上的電阻改變*********************************************/

          #include reg52.h>
          unsigned int tmp,t1=0;
          unsigned char i9=0,t2;
          char *dataTMP;
          unsigned char dataTMP0,dataTMP1,dataTMP2,datacheck;
          unsigned char bdata oeCON;
          sbit UD0=oeCON^0;
          sbit UD1=oeCON^1;
          sbit OC0=oeCON^2;
          sbit OC1=oeCON^3;
          sbit p10=P1^0;
          sbit p11=P1^1;
          sbit p32=P3^2;
          bit flagF=1,press;
          void up_down();
          void open_close();
          void delay(unsigned char);

          void main()
          {IT0=1;
          EX0=1;
          TMOD=0x09;
          EA=1;
          TR0=1;
          P3=0xff;

          UD0=1;
          UD1=0;
          OC0=1;
          OC1=0;
          while(1)
          {p10=p32;
          if(datacheck==0xff)
          {
          /**********編碼解析后執(zhí)行代碼*******************


          ***********************/
          }
          }
          /*************************************************************
          中斷服務(wù)程序
          通過(guò)探頭flagF的值判斷是否接收到sync信號(hào)
          接收到的數(shù)據(jù)存入dataTMP的三個(gè)變量中
          連續(xù)按鍵的確認(rèn):
          等待i9的值變?yōu)?;
          延時(shí)
          再次檢測(cè)i9的值是否為0;
          是0則認(rèn)為按鍵中止。
          *************************************************************/
          int0() interrupt 0
          {
          tmp=TH0*256+TL0;
          TH0=0x0;
          TL0=0x0;
          if(flagF)
          {
          if(tmp>1295tmp1300)
          {p11=~p11;flagF=0;}
          }
          else
          {
          if(i99) dataTMP=dataTMP0;
          else
          {dataTMP=i917?(dataTMP1):(dataTMP2);}
          (*dataTMP)=1;
          if(tmp>100tmp150)
          (*dataTMP)=(*dataTMP)|0x01;
          else if(!(tmp>10tmp100))
          {
          flagF=1;
          i9=0;
          }

          if(i9==24)
          {
          if(datacheck!=dataTMP2)
          datacheck=dataTMP2;
          else
          datacheck=0xff;/*按鍵確認(rèn)*/
          }
          i9++;
          }
          }

          /*******************
          延時(shí)函數(shù)
          時(shí)間:1-2s
          *******************/
          void delay(unsigned char k)
          {unsigned char i;
          for(i=0;ik;i++)
          for(tmp=0;tmp10300;tmp++);
          }

          紅外遙控器相關(guān)文章:紅外遙控器原理

          萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


          51單片機(jī)相關(guān)文章:51單片機(jī)教程




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉