版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機原理及系統(tǒng)課程設計</p><p> 專 業(yè): 自動控制 </p><p> 班 級: 自控1001班 </p><p> 姓 名: </p><p> 學 號: </p>
2、<p> 指導教師: </p><p> 2013 年 3 月 7 日</p><p><b> 摘 要</b></p><p> 矩陣鍵盤掃描裝置是大量需要鍵盤輸入裝置的單片機系統(tǒng)的一個代表性模塊,在花樣繁多的單片機系統(tǒng)中始終是不可或缺的的一部分。最為簡單的行掃描輸入法仍然有很大的研究意
3、義,在不需要過于復雜的微處理模塊中,它會是一個極為重要的人機交流方式。</p><p> 本文以4×4矩陣鍵盤輸入裝置為例,運用所學知識,建立了一個可靠的簡易輸入裝置,旨在通過設計簡明的表述鍵盤輸入裝置及行掃描法的原理,并很好的掌握,最終有所收獲。</p><p> 實踐表明,簡易4×4矩陣鍵盤輸入裝置由于資源利用不合理,信息處理算法效率較低,還需要大量的學習并對其
4、改進。</p><p> 關鍵詞:單片機;矩陣鍵盤;4×4鍵盤;簡易;行掃描法</p><p><b> Abstract</b></p><p> Matrix keyboard scanning device is a module represents the SCM systems need a lot of keybo
5、ard input device, in a variety of single-chip microcomputer system is always an essential part of the. The line scan input method simple still has great significance, without the need for complicated micro processing mod
6、ule, it is a very important way of man-machine communication.</p><p> Based on the 4 * 4 matrix keyboard input device as an example, the use of the knowledge, a simple input device reliability is establishe
7、d, through the principle of design concise representation of keyboard input device and line scanning method, and a good grasp of, the final harvest.</p><p> Practice shows that, the simple 4 * 4 matrix keyb
8、oard input device due to irrational use of resources, information processing algorithm efficiency is low, still need a lot of learning and its improvement.</p><p> Key words: SCM,Matrix keyboard,4 * 4 keybo
9、ard,Simple,Line Scanning Method</p><p> 基于單片機的4×4矩陣鍵盤輸入</p><p><b> 1引言</b></p><p> 本設計提出了用AT89C51單片機為核心控制元件,設計一個簡易的4×4矩陣鍵盤輸入裝置,本方案以AT89C51單片機作為主控核心,與晶振、數(shù)碼管、
10、自復式按鈕等構成,利用了單片機的輸入輸出端口,充分發(fā)揮行掃描法的特點,通過數(shù)碼管顯示確認按鈕的有效性。系統(tǒng)實用性強、判斷精確、操作簡單,同時利用C語言編程,模塊化函數(shù)使其具有一定意義上的擴展能力,可填充性與可移植性良好。</p><p><b> 2設計方案及原理</b></p><p> 2.1矩陣鍵盤設計方案</p><p> ?。?)
11、4×4矩陣鍵盤輸入裝置共有16個按鍵,分別對應0~f十六個數(shù)字。</p><p> ?。?)設置一個數(shù)碼顯示管,對應顯示不同按鍵按下時所對應的數(shù)字并持續(xù)顯示。</p><p> 2.2矩陣鍵盤設計原理</p><p> 矩陣鍵盤設計原理如圖1所示:</p><p> 圖1 4×4矩陣鍵盤輸入裝置原理圖</p&
12、gt;<p> 電路通過晶振電路為單片機提供時鐘,從鍵盤輸入電路中讀取按鍵編碼,并通過查表后,通過數(shù)碼管顯示電路在數(shù)碼管上顯示相應的數(shù)字,從而完成設計任務。其可以擴展性在于可以通過修改查表指令,以及輸出編碼實現(xiàn)向不同子程序的轉(zhuǎn)移,從而實現(xiàn)按鍵后執(zhí)行相應功能的目的。</p><p><b> 3硬件設計</b></p><p><b> 3
13、.1元器件選擇</b></p><p> 為實現(xiàn)電路,選擇89C51芯片,數(shù)碼管,自復式按鈕,電容以及晶振等元器件。</p><p> 數(shù)碼管選用2位7段數(shù)碼管,其中A,B,C,D,E,F,G分別控制七段數(shù)碼管,DP控制小數(shù)點。</p><p> 3.2系統(tǒng)原理電路圖</p><p> 基于各個模塊的設計,可以設計出系統(tǒng)原
14、理電路圖,P1為按鍵掃描口,P0為數(shù)碼管顯示輸出口,P2.0~P2.1為數(shù)碼管顯示選擇口, XTAL1和XTAL2接晶振電路。</p><p> 系統(tǒng)原理電路圖如圖2所示:</p><p> 圖2 系統(tǒng)原理電路圖</p><p><b> 4軟件設計</b></p><p><b> 4.1軟件設計方案
15、</b></p><p> 為了能夠達到按鍵的輸入與顯示互不干擾,再掃描鍵盤的同時,不間斷數(shù)碼管顯示,因而在編寫程序時先編寫定時中斷程序,使用定時器T0在工作方式2(即自動重裝定時器),每過250微秒中斷主程序,并通過P0口線對數(shù)碼管進行輸出,使數(shù)碼管顯示。主程序循環(huán)時,不斷對鍵盤進行掃描,以確定是否有按鍵按下。若掃描發(fā)現(xiàn)有按鍵按下,修改相應顯示編碼,并通過P0口在數(shù)碼管上進行相應顯示,然后繼續(xù)掃描
16、。掃描過程為行掃描法,通過P1.4~P1.7依次輸出一個低電平,掃描 P1.0~P1.3輸入信息,若掃描到低電平,即在掃描時有低電平輸入的行,和輸出低電平的列的按鍵被按下。通過編碼查表,在P0口通過高低電平輸出得到相應數(shù)字。</p><p><b> 4.2程序流程圖</b></p><p> 程序流程圖見正文3、4頁(圖3、圖4、圖5、圖6)。</p>
17、;<p><b> 4.3主程序</b></p><p><b> 程序見附錄。</b></p><p> 圖3 按鍵讀入函數(shù) 圖4 按鍵掃描函數(shù)</p><p> 圖5程序主函數(shù) 圖6 中斷及顯示函數(shù)</p><
18、p><b> 5系統(tǒng)仿真</b></p><p><b> 5.1仿真結果</b></p><p> 仿真結果如圖7所示:</p><p> 圖7 系統(tǒng)仿真結果圖(按下按鍵為第二行第三列)</p><p><b> 5.2總結</b></p>&l
19、t;p> 在本次設計之初,我認為對于單片機的理論學習已經(jīng)足夠,已經(jīng)掌握了大部分常用知識,對于所使用的單片機原理也有了很好的掌握,設計只是對于所學內(nèi)容的使用。但是,通過本次設計,我明顯的認識到,理論學習僅僅只是皮毛,我所掌握的也只是單片機知識體系中極為有限的一部分,如果想要做出一份好的設計,還需要經(jīng)過大量的學習與實踐。</p><p> 在設計過程中,由于經(jīng)驗不足,定下設計題目之后就開始著手程序和仿真電路
20、圖,由于理論知識不足,導致多次返工,大量實踐后又重新回顧了單片機的理論知識,最終得以完成。期間,自身對于C語言的扎實基礎讓我省出了大量精力可以專注于設計仿真電路圖。但是也暴露了我對單片機知識的欠缺,以及由于缺乏實踐而引起的學無所用。</p><p> 最后,在老師的幫助下,我圓滿完成了本次設計,雖然我分析問題、提出問題、解決問題的能力得到了很好的鍛煉,受益匪淺,但是還存在各種各樣的缺陷與不足,需要在日后的學習實
21、踐中加以改進。</p><p><b> 6 參考文獻</b></p><p> [1] 王思明,茍軍年.單片機原理及應用系統(tǒng)設計[M].科學出版社,2012:150-169.</p><p> [2] 譚浩強.C程序設計(第四版) [M].清華大學出版社,2010:36-60.</p><p> [3] 顧栤.
22、單片機計算機原理開發(fā)應用[M].高等教育出版社,2010:3-7</p><p><b> 7附錄:</b></p><p> #include <reg51.h> //51單片機頭文件</p><p> #include <intrins.h> //函數(shù)聲明</p>&l
23、t;p> #define uint unsigned int //定義類型名</p><p> #define uchar unsigned char</p><p> uchar key,table[17] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,0x88,0x83,0xc6,0x
24、a1,0x86,0x8e,0xff}; //定義顯示代碼</p><p> void Display(uchar k)//定義顯示函數(shù)</p><p><b> {</b></p><p> P2 = 0x02;//從P2選擇輸出位置</p><p> P0 = table[k];
25、//查表并從P0口輸出顯示代碼</p><p><b> }</b></p><p> uchar Keyscan(void) //定義按鍵掃描函數(shù)</p><p><b> { </b></p><p> uchar i, j, temp, Buffer[4] =
26、 {0xef, 0xdf, 0xbf, 0x7f}; //定義掃描輸出值</p><p> for(j = 0; j < 4; j++)//循環(huán)輸出掃描值</p><p><b> { </b></p><p> P1 = Buffer[j];</p><p> temp = 0x01;<
27、;/p><p> for(i = 0; i < 4; i++) //循環(huán)掃描P1.0~P1.3口并讀入</p><p><b> { </b></p><p> if(!(P1 & temp))//取一位并判斷有無低電平</p><p> return (i + j * 4);
28、//若有低電平讀入,返回相應按鍵序號</p><p> temp <<= 1;//變量左移準備判斷下一位</p><p><b> } </b></p><p><b> }</b></p><p> return 16; /
29、/沒有按鍵輸入,返回無顯示</p><p><b> } </b></p><p> uchar GetKey() //定義按鍵讀取函數(shù)</p><p><b> { </b></p><p> uchar Key1, Key2;</p><p>
30、; P1 = 0xff; //初始化P1口</p><p> Key1 = Keyscan(); //讀取按鍵掃描結果</p><p> if(Key1==16)//判斷按鍵序號</p><p> return key; //無按鍵按下,結束本函數(shù)</p><p>
31、 Key2 = Keyscan(); //防抖</p><p> if(Key1!= Key2)</p><p> return key; </p><p> while(Keyscan() < 16) //等待按鍵釋放</p><p> return Key1;</p><
32、p><b> }</b></p><p> void t0(void) interrupt 1//中斷并顯示函數(shù)</p><p><b> { </b></p><p> Display(key); //調(diào)用顯示函數(shù)</p><p><b&
33、gt; } </b></p><p> void Main(void) //主函數(shù)</p><p><b> { </b></p><p> P0=0xff;//初始化P0口</p><p> TMOD=0x02; //T0工作方式2</p>
34、;<p> TH0=0x06; //設置初值,每250us中斷一次</p><p><b> TL0=0x06;</b></p><p> TR0=1;//打開T0 </p><p> ET0=1;//允許定時器T0中斷</p><p> EA=
35、1; //打開總中斷</p><p> while(1) //循環(huán)等待中斷</p><p><b> {</b></p><p> key=GetKey();//不斷掃描鍵盤</p><p><b> } </b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子工程系畢業(yè)論文--單片機4×4矩陣鍵盤控制led
- 單片機課程設計--4×4led點陣彩燈控制器
- 《單片機原理》課程設計4x4矩陣鍵盤設計
- 課程設計-制作單片機的4x4矩陣鍵盤
- 機電單片機課程設計 4乘4矩陣鍵盤 匯編語言
- 九.4&ampamp;amp;amp#215;4矩陣式鍵盤識別技術
- 單片機課程設計--單片機44矩陣式鍵盤
- 單片機課程設計--矩陣鍵盤 led顯示
- 單片機4x4鍵盤計算器課程設計
- 單片機課程設計報告-仿手機鍵盤
- 課程設計4乘4矩陣鍵盤設計
- 單片機課程設計---鍵盤接口課程設計
- 單片機鍵盤輸入課程設計
- 單片機課程設計報告計算器4
- 單片機手機鍵盤-單片機原理及應用課程設計
- 單片機課程設計---16×16 led廣告屏
- 單片機課程設計報告
- 《單片機課程設計》報告
- 單片機課程設計報告
- 單片機課程設計報告
評論
0/150
提交評論