日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 單片機(jī)矩陣式鍵盤的編程方法

單片機(jī)矩陣式鍵盤的編程方法

作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:17
  單片機(jī)系統(tǒng)中,若使用按鍵較多時,通常采用矩陣式(也稱行列式)鍵盤。
  1.矩陣式鍵盤的結(jié)構(gòu)及原理
  矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上,其結(jié)構(gòu)如圖所示。
由圖可知,一個 4 × 4 的行、列結(jié)構(gòu)可以構(gòu)成一個含有 16 個按鍵的鍵盤,顯然,在按鍵數(shù)量較多時,矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省很多 I/O 口。

  矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+ 5V 上。當(dāng)無鍵按下時,行線處于高電平狀態(tài);當(dāng)有鍵按下時,行、列線將導(dǎo)通,此時,行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關(guān)鍵。然而,矩陣鍵盤中的行線、列線和多個鍵相連,各按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,因此,必須將行線、列線信號配合起來作適當(dāng)處理,才能確定閉合鍵的位置。
  2.矩陣式鍵盤按鍵的識別
  識別按鍵的方法很多,其中,最常見的方法是掃描法。下面以圖中 8 號鍵的識別為例來說明掃描法識別按鍵的過程。
   按鍵按下時,與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時處在高電平。顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會引起行線電平的變化,因此,必須使所有列線處在低電平。只有這樣,當(dāng)有鍵按下時,該鍵所在的行電平才會由高電平變?yōu)榈碗娖健?CPU 根據(jù)行電平的變化,便能判定相應(yīng)的行有鍵按下。 8 號鍵按下時,第 2 行一定為低電平。然而,第 2 行為低電平時,能否肯定是 8 號鍵按下呢?
   回答是否定的,因為 9 、 10 、 11 號鍵按下,同樣會使第 2 行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線在同一時刻都處在低電平,可在某一時刻只讓一條列線處于低電平,其余列線均處于高電平,另一時刻,讓下一列處在低電平,依此循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤掃描。采用鍵盤掃描后,再來觀察 8 號鍵按下時的工作過程,當(dāng)?shù)?0 列處于低電平時,第 2 行處于低電平,而第 1 、 2 、 3 列處于低電平時,第 2 行卻處在高電平,由此可判定按下的鍵應(yīng)是第 2 行與第 0 列的交叉點,即 8 號鍵。
  3.鍵盤的編碼
  對于獨(dú)立式按鍵鍵盤,因按鍵數(shù)量少,可根據(jù)實際需要靈活編碼。對于矩陣式鍵盤,按鍵的位置由行號和列號惟一確定,因此可分別對行號和列號進(jìn)行二進(jìn)制編碼,然后將兩值合成一個字節(jié),高 4 位是行號,低 4 位是列號。如圖 7.5 中的 8 號鍵,它位于第 2 行,第 0 列,因此,其鍵盤編碼應(yīng)為 20H 。采用上述編碼對于不同行的鍵離散性較大,不利于散轉(zhuǎn)指令對按鍵進(jìn)行處理。因此,可采用依次排列鍵號的方式對按排進(jìn)行編碼。以圖 7.5 中的 4 × 4 鍵盤為例,可將鍵號編碼為: 01H 、 02H 、 03H 、 … 、 0EH 、 0FH 、 10H 等 16 個鍵號。編碼相互轉(zhuǎn)換可通過計算或查表的方法實現(xiàn)。
  4.鍵盤的工作方式
  對鍵盤的響應(yīng)取決于鍵盤的工作方式,鍵盤的工作方式應(yīng)根據(jù)實際應(yīng)用系統(tǒng)中 CPU 的工作狀況而定,其選取的原則是既要保證 CPU 能及時響應(yīng)按鍵操作,又不要過多占用 CPU 的工作時間。通常,鍵盤的工作方式有三種,即編程掃描、定時掃描和中斷掃描。
  編程掃描方式
  編程掃描方式是利用 CPU 完成其它工作的空余時間,調(diào)用鍵盤掃描子程序來響應(yīng)鍵盤輸入的要求。在執(zhí)行鍵功能程序時, CPU 不再響應(yīng)鍵輸入要求,直到 CPU 重新掃描鍵盤為止。
鍵盤掃描程序一般應(yīng)包括以下內(nèi)容:
  (1) 判別有無鍵按下。
  (2) 鍵盤掃描取得閉合鍵的行、列值。
  (3) 用計算法或查表法得到鍵值。
  (4) 判斷閉合鍵是否釋放,如沒釋放則繼續(xù)等待。
  (5) 將閉合鍵鍵號保存,同時轉(zhuǎn)去執(zhí)行該閉合鍵的功能。

編輯:admin  最后修改時間:2018-05-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

余姚市| 娄烦县| 濉溪县| 扎囊县| 盐山县| 宁化县| 黄浦区| 静海县| 扎囊县| 桂东县| 依兰县| 弥勒县| 安图县| 苍梧县| 长子县| 新丰县| 顺义区| 沁阳市| 迭部县| 龙游县| 福安市| 清原| 辽阳市| 资阳市| 柯坪县| 武义县| 抚州市| 福清市| 自治县| 广州市| 内黄县| 鄂伦春自治旗| 柯坪县| 康马县| 拜城县| 驻马店市| 西吉县| 汤阴县| 西乌珠穆沁旗| 贞丰县| 平南县|