新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)4×4矩陣鍵盤設(shè)計(jì)方案

        單片機(jī)4×4矩陣鍵盤設(shè)計(jì)方案

        作者: 時(shí)間:2011-10-26 來源:網(wǎng)絡(luò) 收藏
        7、C語言源程序

        本文引用地址:http://www.104case.com/article/172439.htm

          #include

          unsigned char code table[]={0x3f,0x66,0x7f,0x39,

          0x06,0x6d,0x6f,0x5e,

          0x5b,0x7d,0x77,0x79,

          0x4f,0x07,0x7c,0x71};

          void main(void)

          { unsigned char i,j,k,key;

          while(1)

          { P3=0xff; //給P3口置1//

          P3_4=0; //給P3.4這條線送入0//

          i=P3;

          i=i0x0f; //屏蔽低四位//

          if(i!=0x0f) //看是否有按鍵按下//

          { for(j=50;j>0;j--) //延時(shí)//

          for(k=200;k>0;k--);

          if(i!=0x0f) //再次判斷按鍵是否按下//

          { switch(i) //看是和P3.4相連的四個(gè)按鍵中的哪個(gè)//

          { case 0x0e:

          key=0;

          break;

          case 0x0d:

          key=1;

          break;

          case 0x0b:

          key=2;

          break;

          case 0x07:

          key=3;

          break;

          }

          P0=table[key]; //送數(shù)到P0口顯示//

          }

          }

          P3=0xff;

          P3_5=0; //讀P3.5這條線//

          i=P3;

          i=i0x0f; //屏蔽P3口的低四位//

          if(i!=0x0f) //讀P3.5這條線上看是否有按鍵按下//

          { for(j=50;j>0;j--) //延時(shí)//

          for(k=200;k>0;k--);

          i=P3; //再看是否有按鍵真的按下//

          i=i0x0f;

          if(i!=0x0f)

          { switch(i) //如果有,顯示相應(yīng)的按鍵//

          { case 0x0e:

          key=4;

          break;

          case 0x0d:

          key=5;

          break;

          case 0x0b:

          key=6;

          break;

          case 0x07:

          key=7;

          break;

          }

          P0=table[key]; //送入P0口顯示//

          }

          }

          P3=0xff;

          P3_6=0; //讀P3.6這條線上是否有按鍵按下//

          i=P3;

          i=i0x0f;

          if(i!=0x0f)

          { for(j=50;j>0;j--)

          for(k=200;k>0;k--);

          i=P3;

          i=i0x0f;

          if(i!=0x0f)

          { switch(i)

          { case 0x0e:

          key=8;

          break;

          case 0x0d:

          key=9;

          break;

          case 0x0b:

          key=10;

          break;

          case 0x07:

          key=11;

          break;

          }

          P0=table[key];

          }

          }

          P3=0xff;

          P3_7=0; //讀P3.7這條線上是否有按鍵按下//

          i=P3;

          i=i0x0f;

          if(i!=0x0f)

          { for(j=50;j>0;j--)

          for(k=200;k>0;k--);

          i=P3;

          i=i0x0f;

          if(i!=0x0f)

          { switch(i)

          { case 0x0e:

          key=12;

          break;

          case 0x0d:

          key=13;

          break;

          case 0x0b:

          key=14;

          break;

          case 0x07:

          key=15;

          break;

          }

          P0=table[key];

          }

          }

          }

          }

          8、注意事項(xiàng)

          在硬件電路中,要把8聯(lián)撥動(dòng)撥碼開關(guān)JP2撥下,把8聯(lián)撥動(dòng)撥碼開關(guān)JP3撥上去。

        DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY


        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理



        上一頁 1 2 3 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 洪江市| 兴国县| 越西县| 庆云县| 房山区| 三原县| 南通市| 揭西县| 南投县| 公主岭市| 田阳县| 大厂| 原平市| 宝清县| 罗源县| 繁昌县| 长兴县| 阿巴嘎旗| 隆尧县| 两当县| 信宜市| 崇仁县| 邢台市| 九寨沟县| 定南县| 横山县| 太湖县| 山丹县| 闽清县| 遂宁市| 鹰潭市| 乐山市| 宝清县| 通许县| 广河县| 鹿泉市| 吕梁市| 鸡西市| 高密市| 会昌县| 万盛区|