日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月04日(星期五)

正在發(fā)生

2020年07月04日 | 26課:矩陣式鍵盤接口技術(shù)及程序設(shè)計(jì)

發(fā)布者:oplndctkl出 來源: eefocus關(guān)鍵字:矩陣式  鍵盤接口技術(shù)  程序設(shè)計(jì) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

單片機(jī)系統(tǒng)中鍵盤中按鈕數(shù)量較多時(shí),為了減少I/O口的占用,常常將按鈕排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鈕加以連接。這樣,一個(gè)端口(如P1口)就能組成4*4=16個(gè)按鈕,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就能組成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。
 


<單片機(jī)矩陣式鍵盤接口技術(shù)及編程接口圖>


矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鈕沒有按下時(shí),所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識(shí)別及編程辦法如下所述。


矩陣式鍵盤的按鈕識(shí)別辦法

確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。


行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鈕識(shí)別辦法,如上圖所示鍵盤,介紹過程如下。


判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鈕之中。若所有列線均為高電平,則鍵盤中無鍵按下。


判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其辦法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鈕就是閉合的按鈕。


下面給出一個(gè)具體的例程:

圖仍如上所示。8031單片機(jī)的P1口用作鍵盤I/O口,鍵盤的列線接到P1口的低4位,鍵盤的行線接到P1口的高4位。列線P1.0-P1.3分別接有4個(gè)上拉電阻到正電源+5V,并把列線P1.0-P1.3設(shè)置為輸入線,行線P1.4-P.17設(shè)置為輸出線。4根行線和4根列線形成16個(gè)相交點(diǎn)。


檢測(cè)當(dāng)前是否有鍵被按下。檢測(cè)的辦法是P1.4-P1.7輸出全“0”,讀取P1.0-P1.3的狀態(tài),若P1.0-P1.3為全“1”,則無鍵閉合,不然有鍵閉合。


去除鍵抖動(dòng)。當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測(cè)判斷。

若有鍵被按下,應(yīng)識(shí)別出是哪一個(gè)鍵閉合。辦法是對(duì)鍵盤的行線進(jìn)行掃描。P1.4-P1.7按下述4種組合依次輸出:

P1.7 1 1 1 0

P1.6 1 1 0 1

P1.5 1 0 1 1

P1.4 0 1 1 1

在每組行輸出時(shí)讀取P1.0-P1.3,若全為“1”,則表示為“0”這一行沒有鍵閉合,不然有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值


為了保證鍵每閉合一次CPU僅作一次處理,必須卻除鍵釋放時(shí)的抖動(dòng)。


《單片機(jī)矩陣式鍵盤接口技術(shù)及編程》


鍵盤掃描程序:

從以上分析得到單片機(jī)鍵盤掃描程序的流程圖如圖2所示。程序如下

SCAN: MOV P1,#0FH

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,NEXT1

SJMP NEXT3

NEXT1: ACALL D20MS

MOV A,#0EFH

NEXT2: MOV R1,A

MOV P1,A

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,KCODE;

MOV A,R1

SETB C

RLC A

JC NEXT2

NEXT3: MOV R0,#00H

RET

KCODE: MOV B,#0FBH

NEXT4: RRC A

INC B

JC NEXT4

MOV A,R1

SWAP A

NEXT5: RRC A

INC B

INC B

INC B

INC B

JC NEXT5

NEXT6: MOV A,P1

ANL A,#0FH

CJNE A,#0FH,NEXT6

MOV R0,#0FFH

RET


鍵盤處理程序就作這么一個(gè)簡(jiǎn)單的介紹,實(shí)際上,鍵盤、顯示處理是很復(fù)雜的,它一般占到一個(gè)應(yīng)用程序的大部份代碼,可見其重要性,但說到,這種復(fù)雜并不來自于單片機(jī)的本身,而是來自于操作者的習(xí)慣等等問題,因此,在編寫鍵盤處理程序之前,最好先把它從邏輯上理清,然后用適當(dāng)?shù)乃惴ū硎境鰜?,最后再去寫代碼,這樣,才能快速有效地寫好代碼。

關(guān)鍵字:矩陣式  鍵盤接口技術(shù)  程序設(shè)計(jì) 引用地址:26課:矩陣式鍵盤接口技術(shù)及程序設(shè)計(jì)

上一篇:25課:單片機(jī)鍵盤接口程序設(shè)計(jì)
下一篇:27課:關(guān)于單片機(jī)的一些基本概念

推薦閱讀

當(dāng)二維碼識(shí)別不再依賴專用攝像頭模組,即使是常見的數(shù)字?jǐn)z像頭、模擬攝像頭、USB攝像頭都可以輕松快速識(shí)別二維碼時(shí),再提供免費(fèi)使用的二維碼識(shí)別算法,是否能給您的方案帶來了便捷。一、居高不下的成本隨著無現(xiàn)支付逐步深入我們的日常生活,我們平時(shí)出門可以沒有現(xiàn)金但卻離不開手機(jī),這便是二維碼為我們帶來的便捷,本文將重點(diǎn)介紹如何將二維碼識(shí)別植入產(chǎn)...
據(jù)韓媒sisajournal-e報(bào)道,華為可折疊智能手機(jī)&#39;Mate X&#39;光學(xué)膠膜(OCA)供應(yīng)商可能會(huì)發(fā)生變化,預(yù)計(jì)會(huì)對(duì)產(chǎn)品開發(fā)造成影響。報(bào)道稱,美國(guó)3M最初提供的一些產(chǎn)品出現(xiàn)了質(zhì)量問題。報(bào)道還提到,“業(yè)界人士表示,3M的部分產(chǎn)品發(fā)生品質(zhì)問題后,華為要求京東方將OCA供應(yīng)商從3M變更為其他廠商。”對(duì)此,3M方面正式聲明,以上報(bào)道內(nèi)容均未經(jīng)核實(shí),并無事實(shí)依...
據(jù)外媒報(bào)道,起亞(Kia)公布了其新型線控離合器技術(shù)的細(xì)節(jié),該技術(shù)能夠讓使用配備輕混和啟停系統(tǒng)的傳統(tǒng)手動(dòng)變速箱成為可能。起亞修改了用于驅(qū)動(dòng)手動(dòng)車輛離合器的傳統(tǒng)液壓系統(tǒng),此類車輛的離合器直接連接到汽車的離合器踏板上,而起亞的智能手動(dòng)變速箱(iMT)在踏板和液壓系統(tǒng)之間放置了一個(gè)模塊。(圖片來源:caradvice.com.au)這一做法讓iMT控制離合器...
據(jù)杭可科技公告稱,公司解除與寧德時(shí)代的合同,該合同中標(biāo)金額達(dá)4.8億元。作為全球鋰電后處理設(shè)備行業(yè)龍頭,杭可科技有著較為強(qiáng)大的制造技術(shù),而該次解約,據(jù)稱為寧德時(shí)代技術(shù)路線的變更所導(dǎo)致。在我們?nèi)粘I钪?,?jīng)常和鋰電池打交道,但是對(duì)于鋰電池的生產(chǎn)過程,卻了解的少之又少。在電池生產(chǎn)過程中,鋰電池要經(jīng)過高溫化成、分容、OCV(開路電壓)測(cè)試,這...

史海拾趣

問答坊 | AI 解惑

應(yīng)用技巧/由Rabbit2000微處理器構(gòu)成的網(wǎng)絡(luò)消防報(bào)警系統(tǒng)

介紹以Rabbit2000微處理器為核心新型網(wǎng)絡(luò)消防警控制系統(tǒng)的基本工作原理以及系統(tǒng)的軟硬件設(shè)計(jì)。該控制系統(tǒng)是采用模塊化和智能式分布技術(shù)而設(shè)計(jì)的,由于采用具有先進(jìn)通信能力微處理器控制,系統(tǒng)具有編程快捷、組網(wǎng)能力強(qiáng)、通信傳輸可靠、實(shí)時(shí)性高的特 ...…

查看全部問答∨

值得好好學(xué)習(xí),周立功講述其創(chuàng)業(yè)故事(完整版) 轉(zhuǎn)

盡管我們不能改變制度,也不一定能夠改變別人,但我們可以改變自己,因?yàn)闆]有人能夠阻止我們不斷進(jìn)步,如果失敗或者失意,那只能怪我們自己無能,怪我們自己不善于學(xué)習(xí),不能怪別人沒有給您機(jī)會(huì),更不能怪這個(gè)社會(huì)......    我創(chuàng)業(yè)至今 ...…

查看全部問答∨

關(guān)于示波器的十個(gè)問題和十個(gè)答案

示波器數(shù)字示波器一直是工程師設(shè)計(jì)、調(diào)試產(chǎn)品的好幫手。但隨著計(jì)算機(jī)、半導(dǎo)體和通信技術(shù)的發(fā)展,電路系統(tǒng)的信號(hào)時(shí)鐘速度越來越快,信號(hào)上升時(shí)間也越來越短,導(dǎo)致因底層模擬信號(hào)完整性問題引發(fā)的數(shù)字錯(cuò)誤日益突出。針對(duì)這些新的測(cè)試挑戰(zhàn),示波器供應(yīng) ...…

查看全部問答∨

CAN芯片mcp2515

打算使用mcp2515 芯片的朋友可以參考下…

查看全部問答∨

【藏書閣】基于USB的串行通信軟硬件設(shè)計(jì)

在工業(yè)控制和數(shù)據(jù)采集系統(tǒng)中,單片機(jī)以其低成本,編程靈活、方便,實(shí)時(shí)性強(qiáng)和具有一定的智能而得到了廣泛的應(yīng)用。然而,許多復(fù)雜任務(wù)的實(shí)現(xiàn),如人機(jī)對(duì)話、 任務(wù)的切換、算法的實(shí)現(xiàn)、大數(shù)據(jù)的運(yùn)算等,單片機(jī)就顯得有些力不從心,而 PC 機(jī)在這方面卻 ...…

查看全部問答∨

允許喚醒系統(tǒng)的中斷源,在哪個(gè)寄存器設(shè)置??

為什么我有的外部中斷能喚醒,有的卻不能呢?? 還想問一下是不是有一個(gè)專門的寄存器能設(shè)置只允許某些外部中斷可以喚醒系統(tǒng)?? 看了三星的datasheet,貌似是不用設(shè)置任何一個(gè)EINT都能喚醒系統(tǒng),但我的系統(tǒng)卻不是這樣。 謝謝…

查看全部問答∨

WM60下GPRS 撥號(hào)不上

WM60系統(tǒng) CPU:s3c2443 gprs模塊是MC52i 現(xiàn)在通過RIL,希望同時(shí)獲取信號(hào)強(qiáng)弱及IMEI,以及可以撥號(hào)上網(wǎng)。 現(xiàn)在可以獲取信號(hào)及IMEI,但GPRS撥號(hào)不上,一下是撥號(hào)中的debug message,那位DX可以幫忙指點(diǎn)一下 ####################Debug message## ...…

查看全部問答∨

關(guān)于DS18B20的64位ROM搜索

老師讓做個(gè)多點(diǎn)溫度檢測(cè)通過RS232協(xié)議傳給上位機(jī)。就剩下最關(guān)鍵18B20的通過讀64位ROM中的48位序列號(hào)來確定具體的那個(gè)18B20了。我想盡快結(jié)項(xiàng)啊啊啊?。?! 哪位大俠能出來指點(diǎn)一二,給個(gè)參考代碼更是感激不盡,毫無頭緒中…………………………代碼啊 ...…

查看全部問答∨

sqlce2.0數(shù)據(jù)庫open打不開

我的程序是這么寫的,到open哪兒就打不開了.有人說是路徑的問題,可是我看不出來路徑有問題啊?哪位大俠幫幫忙吧! if(FAILED(CoInitializeEx(NULL, COINIT_MULTITHREADED)))                 return FA ...…

查看全部問答∨

請(qǐng)問MAX232和MAX487的區(qū)別

   一個(gè)RS232一個(gè)RS485接口,都是用來做什么收發(fā)器,電平邏輯轉(zhuǎn)化的,但這些都是純理論上的作用,我只想知道他們實(shí)際中能干什么,不要有太多專業(yè)術(shù)語,還有這2個(gè)有什么區(qū)別?…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved