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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 狀態(tài)機方式按鍵掃描單片機程序

          狀態(tài)機方式按鍵掃描單片機程序

          作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
          這是從http://www.51hei.com/bbs/dpj-19294-1.html這個單片機做的收音機里面截取出來的一個子程序,完整的代碼和adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=66a41a025f30382d&k=%D4%AD%C0%ED%CD%BC&k0=%D4%AD%C0%ED%CD%BC&kdi0=0&luki=3&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=2d38305f21aa466&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F1974%2Ehtml&urlid=0" id="5_nwl" mpid="5" target="_blank">原理圖可從原帖下載.

          /*-----------狀態(tài)機方式按鍵掃描-----------*/
          /*------------外部晶振為 12MHz-----------*/
          /*--------最后修改2011.02.26--------------*/
          #include "STC12C5620AD.H"
          #include "Key_Scan.H"
          #define Key_Mask 0x0f //屏蔽不用的按鍵,不用的按鍵用0屏蔽

          本文引用地址:http://www.ex-cimer.com/article/201612/325014.htm

          /********************** 聲明外部變量**************************/
          extern uchar Work_Mode; //From Main.c
          /********************** 按鍵掃描讀取**************************/
          uchar Key_Scan(void)
          {
          static uchar Key_State=0; //定義按鍵狀態(tài)
          uchar Key_Press;
          uchar Key_Return=0x00; //定義按鍵返回的鍵值
          Key_Press=Key_Input&Key_Mask;//讀按鍵I/O電平
          switch(Key_State)
          {
          case 0: // 按鍵初始態(tài)
          if (Key_Press!=Key_Mask)
          Key_State=1; // 鍵被按下,狀態(tài)轉(zhuǎn)換到鍵確認態(tài)
          break;
          case 1: // 按鍵確認態(tài)
          if (Key_Press==Key_Input&Key_Mask)
          {
          Key_Return=Key_Press; // 按鍵仍按下且鍵值鍵值,按鍵確認輸出
          BEEP_DRV=1; // 驅(qū)動蜂鳴器
          Key_State=2;// 狀態(tài)轉(zhuǎn)換到鍵釋放態(tài)
          }
          else
          Key_State=0;// 按鍵已抬起或改變,并轉(zhuǎn)換到按鍵初始態(tài)
          break;
          case 2:
          if (Key_Press==Key_Mask)
          {
          Key_State=0;//按鍵已釋放,轉(zhuǎn)換到按鍵初始態(tài)
          BEEP_DRV=0;// 關(guān)閉蜂鳴器
          }
          else
          if(Work_Mode==1)
          {
          Key_Return=Key_Press|0x09; // 只有調(diào)臺模式并且只有>>| 和 |<< 才能連按
          BEEP_DRV=0;// 關(guān)閉蜂鳴器
          }
          else
          BEEP_DRV=0;// 關(guān)閉蜂鳴器
          break;
          }
          return Key_Return;
          }



          評論


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