• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      陣列式按鍵的設(shè)計

      2017-04-02 23:25:06呂永利趙雙勇鞠建勛
      智富時代 2017年3期
      關(guān)鍵詞:按鍵

      呂永利+趙雙勇+鞠建勛

      (漯河醫(yī)學(xué)高等專科學(xué)校第二附屬醫(yī)院設(shè)備科,河南 漯河 462300)

      【摘 要】本文主要描述陣列式按鍵的設(shè)計方法,分別從按鍵的連接方式,陣列式按鍵的連接方式,不使用驅(qū)動芯片和使用驅(qū)動芯片控制陣列式按鍵的方法幾個方面進行描述,使讀者對按鍵的設(shè)計有系統(tǒng)的了解。

      【關(guān)鍵詞】按鍵;陣列;驅(qū)動芯片

      引言:

      按鍵在儀器儀表及多種設(shè)備中都有廣泛應(yīng)用,是人機交互中重要的信息輸入設(shè)備,可配合顯示設(shè)備,共同完成對機器設(shè)備的控制。在需要輸入復(fù)雜信息是,就需要多個按鍵組成按鍵組才能完成。

      對于需要使用多個按鍵的情況,如果每個按鍵都連接一條控制芯片的IO腳,會嚴重浪費控制芯片的IO資源,增加排板時連線的復(fù)雜度,而且,其控制程序也會比較分散,集成化程度不高。對于這種情況,通常使用陣列式按鍵方式處理。

      陣列式按鍵方式是將多個按鍵排列成最接近方形的矩陣,通過按鍵在矩陣中的行坐標和列坐標定位按鍵,通過逐行逐列掃描的方式查詢每一個按鍵,從而查詢到每個按鍵的狀態(tài)。

      假設(shè)陣列式按鍵為M行N列,那么使用M+N條IO口,即可完成對M×N個按鍵的控制,這大大減少了IO口的使用量,節(jié)省了IO資源,而且,可以用比較精煉的代碼,寫出掃描按鍵的驅(qū)動程序,從而提高了代碼的效率和集成化程度。IO口的減少,節(jié)省了排板空間,有利于印制板小型化。

      針對于陣列式按鍵方式,一些芯片廠商開發(fā)出一系列控制芯片,這些控制芯片可完成對按鍵陣列的掃描,并將掃描結(jié)果通過并行或串行總線上報給CPU。本文分別描述了串行和并行按鍵控制芯片的使用方法。

      一、按鍵的連接方法

      如圖1所示,按鍵一端接地,另一端加上拉電阻后連接到控制芯片IO口。

      這種連接方式,在按鍵未按下時,圖中“POWER”位置的電平為高;按鍵按下時,圖中“POWER”位置的電平為低。

      控制芯片需要編寫的按鍵處理代碼為:

      (a)IO口初始化

      控制芯片將連接此按鍵的IO口設(shè)置為輸入。

      (b)掃描

      編寫程序循環(huán)掃描此IO口狀態(tài)。

      (1)當讀到IO口狀態(tài)為高時,初步確定有按鍵按下;

      (2)按鍵消抖,如果運行消抖程序,確定讀到的IO口狀態(tài)為高為按鍵抖動,則跳出此次掃描,如果確定讀到的IO口狀態(tài)為高不是按鍵抖動,則繼續(xù)向下運行;

      (3)按鍵處理。即按鍵按下后根據(jù)要求,做出相應(yīng)的處理。

      二、陣列式按鍵的連接方法

      圖2所示為4行5列按鍵,控制20個按鍵。

      這種連接方式,圖中“Row0”位置、“Row1”位置、“Row2”位置、“Row3”位置、“Column0”位置、“Column1”位置、“Column2”位置、“Column3”位置、“Column4”位置分別連接控制芯片IO口??刂菩酒ㄟ^IO口掃描按鍵陣列。

      三、無驅(qū)動芯片的陣列式按鍵的控制方法

      陣列按鍵連接到控制芯片的IO口分別命名為R0、R1、R2、R3、C0、C1、C2、C3、C4(R表示行,C表示列,R0表示IO口與陣列按鍵的第0行連接,其它同理)

      陣列式按鍵掃描方法,以圖2的按鍵為例,方法如下。

      (a) IO口初始化。將IO口R0、R1、R2、R3設(shè)置為輸出,將“IO口C0、C1、C2、C3、C4設(shè)置為輸入。

      (b)IO口R0置高,R1置低,R2置低,R3置低,查詢IO口C0、C1、C2、C3、C4狀態(tài),若都為低,表明沒有按鍵按下,繼續(xù)執(zhí)行下一步,若有高,則判斷是哪條IO口為高,從而判斷是第0行哪一列按鍵按下,記下鍵值后跳出掃描。

      (c)IO口R0置低,R1置高,R2置低,R3置低,查詢IO口C0、C1、C2、C3、C4狀態(tài),若都為低,表明沒有按鍵按下,繼續(xù)執(zhí)行下一步,若有高,則判斷是哪條IO口為高,從而判斷是第1行哪一列按鍵按下,記下鍵值后跳出掃描。

      (d)IO口R0置低,R1置低,R2置高,R3置低,查詢IO口C0、C1、C2、C3、C4狀態(tài),若都為低,表明沒有按鍵按下,繼續(xù)執(zhí)行下一步,若有高,則判斷是哪條IO口為高,從而判斷是第2行哪一列按鍵按下,記下鍵值后跳出掃描。

      (e)IO口R0置低,R1置低,R2置低,R3置高,查詢IO口C0、C1、C2、C3、C4狀態(tài),若都為低,表明沒有按鍵按下,繼續(xù)執(zhí)行下一步,若有高,則判斷是哪條IO口為高,從而判斷是第3行哪一列按鍵按下,記下鍵值后跳出掃描。

      (f)若步驟e)判斷結(jié)果仍為無按鍵按下,跳出掃描,判定結(jié)果為無按鍵按下,掃描結(jié)束。

      此掃描操作具有一定的規(guī)律性,可用循環(huán)語句描述,代碼將非常簡練。

      四、有驅(qū)動芯片的陣列式按鍵的控制方法

      按鍵控制芯片可完成對按鍵陣列的掃描,并將掃描結(jié)果通過并行或串行總線上報給CPU。以下介紹并行方式的按鍵控制芯片MM74C923WM和串行方式的按鍵控制芯片TCA8418RTWR。

      (一)使用芯片MM74C923WM驅(qū)動陣列式按鍵

      按鍵控制芯片MM74C923WM為3.3V供電的20腳芯片。外圍電路簡單,最多可控制4行5列的陣列式按鍵,即最多可控制20個按鍵。與CPU接口為并行接口,帶有中斷模式,可在按鍵按下時產(chǎn)生中斷信號。

      1.連接方式

      MM74C923WM的連接方式有以下說明。

      (a)MM74C923WM與陣列式按鍵接口:

      (1)MM74C923WM的1腳至5腳與陣列式按鍵的列控制腳連接,MM74C923WM的1腳至5腳分別連接圖2中“Column0”至“Column4”位置。

      (2)MM74C923WM的11腳、12腳、9腳、8腳與陣列式按鍵的行控制腳連接,MM74C923WM的11腳、12腳、9腳、8腳分別連接圖2中“Row0”至“Row3”位置。

      (b)MM74C923WM與CPU接口:

      (1)MM74C923WM的15腳至19腳與CPU端連接,為并行數(shù)據(jù)線,從此并行數(shù)據(jù)線上可讀出被按下的按鍵的鍵值。

      (2)M74C923WM的14與CPU端連接,此腳為M74C923WM使能引腳,CPU可以通過控制此腳高低來使能和禁止M74C923WM。

      (3)M74C923WM的13腳與CPU端連接,此腳為M74C923WM中斷引腳,CPU可以通過讀取此腳狀態(tài)來判斷是否有按鍵按下動作發(fā)生。

      2.CPU控制方法

      CPU芯片的外部中斷腳與M74C923WM的13腳連接,當按鍵按下時產(chǎn)生中斷信號,CPU接收到中斷信號后產(chǎn)生中斷,進入中斷服務(wù)函數(shù),通過并行數(shù)據(jù)線讀取被按下按鍵的鍵值,從而根據(jù)鍵值進行按鍵處理。

      (二)使用芯片TCA8418RTWR驅(qū)動陣列式按鍵

      按鍵控制芯片TCA8418RTWR為3.3V供電的24腳芯片。超小封裝,外圍電路簡單,最多可控制8行10列的陣列式按鍵,即最多可控制80個按鍵。與CPU接口為串行接口,帶有中斷模式,可在按鍵按下時產(chǎn)生中斷信號。

      五、結(jié)束語

      使用芯片TCA8418RTWR驅(qū)動陣列式按鍵,這種方式在多按鍵處理中優(yōu)勢較大,可將芯片芯片TCA8418RTWR排在按鍵板上,這樣,按鍵板與控制板之間的接口線的數(shù)量將縮減至5根,可提升接口的可靠性。

      【參考文獻】

      [1]M74C923數(shù)據(jù)手冊.National Semiconductor。

      [2]TCA8418數(shù)據(jù)手冊.TI。

      猜你喜歡
      按鍵
      “按鍵”究竟有多傷人
      基于有限狀態(tài)機的按鍵檢測程序設(shè)計
      電子制作(2021年3期)2021-06-16 03:14:26
      多按鍵情況下,單片機端口不足的解決方法
      電子制作(2019年13期)2020-01-14 03:15:28
      按鍵消抖在單片機和FPGA實驗教學(xué)中的應(yīng)用
      Z-Stack協(xié)議棧的按鍵驅(qū)動機制分析*
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計
      電子制作(2016年1期)2016-11-07 08:43:05
      該你了
      女士(2015年6期)2015-05-30 20:22:32
      高速公路免按鍵自動發(fā)卡系統(tǒng)
      基于有限狀態(tài)機的STM32系統(tǒng)按鍵識別方法
      按鍵的多種狀態(tài)檢測及消抖處理方法
      家電科技(2013年4期)2013-07-09 10:55:08
      铜陵市| 连平县| 新平| 和田县| 广东省| 永丰县| 贵阳市| 通许县| 库车县| 理塘县| 永兴县| 三江| 宜川县| 湾仔区| 灵台县| 聂拉木县| 宜兰市| 广平县| 哈密市| 阜康市| 浦城县| 连云港市| 新巴尔虎右旗| 横山县| 三江| 靖安县| 克山县| 海兴县| 保山市| 电白县| 乐陵市| 登封市| 乐平市| 玉屏| 贺州市| 酉阳| 江安县| 平阳县| 老河口市| 烟台市| 吴堡县|