矩陣鍵盤(pán)電路設(shè)計(jì)_第1頁(yè)
矩陣鍵盤(pán)電路設(shè)計(jì)_第2頁(yè)
矩陣鍵盤(pán)電路設(shè)計(jì)_第3頁(yè)
矩陣鍵盤(pán)電路設(shè)計(jì)_第4頁(yè)
矩陣鍵盤(pán)電路設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué) 號(hào):200730410130課 程 設(shè) 計(jì)題 目矩陣鍵盤(pán)電路設(shè)計(jì)教 學(xué) 院計(jì)算機(jī)學(xué)院專(zhuān) 業(yè)計(jì)算機(jī)應(yīng)用技術(shù)班 級(jí)姓 名指導(dǎo)教師2010年01月12日目錄前言.第一章 需求分析.功能描述.功能分析.第二章 系統(tǒng)的原理及分析.用到的知識(shí)點(diǎn)的介紹,知識(shí)點(diǎn)使用的總體思路第三章 詳細(xì)設(shè)計(jì).硬件設(shè)計(jì)系統(tǒng)結(jié)構(gòu)圖,元器件的選擇等軟件設(shè)計(jì)所設(shè)計(jì)的軟件關(guān)鍵模塊的程序流程第四章 測(cè)試.運(yùn)行結(jié)果分析等第五章 總結(jié).參考文獻(xiàn).附錄關(guān)鍵程序代碼.前言矩陣鍵盤(pán)又稱(chēng)行列鍵盤(pán),它是用四條I/O線作為行線,四條I/O線作為列線組成的鍵盤(pán)。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤(pán)上按鍵的個(gè)數(shù)就為4*4個(gè)。一般由16個(gè)按鍵

2、組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這也是在單片機(jī)系統(tǒng)中最常用的形式這種行列式鍵盤(pán)結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。在“單片機(jī)系統(tǒng)”區(qū)域中,把單片機(jī)的P3.0P3.7端口通過(guò)8聯(lián)撥動(dòng)撥碼開(kāi)關(guān)JP3連接到“44行列式鍵盤(pán)”區(qū)域中的M1M4,N1N4端口上。在“單片機(jī)系統(tǒng)”區(qū)域中,把單片機(jī)的P0.0P0.7端口連接到“靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任何一個(gè)ah端口上;要求:P0.0對(duì)應(yīng)著a,P0.1對(duì)應(yīng)著b,P0.7對(duì)應(yīng)著h。面板是微機(jī)儀器的重要組成部分。面板主要包括顯示器和鍵盤(pán),通過(guò)面板對(duì)系統(tǒng)進(jìn)行操作。一般的單片機(jī)控制儀表的面板均含有數(shù)碼管、發(fā)光管和按鍵,本文的儀器面板

3、就是針對(duì)這個(gè)領(lǐng)域而開(kāi)發(fā)的。在儀器面板的設(shè)計(jì)中,鍵盤(pán)顯示電路的設(shè)計(jì)一般采用三種方式,第一種為并行口動(dòng)態(tài)掃描方式,該方式硬件簡(jiǎn)單、軟件編程方便,與主板的信號(hào)連線多;第二種為串行口靜態(tài)掃描方式,此方式使用串行芯片多,與主板的信號(hào)連線少;第三種為串行口動(dòng)態(tài)掃描方式,此方式具有硬件簡(jiǎn)單、與主板信號(hào)連線少的優(yōu)點(diǎn),一般采用專(zhuān)用的串行口鍵盤(pán)顯示芯片設(shè)計(jì)。考慮到專(zhuān)用芯片成本較高,我們用普通芯片設(shè)計(jì)了串行口動(dòng)態(tài)掃描方式的儀器面板。每個(gè)按鍵都有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩并行接口和CPU通信。鍵盤(pán)的一端(列線)通過(guò)電阻接VCC,而接地是通過(guò)程序輸出數(shù)字“0”實(shí)現(xiàn)

4、的。鍵盤(pán)處理程序的任務(wù)是:確定有無(wú)鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么?還要消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地;另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過(guò)軟件查表,查出該鍵的功能。 用單片機(jī)的并行口P3連接44矩陣鍵盤(pán),并以單片機(jī)的P3.0P3.3各管腳作輸入線,以單片機(jī)的P3.4P3.7各管腳作輸出線,在數(shù)碼管上顯示每個(gè)按鍵 “0F”的序號(hào)。實(shí)際上,鍵盤(pán)、顯示處理是很復(fù)雜的,它往往占到一個(gè)應(yīng)用程序的大部份代碼,可見(jiàn)其重要性,但說(shuō)到,這種復(fù)雜并不來(lái)自于單片機(jī)的本身,而是來(lái)自于操作者的習(xí)慣等等問(wèn)題,因此,在編寫(xiě)鍵盤(pán)

5、處理程序之前,最好先把它從邏輯上理清,然后用適當(dāng)?shù)乃惴ū硎境鰜?lái),最后再去寫(xiě)代碼,這樣,才能快速有效地寫(xiě)好代碼。第一章 需求分析功能描述:行線P1.0P1.3為輸出線,列線P1.4P1.7為輸入線。一開(kāi)始單片機(jī)將行線(P1.0P1.3)全部輸出低電平,此時(shí)讀入列線數(shù)據(jù),若列線全為高電平則沒(méi)有鍵按下,當(dāng)列線有出現(xiàn)低電平時(shí)調(diào)用延時(shí)程序以此來(lái)去除按鍵抖動(dòng)。延時(shí)完成后再判斷是否有低電平,如果此時(shí)讀入列線數(shù)據(jù)還是有低電平,則說(shuō)明確實(shí)有鍵按下。最后一步確定鍵值?,F(xiàn)在我們以第二行的S5鍵為例,若按下S5后我們應(yīng)該怎么得到這個(gè)鍵值呢?當(dāng)判斷確實(shí)有鍵按下之后,行線輪流輸出低電平,根據(jù)讀入列線的數(shù)據(jù)可以確定鍵值。首

6、先,單片機(jī)將P10輸出為低電平,其它P11P13輸出高電平,此時(shí)讀取列線的數(shù)據(jù)全為高電平,說(shuō)明沒(méi)有在第一行有鍵按下;其次,單片機(jī)將P11輸出低電平,其它P10、P12、P13仍為高電平,此時(shí)再來(lái)讀取列線數(shù)據(jù),發(fā)現(xiàn)列線讀到的數(shù)據(jù)有低電平,數(shù)值為1011(0x0B),如果我們的鍵盤(pán)布局已經(jīng)確定,那么0x0B就代表S5的值了。轉(zhuǎn)到S5鍵功能處理子程序就可以達(dá)到目的。功能分析:4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,看門(mén)狗,兩個(gè)數(shù)據(jù)指針,兩個(gè)16計(jì)時(shí)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通訊口,片內(nèi)振蕩器及時(shí)時(shí)鐘電路,同時(shí)A789S51可降至0HZ的靜態(tài)邏輯操作,并支

7、持兩種軟件可選的節(jié)電工作模式,空閑方式停止工作并緊張其他所有部分工作直到下一個(gè)硬件復(fù)位。如果給P3一個(gè)掃描初值的話:如0x0F ,則沒(méi)有鍵按下時(shí)為:P3.1P3.3為1,P3.4P3.7為0。如果有鍵按下,則情況發(fā)生變化:高電平接入低電平:如P3.3與P3.7連接的鍵按下,則P3.3與P3.7為0,即接地了。則P3此時(shí)為:0000 0111,這時(shí)如果用P3&0x0F,則高四位為0,低四位保留,可以得到低四位的內(nèi)容了。通過(guò)去抖操作,即一個(gè)delay,可以得到低四位內(nèi)容。這里設(shè)為:h=P3&0x0F;如果再得到高四位內(nèi)容,則可以組成一個(gè)數(shù),來(lái)定位哪個(gè)鍵了。當(dāng)賦值后,如果有鍵按下的話,P3高四位不會(huì)

8、全為1111,被拉到0了。如P3.3與P3.7連接的鍵按下,則P3.3與P3.7為0,即接地了。 即:0111 0111,&F0之后,得到0111 0000,這樣的話,我們得到高四位的值了,用高四位+低四位,就可以得到一個(gè)數(shù)值,確定一個(gè)鍵。其掃描輸出端口Pm.x不是直接與輸入端口Pn.y交叉的,而是經(jīng)過(guò)用于數(shù)碼顯示位驅(qū)動(dòng)的反相組件后再與入端口Pn.y交叉的。為此,其掃描輸出有效端口不是低電平了,而是輸出高電平經(jīng)反相組件后再成為低電平,通過(guò)按鍵同樣將與之交叉的輸入端口線拉低。所以,在查詢(xún)輸入端口時(shí)與圖2所示的是相同的,而在查詢(xún)掃描輸出有效端口時(shí)與圖2的就有所不同了。為保證鍵每閉合一次MCU只作一

9、次處理,每一次鍵解讀后都將置鍵解讀標(biāo)志位為邏輯對(duì)于鍵解讀標(biāo)志位的置位,可以在每一個(gè)鍵解釋處理完畢后進(jìn)行,也可在消抖動(dòng)延時(shí)后就進(jìn)行一次總置。不管鍵有多少個(gè),鍵解讀標(biāo)志位用的卻是同一個(gè)。其實(shí),引入了鍵解讀標(biāo)志位,不只是控制鍵每閉合一次MCU只作一次處理,還可對(duì)那些持久按著的鍵有控地進(jìn)行多次處理(如用于對(duì)一些數(shù)據(jù)遞進(jìn)、或遞減的連續(xù)設(shè)置等)。需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。矩陣式結(jié)構(gòu)的鍵盤(pán)顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,上圖中,列線通過(guò)電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒(méi)有按下時(shí),所有的輸出端都是高電平,代表無(wú)

10、鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過(guò)讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識(shí)別及編程方法如下所述。矩陣式鍵盤(pán)的按鍵識(shí)別方法:確定矩陣式鍵盤(pán)上何鍵被按下介紹一種“行掃描法”。行掃描法 行掃描法又稱(chēng)為逐行(或列)掃描查詢(xún)法,是一種最常用的按鍵識(shí)別方法,如上圖所示鍵盤(pán),介紹過(guò)程如下。判斷鍵盤(pán)中有無(wú)鍵按下 將全部行線Y0-Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。 判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的

11、過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。第二章系統(tǒng)的原理及分析用單片機(jī)的并行口P3連接44矩陣鍵盤(pán),并以單片機(jī)的P1.0P1.3各管腳作輸入線,以單片機(jī)的P1.4P1.7各管腳作輸出線,在數(shù)碼管上顯示每個(gè)按鍵 “0F”的序號(hào)。矩陣鍵盤(pán)又稱(chēng)為行列式鍵盤(pán),它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤(pán)。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤(pán)中按鍵的個(gè)數(shù)是44個(gè)。這種行列式鍵盤(pán)結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O

12、口的利用率。在矩陣式鍵盤(pán)中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤(pán)多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤(pán),而直接用端口線則只能多出一鍵(9鍵)。數(shù)碼管不同位顯示的時(shí)間間隔可以通過(guò)調(diào)整延時(shí)程序的延時(shí)長(zhǎng)短來(lái)完成。數(shù)碼管顯示的時(shí)間間隔也能夠確定數(shù)碼管顯示時(shí)的亮度,若顯示的時(shí)間間隔長(zhǎng),顯示時(shí)數(shù)碼管的亮度將亮些,若顯示的時(shí)間間隔短,顯示時(shí)數(shù)碼管的亮度將暗些。若顯示的時(shí)間間隔過(guò)長(zhǎng)的話,數(shù)碼管顯示時(shí)將產(chǎn)生閃爍現(xiàn)象。所以,在調(diào)整顯示的時(shí)間間隔時(shí),即要考慮到顯示時(shí)數(shù)碼管

13、的亮度,又要數(shù)碼管顯示時(shí)不產(chǎn)生閃爍現(xiàn)象。矩陣鍵盤(pán)驅(qū)動(dòng)的主要作用就是實(shí)時(shí)監(jiān)測(cè)外部按鍵中斷,一旦發(fā)現(xiàn)外部有鍵按下就向內(nèi)核發(fā)送鍵盤(pán)消息實(shí)現(xiàn)鍵盤(pán)輸入功能。鍵盤(pán)驅(qū)動(dòng)創(chuàng)建了中斷服務(wù)線程和4個(gè)鍵盤(pán)中斷事件,每行按鍵對(duì)應(yīng)一個(gè)鍵盤(pán)中斷事件。有鍵被按下時(shí),中斷服務(wù)例程得到對(duì)應(yīng)的中斷標(biāo)識(shí)符并報(bào)告給系統(tǒng)任務(wù)調(diào)度進(jìn)程,同時(shí)產(chǎn)生鍵盤(pán)中斷事件,鍵盤(pán)中斷服務(wù)線程響應(yīng)鍵盤(pán)中斷事件,開(kāi)始掃描矩陣鍵盤(pán)。根據(jù)產(chǎn)生的中斷事件類(lèi)型不同,可以首先確定被按下鍵的行位置。由于鍵盤(pán)被按下后,該鍵對(duì)應(yīng)的行和列被連通,因此根據(jù)判斷各列對(duì)應(yīng)的I/O口的電平,可以得到被按下鍵的列位置;得到按鍵的準(zhǔn)確位置后,通過(guò)向操作系統(tǒng)發(fā)送鍵盤(pán)消息KEYBD_EVEN

14、T,實(shí)現(xiàn)一次鍵盤(pán)輸入。循環(huán)掃描鍵盤(pán),直到按鍵被彈起則發(fā)送KEYEVENTF_KEYUP事件??傮w思路入線,列線p1.4p1.7為輸出線。一開(kāi)始單片機(jī)將行線(p1.0p1.3)全部輸出低電平,此時(shí)讀入線數(shù)據(jù),若列線全部為高電平則沒(méi)有鍵按下,當(dāng)列線有出線低電平時(shí)調(diào)用延時(shí)程序以此來(lái)去除鍵抖動(dòng),延時(shí)完成后再判斷是否有低電平,如果此時(shí)讀入列線數(shù)據(jù)還是有低電平,則說(shuō)明確實(shí)有鍵按下。最后一步確定鍵值?,F(xiàn)在我們以第二行的s5鍵為例,若按下s5后我們應(yīng)該怎么得到這個(gè)鍵值呢?當(dāng)判斷確實(shí)有鍵按下之后,行線輪流輸出低電平,根據(jù)讀入列線的數(shù)據(jù)可以確定鍵值。首先,單片機(jī)將p1.0輸出為低電平,其他p1.1p1.3輸出高電

15、平,此時(shí)讀取列線的數(shù)據(jù)全高電平,說(shuō)明沒(méi)有在第一行有鍵按下;其次,單片機(jī)將p1.1輸出低電平,其他p1.0,p1.2.p1.3仍為高低電平,此時(shí)再來(lái)讀取列線數(shù)據(jù),發(fā)現(xiàn)列線讀到數(shù)據(jù)低電平,數(shù)值為1011,如果我們的鍵盤(pán)布局已經(jīng)確定,那么就代表s5的值了。轉(zhuǎn)到s5鍵功能處理子程序就可以達(dá)到目的。在鍵盤(pán)矩陣掃描時(shí),首先檢查有否鍵按動(dòng)。若無(wú)鍵按動(dòng),則清零一次鍵解讀標(biāo)志位就返回;若有鍵按下,則再查詢(xún)鍵解讀標(biāo)志位是邏輯0還是邏輯1。如果是邏輯1,表明本次按鍵已解讀過(guò),可直接從鍵掃描處理程序中返回;如果是邏輯0,說(shuō)明本次按鍵尚未解讀過(guò),則啟用消抖動(dòng)延時(shí)。經(jīng)消抖動(dòng)延時(shí)后即查詢(xún)鍵盤(pán)矩陣輸入口線的各端口是否有拉低。

16、若一個(gè)端口也沒(méi)被拉低,則說(shuō)明本次按鍵無(wú)效,那可能是某種干擾引起的“抖動(dòng)”,立即從鍵掃描處理程序中返回;若查詢(xún)到其中之一端口的電平被拉低了,則表明本次按鍵盤(pán)是有效的,將跳轉(zhuǎn)查詢(xún)與之相交的那個(gè)掃描有效輸出口線,進(jìn)而確定具體是哪一個(gè)鍵按下,并跳轉(zhuǎn)賦予其相應(yīng)的解釋處理。解釋處理后,置鍵解讀標(biāo)志位為邏輯1再返回,即完成一次鍵盤(pán)矩陣的掃描解讀。不管鍵盤(pán)矩陣有多少個(gè)鍵,其掃描確定一個(gè)具體鍵所需位查詢(xún)的總次數(shù)S不會(huì)大于行數(shù)x與列數(shù)y之和;但也不少于2次,即2Sx+y。如上述的65矩陣,最多所需位查詢(xún)總次數(shù)S=5+6=11。當(dāng)?shù)?0號(hào)鍵按下,查詢(xún)到最后一列Pn.4端口電平被拉低,繼而跳轉(zhuǎn)查詢(xún)到有效掃描輸出是最后

17、一行Pm.5端口;但至少所需位查詢(xún)總次數(shù)S=1+1=2。當(dāng)1號(hào)鍵按下,先查詢(xún)到第1列Pn.0端口電平被拉低,繼而跳轉(zhuǎn)查詢(xún)到有效掃描輸出是第1行Pm.0端口。檢測(cè)當(dāng)前是否有鍵被按下。檢測(cè)的方法是P1.4-P1.7輸出全“0”,讀取P1.0-P1.3的狀態(tài),若P1.0-P1.3為全“1”,則無(wú)鍵閉合,否則有鍵閉合。 去除鍵抖動(dòng)。當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測(cè)判斷。第三章詳細(xì)設(shè)計(jì)硬件設(shè)計(jì)矩陣式鍵盤(pán)識(shí)別電路原理圖4*4矩陣鍵盤(pán)的顯示(1)在“單片機(jī)系統(tǒng)”區(qū)域中,把單片機(jī)的P1.0P1.7端口通過(guò)8聯(lián)撥動(dòng)撥碼開(kāi)關(guān)JP3連接到“44行列式鍵盤(pán)”區(qū)域中的M1M4,N1N4端口上。 (2)在

18、“單片機(jī)系統(tǒng)”區(qū)域中,把單片機(jī)的P0.0P0.7端口連接到“靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任何一個(gè)ah端口上;要求:P0.0對(duì)應(yīng)著a,P0.1對(duì)應(yīng)著b,P0.7對(duì)應(yīng)著h。軟件設(shè)計(jì)44矩陣式鍵盤(pán)識(shí)別程序流程圖第四章測(cè)試1、測(cè)試儀器5v直流穩(wěn)壓電流2、指標(biāo)測(cè)試各部分測(cè)試的指標(biāo),由于此設(shè)計(jì)的單片機(jī)復(fù)位時(shí)上電自動(dòng)復(fù)位,每次給點(diǎn)偏激送電都會(huì)是單片機(jī)復(fù)位,給單片機(jī)輸入5v大小的電壓,數(shù)碼管顯示的初值是“0”,按后按鍵盤(pán),在數(shù)碼管上則顯示出相應(yīng)的數(shù)值。顯示結(jié)果為:“0-9”,“a-f”。仿真結(jié)果如下:a.數(shù)字“5”顯示 c.字母“F”顯示系統(tǒng)實(shí)現(xiàn)的功能1、 基本功能:通過(guò)鍵盤(pán)輸入,在數(shù)碼管上顯示相應(yīng)的數(shù)值;2、

19、 功能優(yōu)勢(shì):鍵盤(pán)輸入,單片機(jī)控制,數(shù)碼管顯示,在數(shù)碼管連接方面克服了共陽(yáng)極數(shù)碼管顯示不清晰的困難。第五章總結(jié)結(jié)論:由于使用的是單片機(jī)作為核心的控制元件,本設(shè)計(jì)采用89c51單片機(jī)作為主控器,結(jié)合微動(dòng)按鍵和數(shù)碼管實(shí)現(xiàn)了4*4矩陣鍵盤(pán)顯示,并采用9012對(duì)數(shù)碼管進(jìn)行驅(qū)動(dòng),實(shí)現(xiàn)了數(shù)碼管的顯示。4*4矩陣鍵盤(pán)具有功能強(qiáng)、性能可靠、電路簡(jiǎn)單、成本低等特點(diǎn),加上經(jīng)過(guò)優(yōu)化的程序,使其有很高的智能化水平。為了使我們?cè)O(shè)計(jì)的系統(tǒng)更具人性化,使測(cè)試方便,我們將電源線直接引出,測(cè)試起來(lái)非常方便。但是在我們?cè)O(shè)計(jì)和調(diào)試的過(guò)程中,也發(fā)現(xiàn)了一些問(wèn)題,譬如在測(cè)試初期,由于單片機(jī)燒寫(xiě)過(guò)程出現(xiàn)問(wèn)題,導(dǎo)致單片機(jī)不能正常工作。最終經(jīng)過(guò)

20、測(cè)試,排除困難。本設(shè)計(jì)成功的完成了題目的設(shè)計(jì)要求。隨著嵌入式設(shè)備應(yīng)用的日益廣泛,特別是微軟的嵌入式操作系統(tǒng)Windows CE.NET的普及,Windows CE.NET下矩陣鍵盤(pán)設(shè)計(jì)得到了越來(lái)越多開(kāi)發(fā)者的重視。本文所討論的Windows CE.NET下矩陣鍵盤(pán)設(shè)計(jì)方案簡(jiǎn)單、高效、實(shí)用。特別適合于I/O口資源充足的嵌入式PDA上,現(xiàn)已成功應(yīng)用于某衛(wèi)星定位系統(tǒng)的鍵盤(pán)設(shè)計(jì)上。參考文獻(xiàn)【1】 羅朝霞.單片機(jī)系統(tǒng)與實(shí)踐北京:人民郵電出版社,2000年(第一版)【2】 黃繼業(yè).單片機(jī)高級(jí)教程北京:科學(xué)出版社,2002年(第二版)【3】 楊家德.單片機(jī)設(shè)計(jì)與制作北京:人民郵電出版社.2001年(第一版)【

21、4】 梅遂生.單片機(jī)基礎(chǔ)知識(shí)北京:北航出版社,2003年(第二版)【5】 樓然苗.51單片機(jī)系列設(shè)計(jì)實(shí)例北京:北航出版社2006年(第二版)【6】 桑楠.嵌入式系統(tǒng)原理及應(yīng)用開(kāi)發(fā)技術(shù)北京:高等教育出版社2008年(第二版)附錄關(guān)鍵程序代碼#includevoid keyscan();void delay();void display(unsigned char i);void main()while(1)keyscan();void keyscan()unsigned char n;P1=0xfe;n=P1;n&=0xf0;if(n!=0xf0)delay();P1=0xfe;n=P1;n&=0xf0;if(n!=0xf0)switch(n)case(0xe0):display(0);break;case(0xd0):display(1);break;case(0xb0):display(2);break;case(0x70):display(3);break;P1=0xfd;n=P1;n&=0xf0;if(n!=0xf0)delay();P1=0xfd;n=P1;n&=0xf0;if(n!=0xf

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論