• 
    

    
    

      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
      蒙阴县| 海宁市| 洛川县| 永修县| 偏关县| 开平市| 徐水县| 老河口市| 锡林浩特市| 巨鹿县| 洱源县| 深泽县| 辛集市| 青田县| 东城区| 剑河县| 海宁市| 澄迈县| 叙永县| 临沭县| 温宿县| 宜川县| 遵化市| 吉安市| 赤城县| 宜兰县| 深圳市| 祁连县| 正阳县| 大名县| 南部县| 鄂伦春自治旗| 新邵县| 高雄市| 高邮市| 邯郸县| 龙岩市| 浦城县| 顺昌县| 绍兴县| 榆社县|