版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)</p><p> 專 業(yè): 自動(dòng)控制 </p><p> 班 級(jí): 自控1001班 </p><p> 姓 名: </p><p> 學(xué) 號(hào): </p>
2、<p> 指導(dǎo)教師: </p><p> 2013 年 3 月 7 日</p><p><b> 摘 要</b></p><p> 矩陣鍵盤掃描裝置是大量需要鍵盤輸入裝置的單片機(jī)系統(tǒng)的一個(gè)代表性模塊,在花樣繁多的單片機(jī)系統(tǒng)中始終是不可或缺的的一部分。最為簡單的行掃描輸入法仍然有很大的研究意
3、義,在不需要過于復(fù)雜的微處理模塊中,它會(huì)是一個(gè)極為重要的人機(jī)交流方式。</p><p> 本文以4×4矩陣鍵盤輸入裝置為例,運(yùn)用所學(xué)知識(shí),建立了一個(gè)可靠的簡易輸入裝置,旨在通過設(shè)計(jì)簡明的表述鍵盤輸入裝置及行掃描法的原理,并很好的掌握,最終有所收獲。</p><p> 實(shí)踐表明,簡易4×4矩陣鍵盤輸入裝置由于資源利用不合理,信息處理算法效率較低,還需要大量的學(xué)習(xí)并對(duì)其
4、改進(jìn)。</p><p> 關(guān)鍵詞:單片機(jī);矩陣鍵盤;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> 基于單片機(jī)的4×4矩陣鍵盤輸入</p><p><b> 1引言</b></p><p> 本設(shè)計(jì)提出了用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)簡易的4×4矩陣鍵盤輸入裝置,本方案以AT89C51單片機(jī)作為主控核心,與晶振、數(shù)碼管、
10、自復(fù)式按鈕等構(gòu)成,利用了單片機(jī)的輸入輸出端口,充分發(fā)揮行掃描法的特點(diǎn),通過數(shù)碼管顯示確認(rèn)按鈕的有效性。系統(tǒng)實(shí)用性強(qiáng)、判斷精確、操作簡單,同時(shí)利用C語言編程,模塊化函數(shù)使其具有一定意義上的擴(kuò)展能力,可填充性與可移植性良好。</p><p><b> 2設(shè)計(jì)方案及原理</b></p><p> 2.1矩陣鍵盤設(shè)計(jì)方案</p><p> ?。?)
11、4×4矩陣鍵盤輸入裝置共有16個(gè)按鍵,分別對(duì)應(yīng)0~f十六個(gè)數(shù)字。</p><p> ?。?)設(shè)置一個(gè)數(shù)碼顯示管,對(duì)應(yīng)顯示不同按鍵按下時(shí)所對(duì)應(yīng)的數(shù)字并持續(xù)顯示。</p><p> 2.2矩陣鍵盤設(shè)計(jì)原理</p><p> 矩陣鍵盤設(shè)計(jì)原理如圖1所示:</p><p> 圖1 4×4矩陣鍵盤輸入裝置原理圖</p&
12、gt;<p> 電路通過晶振電路為單片機(jī)提供時(shí)鐘,從鍵盤輸入電路中讀取按鍵編碼,并通過查表后,通過數(shù)碼管顯示電路在數(shù)碼管上顯示相應(yīng)的數(shù)字,從而完成設(shè)計(jì)任務(wù)。其可以擴(kuò)展性在于可以通過修改查表指令,以及輸出編碼實(shí)現(xiàn)向不同子程序的轉(zhuǎn)移,從而實(shí)現(xiàn)按鍵后執(zhí)行相應(yīng)功能的目的。</p><p><b> 3硬件設(shè)計(jì)</b></p><p><b> 3
13、.1元器件選擇</b></p><p> 為實(shí)現(xiàn)電路,選擇89C51芯片,數(shù)碼管,自復(fù)式按鈕,電容以及晶振等元器件。</p><p> 數(shù)碼管選用2位7段數(shù)碼管,其中A,B,C,D,E,F,G分別控制七段數(shù)碼管,DP控制小數(shù)點(diǎn)。</p><p> 3.2系統(tǒng)原理電路圖</p><p> 基于各個(gè)模塊的設(shè)計(jì),可以設(shè)計(jì)出系統(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軟件設(shè)計(jì)</b></p><p><b> 4.1軟件設(shè)計(jì)方案
15、</b></p><p> 為了能夠達(dá)到按鍵的輸入與顯示互不干擾,再掃描鍵盤的同時(shí),不間斷數(shù)碼管顯示,因而在編寫程序時(shí)先編寫定時(shí)中斷程序,使用定時(shí)器T0在工作方式2(即自動(dòng)重裝定時(shí)器),每過250微秒中斷主程序,并通過P0口線對(duì)數(shù)碼管進(jìn)行輸出,使數(shù)碼管顯示。主程序循環(huán)時(shí),不斷對(duì)鍵盤進(jìn)行掃描,以確定是否有按鍵按下。若掃描發(fā)現(xiàn)有按鍵按下,修改相應(yīng)顯示編碼,并通過P0口在數(shù)碼管上進(jìn)行相應(yīng)顯示,然后繼續(xù)掃描
16、。掃描過程為行掃描法,通過P1.4~P1.7依次輸出一個(gè)低電平,掃描 P1.0~P1.3輸入信息,若掃描到低電平,即在掃描時(shí)有低電平輸入的行,和輸出低電平的列的按鍵被按下。通過編碼查表,在P0口通過高低電平輸出得到相應(yīng)數(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仿真結(jié)果</b></p><p> 仿真結(jié)果如圖7所示:</p><p> 圖7 系統(tǒng)仿真結(jié)果圖(按下按鍵為第二行第三列)</p><p><b> 5.2總結(jié)</b></p>&l
19、t;p> 在本次設(shè)計(jì)之初,我認(rèn)為對(duì)于單片機(jī)的理論學(xué)習(xí)已經(jīng)足夠,已經(jīng)掌握了大部分常用知識(shí),對(duì)于所使用的單片機(jī)原理也有了很好的掌握,設(shè)計(jì)只是對(duì)于所學(xué)內(nèi)容的使用。但是,通過本次設(shè)計(jì),我明顯的認(rèn)識(shí)到,理論學(xué)習(xí)僅僅只是皮毛,我所掌握的也只是單片機(jī)知識(shí)體系中極為有限的一部分,如果想要做出一份好的設(shè)計(jì),還需要經(jīng)過大量的學(xué)習(xí)與實(shí)踐。</p><p> 在設(shè)計(jì)過程中,由于經(jīng)驗(yàn)不足,定下設(shè)計(jì)題目之后就開始著手程序和仿真電路
20、圖,由于理論知識(shí)不足,導(dǎo)致多次返工,大量實(shí)踐后又重新回顧了單片機(jī)的理論知識(shí),最終得以完成。期間,自身對(duì)于C語言的扎實(shí)基礎(chǔ)讓我省出了大量精力可以專注于設(shè)計(jì)仿真電路圖。但是也暴露了我對(duì)單片機(jī)知識(shí)的欠缺,以及由于缺乏實(shí)踐而引起的學(xué)無所用。</p><p> 最后,在老師的幫助下,我圓滿完成了本次設(shè)計(jì),雖然我分析問題、提出問題、解決問題的能力得到了很好的鍛煉,受益匪淺,但是還存在各種各樣的缺陷與不足,需要在日后的學(xué)習(xí)實(shí)
21、踐中加以改進(jìn)。</p><p><b> 6 參考文獻(xiàn)</b></p><p> [1] 王思明,茍軍年.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)[M].科學(xué)出版社,2012:150-169.</p><p> [2] 譚浩強(qiáng).C程序設(shè)計(jì)(第四版) [M].清華大學(xué)出版社,2010:36-60.</p><p> [3] 顧栤.
22、單片機(jī)計(jì)算機(jī)原理開發(fā)應(yīng)用[M].高等教育出版社,2010:3-7</p><p><b> 7附錄:</b></p><p> #include <reg51.h> //51單片機(jī)頭文件</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、//若有低電平讀入,返回相應(yīng)按鍵序號(hào)</p><p> temp <<= 1;//變量左移準(zhǔn)備判斷下一位</p><p><b> } </b></p><p><b> }</b></p><p> return 16; /
29、/沒有按鍵輸入,返回?zé)o顯示</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(); //讀取按鍵掃描結(jié)果</p><p> if(Key1==16)//判斷按鍵序號(hào)</p><p> return key; //無按鍵按下,結(jié)束本函數(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; //設(shè)置初值,每250us中斷一次</p><p><b> TL0=0x06;</b></p><p> TR0=1;//打開T0 </p><p> ET0=1;//允許定時(shí)器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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子工程系畢業(yè)論文--單片機(jī)4×4矩陣鍵盤控制led
- 單片機(jī)課程設(shè)計(jì)--4×4led點(diǎn)陣彩燈控制器
- 《單片機(jī)原理》課程設(shè)計(jì)4x4矩陣鍵盤設(shè)計(jì)
- 課程設(shè)計(jì)-制作單片機(jī)的4x4矩陣鍵盤
- 機(jī)電單片機(jī)課程設(shè)計(jì) 4乘4矩陣鍵盤 匯編語言
- 九.4&ampamp;amp;amp#215;4矩陣式鍵盤識(shí)別技術(shù)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)44矩陣式鍵盤
- 單片機(jī)課程設(shè)計(jì)--矩陣鍵盤 led顯示
- 單片機(jī)4x4鍵盤計(jì)算器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-仿手機(jī)鍵盤
- 課程設(shè)計(jì)4乘4矩陣鍵盤設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---鍵盤接口課程設(shè)計(jì)
- 單片機(jī)鍵盤輸入課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告計(jì)算器4
- 單片機(jī)手機(jī)鍵盤-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---16×16 led廣告屏
- 單片機(jī)課程設(shè)計(jì)報(bào)告
- 《單片機(jī)課程設(shè)計(jì)》報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論