• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    解析某型號手機按鍵檢測程序的缺陷

    2011-06-25 02:45:36范志誠劉愛華
    關(guān)鍵詞:松手按鍵代碼

    范志誠,劉愛華

    (河源理工學(xué)校 機電教學(xué)部,河源 517000)

    引 言

    只有正確檢測到按鍵,才能正確實現(xiàn)手機相應(yīng)的功能。按鍵檢測程序的架構(gòu)是否合理及嚴(yán)謹(jǐn),對產(chǎn)品的穩(wěn)定性具有至關(guān)重要的意義。通過檢測某手機按鍵功能,發(fā)現(xiàn)手機的按鍵檢測程序存在一定的缺陷。本文借助Sonix公司的SN8P2602B單片機,探討一種按鍵檢測程序的軟件架構(gòu),并給出了具體實現(xiàn)方案。

    1 檢測某型號手機按鍵功能

    該手機采用傳統(tǒng)的機械式按鍵,而檢測的按鍵只限制在12個按鍵范圍內(nèi),如圖1所示。

    1.1 檢測項目1

    在解鎖后,分別按下某一按鍵,持續(xù)2s,然后松手。

    檢測結(jié)果:

    ① 1、2、3、4、5、6、7、8、9、0共10個按鍵,按下后經(jīng)過很短時間(小于1s),均在屏幕上顯示出相應(yīng)數(shù)字,3s后松手,數(shù)字不變。

    ② *、#共2個按鍵,在按下2s松手后,才在屏幕上顯示出相應(yīng)的符號。

    圖1

    1.2 檢測項目2

    在解鎖后,按下某一按鍵,不松手,然后去按其他剩下的11個按鍵。

    檢測結(jié)果:

    ① 以按下“1”鍵為例,如圖2所示。

    圖2

    ② 以按下“2”鍵為例,如圖3所示。

    圖3

    對其他按鍵進行測試,有類似的結(jié)果,規(guī)律如圖4所示。

    圖4中,對于同一列按鍵,先按住其中一個按鍵,會產(chǎn)生兩種情況:

    ① 再按同列中的其他任何一個按鍵,屏幕上顯示的都是先按住的那個按鍵;

    ② 再按不同列的其他任何一個按鍵,屏幕上顯示的都是正確的按鍵。

    即:先按住“1”不放,再按同列的“4”、“7”、“*”,屏幕都顯示成“1”;若再按不同列的“2”、“3”、“5”、“6”、“8”、“9”、“0”、“?!?,則屏幕均顯示正確的相應(yīng)按鍵。

    同時,還出現(xiàn)一個新的問題:先按住某一按鍵不放,然后再按其他11個按鍵,11個按鍵在按下后經(jīng)過很短時間(小于1s),均在屏幕上顯示出數(shù)字或符號?!埃焙汀埃!辨I都沒有像檢測項目1中那樣需要放手后才能顯示出來的情況。

    圖4

    2 檢測結(jié)果說明的問題

    (1)檢測項目1的結(jié)果說明

    12個按鍵分兩類情況:一類是持續(xù)某短暫時間就認(rèn)定按鍵有效,一類是需松手后才認(rèn)定有效。軟件對兩類情況相應(yīng)的按鍵進行檢測后判定按鍵有效的標(biāo)準(zhǔn)是不一致的。

    (2)檢測項目2的結(jié)果說明

    12個按鍵分兩類情況,軟件對兩類情況相應(yīng)的按鍵進行檢測后判定是什么按鍵,標(biāo)準(zhǔn)是不一致的,同一列的按鍵存在互相干擾的問題。

    3 探討解決方案

    從如下兩點作為切入口來解決以上出現(xiàn)的問題。

    ① 針對檢測結(jié)果1的解決思路:設(shè)置小時間段Tcheck,在Tcheck時間內(nèi)軟件循環(huán)檢測按鍵得到相同按鍵代碼,即判定該按鍵按下有效,統(tǒng)一標(biāo)準(zhǔn),便可解決判定有效的標(biāo)準(zhǔn)不一的問題。

    ② 針對檢測結(jié)果2的解決思路:設(shè)置成某按鍵按下后,若此按鍵不松開,其他按鍵則無效,便可解決按鍵間存在干擾的問題。

    下面將借助SN8P2602B單片機,以16個按鍵為例,給出軟件解決方案,并給出具體的匯編語言源程序。SN8P2602B引腳圖如圖5所示。16個按鍵原理圖如圖6所示。圖中,P5所有口線均用軟件設(shè)置內(nèi)部上拉電阻。

    16個按鍵檢測方式:

    ① 把P5[0~3]設(shè)置為輸出口并輸出“0”信號,P5[4~7]設(shè)置為輸入口并置“1”,保存輸入信號;

    ② 把P5[4~7]設(shè)置為輸出口并輸出“0”信號,P5[0~3]設(shè)置為輸入口并置“1”,保存輸入信號;

    圖5

    圖6

    ③ 把兩次保持的輸入信號合并,就可以得到按鍵的唯一代碼,而無按鍵按下的代碼為11111111。

    按鍵的唯一代碼如圖7所示。

    圖7

    按鍵檢測程序如圖8所示。

    圖8

    KEY_DOWN標(biāo)志位:當(dāng)代碼為無按鍵按下的代碼時,置0。在后續(xù)程序中,需要判斷是否為有效代碼,或是多個按鍵同時按下產(chǎn)生的代碼,或是受外界電磁干擾信號影響而產(chǎn)生的代碼。

    KEY_STILL_PRESS標(biāo)志位:按鍵仍然按下,未松開標(biāo)志位,松開則置0。不論是有效代碼、多個按鍵同時按下的代碼,還是干擾信號產(chǎn)生的代碼,若不松開或不結(jié)束,都認(rèn)為是未松手,置1。

    KEY_TIME_CHECK標(biāo)志位:設(shè)置小時間段Tcheck為50ms,置0代表時間未到,置1代表時間到。若計時中途按鍵松開,則重新計時。產(chǎn)生代碼經(jīng)過50ms后,便開始比對是否為有效代碼。

    軟件代碼如下:

    結(jié) 語

    按鍵檢測程序的邏輯性及嚴(yán)謹(jǐn)性,對產(chǎn)品的穩(wěn)定性具有至關(guān)重要的意義。本文借助Sonix公司的SN8P2602B單片機,針對某手機按鍵檢測程序缺陷提出了解決方案,并給出了相應(yīng)的軟件架構(gòu)和代碼。此按鍵檢測思路具有通用性,可以移植到其他帶按鍵的電子產(chǎn)品中。

    [1]Sonix Technology Co.,Ltd.SN8P2602B8-bit MCU DATASHEET.Version 1.2,2008-05.

    [2]Sonix Technology Co.,Ltd.SONIX 8-bit MCU INSTRUCTION SET.Version 1.93,2003-02.

    [3]張玉杰.松翰SN8P2700系列單片機原理及應(yīng)用技術(shù)[M].北京航空航天大學(xué)出版社,2008.

    猜你喜歡
    松手按鍵代碼
    畫與理
    基于有限狀態(tài)機的按鍵檢測程序設(shè)計
    電子制作(2021年3期)2021-06-16 03:14:26
    畫里有話
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計
    電子制作(2016年1期)2016-11-07 08:43:05
    雪域
    歲月(2016年5期)2016-08-13 00:32:59
    春涯
    讀者(2015年13期)2015-05-14 11:41:05
    迭部县| 韶山市| 民县| 勃利县| 鹤峰县| 桐庐县| 通许县| 大丰市| 定州市| 蒲城县| 龙门县| 双峰县| 专栏| 佛学| 甘肃省| 吴忠市| 城步| 丘北县| 会泽县| 苍溪县| 海丰县| 林甸县| 图们市| 普兰店市| 大连市| 黄大仙区| 固原市| 忻城县| 桑植县| 芦山县| 同江市| 炎陵县| 邵武市| 澳门| 如皋市| 云阳县| 乌兰浩特市| 双鸭山市| 酉阳| 陆丰市| 锦屏县|