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

          新聞中心

          AVR單片機(jī)密碼鎖程序

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

          switch(key)//確定有按鍵按下了就判斷下到底是哪個(gè)值
          {

          case 0xEE:qing=0;
          key=0x0;
          break;
          case 0xDE:qing1=1;
          key=0x1;
          break;
          case 0xBE:qing2=2;
          key=0x2;
          break;
          case 0x7E:qing3=3;
          key=0x3;
          break;
          case 0xED:
          key=0x4;
          break;
          case 0xDD:
          key=0x5;
          break;
          case 0xBD:
          key=0x6;
          break;
          case 0x7D:
          key=0x7;
          break;
          case 0xEB:
          key=8;
          break;
          case 0xDB:
          key=9;
          break;
          case 0xBB:
          key=0xA;
          break;
          case 0x7B:
          key=0xB;
          break;
          case 0xE7:
          key=0xC;
          break;
          case 0xD7:
          key=0xD;
          break;
          case 0xB7:
          key=0xE;
          break;
          case 0x77:
          key=0xF;
          break;
          }
          }
          }
          return key;//返回按鍵值
          }
          /******************************************************/
          /*******************密碼判斷子程序*********************/
          /******************************************************/
          void mi()
          {
          switch(num)
          {
          case 1://只有按鍵標(biāo)志位為1時(shí),說(shuō)明按下的是第1次
          if(qing==yin)//此時(shí)第1位密碼比較變量與初始密碼變量比較,是否相等
          {
          temp++;//如果相等則將比較標(biāo)志位加1,以作記號(hào)
          qing=0xff;//作完記號(hào)后,將比較變量賦值,以便它再次記數(shù)標(biāo)志位變量
          }
          break;//返回
          case 2://只有按鍵標(biāo)志位為2時(shí),說(shuō)明按下的是第2次
          if(qing1==yin1)
          {
          temp++;
          qing1=0xff;
          }
          break;
          case 3://只有按鍵標(biāo)志位為3時(shí),說(shuō)明按下的是第3次
          if(qing2==yin2)
          {
          temp++;
          qing2=0xff;
          }
          break;
          case 4://只有按鍵標(biāo)志位為4時(shí),說(shuō)明按下的是第4次
          if(qing3==yin3)
          {
          temp++;
          qing3=0xff;
          }
          break;
          }
          if(temp==4)//如果比較標(biāo)志位變量為4,則說(shuō)明以上4個(gè)密碼是對(duì)的,此時(shí)蜂鳴器響起
          bbt();//調(diào)用蜂鳴器響起子程序
          }
          /***********************************************/
          /*******************主程序*********************/
          /***********************************************/
          void main()
          {
          uchar ik=16;//定義局部變量
          temp=0;//蜂鳴器計(jì)數(shù)變量變0
          num=0;//計(jì)數(shù)器清0
          yin=0;//密碼1
          yin1=1;//密碼2
          yin2=2;//密碼3
          yin3=3;//密碼4
          qing=qing1=qing2=qing3=0;//密碼比較變量清0
          DDRB=0xff;//設(shè)置PB口為輸出
          DDRC=0xff;//設(shè)置PC口為輸出
          while(1)
          {
          ik=key_scan();//將按鍵返回值給變量IK
          /*****************第15個(gè)鍵按下時(shí)處理的程序*****************/
          if(ik==15)//如果按下了第15個(gè)鍵,就將按下的次數(shù)清0,即進(jìn)入初始化
          {
          num=0;//清0計(jì)數(shù)器
          temp=0;//清0計(jì)數(shù)器
          qing=qing1=qing2=qing3=0;//密碼比較變量清0
          }
          /*****************數(shù)碼管顯示部分*****************/
          if(ik16)//如果返回值小于16就在數(shù)碼
          xian(ik); //調(diào)用顯示子程序
          else//如果返回值不小于16,就顯示黑屏
          xian(16);
          /*****************密碼判斷部分*****************/
          mima();
          }
          }

          蜂鳴器相關(guān)文章:蜂鳴器原理

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

          關(guān)鍵詞: AVR 密碼鎖 矩陣鍵盤(pán)

          評(píng)論


          相關(guān)推薦

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