亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種應(yīng)用于POS系統(tǒng)的掃描按鍵方法與流程

文檔序號:11628570閱讀:628來源:國知局
一種應(yīng)用于POS系統(tǒng)的掃描按鍵方法與流程

本發(fā)明涉及pos機程序領(lǐng)域,尤其涉及一種應(yīng)用于pos系統(tǒng)的掃描按鍵方法。



背景技術(shù):

隨著刷卡或二維碼消費的增多,pos機應(yīng)用也越來越廣泛。進行刷卡或二維碼消費時,需要鍵入支付密碼,而諸如鍵盤側(cè)錄等方式會攻擊pos機系統(tǒng),盜取用戶的支付密碼和支付賬戶,造成在pos機系統(tǒng)上消費用戶的財產(chǎn)損失。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的在于提供一種應(yīng)用于pos系統(tǒng)的掃描按鍵方法,從而解決現(xiàn)有技術(shù)中存在的前述問題。

為了實現(xiàn)上述目的,本發(fā)明所述應(yīng)用于pos系統(tǒng)的掃描按鍵方法,所述方法:

s1,預(yù)先設(shè)置根據(jù)歷史按鍵的行列電平輸入狀態(tài)數(shù)據(jù)獲得的鍵盤按鍵表;

s2,當(dāng)有按鍵按下時,調(diào)用按鍵掃描函數(shù),隨機選取預(yù)設(shè)掃描方法得到當(dāng)前被掃描行或列的電平數(shù)據(jù);

所述預(yù)設(shè)掃描方法包括:拉高掃描列方法、拉低掃描列方法、拉高掃描行方法、拉低掃描行方法;

s3,在預(yù)先設(shè)置的鍵盤按鍵表的基礎(chǔ)上,結(jié)合當(dāng)前被掃描行或列的電平數(shù)據(jù),獲得被按下的按鍵并存入緩存區(qū),完成一次按鍵的掃描。

優(yōu)選地,相鄰兩次按鍵掃描的時間間隔為10毫秒。

優(yōu)選地,所述預(yù)設(shè)掃描方法為拉高掃描列方法,具體包括以下步驟:

a1,判斷列當(dāng)前計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則進入a2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

a2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻下拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

a3,設(shè)置被掃描列所對應(yīng)針腳為輸出,設(shè)置被掃描列所對應(yīng)針腳為高電平;

a4,判斷行的計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則記錄被掃描行對應(yīng)針腳輸出高電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回a1。

優(yōu)選地,所述預(yù)設(shè)掃描方法為拉低掃描列方法,具體包括以下步驟:

b1,判斷列當(dāng)前計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則進入b2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

b2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻上拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

b3,設(shè)置被掃描列所對應(yīng)針腳為輸出,設(shè)置被掃描列所對應(yīng)針腳為低電平;

b4,判斷行的計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則記錄被掃描行對應(yīng)針腳輸出低電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回b1。

優(yōu)選地,所述預(yù)設(shè)掃描方法為拉高掃描行方法,具體包括以下步驟:

c1,判斷行當(dāng)前計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則進入c2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

c2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻下拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

c3,設(shè)置被掃描行所對應(yīng)針腳為輸出,設(shè)置被掃描行所對應(yīng)針腳為高電平;

c4,判斷列的計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則記錄被掃描列對應(yīng)針腳輸出高電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回c1。

優(yōu)選地,所述預(yù)設(shè)掃描方法為拉低掃描行方法,具體包括以下步驟:

d1,判斷行當(dāng)前計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則進入d2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

d2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻上拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

d3,設(shè)置被掃描行所對應(yīng)針腳為輸出,設(shè)置被掃描行所對應(yīng)針腳為低電平;

d4,判斷列的計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則記錄被掃描列對應(yīng)針腳輸出低電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回d1。

優(yōu)選地,在步驟s3之后還包括以下步驟:

s4,檢測緩存區(qū)中是否有新更新的按鍵,如果有,則檢測是否需要播放按鍵音;如果是,則播放按鍵音;如果否,則不播放按鍵音;

在檢測是否需要播放按鍵音的同時,喚醒讀取按鍵的線程。

本發(fā)明的有益效果是:

使用本發(fā)明所述方法在按鍵掃描過程中隨機使用不同預(yù)設(shè)掃描方法,避免鍵盤側(cè)錄等方式對按鍵掃描過程的攻擊,保證了數(shù)據(jù)的安全性。

附圖說明

圖1是應(yīng)用于pos系統(tǒng)的掃描按鍵方法的流程示意圖;

圖2是拉高掃描列方法的流程示意圖;

圖3是拉低掃描列方法的流程示意圖;

圖4是拉高掃描行方法的流程示意圖;

圖5是拉低掃描行方法的流程示意圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施方式僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

實施例

本實施例所述應(yīng)用于pos系統(tǒng)的掃描按鍵方法,所述方法:

s1,預(yù)先設(shè)置根據(jù)歷史按鍵的行列電平輸入狀態(tài)數(shù)據(jù)獲得的鍵盤按鍵表;

s2,當(dāng)有按鍵按下時,調(diào)用按鍵掃描函數(shù),隨機選取預(yù)設(shè)掃描方法得到當(dāng)前被掃描行或列的電平數(shù)據(jù);

所述預(yù)設(shè)掃描方法包括:拉高掃描列方法、拉低掃描列方法、拉高掃描行方法、拉低掃描行方法;

s3,在預(yù)先設(shè)置的鍵盤按鍵表的基礎(chǔ)上,結(jié)合當(dāng)前被掃描行或列的電平數(shù)據(jù),獲得被按下的按鍵并存入緩存區(qū),完成一次按鍵的掃描;

s4,檢測緩存區(qū)中是否有新更新的按鍵,如果有,則檢測是否需要播放按鍵音;如果是,則播放按鍵音;如果否,則不播放按鍵音;在檢測是否需要播放按鍵音的同時,喚醒讀取按鍵的線程。

更詳細(xì)的解釋說明為:

(一)相鄰兩次按鍵掃描的時間間隔為10毫秒。

(二)

1、所述預(yù)設(shè)掃描方法為拉高掃描列方法,具體包括以下步驟:

a1,判斷列當(dāng)前計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則進入a2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

a2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻下拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

a3,設(shè)置被掃描列所對應(yīng)針腳為輸出,設(shè)置被掃描列所對應(yīng)針腳為高電平;

a4,判斷行的計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則記錄被掃描行對應(yīng)針腳輸出高電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回a1。

2、所述預(yù)設(shè)掃描方法為拉低掃描列方法,具體包括以下步驟:

b1,判斷列當(dāng)前計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則進入b2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

b2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻上拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

b3,設(shè)置被掃描列所對應(yīng)針腳為輸出,設(shè)置被掃描列所對應(yīng)針腳為低電平;

b4,判斷行的計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則記錄被掃描行對應(yīng)針腳輸出低電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回b1。

3、所述預(yù)設(shè)掃描方法為拉高掃描行方法,具體包括以下步驟:

c1,判斷行當(dāng)前計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則進入c2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

c2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻下拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

c3,設(shè)置被掃描行所對應(yīng)針腳為輸出,設(shè)置被掃描行所對應(yīng)針腳為高電平;

c4,判斷列的計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則記錄被掃描列對應(yīng)針腳輸出高電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回c1。

4、所述預(yù)設(shè)掃描方法為拉低掃描行方法,具體包括以下步驟:

d1,判斷行當(dāng)前計數(shù)是否小于預(yù)設(shè)行的最大計數(shù),如果是,則進入d2;如果否,則記錄當(dāng)前按鍵的狀態(tài)數(shù)據(jù);

d2,設(shè)置所有列和所有行所對應(yīng)針腳的電阻上拉,設(shè)置所有列和所有行所對應(yīng)針腳為輸入;

d3,設(shè)置被掃描行所對應(yīng)針腳為輸出,設(shè)置被掃描行所對應(yīng)針腳為低電平;

d4,判斷列的計數(shù)是否小于預(yù)設(shè)列的最大計數(shù),如果是,則記錄被掃描列對應(yīng)針腳輸出低電平時,當(dāng)前被掃描列和被掃描行所對應(yīng)的按鍵狀態(tài)數(shù)據(jù);如果否,則返回d1。

本發(fā)明所述方法由中央處理器負(fù)責(zé)解碼,需要用到針腳的上拉或下拉電阻、一個中斷、一個硬件定時器。每次中斷時掃描按鍵一次,同時激活定時器,定時器每十毫秒觸發(fā)一次,每次也掃描按鍵一次,當(dāng)按鍵解碼完成不再需要繼續(xù)掃描時,會自動關(guān)閉該定時器。

掃描按鍵時,按掃描行或掃描列對應(yīng)的通用輸入輸出針腳的上拉或下拉電阻分類,共有四種掃描按鍵方法,分別為:拉高掃描列方法、拉低掃描列方法、拉高掃描行方法、拉低掃描行方法,在程序撰寫時,賦予上述四種方法唯一的編碼號。

每次掃描按鍵時,從四個編碼號中隨機選取編碼號,保證了每個按鍵不會和某一特定的時序相對應(yīng),增加了攻擊的難度。

通過采用本發(fā)明公開的上述技術(shù)方案,得到了如下有益的效果:

使用本發(fā)明所述方法在按鍵掃描過程中隨機使用不同預(yù)設(shè)掃描方法,避免鍵盤側(cè)錄等方式對按鍵掃描過程的攻擊,保證了數(shù)據(jù)的安全性。

以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視本發(fā)明的保護范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1