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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機系列連載8—獨立鍵盤與矩陣鍵盤

          51單片機系列連載8—獨立鍵盤與矩陣鍵盤

          作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
          在前面我們講的都是向單片機中向外輸出數(shù)據(jù),今天我們開始介紹一下如何向單片機里面輸入數(shù)據(jù),也就是鍵盤。

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

          鍵盤有兩種,獨立式鍵盤與行列式矩陣鍵盤。

          獨立式鍵盤是指直接用一根I/O口線構(gòu)成的單個按鍵電路,每個I/O口的按鍵不會影響另外一個,具體電路圖如下:

          接下來看一個程序,這個程序主要是按鍵二極管亮,同時按一下數(shù)碼管顯示一下,往下加,加到9,具體程序如下:

          #include

          #defineuintunsignedint;

          #defineucharunsignedchar;

          sbitd1=P1^2;

          sbitduan=P2^2;

          sbitwei=P2^3;

          sbitkey1=P3^3;

          ucharcodetable[]={

          0x3f,0x06,0x5b,0x4f,

          0x66,0x6d,0x7d,0x07,

          0x7f,0x6f,0x77,0x7c,

          0x39,0x5e,0x79,0x71};

          ucharnum,t1,y,z;

          voiddelay(uintz)

          {

          uintt1,y;

          for(t1=z;t1>0;t1--)

          for(y=110;y>0;y--);

          }

          voidmain()

          {wei=1;

          P0=0xfe;

          wei=0;

          key1=1;

          while(1)

          {

          if(key1==0)

          {

          delay(10);

          if(key1==0)

          {

          d1=0;

          num ;

          if(num==10)

          num=0;

          }

          while(key1==0);//這個語句加的好神奇

          }

          else

          d1=1;

          duan=1;

          P0=table[num];

          duan=0;

          }

          }

          但是在仿真時就出現(xiàn)問題了,C(15):errorC141:syntaxerrornear;對應(yīng)的是這句voiddelay(uintz),但直到現(xiàn)在我都不知道它到底哪里錯了,真悲哀,先記下來,以后有時間回過頭再看。

          矩陣式鍵盤跟獨立式鍵盤相反,彼此之間是有聯(lián)系的,如下圖:


          矩陣式鍵盤的原理也很簡單,跟獨立按鍵的基本原理是一樣的,但是它是一行一行掃描的,由于時間關(guān)系就不做過多分析,具體看一下下面的編程:


          上一頁 1 2 下一頁

          評論


          技術(shù)專區(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); })();