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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機C編程(七、5個IO口掃描10個按鍵)

          51單片機C編程(七、5個IO口掃描10個按鍵)

          作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏
          程序名稱:5個IO口掃描10個按鍵

          者:jumpmysoul
          期:2009年5月22日
          程序功能:用P1口的P00~P04實現(xiàn)10個按鍵的掃描,并將鍵值用一個數(shù)碼管顯示

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

          proteus仿真電路如下:

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

          uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x08};//共陽數(shù)碼管段碼

          void delay1ms(uint);
          uchar press_key();
          void display();
          /
          uchar press_key()
          {
          uchar keyval;

          P1=0xfe;//第一行送0
          if(P1!=0xfe)
          {
          delay1ms(1);
          if(P1!=0xfe)
          {
          if(P1==0xfc)//‘1’按下
          keyval=1;
          else if(P1==0xfa)// ‘2’按下
          keyval=2;
          else if(P1==0xf6)// ‘3’按下
          keyval=3;
          else if(P1==0xee)// ‘4’按下
          keyval=4;
          }
          }

          P1=0xfd;//第二行送0
          if(P1!=0xfd)
          {
          delay1ms(1);
          if(P1!=0xfd)
          {
          if(P1==0xf9)//‘5’按下
          keyval=5;
          else if(P1==0xf5)// ‘6’按下
          keyval=6;
          else if(P1==0xed)//‘7’按下
          keyval=7;
          }
          }

          P1=0xfb;//第三行送0
          if(P1!=0xfb)
          {
          delay1ms(1);
          if(P1!=0xfb)
          {
          if(P1==0xf3)// ‘8’按下
          keyval=8;
          else if(P1==0xeb) // ‘9’按下
          keyval=9;
          }
          }

          P1=0xf7;//第四行送0
          if(P1!=0xf7)
          {
          delay1ms(1);
          if(P1!=0xf7)
          {
          if(P1==0xe7)//‘10’按下
          keyval=10;
          }
          }

          return(keyval);//返回鍵值
          }
          /***************************************鍵值顯示子函數(shù)*********************

          //入口參數(shù):無
          //返回參數(shù):無
          //調用子函數(shù):press_key()
          //函數(shù)功能:將鍵值用數(shù)碼管顯示出來
          //*********************************************************************************
          void display()
          {
          uchar i;
          i=press_key();
          SEG=tab[i];
          }



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();