麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

按鍵掃描方法和低壓電器的控制器與流程

文檔序號:11180221閱讀:377來源:國知局
按鍵掃描方法和低壓電器的控制器與流程

本發(fā)明涉及低壓電器領域,特別涉及一種按鍵掃描方法和低壓電器的控制器。



背景技術:

現有智能型的低壓電器,包括斷路器、變頻器、接觸器、繼電器等的控制器,在矩陣鍵盤的掃描方式上,常見的掃描方式分為中斷掃描和定時掃描方式,中斷掃描以按鍵中斷信號為掃描入口,定時掃描以定時服務為掃描入口。在現有的按鍵掃描中,按鍵消抖都是采用時間耗盡的方式進行消抖;按鍵值掃描時只進行單一的逐行掃描;在按鍵增加和刪除時,都需要對軟件進行修改,移植性差。

另外,低壓電器的矩陣式鍵盤由于空間限制,通常無法設置過多的按鍵,而且在使用時每個按鍵只能實現單一的功能,導致無法滿足應用的需要,或者需要用戶進行多次操作選擇,導致用戶操作過于復雜。



技術實現要素:

本發(fā)明的目的在于克服現有技術的缺陷,提供一種按鍵掃描方法,可以區(qū)分同一按鍵的短按鍵操作和長按鍵操作,使得同一按鍵可以實現不同的功能,還提供了一種低壓電器的控制器。

為實現上述目的,本發(fā)明采用了如下技術方案:

一種按鍵掃描方法,比較連續(xù)兩次掃描獲取的按鍵值,如果為相同的按鍵值,則將后續(xù)規(guī)定時間內掃描獲得的按鍵值與前面兩次所獲取的按鍵值比較;如果在后續(xù)規(guī)定時間內有一次按鍵掃描獲取的按鍵值與前面兩次所獲取的按鍵值不相同,則所獲取的按鍵類型為短按鍵操作;如果在后續(xù)規(guī)定時間內每次掃描所獲取的按鍵值均與前面兩次所獲取的按鍵值相同,則所獲取的按鍵類型 為長按鍵操作。

進一步,在同一時間檢測到有多個按鍵值同時有效時,則為組合按鍵操作。

進一步,當按鍵為長按鍵操作時,按鍵掃描時間到達后,系統(tǒng)繼續(xù)對按鍵進行掃描,當所掃描到的按鍵值發(fā)生變化時,則認為該長按鍵已經被釋放,此時所獲取的按鍵類型為長按鍵釋放操作。

進一步,每次按鍵掃描包括防止按鍵抖動的驗證掃描,每次按鍵掃描包括以下步驟:

a,判斷消抖時間是否耗盡,如果耗盡,進入步驟b,否則重復步驟a;

b,獲取具體按鍵值;

c,判斷獲取的按鍵值是否有效;如果掃描到按鍵值為有效按鍵值時,則進行步驟d,如果掃描到的按鍵值為無效按鍵值,則表示沒有獲取到按鍵值,掃描結束;

d,對掃描到的按鍵次數進行判斷:掃描到的按鍵次數不是第一次時,對掃描到的按鍵次數進行復位操作,進入步驟e,掃描到的按鍵次數是第一次時,則保存當前獲取的按鍵值,標識按鍵次數并設置消抖時間,進入步驟a;

e,對當前獲取的按鍵值進行判斷:當獲取的按鍵值與上一次獲取的按鍵值相同時,得到掃描的按鍵值,如果獲取的按鍵值與上一次獲取的按鍵值不同,則表示獲取按鍵值無效。

進一步,在步驟e中,如果獲取的按鍵值與上一次獲取的按鍵值不同,則為無效按鍵操作。

一種低壓電器的控制器,包括按鍵電路和與按鍵電路連接的控制單元,所述控制單元根據預設的掃描時間定時采用權利要求1-5任一所述的按鍵掃描方法對按鍵電路進行掃描獲得按鍵值。

進一步,所述按鍵電路在按鍵被按下時向控制單元發(fā)送中斷信號,控制單元在收到中斷信號后采用權利要求1-5任一所述的按鍵掃描方法對按鍵電路進行掃描獲得按鍵值。

進一步,所述按鍵電路包括中斷信號電路和鍵盤電路,所述鍵盤電路包括 按n行n列排列的n*n個按鍵的矩陣鍵盤,中斷信號電路用于按鍵值的輸出,所述n*n個按鍵的矩陣鍵盤的每行按鍵分別通過一根行掃描線連接,每列按鍵分別通過一根列掃描線連接,所述中斷信號電路包括n個二極管組成的第一組開關二極管和另外n個二極管組成的第二組開關二極管;所述第二組開關二極管的n個二極管的正極分別和n列掃描線連接,第二組開關二極管的n個二極管的負極分別與電阻r302的一端連接,電阻r302的另一端與三極管q301的基極連接,三極管q301的集電極連接至第n+1個i/o端口key_int,按鍵電路在按鍵被按下時通過第n+1個i/o端口key_int向控制單元發(fā)送中斷信號,三極管q301的發(fā)射極接地;n列掃描線的一端與第一組開關二極管的n個二極管的正極連接,第一組開關二極管的n個二極管的負極與n行掃描線連接,n行掃描線與n個i/o端口(key_p1,……,key_pn)連接。

進一步,獲取按鍵值時,先將需要掃描的相應行的i/o端口設為輸出,并配置為高電平,再將其余的i/o端口設為輸入,然后檢測每個i/o端口的值,再將該數值加上該行的序號值,即為相應行的值;依次獲取n行的按鍵值,再將獲取到的n行按鍵值組合成一個值,即可獲取多行按鍵值。

進一步,所述中斷信號電路的每一根列掃描線通過n個電阻接地,所述第n+1個i/o端口key_int通過第n+1個電阻接地低壓電器的控制器;所述中斷信號電路還包括電阻r301,電阻r301的一端與三極管q301的集電極連接,另一端與電源連接。

本發(fā)明的目的在于克服現有技術的缺陷,提供一種按鍵掃描方法和低壓電器的控制器,可以區(qū)分同一按鍵的短按鍵操作和長按鍵操作,使得同一按鍵可以實現不同的功能,還提供了一種低壓電器的控制器。

附圖說明

圖1是本發(fā)明中斷掃描方式的流程框圖;

圖2是本發(fā)明定時掃描方式流程框圖;

圖3是本發(fā)明按鍵掃描方法獲取按鍵值的流程圖;

圖4是本發(fā)明另一種按鍵掃描方法的流程圖;

圖5是本發(fā)明鍵盤電路的電路圖;

圖6是本發(fā)明中斷信號電路的電路圖。

具體實施方式

以下結合附圖1至6給出的實施例,進一步說明本發(fā)明的按鍵掃描方法和低壓電器的控制器的具體實施方式。本發(fā)明的按鍵掃描方法和低壓電器的控制器不限于以下實施例的描述。

本發(fā)明的一種按鍵掃描方法,包括以下步驟:

a,判斷消抖時間是否耗盡,如果耗盡,進入步驟b,否則重復步驟a;

b,獲取具體按鍵值;

c,判斷獲取的按鍵值是否有效;如果掃描到按鍵值為有效按鍵值時,則進行步驟d,如果掃描到的按鍵值為無效按鍵值,則表示沒有獲取到按鍵值,掃描結束;

d,對掃描到的按鍵次數進行判斷:掃描到的按鍵次數不是第一次時,對掃描到的按鍵次數和消抖時間進行復位操作,進入步驟e,掃描的按鍵次數是第一次時,則保存當前獲取的按鍵值,標識按鍵次數并設置消抖時間,進入步驟a;

e,對當前獲取的按鍵值進行判斷:當獲取的按鍵值與上一次獲取的按鍵值相同時,得到掃描的按鍵值,如果獲取的按鍵值與上一次獲取的按鍵值不同,則表示獲取按鍵值無效。

本發(fā)明按鍵掃描方法,通過對按鍵進行連續(xù)兩次掃描,并進行確認,只有連續(xù)兩次掃描的按鍵值一致時,才認為按鍵有效,,兩次的掃描間隔時間大于按鍵抖動時間,從而實現按鍵消抖功能。這里的按鍵次數是指系統(tǒng)內部所掃描到的按鍵次數,但未必是用戶實際按了多次按鍵,因為采用的是掃描方式(每間隔一定時間掃描一次,檢測是否有按鍵按下),故當用戶單次按下按鍵的時間較長時(超過掃描間隔時間時)與系統(tǒng)實際掃描到按鍵次數并不相同。

如圖1所示,本發(fā)明的按鍵掃描方法的第一種實施例:中斷掃描方式。

(1)當檢測到按鍵中斷信號后,置中斷標志位。

(2)判斷按鍵消抖時間是否耗盡:如果耗盡當按鍵消抖時間耗盡,掃描具體的按鍵值;否則重復步驟(2)。

(3)獲取具體按鍵值。

(4)判斷獲取的按鍵值是否有效:如果掃描到的按鍵值為有效按鍵值時,則進行有效按鍵次數判斷;如果掃描到的按鍵值為無效按鍵值,則表示沒有獲取到按鍵值,對按鍵次數、掃描標志、中斷標志進行復位操作。

(5)進行按鍵的次數判斷:按鍵并不是第一次按下時,對按鍵次數、掃描標志、中斷標志進行復位操作;如果按鍵為第一次按下,則保存當前獲取的按鍵值,并將掃描標志和中斷標志復位、消抖時間重置、按鍵次數加一,然后進行步驟(2)。

(6)對當前獲取的按鍵值進行判斷:當獲取的按鍵值與上一次獲取的按鍵值相同時,將按鍵值進行緩存,以備按鍵處理時使用;如果獲取的按鍵值與上一次獲取的按鍵值不同,則表示獲取按鍵值無效。

(7)重新配置引腳功能,將中斷引腳以外的引腳都配置為高電平輸出狀態(tài)。不管獲取到按鍵值有效,還是無效,都需要重新配置引腳功能。

(8)此時一次按鍵中斷掃描結束。

當檢測到按鍵中斷信號后,置中斷標志位,剛開始時間t=0直接進行第一次按鍵掃描,再一次按鍵確認掃描時,需要按鍵消抖時間耗盡后,掃描具體的按鍵值。當掃描到的按鍵值為有效按鍵值時,則進行按鍵的次數判斷,按鍵并不是第一次按下時,對按鍵次數、掃描標志、中斷標志進行復位操作,按鍵是第一次按下,則保存當前獲取的按鍵值,并將掃描標志、中斷標志復位、消抖時間重置、進行再一次的確認掃描。獲取的按鍵值與上一次獲取的按鍵值相同時,將按鍵值進行緩存,以備按鍵處理時使用。獲取到按鍵值之后重新配置引腳功能,將中斷引腳以外的引腳都配置為高電平輸出狀態(tài),此時一次按鍵中斷掃描結束。

在按鍵獲取過程中,對于一次檢測到按鍵按下時,需要保存當前獲取的按鍵值,并將掃描標志和中斷標志復位、消抖時間重置、按鍵次數加一。之后通過再進行一次按鍵掃描,在這個過程中起到一個按鍵消抖的作用。

如圖2所示,本發(fā)明的按鍵掃描方法的第二種實施例:定時掃描方式。

(1)定時掃描開始,系統(tǒng)進入定時服務程序。

(2)判斷定時掃描時間是否到達:當時間到達后,掃描具體按鍵值;如果 時間還未達到,則重復步驟(2)。

(3)獲取具體按鍵值。

(4)判斷獲取的按鍵值是否有效:如果掃描到的按鍵值為有效按鍵值時,則進行按鍵的次數判斷;如果掃描到的按鍵值為無效按鍵值,則表示沒有獲取到按鍵值。

(5)進行按鍵次數判斷:如果按鍵為第一次按下,則保存當前獲取的按鍵值,并將按鍵次數加一,然后進行步驟(2);按鍵并不是第一次按下時,對按鍵次數進行復位操作,并對獲取到的有效按鍵值進行判斷。

(6)對當前獲取的按鍵值進行判斷:當獲取的按鍵值與上一次獲取的按鍵值相同時,將按鍵值進行緩存,以備按鍵處理時調出使用;如果獲取的按鍵值與上一次獲取的按鍵值不同,則表示獲取按鍵值無效,對按鍵次數進行復位操作。

(7)不管獲取到按鍵值有效,還是無效,此時一次按鍵定時掃描處理結束。

在系統(tǒng)配置中設置好定時處理服務程序,定時服務啟動后開始掃描,當按鍵掃描時間達到后,進入到掃描具體按鍵值狀態(tài)。如果掃描到的按鍵值為有效按鍵值時,則進行按鍵的次數判斷;如果掃描到的按鍵值為無效按鍵值,則表示沒有獲取到按鍵值。如果按鍵并不是第一次按下時,對按鍵次數進行復位操作,并對獲取到的有效按鍵值進行判斷。當獲取的按鍵值與上一次獲取的按鍵值相同時,將按鍵值進行緩存,以備按鍵處理時調出使用;如果獲取的按鍵值與上一次獲取的按鍵值不同,則表示獲取按鍵值無效,對按鍵次數進行復位操作。

在按鍵獲取過程中,通過再進行一次按鍵掃描,在這個過程中起到一個按鍵消抖的作用。

如圖3所示,按鍵值的具體獲取過程,按鍵值獲取過程中,可以獲取其中任意一行的按鍵值,也可以獲取其中幾行的按鍵值,也可以獲取所有行數的按鍵值,以獲取四行的按鍵值為例,如圖3所示:

獲取第一行按鍵值:先將key-p2、key-p3、key-p4和key-int四個io口設為輸入,將key-p1的io口設為輸出,將key-p1置為高電平,然后檢測key-p1、key-p2、key-p3、key-p4和key-int這五個io口的值,再將該數值加1,即為 第一行的按鍵值;

獲取第二行按鍵值:先將key-p1、key-p3、key-p4和key-int四個io口設為輸入,將key-p2的io口設為輸出,將key-p2置為高電平,然后檢測key-p1、key-p2、key-p3、key-p4和key-int這五個io口的值,再將該數值加2,即為第二行的按鍵值;

獲取第三行按鍵值:先將key-p1、key-p2、key-p4和key-int四個io口設為輸入,將key-p3的io口設為輸出,將key-p3置為高電平,然后檢測key-p1、key-p2、key-p3、key-p4和key-int這五個io口的值,再將該數值加3,即為第三行的按鍵值;

獲取第四行按鍵值:先將key-p1、key-p2、key-p3和key-int四個io口設為輸入,將key-p4的io口設為輸出,將key-p4置為高電平,然后檢測key-p1、key-p2、key-p3、key-p4和key-int這五個io口的值,再將該數值加4,即為第四行的按鍵值;

將獲取到的四行按鍵值,組合成一個值,即為最終獲取到的按鍵值。

顯而易見,按鍵值掃描時,可以對任意一行進行掃描,或者對其中幾行進行掃描,也可以對所有行進行掃描。

如圖4所示,本發(fā)明還提供了另外一種按鍵掃描方法:比較兩次連續(xù)掃描獲取的按鍵值,如果為相同的按鍵值,則將后續(xù)規(guī)定時間內掃描獲得的按鍵值與前面兩次所獲取的按鍵值比較;如果在后續(xù)規(guī)定時間內有一次按鍵掃描獲取的按鍵值與前面兩次所獲取的按鍵值不相同,則所獲取的按鍵類型為短按鍵操作;如果在后續(xù)規(guī)定時間內每次掃描所獲取的按鍵值均與前面兩次所獲取的按鍵值相同,則所獲取的按鍵類型為長按鍵操作。本發(fā)明按鍵掃描方法,可以區(qū)分同一按鍵的短按鍵操作和長按鍵操作,使得同一按鍵可以實現不同的功能,節(jié)約按鍵,降低成本。

因硬件具備初始條件,當沒有任何按鍵按下時的初始按鍵值,作為一個無效按鍵,此時相應的按鍵類為無按鍵操作,同理,也是通過檢測該按鍵值作為檢測按鍵是否已經被釋放的判斷條件之一。同理,當系統(tǒng)連續(xù)兩次掃描所獲取到的按鍵值雖不屬于無效按鍵值,但連續(xù)兩次的按鍵值卻不同(說明在掃描時間內按鍵發(fā)生了變化),此時,相應的按鍵類型為無效按鍵操作。

特別地,在同一時間檢測到有多個按鍵值同時有效時,則為組合按鍵操作。采用組合按鍵可以帶來更為多樣的按鍵形式,從而實現更多的功能。

特別地,當按鍵為長按鍵操作時,按鍵掃描時間到達后,系統(tǒng)繼續(xù)對按鍵進行掃描,當所掃描到的按鍵值發(fā)生變化時,則認為該長按鍵已經被釋放,此時所獲取的按鍵類型為長按鍵釋放操作。

本發(fā)明還提供了一種實現上述按鍵掃描方法的低壓電器的控制器。包括按鍵電路和與按鍵電路連接的控制單元,所述控制單元根據預設的掃描時間定時采用上述的按鍵掃描方法對按鍵電路進行掃描獲得按鍵值。所述按鍵電路在按鍵被按下時向控制單元發(fā)送中斷信號,控制單元在收到中斷信號后采用上述的按鍵掃描方法對按鍵電路進行掃描獲得按鍵值。

如圖5、6所示,所述按鍵電路包括中斷信號電路和鍵盤電路,所述鍵盤電路包括按n行n列排列的n*n個按鍵的矩陣鍵盤,中斷信號電路用于按鍵值的輸出,所述n*n個按鍵的矩陣鍵盤的每行按鍵分別通過一根行掃描線連接,每列按鍵分別通過一根列掃描線連接,所述中斷信號電路包括n個二極管組成的第一組開關二極管和另外n個二極管組成的第二組開關二極管;所述第二組開關二極管的n個二極管的正極分別和n列掃描線連接,第二組開關二極管的n個二極管的負極分別與電阻r302的一端連接,電阻r302的另一端與三極管q301的基極連接,三極管q301的集電極連接至第n+1個i/o端口key_int,按鍵電路在按鍵被按下時通過第n+1個i/o端口key_int向控制單元發(fā)送中斷信號,三極管q301的發(fā)射極接地;n列掃描線的一端與第一組開關二極管的n個二極管的正極連接,第一組開關二極管的n個二極管的負極與n行掃描線連接,n行掃描線與n個i/o端口(key_p1,……,key_pn)連接。圖中實施例中斷信號電路和鍵盤電路為獨立設置,兩者之間通過接線排連接在一起。

具體地,所述中斷信號電路的每一根列掃描線通過n個電阻接地,所述第n+1個i/o端口key_int通過第n+1個電阻接地。所述中斷信號電路還包括電阻r301,電阻r301的一端與三極管q301的集電極連接,另一端與3.3v電源正極連接。

具體地,掃描到的按鍵值為無效按鍵值后,重新配置引腳功能,將i/o端口key_int以外的i/o端口(key_p1,……,key_pn)都配置為高電平輸出狀 態(tài)。

以上內容是結合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 新龙县| 中江县| 庄河市| 镶黄旗| 法库县| 灵川县| 磐石市| 乌兰察布市| 来安县| 肥西县| 中超| 韶山市| 五常市| 平阳县| 大同县| 天气| 东至县| 东兰县| 枣庄市| 从化市| 水富县| 陆河县| 潼关县| 紫金县| 邳州市| 郯城县| 长宁区| 孟州市| 锡林浩特市| 和平区| 绩溪县| 宁陕县| 乐亭县| 汪清县| 波密县| 东至县| 平陆县| 沁阳市| 阿鲁科尔沁旗| 常德市| 汶上县|