版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 題 目 單片機4×4矩陣鍵盤控制LED </p><p> 系(部) 電子工程系 </p><p> 專業(yè)班級 </p><
2、p> 學(xué)生姓名 </p><p> 學(xué) 號 </p><p> 總評成績 </p><p> 指導(dǎo)教師 </p><p> 2012 年 3 月 5 日</
3、p><p><b> 摘 要</b></p><p> 矩陣式鍵盤乃是當(dāng)今使用最為廣泛的鍵盤模式,該系統(tǒng)以N個端口連接控制N*N個按鍵,即時在LED數(shù)碼管上。單片機控制的據(jù)這是鍵盤顯示系統(tǒng),該系統(tǒng)可以對不同的按鍵進行實時顯示,其核心是單片機和鍵盤矩陣電路部分,主要對按鍵與顯示電路的關(guān)系、矩陣式技術(shù)及設(shè)備系統(tǒng)的硬件、軟件等各個部分進行實現(xiàn)。4*4矩陣式鍵盤采用AT89
4、C51單片機為核心,主要由矩陣式鍵盤電路、譯碼電路、顯示電路等組成,軟件選用匯編語言編程。單片機將檢測到的按鍵信號轉(zhuǎn)換成數(shù)字量,顯示于LED顯示器上。該系統(tǒng)靈活性強,易于操作,可靠性高,將會有更廣闊的開發(fā)前景。</p><p> 關(guān)鍵詞: 80C51芯片;矩陣式;LED;鍵盤</p><p><b> 目 錄</b></p><p>
5、<b> 1 引 言1</b></p><p> 2 4×4矩陣鍵盤控制LED工作原理及軟硬件設(shè)計、仿真調(diào)試2</p><p> 2.1 4×4矩陣式鍵盤識別顯示系統(tǒng)概述2</p><p> 2.2 4×4矩陣式鍵盤原理3</p><p> 2.3 4×4矩陣式
6、鍵盤控制LED顯示方法.. 4</p><p> 2.4 4×4矩陣式鍵盤軟件編程6</p><p> 2.5 4×4矩陣式鍵盤軟件仿真調(diào)試分析11</p><p><b> 3 結(jié) 論12</b></p><p><b> 4 謝 詞13</b></p
7、><p><b> 5 參考文獻13</b></p><p><b> 引言</b></p><p> 本實驗是在基于PROTUES平臺下,運用 80C51芯片編寫程序設(shè)計實現(xiàn)的矩陣式鍵盤。通過對矩陣鍵盤的硬件電路的設(shè)計及對其進行程序匯編和運行,通過單片機的內(nèi)部控制實現(xiàn)對硬件電路的設(shè)計,從而實現(xiàn)對4*4矩陣鍵盤的識別。
8、用單片機的并行P1口連接4*4矩陣鍵盤,并以單片機的P1.0-P1.3口作鍵盤輸入的列線,以單片機的P1.4-P1.7口作為鍵盤輸入的行線,然后用P0.0-P0.6作輸出線,通過電阻在顯示器上顯示不同的符號按鍵 “0-F”[1]。在硬件電路的基礎(chǔ)上加上軟件程序的控制來設(shè)計實現(xiàn)。</p><p> 2 4×4矩陣鍵盤控制LED工作原理及軟硬件設(shè)計、仿真調(diào)試</p><p>
9、2.1 4×4矩陣式鍵盤識別顯示系統(tǒng)概述 </p><p> 矩陣式鍵盤模式以N個端口連接控制N*N個按鍵,實時在LED數(shù)碼管上顯示按鍵信息。顯示按鍵信息,省下了很多的I/O端口為他用,相反,獨立式按鍵雖編程簡單,但占用I/O口資源較多,不適合在按鍵較多的場合應(yīng)用。并且在實際應(yīng)用中經(jīng)常要用到輸入數(shù)字、字母、符號等操作功能,如電子密碼鎖、電話機鍵盤、計算器按鍵等,至少都需要12到16個按鍵。矩陣式
10、鍵盤簡介:矩陣式鍵盤又稱行列鍵盤,它是用N條I/O線作為行線,N條I/O線作為列線組成的鍵盤。在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為N*N個[2]。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中I/O口的利用率。</p><p> 最常見的鍵盤布局如圖1所示。一般由16個按鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這也是在單片機系統(tǒng)中最常用的形式,本設(shè)計就采用這個鍵盤模式。&
11、lt;/p><p><b> 圖1 鍵盤布局</b></p><p> 矩陣式鍵盤提高效率進行按鍵操作管理有效方法,它可以提高系統(tǒng)準確性,有利于資源的節(jié)約,降低對操作者本身素質(zhì)的要求。</p><p> 2.2 4×4矩陣式鍵盤原理</p><p> 行列式鍵盤的接法比獨立式鍵盤的接法復(fù)雜,編程實現(xiàn)上也會比
12、較復(fù)雜。但是,在占用相同的I/O端口的情況下,行列式鍵盤的接法會比獨立式接法允許的按鍵數(shù)量多,其原理圖如圖1所示。 </p><p> 圖2 4×4矩陣式鍵盤原理圖</p><p> 實際的工程中,可能會使用PIC16C5X這種通用的可編程的鍵盤、顯示接口器件,使用PIC16C5X單片器件就能夠完成鍵盤輸入和顯示控制兩
13、種功能?! ⌒辛惺芥I盤的工作方式是先用列線發(fā)送掃描字,然后讀取行線的狀態(tài),查看是否有按鍵按下。鍵盤部分提供一種掃描的工作方式,可以和具有64個按鍵的矩陣鍵盤相連接,能對鍵盤不斷掃描、自動消抖、自動識別按下的鍵,并給出編碼,能對雙鍵或n個鍵同時按下的情況實行保護?! ≡陲@示部分,它可以為發(fā)光二極管、熒光管及其他顯示器提供按掃描方式工作的顯示接口,而且為顯示器提供多路復(fù)用信號,可以顯示多達16位的字符或數(shù)字。 鍵盤中有無按鍵按下是由
14、列線送入全掃描字、行線讀入行線狀態(tài)來判斷的,其方法是將列線的所有I/O線均置成低電平,然后將行線電平狀態(tài)讀入累加器A中,如果有鍵按下,總會有一根行線被拉至低電平,從而使行輸入不全為1?! ℃I盤中哪一個鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列,如果不全為1,則所按下的鍵必在此列,而且是在與0電平線相交的交點上的那個鍵。</p>&
15、lt;p><b> 3</b></p><p> 2.3 4×4矩陣式鍵盤控制LED顯示方法</p><p> ?。?)在“單片機系統(tǒng)”區(qū)域中,把單片機的P1.0-P1.7端口通過8聯(lián)撥動撥碼開關(guān)JP3連接到“4*4行列式鍵盤”區(qū)域中的M1-M4,N1-N4端口上[3]。即將P1口作為整個系統(tǒng)的輸入接口電路 。 (2)在“單片機系統(tǒng)”區(qū)域中,
16、把單片機的P0.0-P0.6端口通過上拉電阻連接到“靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任何一個a-g端口上[4]。 (3)此實驗采用的是共陰極LED顯示塊,只有當(dāng)a-g端口輸入高電平時才有效,即顯示塊中的對應(yīng)的發(fā)光二極管才發(fā)光,低電平時不顯示,通過a-g端口的不同輸入使顯示器顯示不同的字符。</p><p> 2.4 電路設(shè)計及電路圖</p><p> 把單片機的P1.0-P1.7端口通
17、過8聯(lián)撥動撥碼開關(guān)連接到“4*4行列式鍵盤”,其中P1.0-P1.3作為列線,P1.4-P1.7作為行線,把單片機的P0.0-P0.6端口連接到共陰極“靜態(tài)數(shù)碼顯示模塊”區(qū)域中對應(yīng)的a-g端口上;系統(tǒng)首先通過CPU對全部鍵盤進行掃描,即把第一根行線置為“0”狀態(tài),其余行線置于“1”狀態(tài),讀入輸入緩沖器的狀態(tài),若其狀態(tài)全為“1”表明該行無鍵按下,再將第二根行線置為“0”狀態(tài),同樣讀入輸入緩沖器的狀態(tài),如其狀態(tài)也全為“1”,則置第一根行線置
18、為“0”狀態(tài),以此類推[5]。如讀入輸入緩沖器的狀態(tài)不全為“1”,確定哪一根列線為“0”狀態(tài),當(dāng)某個鍵的行線和列線都為“0”狀態(tài)時,表明該鍵按下。最后通過顯示程序?qū)⒃撴I的序號顯示出來。(如下圖3)</p><p><b> 4</b></p><p> 圖3 4×4矩陣式鍵盤電路圖</p><p> 2.4 4×4矩陣
19、式鍵盤軟件編程</p><p> KEY EQU 30H </p><p> ORG 0000H ;入口地址</p><p> SJMP START </p><p> START:MOV P0,#00H </p><p> JIXU:MOV P1,#0F
20、FH ;判第0行是否有鍵按下</p><p> CLR P1.4 ;將P1.4清零</p><p><b> MOV A,P1 </b></p><p> ANL A,#0FH ;屏蔽高4位&l
21、t;/p><p> XRL A,#0FH </p><p> JZ NOKEY0 ;A為0,轉(zhuǎn)向NOKEY0</p><p> LCALL DELAY10MS ;延時,去抖動 </p><p> MOV A,P1
22、 ;再確認一次</p><p> ANL A,#0FH </p><p> XRL A,#0FH </p><p> JZ NOKEY0 ;A為0,轉(zhuǎn)向NOKEY0</p><p> MOV A,P1
23、 ;判哪一個鍵按下</p><p> ANL A,#0FH </p><p> CJNE A,#0EH,NEXT1 </p><p> MOV KEY,#0 </p><p> LJMP OK ;轉(zhuǎn)向顯示程序</p><p> NEXT
24、1:CJNE A,#0DH,NEXT2 </p><p> MOV KEY,#1 </p><p><b> LJMP OK </b></p><p> NEXT2:CJNE A,#0BH,NEXT3 </p><p> MOV KEY,#2 </p><p><b> LJM
25、P OK </b></p><p> NEXT3:CJNE A,#07H,NOKEY0 </p><p> MOV KEY,#3 </p><p><b> LJMP OK </b></p><p> NOKEY0:MOV P1,#0FFH ;判第1行是否有鍵按下<
26、/p><p> CLR P1.5 ;將P1.5清零</p><p><b> MOV A,P1 </b></p><p> ANL A,#0FH ;屏蔽高4位</p><p> XRL A,#0FH <
27、/p><p> JZ NOKEY1 ;A為0,轉(zhuǎn)向NOKEY1</p><p> LCALL DELAY10MS ;延時,去抖動</p><p> MOV A,P1 ;再確認一次</p><p>
28、; ANL A,#0FH </p><p> XRL A,#0FH </p><p> JZ NOKEY1 ;A為0,轉(zhuǎn)向NOKEY1</p><p> MOV A,P1 ;判哪一個鍵按下</p><p> ANL A,
29、#0FH </p><p> CJNE A,#0EH,NEXT5 </p><p> MOV KEY,#4 </p><p><b> LJMP OK </b></p><p> NEXT5:CJNE A,#0DH,NEXT6 </p><p> MOV KEY,#5 </p>
30、;<p><b> LJMP OK </b></p><p> NEXT6:CJNE A,#0BH,NEXT7 </p><p> MOV KEY,#6 </p><p><b> LJMP OK </b></p><p> NEXT7:CJNE A,#07,NOKEY1 &
31、lt;/p><p> MOV KEY,#7 </p><p><b> LJMP OK </b></p><p> NOKEY1:MOV P1,#0FFH ;判第2行是否有鍵按下</p><p> CLR P1.6 ;將P
32、1.6清零</p><p><b> MOV A,P1 </b></p><p> ANL A,#0FH ;屏蔽高4位</p><p> XRL A,#0FH </p><p> JZ NOKEY2
33、;A為0,轉(zhuǎn)向NOKEY2</p><p> LCALL DELAY10MS ;延時,去抖動</p><p> MOV A,P1 ;再確認一次</p><p> ANL A,#0FH </p><p> XRL A,#0FH &
34、lt;/p><p> JZ NOKEY2 ;A為0,轉(zhuǎn)向NOKEY2</p><p> MOV A,P1 ;判哪一個鍵按下</p><p> ANL A,#0FH </p><p> CJNE A,#0EH,NEXT
35、9 </p><p> MOV KEY,#8 </p><p><b> SJMP OK </b></p><p> NEXT9:CJNE A,#0DH,NEXT10 </p><p> MOV KEY,#9 </p><p><b> SJMP OK </b>&l
36、t;/p><p> NEXT10:CJNE A,#0BH,NEXT11 </p><p> MOV KEY,#10 </p><p><b> SJMP OK </b></p><p> NEXT11:CJNE A,#07,NOKEY2 </p><p> MOV KEY,#11 </
37、p><p><b> SJMP OK </b></p><p> NOKEY2:MOV P1,#0FFH ;判第2行是否有鍵按下</p><p> CLR P1.7 ;將P1.6清零</p><p> MOV A,#P1
38、</p><p> ANL A,#0FH ;屏蔽高4位</p><p> XRL A,#0FH </p><p> JZ NEXT16 ;A為0,轉(zhuǎn)向NEXT16</p><p> LCALL DELAY10MS
39、 ;延時,去抖動</p><p> MOV A,P1 ;再確認一次</p><p> ANL A,#0FH </p><p> XRL A,#0FH </p><p> JZ NEXT16
40、 ;A為0,轉(zhuǎn)向NEXT16</p><p> MOV A,P1 ;判哪一個鍵按下</p><p> ANL A,#0FH </p><p> CJNE A,#0EH,NEXT13 </p><p> MOV KEY,#12 </p><p>
41、;<b> SJMP OK </b></p><p> NEXT13:CJNE A,#0DH,NEXT14 </p><p> MOV KEY,#13 </p><p><b> SJMP OK </b></p><p> NEXT14:CJNE A,#0BH,NEXT15 </p&
42、gt;<p> MOV KEY,#14 </p><p><b> SJMP OK </b></p><p> NEXT15:CJNE A,#07H,NEXT16 </p><p> MOV KEY,#15 </p><p><b> SJMP OK </b></p&g
43、t;<p> NEXT16:LJMP JIXU </p><p> OK:MOV A,KEY ;查表顯示</p><p> MOV DPTR,#TABLE </p><p> MOVC A,@A+DPTR </p><p><b> MOV P0,A
44、 </b></p><p> LJMP JIXU </p><p> DELAY10MS:MOV R6,#10 ;延時</p><p> D1:MOV R7,#248 </p><p> DJNZ R7,$ </p><p> DJNZ R6,D1 &l
45、t;/p><p><b> RET </b></p><p> TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H </p><p> DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H </p><p><b> END</b></p&g
46、t;<p> 2.5 4×4矩陣式鍵盤軟件仿真調(diào)試分析</p><p> 在proteus中設(shè)計好實驗電路后,然后在proteus編程環(huán)境中進行程序設(shè)計和編譯,生成HEX文件并加載HEX文件,點啟動,運行仿真[6]。由于開始時P0口的值被賦為00H,P1口的值為FFH,當(dāng)無鍵按下時,將P1.4口置0,再將P1口的值送A,屏蔽高4位,與0F相異或后,A的值變?yōu)?,即第0行沒有鍵按下,轉(zhuǎn)入
47、NOKEY0子程序中,重新賦值P1口的值為FFH,將P1.5口置0后送A,屏蔽高4位,與0F相異或后,A的值又變?yōu)?,即第1行沒有鍵按下[7],轉(zhuǎn)入NOKEY1子程序中,同理,可以得知第2行和第3行也沒有鍵按下。因而,P0口沒有被重新賦值,保持為00H不變,又顯示器是共陰極的,此時P0.0-P1.6口均為“0”,即“a-g”段均不顯示,從而顯示器不顯示,并轉(zhuǎn)向程序的開始繼續(xù)循環(huán)掃描鍵盤,直到有鍵按下為止。</p><
48、p><b> 3 結(jié)論</b></p><p> 回顧起此次課程設(shè)計,感覺受益匪淺,從拿到題目到完成整個編程,從理論到實踐,學(xué)到很多很多的課堂理論中沒學(xué)到過的東西,不僅對鍵盤的識別技術(shù)這一章節(jié)的知識點有了深刻的認識,而且對這學(xué)期開設(shè)的單片機這門課程有了更全面的了解。通過這次單片機課程設(shè)計,還使我懂得了實踐的重要性。同時在程序調(diào)試的過程中提高自己的發(fā)現(xiàn)問題、解決問題、實際動手和獨立思
49、考的能力。</p><p><b> 4致謝</b></p><p> 本論文是在cc老師的悉心指導(dǎo)下完成的。老師淵博的專業(yè)知識,嚴謹?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴以律己、寬以待人的崇高風(fēng)范,樸實無華、平易近人的人格魅力對我影響深遠。不僅使我樹立了遠大的學(xué)術(shù)目標、掌握了基本的研究方法。本論文從選題到完成。在此,謹向老師表示崇高的敬意和衷心的
50、感謝!還要感謝同學(xué)們對我的關(guān)心、支持和幫助。最后,感謝我遠在百里之外的父母,是他們默默的關(guān)心和愛,讓我在大學(xué)安逸地學(xué)習(xí)。在今后的生活中,我會盡我最大的努力回報所有關(guān)心我的人。</p><p><b> 5 參考文獻</b></p><p> [1] 宋浩 《單片機原理及應(yīng)用》 2005</p><p> [2] 李光弟 《單片機基礎(chǔ)》(修
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計報告(4×4矩陣鍵盤)
- 單片機課程設(shè)計--4×4led點陣彩燈控制器
- 九.4&ampamp;amp;amp#215;4矩陣式鍵盤識別技術(shù)
- 單片機課程設(shè)計--矩陣鍵盤 led顯示
- 單片機led彩燈循環(huán)控制畢業(yè)論文
- 課程設(shè)計-制作單片機的4x4矩陣鍵盤
- 單片機控制的矩陣鍵盤程序集
- 《單片機原理》課程設(shè)計4x4矩陣鍵盤設(shè)計
- 機電單片機課程設(shè)計 4乘4矩陣鍵盤 匯編語言
- 基于at89s52單片機的44矩陣鍵盤設(shè)計畢業(yè)論文
- 畢業(yè)設(shè)計---基于8279的4×4鍵盤8位數(shù)碼顯示器
- 電子專業(yè)畢業(yè)論文--led流水燈單片機的設(shè)計
- 電子信息工程系畢業(yè)論文
- 基于單片機控制電子琴畢業(yè)論文
- 基于單片機控制電子琴畢業(yè)論文
- 電子系畢業(yè)論文--單片機病房呼叫系統(tǒng)設(shè)計
- 基于單片機led電子顯示屏的設(shè)計【畢業(yè)論文】
- 單片機畢業(yè)論文--基于單片機的led顯示屏設(shè)計
- 單片機課程設(shè)計--單片機44矩陣式鍵盤
- 畢業(yè)論文—led流水燈單片機的設(shè)計
評論
0/150
提交評論