色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C51單片機(jī)鍵盤(pán)檢測(cè)原理以及實(shí)現(xiàn)

          C51單片機(jī)鍵盤(pán)檢測(cè)原理以及實(shí)現(xiàn)

          作者: 時(shí)間:2012-08-04 來(lái)源:網(wǎng)絡(luò) 收藏

          首先,在做軟件之前確定硬件。明確鍵盤(pán)類(lèi)型:
          彈性按鍵:按下時(shí)閉合,松手后自動(dòng)斷開(kāi)。如電腦鍵盤(pán)

          自鎖式按鍵:按下時(shí)閉合,且自動(dòng)鎖住。一邊用于開(kāi)關(guān)

          在I/O口檢測(cè)觸電電壓時(shí)應(yīng)該考慮按鍵抖動(dòng)問(wèn)題,一般按鍵抖動(dòng)為5~10ms左右,具體與其機(jī)械特性有關(guān),所以要加檢測(cè)抖動(dòng)環(huán)節(jié),可以用軟件或者去抖動(dòng)芯片硬件處理,當(dāng)然通常用延時(shí)方法處理。
          注意正確連接引腳。

          下面是一個(gè)簡(jiǎn)單的4按鍵獨(dú)立鍵盤(pán)程序,在51hei開(kāi)發(fā)板的數(shù)碼管上操作。
          完整的源代碼下載 http://www.51hei.com/f/jpdd.rar
          數(shù)值為0~59變化,開(kāi)始顯示00
          按key1數(shù)值加1,按key2數(shù)值減1,按key3數(shù)值歸0,按key4數(shù)值每秒加1。

          #include reg52.h>
          #define uchar unsigned char
          #define unit unsigned int
          sbit key1=P3^2;
          sbit key1=P3^4;
          sbit key1=P3^6;
          sbit key1=P3^7;
          sbit dula=P2^6;
          sbit wela=P2^7;
          uchar code table[]={
          0x3f,0x06.0x5b,0x4f,
          0x66,0x6d,0x7d,0x07
          0x7f,0x6f,0x77,0x7c
          0x39,0x5e,0x79,0x71};
          void delayms(unit);
          uchar numt0,unm;
          void display(uchar numdis) //定義一個(gè)顯示的函數(shù),分個(gè)位十位,用來(lái)顯示
          {
          uchar shi,ge; //然后用輪流顯示發(fā),利用人眼圖像殘留分別顯示
          shi=numdis/10; //上面的numdis表示num這個(gè)顯示的數(shù)
          ge=numdis%10; //numdis由下面主函數(shù)num賦值

          dula=1;
          P0=table[shi];
          dula=0;

          P0=0xff;
          wela=1;
          P0=0xfe;
          wela=0;
          delayms(5);

          dula=1;
          P0=table[ge];
          dula=0;

          P0=0xff;
          wela=1;
          P0=0xfe;
          wela=0;
          delayms(5);
          }
          void delayms(unit xms) //自定義延遲環(huán)節(jié)
          {
          unit i,j;
          for(i=xms,i>0,i--);
          for(j=110,j>0,j--);
          }
          void init() //初始化函數(shù),保證程序正常運(yùn)行
          {
          TMOD=0x01;
          TH0=(65536-45872)/256;
          TL0=(65536-458720%256;
          EA=1;
          ET=0;
          }


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉