4X4掃描式矩陣鍵盤課程設計_第1頁
4X4掃描式矩陣鍵盤課程設計_第2頁
4X4掃描式矩陣鍵盤課程設計_第3頁
4X4掃描式矩陣鍵盤課程設計_第4頁
4X4掃描式矩陣鍵盤課程設計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

電子與信息與工程學院課程設計電子與信息與工程學院課程設計---第一章:系統(tǒng)功能要求 4*4矩陣式鍵盤系統(tǒng)概述 本設計任務和主要內(nèi)容 第二章:方案論證 第三章:系統(tǒng)硬件電路的設計 單片機控制系統(tǒng)原理 原理圖繪制說明 畫出流程圖 原理圖繪制 第四章:系統(tǒng)程序的設計 程序的編寫步驟 編寫的源程序 第五章:調(diào)試及性能分析 第六章:心得體會 參考文獻 第一章:系統(tǒng)功能要求4*4矩陣式鍵盤系統(tǒng)概述AT89C51單片機對4*4矩陣鍵盤進行動態(tài)掃描,當有按鍵盤的鍵時,可將相應按鍵值(0~F)實時顯示在數(shù)碼管上。由p1.0—p1.3(歹弱和p1.4—p1.7(行)組成4*4矩陣鍵盤,p0口接LEDB態(tài)顯示電路。由于p0口內(nèi)部無上拉電阻,因此必須外部接上上拉電阻,其值的選擇可以根據(jù)LEDR碼管發(fā)光電流及其亮度來決定。通過編寫4*4鍵盤的驅(qū)動程序,當有鍵盤按下時,能夠在數(shù)碼管顯示器與按鍵的鍵值對應的數(shù)字。最常見鍵盤布局如下圖1.1所示。一般由16個按鍵組成,在單片機中正好可以用一個p口實現(xiàn)16個按鍵功能,這也是單片機系統(tǒng)中最常見的形式,本設計就采用這個鍵盤模式33?HF2-A--E一1二59D一。二48c一圖1.1本設計任務和主要內(nèi)容本論文主要研究單片機控制的鍵盤識別顯示系統(tǒng),分別對按鍵信息和顯示電路以及軟、硬件各個部分進行研究。主要內(nèi)容如下:根據(jù)矩陣式鍵盤的特點,進行鍵盤控制系統(tǒng)的整體研究與設計;熟練掌握protues軟件的使用,并能夠按要求對設計的電路進行仿真,實現(xiàn)相應的功能;LED實時顯示按鍵的信息;采用軟件編程的方法實現(xiàn)按鍵信息的提取和顯示。第二章:方案論證用proteus仿真軟件進行仿真按照設計任務在proteus7professional 中繪制電路原理圖。根據(jù)設計任務的要求編寫程序,畫出程序流程圖,并在proteus下進行仿真,實現(xiàn)相應功能。以AT89C51為核心,設計系統(tǒng)硬件電路,并根據(jù)所設計的電路制作實物。第三章:系統(tǒng)硬件電路的設計原理圖繪制說明用AT89C51單片機對4*4矩陣鍵盤進行動態(tài)掃描,當按鍵盤的鍵時,可以將相應的按鍵值(0~F)實時顯示在數(shù)碼管上。4*4矩陣鍵盤是用4條I/O線作為行線,4條I/O線作為列線,在行線和列線的交叉點上設置一個按鍵,每個按鍵有它的行值和列值。在“單片機系統(tǒng)”區(qū)域中,把單片機的P1.0—P1.7端口通過8聯(lián)撥動撥碼開關(guān)連接到“4X4行列式鍵盤”區(qū)域的相應端口上。在“單片機系統(tǒng)”區(qū)域中,把單片機的P0.0-P0.7端口連接到“靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任何一個a—g端口上;要求:P0.0對應著a,P0.1對應著b,,P0.6對應著go畫出流程圖流程開始先對第一列進行掃描,如果沒有按鍵,再對第二列、第三列、第四列分別進行掃描,如果沒有返回到開始;如果第一列有按鍵,分別對第一行、第二行、第三行、第四行進行掃描,若有按鍵按下分別顯示0、1、2、3;第二列、第三列、第四列類似第一列,分別對第一行、第二行、第三行、第四行進行掃描,有按鍵相應的顯示出數(shù)值。判斷有無按鍵按下的方法是:第一步,置列線P1.4—P1.7為輸入狀態(tài),從行線P1.0—P1.3輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P1.4-P1.7讀入數(shù)據(jù),若有某一列為低電平,則對應行線上有按鍵按下。綜合一二兩步的結(jié)果,可以確定按鍵的編號。但是鍵閉合一次只能進行一次鍵功能操作,因此必須等到按鍵釋放后,再進行鍵功能操作,否則按鍵一次,有可能會連續(xù)多次進行同樣的操作。

流程圖如下:圖3.1原理圖繪制打開protrus仿真軟件,進入主界面,然后新建一個圖紙文件,軟件默認為A4紙張,符合我們的要求,所以不需要修改。開始繪圖,點擊按鈕P,彈出選擇添加的器件框圖,在Keywords里直接輸入所需器件的名稱或者在Category的下面各個選項里一次查找所需的器件名稱,然后點擊ok將所需器件添加進去。

依次添加AT89C5TE片,共陽極的7段數(shù)碼管,16個按鍵,8個電阻R0~R7一個晶片,3個電容,地及電源。按照設計的要求正確的連接電路,連接時注意管腳的分配及 AT89C51的工作原理。對連接好的電路圖進行仿真,如果有錯誤要先按下暫停,然后對電路進一步的調(diào)整與修改,再進行仿真,保存原理圖文件。用protrus仿真軟件所畫的仿真圖如下:圖3.2仿真原理圖第四章:系統(tǒng)程序的設計程序的編寫步驟判斷是否有鍵按下;識別被按下的鍵;查數(shù)碼顯示編碼表;編寫的源程序#include<reg51.h>#defineucharunsignedchar// 數(shù)據(jù)類型的宏定義#defineuintunsignedint//數(shù)據(jù)類型的宏定義sbitP07=P2A1;Unsigned;chartcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};//共陽數(shù)碼管顯示字型碼數(shù)組 10111111"-"voiddelay1ms(uinti){ucharj;while(i--){for(j=0;j<115;j++) //1ms基準延時程序{;}}}voiddisplay(unsignedchari){P07=1; //選通最有端的數(shù)碼管顯示P0=~table[i];//顯示i參數(shù)傳來的字型碼}voidmain(void){unsignedchartemp;display(16);〃 初始顯示"-"while(1){//P1=0xff;〃先向P1口寫1;端口讀狀態(tài)P1=0xf0;temp=P1;if(temp!=0xf0){delay1ms(15);if(temp!=0xf0){P1=0xfe;temp=P1;switch(temp){case(0xee):display(0);break;case(0xde):display(4);break;case(0xbe):display(8);break;case(0x7e):display(12);break;}P1=0xfd;temp=P1;switch(temp){case(0xed):display(1);break;case(0xdd):display(5);break;case(0xbd):display(9);break;case(0x7d):display(13);break;P1=0xfb;temp=P1;switch(temp){case(0xeb):display(2);break;case(0xdb):display(6);break;case(0xbb):display(10);break;case(0x7b):display(14);break;}P1=0x億temp=P1;switch(temp){case(0xe7):display(3);break;case(0xd7):display⑺;break;case(0xb7):display(11);break;case(0x77):display(15);break;}}}}}一工:亡ZEI—LiriW*l.-卜?一工:亡ZEI—LiriW*l.-卜?iUkt,I--TE-rr*EiLA第五章:調(diào)試及性能分析仿真結(jié)果:將此程序在匯編器中生成的“.hex”文件,導入AT89C5TE片中,用鼠標右鍵點擊AT89C51然后點鼠標左鍵,彈出編輯元件的框圖,在programfile里添加.hex文件,再點OK點擊“開始”按鍵,進行仿真,點擊右邊4*4按鍵,則數(shù)碼管顯示0~F,仿真結(jié)果符合實驗要求,仿真結(jié)果如下圖所示:RHETliQrafai■H丁?I:ra<'Ai-國1,…BanP2WLP7WFW.U2MjieijiPlXAifl4口阿SJF-rasn,FJ.iFU圖5.1仿真結(jié)果顯示圖(圖中顯示4)系統(tǒng)實現(xiàn)的功能基本功能:通過鍵盤輸入,在數(shù)碼管上顯示相應的數(shù)值;功能優(yōu)勢:鍵盤輸入,單片機控制,數(shù)碼管顯示,在數(shù)碼管連接方面克服了共陽極數(shù)碼管顯示不清晰的困難。第六章:心得體會課程設計誠然是一門專業(yè)課,給我很多專業(yè)知識以及專業(yè)技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設計讓我感觸很深。使我對抽象的理論有了具體的認識。通過本次電子線路設計,我不僅加深了對單片機理論知識的理解,學會了學以致用的重要性;而且還學會了如何去加強鍛煉創(chuàng)新精神,同時也提高了自身的動手能力,讓我深刻的意識到理論與實際結(jié)合的重要性。電子線路的學習對于我們專業(yè)來說非常的重要,通過本次設計也讓我更加清晰了對專業(yè)的了解,理論知識再豐富,沒有實際的操作經(jīng)驗也是不行的;本次設計也運用到了proteus仿真軟件,由于之前沒有學過該仿真軟件,所以在操作的過程中遇到了很多困難,但慶幸的是通過不斷的學習,對proteus軟件也有了很大的了解,也學會了一些簡單的操作,所以也讓我意識到,如果你想學好,通過自己的努力就一定會學好?;仡櫰鸫苏n程設計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說

溫馨提示

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

最新文檔

評論

0/150

提交評論