51單片機第四彈---矩陣鍵盤

來源:互聯網
上載者:User

標籤:

原理圖:

              

   原理:

              

和獨立鍵盤相似

/******************************************************************************** 實 驗 名 : 矩陣鍵盤實驗* 使用的IO     : 數位管使用P0 矩陣鍵盤使用P3* 實驗效果       : 顯示獨立鍵盤的按索引值* 注    意 :*******************************************************************************/#include <reg52.h>#include <intrins.h>#define GPIO_LED P2#define GPIO_DIG P0#define GPIO_KEY P1#define uint unsigned int#define uchar unsigned charsbit K1=P3^1;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;uchar KEY_VALUE;unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void Delay10ms();void KeyDown();void main(){LSA=0;LSB=0;LSC=0;while(1){KeyDown();GPIO_DIG=DIG_CODE[KEY_VALUE];}}void Delay10ms()  {      uchar i=38,j=130;      while(i--)          while(j--);  }  void KeyDown(){char n=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f){Delay10ms();if(GPIO_KEY!=0x0f){GPIO_KEY=0x0f;switch(GPIO_KEY){case(0x07):KEY_VALUE=0;break;case(0x0b):KEY_VALUE=1;break;case(0x0d):KEY_VALUE=2;break;case(0x0e):KEY_VALUE=3;break;}GPIO_KEY=0xf0;switch(GPIO_KEY){case(0x70):KEY_VALUE+=0;break;case(0xb0):KEY_VALUE+=4;break;case(0xd0):KEY_VALUE+=8;break;case(0xe0):KEY_VALUE+=12;break;}while((n<50)&&(GPIO_KEY!=0xf0)){Delay10ms();++n;}}}}


51單片機第四彈---矩陣鍵盤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.