版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 學 年 設 計 報 告</p><p> 設計題目 4*4矩陣鍵盤設計 </p><p> 所學專業(yè) 網絡工程 </p><p> 指導教師 </p><p> 2012
2、年 8 月 30 日</p><p><b> 學年設計任務書</b></p><p><b> 目錄</b></p><p><b> 摘要4</b></p><p><b> 1 緒論5</b></p><p>&l
3、t;b> 1.1研究背景5</b></p><p><b> 1.2主要工作5</b></p><p><b> 1.3本文結構5</b></p><p><b> 2 總體設計5</b></p><p> 2.1 需求分析5</p&
4、gt;<p> 2.2系統總體設計5</p><p> 2.3 主要設計軟件介紹6</p><p> 2.3.1 PROTEUS軟件簡介6</p><p> 2.3.2 KEIL簡介6</p><p> 3 硬件電路設計6</p><p> 3.1 芯片選型7</p>
5、<p> 3.2 時鐘和復位電路7</p><p> 3.3 矩陣式鍵盤電路8</p><p> 3.4 顯示電路8</p><p> 3..5 蜂鳴器電路9</p><p><b> 3.6 總電路9</b></p><p> 4 系統軟件設計9</p&
6、gt;<p> 4.1軟件流程圖9</p><p> 4.2 程序代碼10</p><p> 5 系統測試與數據分析12</p><p><b> 6 結束語14</b></p><p><b> 致謝15</b></p><p><b
7、> 參考文獻15</b></p><p><b> 4*4矩陣鍵盤設計</b></p><p> 摘要:隨著21世紀的到來,電子信息行業(yè)將是人類社會的高科技行業(yè)之一,式設施現代化的基礎,也是人類通往科技巔峰的直通路。電子行業(yè)的發(fā)展從長遠來看很重要,但最主要的還是科技問題。</p><p> 矩陣式鍵盤提高效率進行按鍵
8、操作管理有效方法,它可以提高系統準確性,有利于資源的節(jié)約,降低對操作者本身素質的要求。是它能準時、實時、高效地顯示按鍵信息,以提高工作效率和資源利用率。</p><p> 矩陣式鍵盤乃是當今使用最為廣泛的鍵盤模式,該系統以N個端口連接控制N*N個按鍵,顯示在LED數碼管上。單片機控制依據這是鍵盤顯示系統,該系統可以對不同的按鍵進行實時顯示,其核心是單片機和鍵盤矩陣電路部分,主要對按鍵與顯示電路的關系、矩陣式技術
9、及設備系統的硬件、軟件等各個部分進行實現。</p><p> 4*4矩陣式鍵盤采用AT89C51單片機為核心,主要由矩陣式鍵盤電路、譯碼電路、顯示電路等組成,軟件選用C語言編程。單片機將檢測到的按鍵信號轉換成數字量,顯示于LED顯示器上。該系統靈活性強,易于操作,可靠性高,將會有更廣闊的開發(fā)前景。</p><p> 關鍵詞:AT89C51;單片機;蜂鳴器;顯示電路;矩陣鍵盤;</
10、p><p><b> 1 緒論</b></p><p><b> 1.1研究背景</b></p><p> 隨著21世紀的到來,以前的單個端口連接的按鍵已經不能滿足人們在大型或公共場合的需求。電子信息行業(yè)將是人類社會的高科技行業(yè)之一,4*4矩陣鍵盤設計是當今社會中使用的最廣的技術之一。鑒于此,研究人員通過不斷地實驗與研究
11、開發(fā),最終研發(fā)出采用矩陣鍵盤設計的N個端口連接N*N個按鍵,來滿足人們的需求,對于這,我們本次的實驗在于設計驗證4*4矩陣鍵盤的功能。</p><p><b> 1.2主要工作</b></p><p> 本論文主要研究單片機控制的鍵盤識別顯示系統,分別對按鍵信息和顯示電路以及軟、硬件各個部分進行研究。按下任意鍵時,數碼管都會顯示其鍵的序號,掃描程序首先判斷按鍵發(fā)生
12、在哪一列,然后根據所發(fā)生的行附加不同的值,從而得到按鍵的序號。</p><p><b> 1.3本文結構</b></p><p> ?、?根據矩陣式鍵盤的特點,進行鍵盤控制系統的整體研究與設計;</p><p> ② 熟練掌握protues軟件的使用,并能夠按要求對設計的電路進行仿真,實現相應的功能;</p><p>
13、; ?、?LED實時顯示按鍵的信息;</p><p> ?、懿捎密浖幊痰姆椒▽崿F按鍵信息的提取和顯示</p><p><b> 2 總體設計</b></p><p><b> 2.1 需求分析</b></p><p> 矩陣鍵盤是提高效率進行按鍵操作管理的有效工具,它可以提高系統準確性,有利
14、于資源的節(jié)約,降低對操作者本身素質的要求。它能準確、實時、高效地顯示按鍵信息,以提高工作效率和資源利用率。</p><p><b> 2.2系統總體設計</b></p><p> 圖 2.2系統組成框</p><p> 2.3 主要設計軟件介紹</p><p> 本設計利用KEIL編程軟件對音樂盒源程序進行編程并
15、調試,配合PROTEUS仿真軟件對硬件進行仿真調試,兩種軟件的簡介如下。</p><p> 2.3.1 PROTEUS軟件簡介</p><p> Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工
16、具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC
17、33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 </p><p> 2.3.2 KEIL簡介</p><p> 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機
18、器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方
19、案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用</p
20、><p><b> 3 硬件電路設計</b></p><p><b> 3.1芯片選型</b></p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,
21、俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。</p><p> 圖2-1 單片機AT89C51 引腳圖</p><p> 3.2 時鐘和復位電路</p>&
22、lt;p> AT89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構成并聯振蕩電路。對外接電容C1,C2雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電
23、容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產品技術條件的要求。</p><p> 圖3.2 時鐘和復位
24、電路示意圖</p><p> 3.3 矩陣式鍵盤電路</p><p> 矩陣鍵盤又稱為行列式鍵盤,它用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤。在行線和列線的每一個交叉點上設置一個按鍵。這樣鍵盤中按鍵個數是4×4個。這種行列式鍵盤結構有效提高單片機系統中I/O的利用率。如下圖所示:</p><p> 圖3.3 矩陣式鍵盤電路示意圖<
25、/p><p><b> 3.4 顯示電路</b></p><p> 本設計用單片機的P0口來控制LED顯示器的數字顯示。當按鍵有按下時,LED數碼管將對應顯示出該音符數字或字母。從而可以通過手動和眼來確定所按的哪個音符,應該發(fā)出哪個音符的聲音如圖3.4所示。</p><p> 圖3.4 顯示電路示意圖</p><p>
26、<b> 3.5 蜂鳴器電路</b></p><p> 播放模式其實就是喇叭,它連接到P3.0口上,當有按鍵按下時,就會發(fā)出聲音。如下圖所示:</p><p> 圖3.5蜂鳴器電路示意圖</p><p><b> 3.6 總電路</b></p><p> 圖3.6 總電路示意圖</p
27、><p><b> 4 系統軟件設計</b></p><p><b> 4.1軟件流程圖</b></p><p> 圖4.1軟件流程示意圖</p><p><b> 4.2 程序代碼</b></p><p> #include<reg51.h
28、></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p><b> //段碼</b></p><p> uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0
29、x92,0x82,0xf8,0x80,0x90,</p><p> 0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00};</p><p> sbit BEEP=P3^7;</p><p> //上次按鍵和當前按鍵的序號,該矩陣中序號范圍0~15,16 表示無按鍵</p><p> uchar Pre_KeyNo=1
30、6,KeyNo=16;</p><p><b> //延時</b></p><p> void DelayMS(uint x)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> whil
31、e(x--) for(i=0;i<120;i++);</p><p><b> }</b></p><p><b> //矩陣鍵盤掃描</b></p><p> void Keys_Scan()</p><p><b> {</b></p><
32、p> uchar Tmp;</p><p> P1=0x0f; //高4 位置0,放入4 行</p><p> DelayMS(1);</p><p> Tmp=P1^0x0f;//按鍵后0f 變成0000XXXX,X 中一個為0,3 個仍為1,通過異或把3 個1 變?yōu)?,唯一的0 變?yōu)?</p><p> switch(Tm
33、p) //判斷按鍵發(fā)生于0~3 列的哪一列</p><p><b> {</b></p><p> case 1: KeyNo=0;break;</p><p> case 2: KeyNo=1;break;</p><p> case 4: KeyNo=2;break;</p><p>
34、 case 8: KeyNo=3;break;</p><p> default:KeyNo=16; //無鍵按下</p><p><b> }</b></p><p> P1=0xf0; //低4 位置0,放入4 列</p><p> DelayMS(1);</p><p> Tmp
35、=P1>>4^0x0f;//按鍵后f0 變成XXXX0000,X 中有1 個為0,三個仍為1;高4 位轉移到低4 位并異或得到改變的值</p><p> switch(Tmp) //對0~3 行分別附加起始值0,4,8,12</p><p><b> {</b></p><p> case 1: KeyNo+=0;break;
36、</p><p> case 2: KeyNo+=4;break;</p><p> case 4: KeyNo+=8;break;</p><p> case 8: KeyNo+=12;</p><p><b> }</b></p><p><b> }</b>&
37、lt;/p><p><b> //蜂鳴器</b></p><p> void Beep()</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0;i<100;i++)<
38、;/p><p><b> {</b></p><p> DelayMS(1);</p><p> BEEP=~BEEP;</p><p><b> }</b></p><p><b> BEEP=0;</b></p><p>
39、;<b> }</b></p><p><b> //主程序</b></p><p> void main()</p><p><b> {</b></p><p><b> P0=0x00;</b></p><p>&l
40、t;b> BEEP=0;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> P1=0xf0;</b></p><p> if(P1!=0xf0) Keys_Scan(); //
41、獲取鍵序號</p><p> if(Pre_KeyNo!=KeyNo)</p><p><b> {</b></p><p> P0=~DSY_CODE[KeyNo];</p><p><b> Beep();</b></p><p> Pre_KeyNo=KeyN
42、o;</p><p><b> }</b></p><p> DelayMS(100);</p><p><b> }</b></p><p><b> }</b></p><p> 5 系統測試與數據分析</p><p&g
43、t; 依次按下開關,數碼顯示管會對應顯示出0~f共16個數字</p><p> 圖 5-1 初始界面</p><p> 圖 5-2部分結果顯示</p><p> 圖 5-3 部分結果顯示</p><p><b> 6 結束語</b></p><p> 經過一周左右時間的努力,我們小組終
44、于完成了本次的學年設計。一個星期的學年設計對于我們初學者來說并不簡單。因為我們對單片機這門課程學習的時間很少,這是一門理論與實踐相結合的課程,需要我們不斷的學習與實踐才能真正掌握這門課程。</p><p> 剛開始拿到選題,我們先是查找相關資料,從圖書館和網上找到相關的課題,參考借鑒別人的成果從而理清我們設計的思路。此次學年設計大致可以分為兩部分,電路圖部分和程序編程部分。其中電路圖又用到了Proteus仿真軟
45、件,由于之前沒有使用過該仿真軟件,所以在操作的過程中遇到了很多困難,但慶幸的是通過老師的講解和我們從網上找到的資料,對Proteus軟件有了很大的了解,同樣學會了一些簡單的操作。至于編程部分我們感到也是有很大的難度,首先就是編程的keil uvision2軟件的操作與使用,這與我們往常使用的C語言編程軟件不同,相比之下更難使用。更有難度的是程序的編寫與調試。在編寫程序的過程中,我們遇到了各種各樣的問題,這就需要我們冷靜的思考與集體的討論
46、。到后來我們還請教了其他的同學,也詢問過老師,最終一個合格的程序還是被我們編寫出來了。最后就需要我們將程序整合到51單片機中,在經過幾次調試后,最終的結果還是符合這次學年設計的具體要求的。</p><p> 經過這次的學年設計,我們小組成員收獲了很多。第一次將理論知識與實踐相結合。還有的就是關于團體合作的,沒有團隊每一位成員的努力,我們是不可能這么快就完成了這次學年設計的任務。</p><p
47、><b> 致謝</b></p><p> 感謝此次學年設計為我們指導的老師,從選題之初,她就一直在幫助著我們。教我們安裝使用軟件,提供給我們參考資料。在撰寫文檔時,是老師耐心的檢查出其中的錯誤,指正出來讓我們改正,使得我們按時完成了任務。</p><p> 最后,再次感謝老師以及幫助過我們的同學!</p><p><b>
48、; 參考文獻</b></p><p> [1] 何欽銘.顏暉.C語言程序設計[M].. 北京:高等教育出版社,2008.</p><p> [2] 李朝青.單片機原理及接口技術[D].北京:北京航空航天大學出版社,2006;1-277.</p><p> [3] 譚浩強.C語言程序設計(第二版)[M],北京:清華大學出版社,1991.</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機電單片機課程設計 4乘4矩陣鍵盤 匯編語言
- 課程設計---4x4矩陣鍵盤與led燈輸出設計
- 《單片機原理》課程設計4x4矩陣鍵盤設計
- 課程設計---4x4矩陣鍵盤與led燈輸出設計
- 課程設計---4x4矩陣鍵盤與LED燈輸出設計.doc
- 單片機課程設計報告(4×4矩陣鍵盤)
- 課程設計-制作單片機的4x4矩陣鍵盤
- eda課程設計--矩陣鍵盤接口設計
- 矩陣數乘 課程設計
- 矩陣數乘 課程設計
- 矩陣鍵盤eda技術課程設計
- 矩陣鍵盤eda技術課程設計
- 矩陣數乘 課程設計.doc
- 單片機課程設計--矩陣鍵盤 led顯示
- 單片機4x4鍵盤計算器課程設計
- 課程設計-- 4-4 矩陣的轉置與乘法計算
- 手機鍵盤課程設計
- 課程設計-- 4-4 矩陣的轉置與乘法計算.doc
- 單片機課程設計---鍵盤接口課程設計
- 鍵盤監(jiān)聽程序課程設計
評論
0/150
提交評論