




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機矩陣鍵盤畢業設計摘要矩陣式鍵盤乃是目前使用較為廣泛的一種鍵盤模式,該系統以N個端口連接控制N*N個按鍵,即時在LED數碼管上。單片機控制的據這是鍵盤顯示系統,該系統可以對不同的按鍵進行實時顯示,其核心是單片機和鍵盤矩陣電路部分,主要對按鍵與顯示電路的關系、矩陣式技術及設備系統的硬件、軟件等各個部分進行實現。4*4矩陣式鍵盤采用89C51單片機為核心,主要由矩陣式鍵盤電路、譯碼電路、顯示電路等組成,軟件選用C語言編程,單片機將檢測到的按鍵信號 轉換成數字量,顯示于數碼管顯示器,系統靈活性強,易于操作,可靠性能好。單片機簡介及主系統電路單片機是一種集成電路芯片,是采用超大規模集成電路技術把具
2、有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換444器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域的廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的32位300M的高速單片機。單片機在工業控制領域廣泛應用,它由芯片內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中,本次課程設計我們采用的是AT89C51型號的
3、單片機。AT89C51單片機是51系列單片機的一個成員,是8051單片機的簡化版。內部自帶2K字節可編程FLASH存儲器的低電壓、高性能COMS八位微處理器,與Intel MCS-51系列單片機的指令和輸出管腳相兼容。由于將多功能八位CPU和閃速存儲器結合在單個芯片中,因此,AT89C2051構成的單片機系統是具有結構最簡單、造價最低廉、效率最高的微控制系統,省去了外部的RAM、ROM和接口器件,減少了硬件開銷,提高了系統的性價比。其最小系統電路圖如下:單片機最小系統電路圖三、矩陣鍵盤的電路介紹AT89C51單片機的并行口P3接4×4矩陣鍵盤,以P3.0P3.3作行輸入線,以P3.4
4、P3.7作列輸出線;P3口輸出按鍵信息,在數碼管上顯示每個按鍵的“0F”序號。實際電路圖連接如下圖所示。矩陣式鍵盤電路四、數碼管顯示原理及譯碼電路本系統輸出結果選用8個LED數碼管顯示。數碼管有共陰共陽之分,本系統采用8段共陰型LED,其原理圖如下圖所示: 符號和引腳 共陽極 共陰極LED數碼管結構數碼管內部有8個發光二極管,公共端由8個發光二極管的陰極并接而成,正常顯示時公共端接低電平(GND),各發光二極管是否點亮取決于a-dp各引腳上是否是高電平。 LED數碼管的外部有10個引腳,其中3, 8腳為公共端也稱位選端,其余8個引腳稱為段選端,當要使某一位數碼管顯示某一數字(0-9中的一個)必
5、須在這個數碼管的段選端加上與數字顯示數字對應的8位段選碼(也稱字形碼),在位選端加上低電平即可。由于系統要顯示的內容比較簡單,顯示量不多,所以選用數碼管既方便又經濟。LED有共陰極和共陽極兩種,二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個發光二極管組成,其中7個發光二極管構成字型“8”的各個筆劃(段)ag,另一個小數點為dp發光二極管。當在某段發光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。五、時鐘電路與復位電路 時鐘信號用來提供單片機片內各種微操作的時間基準,時鐘信號通常用兩種電路形式得到:內部振蕩和外部振
6、蕩。MCS-51單片機內部有一個用于構成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內部方式時,電路簡單,所得的時鐘信號比較穩定,實際使用中常采用這種方式,如圖2-2所示在其外接晶體振蕩器(簡稱晶振)或陶瓷諧振器就構成了內部振蕩方式,片內高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構成一個自激振蕩器并產生振蕩時鐘脈沖。電路圖中外接晶體以及電容C2和C3構成并聯諧振電路,它們起穩定振蕩頻率、快速起振的作用,其值為30pF左右,晶振頻率選11.0592MHz 。 為了初始化單片機內部的某些特殊功能寄存器,必須利用復位電路,復位后可
7、使CPU及系統各部件處于確定的初始狀態,并從初始狀態開始正常工作。單片機的復位是靠外電路來實現的,在正常運行情況下,只要RST引腳上出現兩個機器周期時間以上的高電平,即可引起系統復位,但如果RST引腳上持續為高電平,單片機就處于循環復位狀態。復位后系統將輸入/輸出(1/0)端口寄存器置為FFH,堆棧指針SP置為07H, SBUF內置為不定值,其余的寄存器全部清0,內部RAM的狀態不受復位的影響,在系統上電時RAM的內容是不定的。復位操作有兩種情況,即上電復位和手動(開關)復位。本系統采用上電復位方式。電路圖中R1和Cl組成上電復位電路,其值R取為1K, C取為10pF。六、軟件系統設計1、程序
8、流程圖:2、按鍵檢測與數碼管顯示P3口的低4位控制行輸入,高4位控制列輸入當沒有按鍵按下時,P3.0P3.3與P3.4P3.7之間開路。當有鍵閉合時,與閉合鍵相連的兩條I/O口線之間短路。判斷有無按鍵按下的方法是:第一步,置行線P3.0P3.3為輸入狀態,從列線P3.4P3.7輸出低電平,讀入行線數據,若某一行線為低電平,則該行線上有鍵閉合。第二步,列線輪流輸出低電平,從行線P3.0P3.3讀入數據,若有某一行為低電平,則對應的列線上有鍵按下。綜合一二兩步的結果,可確定按鍵編號。但是按鍵閉合一次只能進行一次鍵功能操作,因此須等到按鍵釋放后,再進行鍵功能操作,否則按一次鍵,有可能會連續多次進行同
9、樣的按鍵操作。當確定了是哪一個按鍵按下后,通過軟件程序的設計,返回鍵盤掃描的鍵值,轉化成十六進制的數據后由PO口輸出給數碼管顯示。3、LED顯示段碼表字型共陽極段共陰極段字型共陽極段共陰極段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H七、PROTEUS 仿真圖八、系統的程序:#include<reg52.h>#define uint unsigned int#define u
10、char unsigned charuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0;uchar code we=7,6,5,4,3,2,1,0;uint i;sbit dula=P26;sbit wela=P27;uchar num,num1,temp;void delay(uint z)uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);uchar keyscan();void main()num=
11、17;/打開時數碼管什么也不顯示dula=1;/關閉數碼管P0=0;dula=0;/P2=2;while(1) num1=keyscan();for(i=0;i<8;i+)P0=tablenum1-1;P2=wei;delay(1);uchar keyscan() /帶有返回值的函數P3=0xfe;/檢測第一行temp=P3;temp=temp&0xf0;while(temp!=0xf0)delay(5);/延時去抖temp=P3;temp=temp&0xf0;while(temp!=0xf0)/不等于0xf0說明確實是有建按下temp=P3;/再讀回P3口的值switc
12、h(temp)case 0xee: num=1;break;case 0xde: num=2;break;case 0xbe: num=3;break;case 0x7e: num=4;break;while(temp!=0xf0)/檢測是否松手,不佳松手檢測退不出第二個while循環temp=P3;temp=temp&0xf0; P3=0xfd;/檢測第二行temp=P3;temp=temp&0xf0;while(temp!=0xf0)delay(5);/延時去抖temp=P3;temp=temp&0xf0;while(temp!=0xf0)temp=P3;/讀回P3
13、口的值switch(temp)case 0xed: num=5;break;case 0xdd: num=6;break;case 0xbd: num=7;break;case 0x7d: num=8;break;while(temp!=0xf0)/檢測是否松手temp=P3;temp=temp&0xf0;P3=0xfb;/檢測第三行temp=P3;temp=temp&0xf0;while(temp!=0xf0)delay(5);/延時去抖temp=P3;temp=temp&0xf0;while(temp!=0xf0)temp=P3;/讀回P3口的值switch(tem
14、p)case 0xeb: num=9;break;case 0xdb: num=10;break;case 0xbb: num=11;break;case 0x7b: num=12;break;while(temp!=0xf0)/檢測是否松手temp=P3;temp=temp&0xf0;P3=0xf7;/檢測第四行temp=P3;temp=temp&0xf0;while(temp!=0xf0)delay(5);/延時去抖temp=P3;temp=temp&0xf0;while(temp!=0xf0)temp=P3;/讀回P3口的值switch(temp) case 0x
15、e7: num=13;break;case 0xd7: num=14;break;case 0xb7: num=15;break;case 0x77: num=16;break;while(temp!=0xf0)/檢測是否松手temp=P3;temp=temp&0xf0;return num;實驗總結與討論通過這次單片機課程設計,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養我們的創新精神,從而不斷地戰勝自己,超越自己。創新可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。 這個設計過程中,我們由P3.0P3.3(行)和P3.4P3
16、.7(列)組成4*4矩陣鍵盤,P0口接LED數碼管靜態顯示電路。由于P0口內部無上拉電阻,因此必須外部接上拉電阻,其阻值的選擇可以根據LED數碼管發光電流及其亮度來決定,參考值為560歐姆。編寫4*4鍵盤的驅動程序。編寫主程序,當按鍵按下時,能夠在數碼管顯示器與按鍵的鍵值對應的數字。設計結果能夠符合題意,成功完成了此次實習要求,我們不只在乎這一結果,更加在乎的,是這個過程。這個過程中,我們花費了大量的時間和精力,更重要的是,我們在學會創新的基礎上,同時還懂得合作精神的重要性,學會了與他人合作,也非常感謝老師在實習過程中的指導與幫助。實物演示圖序號器件名稱器件數量1AT89S5112插座13單片機開發板141位數碼管1512MHZ晶振1630pF電容2720uF電容189腳排阻(470*8)19按鈕171010K電阻4111K電阻1200歐姆電阻2電源插孔1電源開關1發光二極管1下載接口1實驗電源(220V轉5V
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一節繪畫活動方案
- 六一采購活動方案
- 六一騎車比賽活動方案
- 六年級丟沙包活動方案
- 醫師衛生職稱考試試題及答案
- 夜班準入考試試題及答案
- 安全生產a證試題及答案
- 業務黨校考試試題及答案
- 藥店考試試題及答案失眠
- 六盤水景區開展活動方案
- GB/T 14561-2019消火栓箱
- GB 2714-2003醬腌菜衛生標準
- CNAS體系基礎知識培訓課件
- 2023年重慶市銅梁區物理八下期末質量跟蹤監視模擬試題(含解析)
- 教師壓力管理(教育心理健康C證培訓)課件
- 工程勘察設計收費標準使用手冊
- 網絡暴力主題班會PPT課件講義
- 《工程管理指導書》word版
- 合理低價法得分計算
- 關于涉農企業稅收風險管理的實踐和思考
- 05S502閥門井圖集
評論
0/150
提交評論