<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 單片機(jī) >> 正文

      51單片機(jī)4*4掃描C程序

      作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2011/3/31
      ;******************************************************
      ;*標(biāo)題:    東哥   51單片機(jī)4*4掃描C程序  
      ;*文件:                            
      ;*版本:    1.0 
      ;*作者:    東哥    
      ;*郵箱:    picavr@163.com     QQ: 279068079

      ;*******************************************************   

      #include "reg52.h"
      #include<intrins.h>
      #define  uchar unsigned char  
      #define  uint  unsigned int
      bit FLAG0=0;
      uchar ptr;
      static const char tab[16]={0x01,0x02,0x03,0x0c, /*鍵盤(pán)碼00,01,02,03,*/
                                 0x04,0x05,0x06,0x0d, /*鍵盤(pán)碼04,05,06,07,*/
                                 0x07,0x08,0x09,0x0e, /*鍵盤(pán)碼08,09,0a,0b,*/
                                 0x0a,0x00,0x0b,0x0f};/*鍵盤(pán)碼0c,0d,0e,0f*/
      void delay (unsigned int value)  /*延時(shí)副程式*/
       {
            while (value!=0) value--;  /*10US延時(shí)*/
       }

      void scan(void)    /*掃描鍵盤(pán)副程式*/
      {
       uchar a1=0xef,i,m;         /*A1=0XF7列掃描初值,I行*/
       FLAG0=0;                 /*設(shè)按鍵回應(yīng)旗號(hào)為0,鍵盤(pán)掃描計(jì)數(shù)指標(biāo)為0*/
           for(i=0;i<4;i++)  /*鍵盤(pán)4個(gè)掃描列*/
            {
                     P2=a1;   /*列掃描輸出,讀入P1存入M,以便偵測(cè)行與偵測(cè)按鍵是否放開(kāi)*/
                      m=P2;
                      switch(m&0x0f)  /*取行的高4位元,偵測(cè)那一行被按*/
                  {
                   case 0x07: ptr=i*4; /*第一行被按否?是則掃描指標(biāo)=列X4*/
                                 FLAG0=1; /*是則設(shè)FLAG0=1表有按鍵輸入*/
                                 break; /*跳出此循環(huán)*/
                      case 0x0b: ptr=i*4+1; /*第二行被按否?是則掃描指標(biāo)=列X4+1*/
                                 FLAG0=1; /*是則設(shè)FLAG0=1表有按鍵輸入*/
                                 break; /*跳出此循環(huán)*/ 
                      case 0x0d: ptr=i*4+2; /*第三行被按否?是則掃描指標(biāo)=列X4+2*/
                                 FLAG0=1; /*是則設(shè)FLAG0=1表有按鍵輸入*/
                                 break; /*跳出此循環(huán)*/
                      case 0x0e: ptr=i*4+3; /*第四行被按否?是則掃描指標(biāo)=列X4+3*/
                                 FLAG0=1; /*是則設(shè)FLAG0=1表有按鍵輸入*/
                       default:  break; /*跳出此循環(huán)*/
                  }
               if(FLAG0==1)break;  /*不為1,則掃描列右移,掃描下一列*/
               a1=a1<<1|0x01;   /*高位補(bǔ)1,由于P1.7~P1.4未接+5V,而是由指令加載高電平*/
             }
       } 
      void main(void)
      {
       TMOD=0x20;                            //T1工作方式2
       TH1=0xfd;                             //串口波特率為9600
       TCON=0x40;                           //啟動(dòng)T1
       SCON=0x40;                           //串口工作與方式1并禁止接受
       IE=0x00;                             //無(wú)中斷
       while(1)
       {
         scan();                           //啟動(dòng)鍵盤(pán)掃描
         if(FLAG0)                         //當(dāng)FLAG0=1時(shí),有鍵輸入
         {
          SBUF=tab[ptr];                     
          while(TI==0);TI=0;               //將鍵值送串口
          FLAG0=0;                         //將標(biāo)識(shí)位清零 
          delay(30000);                    //延時(shí)
          } 
        } 
       }    
      Tags:51單片機(jī),4*4掃描,C程序  
      責(zé)任編輯:admin
      相關(guān)文章列表
      51單片機(jī)零基礎(chǔ)入門(mén)
      基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)_Proteus仿真+程序
      基于51單片機(jī)的數(shù)字電壓表(ADC0832)(Proteus仿真+程序)_基于
      超聲波測(cè)距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測(cè)距C語(yǔ)言程序
      基于51單片機(jī)的SHT11溫濕度測(cè)量?jī)x設(shè)計(jì)(源碼+仿真+文檔)
      基于51單片機(jī)的恒溫控制器系統(tǒng) protues+keil c
      51單片機(jī)數(shù)碼管顯示程序, 共陰數(shù)碼管顯示程序 數(shù)碼管原理(顯示
      51單片機(jī)學(xué)習(xí)筆記直流電機(jī)驅(qū)動(dòng)(PWM)C語(yǔ)言程序
      MCU-51單片機(jī)直流電機(jī)驅(qū)動(dòng)(PWM)51單片機(jī)驅(qū)動(dòng)直流電機(jī)
      先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
      51單片機(jī)和STM32單片機(jī)的結(jié)構(gòu)有什么不同
      51單片機(jī)、AVR單片機(jī)和PIC單片機(jī)的IO口操作
      關(guān)于51單片機(jī)IO引腳的驅(qū)動(dòng)能力與上拉電阻
      51單片機(jī)“呼吸燈”程序
      51單片機(jī)入門(mén)之靜態(tài)數(shù)碼管電路設(shè)計(jì)
      AT89C51,51單片機(jī)1602液晶顯示時(shí)鐘程序
      4位單片機(jī)數(shù)字鐘 電子鐘制作
      51單片機(jī)4位數(shù)碼管電子鐘源程序
      AT89C2051電腦機(jī)箱風(fēng)扇智能溫控儀,AT89C2051 Temperature contro
      51單片機(jī)溫控風(fēng)扇(含程序+原理圖+仿真+PCB)
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱(chēng):
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢(xún)
      主站蜘蛛池模板: 中文自拍日本综合| 99久久亚洲综合精品成人网| 中文字幕亚洲综合小综合在线| 天天在线天天综合网色| 狠狠色丁香久久婷婷综合_中| 18和谐综合色区| 伊人久久大香线焦AV综合影院| 久久丝袜精品综合网站| 狠狠色丁香婷婷综合潮喷| AV色综合久久天堂AV色综合在| 伊人色综合久久天天人守人婷 | 狠狠色伊人久久精品综合网| 国产成人亚洲综合无码| 色综合合久久天天综合绕视看| 91精品国产91久久综合| 国产综合视频在线观看一区| 色噜噜狠狠成人中文综合| 色欲老女人人妻综合网| 一本大道加勒比久久综合| 91精品国产综合久久精品| 69国产成人综合久久精品91| 亚洲国产aⅴ综合网| 精品综合久久久久久99| 亚洲欧美国产国产综合一区| 亚洲欧洲日韩国产综合在线二区| 久久综合精品国产一区二区三区| 亚洲国产综合久久天堂| 亚洲偷自拍拍综合网| 国产精品亚洲综合一区在线观看| 天天狠狠色综合图片区| 色综合视频一区中文字幕| 色成年激情久久综合| 亚洲国产日韩综合久久精品| 18和谐综合色区| 色偷偷91久久综合噜噜噜噜 | 色综合67194| 一本一道久久综合久久| 国产香蕉尹人综合在线观看| 狠狠色丁香婷婷综合潮喷| 国产综合在线观看| 色欲人妻综合AAAAA网|