2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論