<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)紅外遙控程序beta

          單片機(jī)紅外遙控程序beta

          作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
          千辛萬(wàn)苦,終于把這個(gè)完成了。不錯(cuò)不錯(cuò)。現(xiàn)在的問(wèn)題就在上板子上測(cè)試了。剛才發(fā)了,發(fā)現(xiàn)"/""*""*""/"居然被屏蔽了。標(biāo)注只能用兩個(gè)杠杠表示。為了以后更好的發(fā)布,我寫(xiě)程序注釋的時(shí)候盡量用雙斜杠。

          #include
          #define uchar unsigned char
          #define uint unsigned int

          本文引用地址:http://www.ex-cimer.com/article/201611/320670.htm

          uchar code table[]={
          0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71}; //定義數(shù)字顯示

          sbit remote=P3^3;//定義中斷源外中斷3.3

          int count=0;//定義全局變量計(jì)數(shù)計(jì)時(shí)器
          bit get_over;//定義讀取數(shù)據(jù)結(jié)束
          int dat[33],ircode[4]; //第一個(gè)是直接讀取數(shù)據(jù),第二個(gè)是解碼之后的數(shù)據(jù)

          void ini_rem(void); //遙控器的初始化
          void ini_other(void); //其他設(shè)定初始化
          void exchange(void); //編碼轉(zhuǎn)換
          //void timer0(void) interrupt 0 //計(jì)時(shí)器0中斷,計(jì)時(shí)計(jì)算上升沿個(gè)數(shù)來(lái)測(cè)定1,0,和開(kāi)始結(jié)束碼
          //void ex_rem(void) interrupt 4 //外中斷1,通過(guò)上升沿來(lái)讓定時(shí)器計(jì)時(shí)
          void dis(void);//顯示函數(shù)
          void delay(uint z); //顯示延時(shí)函數(shù)
          main()
          {
          ini_other();
          ini_rem();
          while(1)
          {
          if(get_over==1)
          {
          exchange();
          dis();
          get_over=0;
          }
          }
          }

          void ini_other()
          {
          EA=1; //總中斷



          ET0=1; //定時(shí)器0中斷
          TR0=1; //定時(shí)器0中斷
          TMOD=0X01; //定時(shí)器狀態(tài) 定時(shí)器0方式1,16位計(jì)數(shù)器
          TH0=(65535-300)/256; //初值設(shè)定為300us=0.30ms
          TL0=(65535-300)%6;



          EX1=1; //開(kāi)啟外部中斷 1
          IT1=1; // 設(shè)置成 下降沿觸發(fā)方式 (為0時(shí)為低電平觸發(fā))
          PX1=1;//將外中斷設(shè)置為高優(yōu)先級(jí)
          }

          ex_rem(void) interrupt 2
          {
          bit flag;
          int i=0;
          EX1=0;


          if(flag)
          {

          if(count>=27&&count<=33)// 引導(dǎo)碼接受成功
          {
          i=0;//給計(jì)數(shù)標(biāo)志位
          }

          dat[i]=count;//將計(jì)時(shí)數(shù)存入,備用處理
          count=0;//計(jì)數(shù)清零
          i++;//下一次的計(jì)時(shí)數(shù)

          if(i==33)//如果一次信號(hào)32位全部OK
          {
          i=0;//給計(jì)數(shù)標(biāo)志位
          get_over=1;//置計(jì)數(shù)標(biāo)志
          }
          else
          {
          count=0;//否則計(jì)數(shù)清零,置標(biāo)志位,繼續(xù)
          flag=1;
          }
          }
          EX1=1;
          }

          void timer0(void) interrupt 1
          {
          TH0=(65535-500)/256;
          TL0=(65535-500)%6;
          //TMOD=0X01;
          count++;

          }

          void exchange(void) //編碼子程序從第三個(gè)數(shù)據(jù)開(kāi)始
          {
          unsigned char i,j,k,val,tmp1;

          k=1;


          for(i=0;i<4;i++)
          {
          for(j=0;j<8;j++)

          {
          tmp1=dat[k];

          if(tmp1>4)
          val=val|0x80;
          else val=val;

          if(j<8)
          val=val>>1;

          k++;
          }

          ircode[i]=val;
          val=0;
          }
          }

          void dis() //顯示子程序 OK
          {
          P1=0XF0;
          P2=table[ircode[2]/10];
          delay(1);
          P1=0xF1;
          P2=table[ircode[2]];
          delay(1);

          }

          void delay(uint z) //延時(shí)子函數(shù)
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--);
          }




          關(guān)鍵詞: 單片機(jī)紅外遙控bet

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();