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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于89C52與DT9122D紅外遙控用數(shù)碼管顯示

          基于89C52與DT9122D紅外遙控用數(shù)碼管顯示

          作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
          本實(shí)驗(yàn)是89C52DT9122D紅外遙控的鍵值顯示在數(shù)碼管上,希望對(duì)朋友們有幫助,程序如下:

          #include
          #include
          typedefunsigned int uint;
          typedefunsigned char uchar;

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

          uchar code smg_tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//數(shù)碼管段碼0~F

          sbit IRINPUT=P3^2;//紅外線接收頭端口

          uchar IR_Input_Buffer[]={0x00,0x00,0x00,0x00};
          uchar Display_Buffer[]={0x00,0x00};//數(shù)碼管顯示緩沖
          //-------------------------------------------------/
          //函數(shù)功能:延時(shí)函數(shù)(MS)              /
          //入口參數(shù):x/
          //出口函數(shù):無(wú)/
          //------------------------------------------------/
          void _delay_ms(uint x)
          {
          uchar i;
          while(x--)for(i=0;i<120;i++);
          }
          //-------------------------------------------------/
          //函數(shù)功能:延時(shí)函數(shù)(140US)           //
          //入口參數(shù):x//
          //出口函數(shù):無(wú)//

          void _delay_us(uint x)
          {
          uchar i;
          while(x--)
          for(i=0;i<13;i++);
          }
          //-------------------------------------------------/
          //函數(shù)功能:中斷0初始化             /
          //入口參數(shù):無(wú)//
          //出口函數(shù):無(wú)//

          void IR_INT0(void)
          {
          EX0=1;
          IT0=1;
          EA=1;
          }
          //------------------------------------------------/
          //函數(shù)功能:顯示函數(shù)(把接收到數(shù)據(jù)顯示在數(shù)碼管)   /
          //入口參數(shù):無(wú)/
          //出口函數(shù):無(wú)  /
          //------------------------------------------------/
          void Show_IR_Input_Value(void)
          {
          P2=0x7f;
          P0=smg_tab[Display_Buffer[0]];
          _delay_ms(2);
          P2=0xbf;
          P0=smg_tab[Display_Buffer[1]];
          _delay_ms(2);
          }
          //--------------------------------------------------/
          //函數(shù)功能:主函數(shù)(程序入口)            /
          //入口參數(shù):無(wú)/
          //出口函數(shù):無(wú)  /
          //------------------------------------------------/
          void main(void)
          {
          IR_INT0();
          IRINPUT=1;
          while(1)
          {
          Show_IR_Input_Value();
          }
          }
          //--------------------------------------------------/
          //函數(shù)功能:外部中斷0函數(shù)             /
          //入口參數(shù):無(wú)/
          //出口函數(shù):無(wú)  /
          //-------------------------------------------------/
          void Display_IR_Input_Value(void) interrupt 0//紅外遙控信號(hào)進(jìn)行鍵值解碼和糾錯(cuò).
          {

          uchar i,j,k,N=0;
          EX0=0;
          _delay_us(15);
          for(i=0;i<14;i++)
          {
          if(IRINPUT)
          {
          EX0=1;
          return;
          }
          }
          while(!IRINPUT)
          _delay_us(1);
          for(j=0;j<4;j++)
          {
          for(k=0;k<8;k++)
          {
          while(IRINPUT)
          _delay_us(1);
          while(!IRINPUT)
          _delay_us(1);
          while(IRINPUT)
          {
          _delay_us(1);
          N++;
          if(N>=30)
          {
          EX0=1;
          return;
          }
          }
          IR_Input_Buffer[j]=IR_Input_Buffer[j]>>1;
          if(N>=8)
          IR_Input_Buffer[j]=IR_Input_Buffer[j]|0x80;
          N=0;
          }
          }
          if(IR_Input_Buffer[2]!=~IR_Input_Buffer[3])
          {
          EX0=1;
          return;
          }
          Display_Buffer[0]=IR_Input_Buffer[2]&0x0f;
          Display_Buffer[1]=IR_Input_Buffer[2]>>4;
          EX0=1;
          }



          評(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); })();