按鍵掃瞄處理

2021-05-22 09:23:40 字數 616 閱讀 6680

按鍵處理

微控制器書本上對於鍵盤處理往往都給出了幾種不同的方案,但是在乙個實際的系統應用中,往往用起來感覺不是很好。主要的弊端就是實時性不好。

無論是採用中斷方式還是採用掃瞄方式,實行性都不能很好的達到要求。

對於鍵盤,大家都知道有抖動,最最常用的消除抖動的方法就是用軟體消抖。但是書本上的軟體消抖基本都是用乙個delay函式來實現10-20ms的延時。

而乙個前後臺的系統,也許乙個程式執行下來也就20ms,而由於有鍵盤延時判斷的存在,將導致整個系統執行都慢了下來。對此,實際應用中有一種處理方法。該方法有三條主線來處理。

第一條線:

採用外部中斷方式(或者掃瞄方式)檢查是否有鍵被按下。如果有,僅僅將乙個標誌位置位,表示有鍵按下了。姑且定義這個標誌位為key.flag。如果進入中斷,則 key.flag = 1;

第二條線:

系統應該提供乙個10ms的定時器,作為系統的時間片。在定時中斷內檢測是否key.flag==1,如果該標誌位為1,則表示已經檢測到有鍵按下,則啟動計時,計時變數定義為key.times。可以用**if( key.flag==1) 來統計檢測到按鍵以後進入10ms系統定時中斷的次數。

第三條線:

按鍵掃瞄處理

按鍵處理 微控制器書本上對於鍵盤處理往往都給出了幾種不同的方案,但是在乙個實際的系統應用中,往往用起來感覺不是很好。主要的弊端就是實時性不好。無論是採用中斷方式還是採用掃瞄方式,實行性都不能很好的達到要求。對於鍵盤,大家都知道有抖動,最最常用的消除抖動的方法就是用軟體消抖。但是書本上的軟體消抖基本都...

中斷掃瞄按鍵

之前都是使用軟掃瞄,參考 int button scan else 缺點是必須放到主函式的while 1 迴圈,如果while 1 中其他功能占用大量時間,就無法實現按鍵的連續掃瞄。但是如果採用中斷方式,當按鈕連線的pin來乙個上公升沿或下降沿,就會中斷主程序去執行中斷函式,從而實現連續掃瞄。1.f...

矩陣按鍵掃瞄電路

說到鍵盤掃瞄,相信大多數人第一反應就是行列矩陣掃瞄,這樣我們可以用相對有限的io口得到盡可能多的按鍵。鍵盤掃瞄是微控制器技術的一種基本處理方法,學校的微控制器課程都會有相應章節進行闡述,只要按照課本上講述的方法,一般都能設計出比較可靠的鍵盤掃瞄電路與程式。課本上的鍵盤掃瞄方法 見下圖接法二 不能說是...