亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種按鍵掃描的方法及按鍵掃描裝置的制作方法

文檔序號(hào):7518134閱讀:241來(lái)源:國(guó)知局

專利名稱::一種按鍵掃描的方法及按鍵掃描裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及按鍵掃描領(lǐng)域,尤其涉及的是一種按鍵掃描信息處理的方法及裝置。
背景技術(shù)
:目前市面上的手機(jī)平臺(tái)方案的鍵盤按鍵掃描方法多采用行掃描法,即當(dāng)按鍵按下時(shí),對(duì)鍵盤陣列的行逐行拉低來(lái)進(jìn)行按鍵的掃描,這種掃描方法存在功耗大的問(wèn)題,并且在按鍵按下時(shí)要不停的進(jìn)行掃描才能保證按鍵的正確檢測(cè)。現(xiàn)有技術(shù)的鍵盤按鍵掃描中不僅功耗大,且其掃描算法所要執(zhí)行的判斷相當(dāng)多,而且執(zhí)行時(shí)間比較長(zhǎng)。因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種按鍵掃描的方法及按鍵掃描裝置,其節(jié)省了掃描時(shí)間,提高了按鍵掃描效率,大大節(jié)約了掃描功耗。本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案如下一種按鍵掃描的方法,其中,包括步驟預(yù)先設(shè)置用于根據(jù)不同的行口值和列口值確定相對(duì)應(yīng)按鍵被按下的鍵盤按鍵表;當(dāng)有按鍵按下時(shí),設(shè)置各行口方向?yàn)檩敵?,各列口方向?yàn)檩斎耄①x予各行口輸出值為第一預(yù)定值,掃描一次讀取各列口的值,存放到列變量中;以及設(shè)置各列口方向?yàn)檩敵觯餍锌诜较驗(yàn)檩斎?,并賦予各列口輸出值為所述第一預(yù)定值,掃描一次讀取各行口的值,存放到行變量中;根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵表,以確定具體是哪個(gè)按鍵被按下。所述按鍵掃描的方法,其中,所述設(shè)置用于根據(jù)相應(yīng)的行口值和列口值確定對(duì)應(yīng)按鍵被按下的鍵盤按鍵表的步驟還包括分別設(shè)置用于存放讀取的端口值的行變量及列變量。所述按鍵掃描的方法,其中,所述設(shè)置用于根據(jù)相應(yīng)的行口值和列口值確定對(duì)應(yīng)按鍵被按下的鍵盤按鍵表的步驟還包括設(shè)置行口和列口都為上拉。所述按鍵掃描的方法,其中,所述第一預(yù)定值為零。所述按鍵掃描的方法,其中,所述根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵,以確定哪個(gè)按鍵被按下的步驟具體包括根據(jù)掃描讀取的行值和列值,查找這兩個(gè)值中二進(jìn)制的0的起始位置,并根據(jù)該起始位置定位按鍵在相應(yīng)的行或列的鍵盤序號(hào),以確定哪個(gè)按鍵被按下。一種按鍵掃描裝置,其中,包括鍵盤按鍵表設(shè)置模塊,用于設(shè)置根據(jù)不同的行口值和列口值確定相對(duì)應(yīng)按鍵被按下的鍵盤按鍵表;3列口值讀取模塊、用于當(dāng)有按鍵按下時(shí),設(shè)置各行口方向?yàn)檩敵觯髁锌诜较驗(yàn)檩斎?,并賦予各行口輸出值為第一預(yù)定值,掃描一次讀取各列口的值,存放到列變量中;行口值讀取模塊,用于當(dāng)有按鍵按下時(shí),設(shè)置各列口方向?yàn)檩敵?,各行口方向?yàn)檩斎耄①x予各列口輸出值為所述第一預(yù)定值,掃描一次讀取各行口的值,存放到行變量中;按鍵按下確認(rèn)模塊,用于根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵表,以確定具體是哪個(gè)按鍵被按下。所述的按鍵掃描裝置,其中,還包括端口值儲(chǔ)存模塊,用于存放讀取的端口值的行變量及列變量。所述的按鍵掃描裝置,其中,還包括賦值模塊,用于當(dāng)所述行口和列口都設(shè)置為上拉時(shí),賦所述第一預(yù)定值為零。本發(fā)明所提供的按鍵掃描方法及按鍵掃描裝置,該方法在按鍵按下時(shí)不需要一直進(jìn)行掃描,在按鍵狀態(tài)改變時(shí)只對(duì)行和列各掃描一次即可,縮短了掃描時(shí)間,大大節(jié)約了掃描功耗,具有功耗低的優(yōu)點(diǎn)。本發(fā)明提供了一種全新的按鍵掃描方式,只需要少許代碼,就可以完成按鍵的掃描,掃描速度因?yàn)榇a的減少而提高,同時(shí)掃描的效率也相應(yīng)的提高。圖1是本發(fā)明實(shí)施例按鍵掃描的方法流程圖;圖2是4*4按鍵矩陣結(jié)構(gòu)示意圖;圖3是現(xiàn)有傳統(tǒng)按鍵掃描掃描方法流程圖;圖4是本發(fā)明一具體應(yīng)用實(shí)施例的按鍵掃描的方法流程圖;圖5是本發(fā)明實(shí)施例的按鍵掃描裝置原理框圖。具體實(shí)施例方式本發(fā)明的一種按鍵掃描的方法及按鍵掃描裝置,為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例提供的一種按鍵掃描方法,如圖1所示,包括以下步驟步驟S110、首先,預(yù)先設(shè)置用于根據(jù)不同的行(ROW)口值和列(COL)口值確定相對(duì)應(yīng)按鍵被按下的鍵盤按鍵表。以及分別設(shè)置用于存放讀取的端口值的行變量及列變量;步驟S120、當(dāng)有按鍵按下時(shí),設(shè)置各行口方向?yàn)檩敵?,各列口方向?yàn)檩斎?,并賦予各行口輸出值為第一預(yù)定值,掃描一次讀取各列口的值,存放到列變量中。步驟S130、再設(shè)置各列口方向?yàn)檩敵?,各行口方向?yàn)檩斎?,并賦予各列口輸出值為所述第一預(yù)定值,掃描一次讀取各行口的值,存放到行變量中。步驟S140、然后,根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵表,以確定具體是哪個(gè)按鍵被按下。較佳地實(shí)施例中,設(shè)置行口和列口都為上拉時(shí),所述第一預(yù)定值為零,此時(shí),根據(jù)掃描讀取的行值和列值,查找這兩個(gè)值中二進(jìn)制的0的起始位置,并根據(jù)該起始位置定位按鍵在相應(yīng)的行或列的鍵盤序號(hào),以確定哪個(gè)按鍵被按下。以下將通過(guò)具體的應(yīng)用實(shí)施例對(duì)本發(fā)明實(shí)施例的按鍵掃描的方法作進(jìn)一步詳細(xì)說(shuō)明按鍵矩陣如圖2所示,圖中示意的是一個(gè)4X4的鍵盤矩陣,ROff(行)是按鍵矩陣的行,包括行ROWO、行ROWl、行R0W2和行R0W3,C0L(列)是按鍵矩陣的列,包括列C0L0、列COLl、列C0L2、列C0L3。組成KeyO到Key15共16個(gè)按鍵。如果采用傳統(tǒng)按鍵,掃描掃描方法如下定義ROW為輸出,COL為輸入,并且COL弓丨腳內(nèi)部配置為上拉,在按鍵按下后,基帶芯片的鍵盤掃描模塊啟動(dòng)行掃描。傳統(tǒng)按鍵按下的識(shí)別原理為每當(dāng)有按鍵按下或者抬起時(shí),按鍵檢測(cè)模塊就會(huì)識(shí)別到一個(gè)電平的變化,按鍵中斷產(chǎn)生。MCU通過(guò)狀態(tài)寄存器可以知道是否有按鍵按下。然后可以通過(guò)讀鍵盤掃描輸出寄存器(KP_HI_KEY,KP_MID_KEY和KP_L0W_KEY)中的數(shù)值,判斷具體是哪個(gè)按鍵按下。鍵盤掃描輸出寄存器中每一位,對(duì)應(yīng)一個(gè)按鍵,其中置為0位即所對(duì)應(yīng)的按鍵被按下。傳統(tǒng)按鍵識(shí)別如圖2所示,COL列線為輸入并有上拉,如果沒(méi)有按鍵按下,列輸入為高電平,ROW為低電平。有鍵按下,COL(列)與ROW(行)接通則變低,并產(chǎn)生中斷信號(hào),Baseband(基帶)檢測(cè)到中斷后,判斷為有按鍵按下,調(diào)用軟件開(kāi)始掃描,先逐行送低電平,其他行送高電平,檢測(cè)列輸入狀態(tài),若有列輸入是低電平,則判斷為該行有按鍵按下;然后再逐列送低電平,其他送高,當(dāng)輪到按下鍵所在列時(shí),行輸入是低,這樣就確定了列,因此也就知道了是那個(gè)按鍵被按下。傳統(tǒng)按鍵掃描算法如圖3所示,行掃描開(kāi)始,首先拉低第一行進(jìn)行掃描,即R0W0=0,ROffl=1,R0W2=1,R0W3=1,再依次掃描該第一行中各列(COL)值是否=1,即C0L0=COLl=C0L2=C0L3是否=1。如果C0L0=COLl=C0L2=C0L3不等于1,則依次判斷COLO、COLl、C0L2、C0L3中哪個(gè)值等于0,則其相應(yīng)的按鍵被按下。即判斷C0L0是否等于0,當(dāng)?shù)扔?時(shí),則其對(duì)應(yīng)的按鍵KEY0按下(KEY0pressed),返回繼續(xù)下一個(gè)按鍵按下的掃描。如果C0L0不等于0,則判斷是否是COLl等于0,當(dāng)?shù)扔?時(shí),則其對(duì)應(yīng)的按鍵KEY1按下(KEY1pressde),返回繼續(xù)下一個(gè)按鍵按下的掃描。如果COLl不等于0,則判斷是否是C0L2等于0,當(dāng)?shù)扔?時(shí),則其對(duì)應(yīng)的按鍵KEY2按下(KEY2pressde),返回繼續(xù)下一個(gè)按鍵按下的掃描。如果C0L2不等于0,則判斷是否是C0L3等于0,當(dāng)?shù)扔?時(shí),則其對(duì)應(yīng)的按鍵KEY3按下(KEY3pressde),返回繼續(xù)下一個(gè)按鍵按下的掃描。當(dāng)C0L3不等于0時(shí),進(jìn)行下一行掃描判斷。如果C0L0=COLl=C0L2=C0L3等于1時(shí),則拉低第二行(ROW)進(jìn)行掃描,即ROffO=1,ROffl=0,R0W2=1,R0W3=1,再依次掃描該第二行中各列(COL)值是否=1?,即C0L0=COLl=C0L2=C0L3是否=1。再對(duì)該行中各列值依次進(jìn)行判斷,其判斷原理與前面所述第一行時(shí)各列的判斷原理相同,依次類推,直到各行各列全部掃描判斷完成,KEYPELEASED返回。由上可看出,傳統(tǒng)按鍵行掃描算法所要執(zhí)行的判斷相當(dāng)多,而且執(zhí)行時(shí)間比較長(zhǎng)。因此,本發(fā)明實(shí)施提供了一種按鍵掃描的方法,提供了一種更加高速,效率更高的鍵盤掃描方法,該具體實(shí)用實(shí)施例的鍵盤掃描法仍以圖2的4X4的鍵盤矩陣為例,操作如下首先,預(yù)先設(shè)置用于根據(jù)不同的行口值和列口值確定相對(duì)應(yīng)按鍵被按下的鍵盤按鍵表,本實(shí)施中根據(jù)key_value=key_table[row]*4+key_table[col]這個(gè)公式來(lái)定義鍵盤按鍵表,其中key_Value代表按鍵序號(hào)值,key_table[row]代表行的查表值,key_5table[col]代表列的查表值。本實(shí)施例row和col變量的取值如下表1所示權(quán)利要求一種按鍵掃描的方法,其特征在于,包括步驟預(yù)先設(shè)置用于根據(jù)不同的行口值和列口值確定相對(duì)應(yīng)按鍵被按下的鍵盤按鍵表;當(dāng)有按鍵按下時(shí),設(shè)置各行口方向?yàn)檩敵?,各列口方向?yàn)檩斎?,并賦予各行口輸出值為第一預(yù)定值,掃描一次讀取各列口的值,存放到列變量中;以及設(shè)置各列口方向?yàn)檩敵?,各行口方向?yàn)檩斎耄①x予各列口輸出值為所述第一預(yù)定值,掃描一次讀取各行口的值,存放到行變量中;根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵表,以確定具體是哪個(gè)按鍵被按下。2.根據(jù)權(quán)利要求1所述按鍵掃描的方法,其特征在于,所述設(shè)置用于根據(jù)相應(yīng)的行口值和列口值確定對(duì)應(yīng)按鍵被按下的鍵盤按鍵表的步驟還包括分別設(shè)置用于存放讀取的端口值的行變量及列變量。3.根據(jù)權(quán)利要求1所述按鍵掃描的方法,其特征在于,所述設(shè)置用于根據(jù)相應(yīng)的行口值和列口值確定對(duì)應(yīng)按鍵被按下的鍵盤按鍵表的步驟還包括設(shè)置行口和列口都為上拉。4.根據(jù)權(quán)利要求3所述按鍵掃描的方法,其特征在于,所述第一預(yù)定值為零。5.根據(jù)權(quán)利要求4所述按鍵掃描的方法,其特征在于,所述根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵,以確定哪個(gè)按鍵被按下的步驟具體包括根據(jù)掃描讀取的行值和列值,查找這兩個(gè)值中二進(jìn)制的0的起始位置,并根據(jù)該起始位置定位按鍵在相應(yīng)的行或列的鍵盤序號(hào),以確定哪個(gè)按鍵被按下。6.一種按鍵掃描裝置,其特征在于,包括鍵盤按鍵表設(shè)置模塊,用于設(shè)置根據(jù)不同的行口值和列口值確定相對(duì)應(yīng)按鍵被按下的鍵盤按鍵表;列口值讀取模塊、用于當(dāng)有按鍵按下時(shí),設(shè)置各行口方向?yàn)檩敵?,各列口方向?yàn)檩斎?,并賦予各行口輸出值為第一預(yù)定值,掃描一次讀取各列口的值,存放到列變量中;行口值讀取模塊,用于當(dāng)有按鍵按下時(shí),設(shè)置各列口方向?yàn)檩敵?,各行口方向?yàn)檩斎?,并賦予各列口輸出值為所述第一預(yù)定值,掃描一次讀取各行口的值,存放到行變量中;按鍵按下確認(rèn)模塊,用于根據(jù)掃描讀取各行值和各列值查詢所述鍵盤按鍵表,以確定具體是哪個(gè)按鍵被按下。7.根據(jù)權(quán)利要求6所述的按鍵掃描裝置,其特征在于,還包括端口值儲(chǔ)存模塊,用于存放讀取的端口值的行變量及列變量。8.根據(jù)權(quán)利要求6所述的按鍵掃描裝置,其特征在于,還包括賦值模塊,用于當(dāng)所述行口和列口都設(shè)置為上拉時(shí),賦所述第一預(yù)定值為零。全文摘要本發(fā)明涉及按鍵掃描領(lǐng)域,公開(kāi)了一種按鍵掃描的方法及按鍵掃描裝置,所述方法包括當(dāng)有按鍵按下時(shí),設(shè)置行口為輸出,列口為輸入,并賦行口輸出值為第一預(yù)定值,掃描一次讀取列口的值;以及設(shè)置列口為輸出,各行口為輸入,并賦予列口輸出值為所述第一預(yù)定值,掃描一次讀取行口的值;根據(jù)掃描讀取行值和列值查詢所述鍵盤按鍵表,以確定具體是哪個(gè)按鍵被按下。本發(fā)明方法在按鍵按下時(shí)不需要一直進(jìn)行掃描,在按鍵狀態(tài)改變時(shí)只對(duì)行和列各掃描一次即可,縮短了掃描時(shí)間,節(jié)約了掃描功耗,具有功耗低的優(yōu)點(diǎn)。本發(fā)明提供了一種全新的按鍵掃描方式,只需要少許代碼,就可以完成按鍵的掃描,掃描速度因?yàn)榇a的減少而提高,同時(shí)掃描的效率也相應(yīng)的提高。文檔編號(hào)H03M11/20GK101958717SQ20101029727公開(kāi)日2011年1月26日申請(qǐng)日期2010年9月29日優(yōu)先權(quán)日2010年9月29日發(fā)明者顧建良申請(qǐng)人:惠州Tcl移動(dòng)通信有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1