單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)_第1頁
單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)_第2頁
單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)_第3頁
單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)_第4頁
單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)單片機(jī)矩陣鍵盤畢業(yè)設(shè)計(jì)

摘要

矩陣式鍵盤乃是目前使用較為廣泛的一種鍵盤模式,該系統(tǒng)以N個(gè)端口連接控制N*N個(gè)按鍵,即時(shí)在LED數(shù)碼管上。單片機(jī)控制的據(jù)這是鍵盤顯示系統(tǒng),該系統(tǒng)可以對不同的按鍵進(jìn)行實(shí)時(shí)顯示,其核心是單片機(jī)和鍵盤矩陣電路部分,主要對按鍵與顯示電路的關(guān)系、矩陣式技術(shù)及設(shè)備系統(tǒng)的硬件、軟件等各個(gè)部分進(jìn)行實(shí)現(xiàn)。4*4矩陣式鍵盤采用89C51單片機(jī)為核心,主要由矩陣式鍵盤電路、譯

碼電路、顯示電路等組成,軟件選用C語言編程,單片機(jī)將檢測到的按鍵信號轉(zhuǎn)換成數(shù)字量,顯示于數(shù)碼管顯示器,系統(tǒng)靈活性強(qiáng),易于操作,可靠性能好。單片機(jī)簡介及主系統(tǒng)電路

單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換444器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域的廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時(shí)的4位、8位單片機(jī),發(fā)展到現(xiàn)在的32位300M的高速單片機(jī)。單片機(jī)在工業(yè)控制領(lǐng)域廣泛應(yīng)用,它由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更簡單集成進(jìn)繁雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中,本次課程設(shè)計(jì)我們采用的是AT89C51型號的單片機(jī)。

AT89C51單片機(jī)是51系列單片機(jī)的一個(gè)成員,是8051單片機(jī)的簡化版。內(nèi)部自帶2K字節(jié)可編程FLASH存儲(chǔ)器的低電壓、高性能COMS八位微處理器,與IntelMCS-51系列單片機(jī)的指令和輸出管腳相兼容。由于將多功能八位CPU和閃速存儲(chǔ)器結(jié)合在單個(gè)芯片中,因此,AT89C2051構(gòu)成的單片機(jī)系統(tǒng)是具有結(jié)構(gòu)最簡單、造價(jià)最低廉、效率最高的微控制系統(tǒng),省去了外部的RAM、ROM和接口器件,減少了硬件開銷,提高了系統(tǒng)的性價(jià)比。其最小系統(tǒng)電路圖如下:

單片機(jī)最小系統(tǒng)電路圖

三、矩陣鍵盤的電路介紹

AT89C51單片機(jī)的并行口P3接4×4矩陣鍵盤,以P3.0-P3.3作行輸入線,以P3.4-P3.7作列輸出線;P3口輸出按鍵信息,在數(shù)碼管上顯示每個(gè)按鍵的“0-F〞序號。實(shí)際電路圖連接如下圖所示。

矩陣式鍵盤電路

四、數(shù)碼管顯示原理及譯碼電路

本系統(tǒng)輸出結(jié)果選用8個(gè)LED數(shù)碼管顯示。數(shù)碼管有共陰共陽之分,本系統(tǒng)

采用8段共陰型LED,其原理圖如下圖所示:

符號和引腳共陽極共陰極

LED數(shù)碼管結(jié)構(gòu)

數(shù)碼管內(nèi)部有8個(gè)發(fā)光二極管,公共端由8個(gè)發(fā)光二極管的陰極并接而成,正常顯示時(shí)公共端接低電平(GND),各發(fā)光二極管是否點(diǎn)亮取決于a-dp各引腳上是否是高電平。

LED數(shù)碼管的外部有10個(gè)引腳,其中3,8腳為公共端也稱位選端,其余8個(gè)引腳稱為段選端,當(dāng)要使某一位數(shù)碼管顯示某一數(shù)字((0-9中的一個(gè))必需在這個(gè)數(shù)碼管的段選端加上與數(shù)字顯示數(shù)字對應(yīng)的8位段選碼(也稱字形碼),在位選端加上低電平即可。

由于系統(tǒng)要顯示的內(nèi)容比較簡單,顯示量不多,所以選用數(shù)碼管既便利又經(jīng)濟(jì)。LED有共陰極和共陽極兩種,二極管的陰極連接在一起,尋常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管構(gòu)成字型“8〞的各個(gè)筆劃(段)a~g,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時(shí),該段筆劃即亮;不加電壓則暗。

五、時(shí)鐘電路與復(fù)位電路

時(shí)鐘信號用來提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號尋常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡單,所得的時(shí)鐘信號比較穩(wěn)定,實(shí)際使用中常采用這種方式,如圖2-2所示在其外接晶體振蕩器(簡稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。電路圖中外接晶體以及電容C2和C3構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值為30pF左右,晶振頻率選11.0592MHz。

為了初始化單片機(jī)內(nèi)部的某些特別功能寄放器,必需利用復(fù)位電路,復(fù)位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。單片機(jī)的復(fù)位是靠外電路來實(shí)現(xiàn)的,在正常運(yùn)行狀況下,只要RST引腳上出現(xiàn)兩個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但假使RST引腳上持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端口寄放器置為FFH,堆棧指針SP置為07H,SBUF內(nèi)置為不定值,其余的寄放器全部清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。復(fù)位操作有兩種狀況,即上電復(fù)位和手動(dòng)(開關(guān))復(fù)位。本系統(tǒng)采用上電復(fù)位方式。電路圖中R1和Cl組成上電復(fù)位電路,其值R取為1KΩ,C取為10pF。

六、軟件系統(tǒng)設(shè)計(jì)

1、程序流程圖:

入口掃描一行掃描下一行掃描一列Y延時(shí)10ms去抖動(dòng)4列全部掃描完?再次掃描原列掃描下一行N與原值掃描值相符?4行全部掃描完?Y返回0xFF表示無鍵按下NY按鍵釋放Y掃描下一行該行該列是否有鍵按下?N掃描下一行N根據(jù)行號和列號查鍵碼表求鍵值根據(jù)鍵值查數(shù)碼顯示編碼表返回

2、按鍵檢測與數(shù)碼管顯示

P3口的低4位控制行輸入,高4位控制列輸入當(dāng)沒有按鍵按下時(shí),P3.0—P3.3與P3.4—P3.7之間開路。當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條I/O口線之間短路。

判斷有無按鍵按下的方法是:

第一步,置行線P3.0—P3.3為輸入狀態(tài),從列線P3.4—P3.7輸出低電平,讀入行線數(shù)據(jù),若某一行線為低電平,則該行線上有鍵閉合。

其次步,列線輪番輸出低電平,從行線P3.0—P3.3讀入數(shù)據(jù),若有某一行為低電平,則對應(yīng)的列線上有鍵按下。

綜合一二兩步的結(jié)果,可確定按鍵編號。

但是按鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)屢屢進(jìn)行同樣的按鍵操作。

當(dāng)確定了是哪一個(gè)按鍵按下后,通過軟件程序的設(shè)計(jì),返回鍵盤掃描的鍵值,轉(zhuǎn)化成十六進(jìn)制的數(shù)據(jù)后由PO口輸出給數(shù)碼管顯示。3、LED顯示段碼表字型012345678

共陽極段C0HF9HA4HB0H99H92H82HF8H80H共陰極段3FH06H5BH4FH66H6DH7DH07H7FH字型9ABCDEF空白P共陽極段90H88H83HC6HA1H86H84HFFH8CH共陰極段6FH77H7CH39H5EH79H71H00H73H七、PROTEUS仿真圖

八、系統(tǒng)的程序:#include

#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};ucharcodewe[]={7,6,5,4,3,2,1,0};uinti;

sbitdula=P2^6;sbitwela=P2^7;ucharnum,num1,temp;voiddelay(uintz){}

ucharkeyscan();voidmain(){

num=17;//開啟時(shí)數(shù)碼管什么也不顯示dula=1;//關(guān)閉數(shù)碼管P0=0;dula=0;ucharx,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);

//P2=2;

while(1)

{

num1=keyscan();

for(i=0;i

}

}

case0x7d:num=8;

break;

while(temp!=0xf0)//檢測是否松手{}

temp=P3;temp=temp

}

P3=0xfb;//檢測第三行temp=P3;temp=tempwhile(temp!=0xf0)

{

delay(5);//延時(shí)去抖temp=P3;temp=tempwhile(temp!=0xf0){

temp=P3;//讀回P3口的值switch(temp){

case0xeb:num=9;

break;

case0xdb:num=10;

break;

case0xbb:num=11;

}

}

break;

case0x7b:num=12;

break;

while(temp!=0xf0)//檢測是否松手{}

temp=P3;temp=temp

}

P3=0xf7;//檢測第四行temp=P3;temp=tempwhile(temp!=0xf0)

{

delay(5);//延時(shí)去抖temp=P3;temp=tempwhile(temp!=0xf0){

temp=P3;//讀回P3口的值switch(temp){

case0xe7:num=13;

break;

case0xd7:num=14;

break;

case0xb7:num=15;

}

}

}

break;

case0x77:num=16;

break;

while(temp!=0xf0)//檢測是否松手{}

temp=P3;temp=temp

}

returnnum;

試驗(yàn)總結(jié)與探討

通過這次單片機(jī)課程設(shè)計(jì),我不僅加深了對單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的基礎(chǔ)上進(jìn)行改進(jìn),使之功能不斷完善,成為真己的東西。

這個(gè)設(shè)計(jì)過程中,我們由P3.0—P3.3(行)和P3.4—P3.7(列)組成4*4矩陣鍵盤,P0口接LED數(shù)碼管靜態(tài)顯示電路。由于P0口內(nèi)部無上拉電阻,因此必需外部接上拉電阻,其阻值的選擇可以根據(jù)LED數(shù)碼管發(fā)光電流及其亮度來決定,參考值為560歐姆。編寫4*4鍵盤的驅(qū)動(dòng)程序。編寫主程序,當(dāng)按鍵按下時(shí),能夠在數(shù)碼管顯示器與按鍵的鍵值對應(yīng)的數(shù)字。設(shè)計(jì)結(jié)果能夠符合題意,成功完成了此次實(shí)習(xí)要求,我們不只在乎這一結(jié)果,更加在乎的,是這個(gè)過程。這個(gè)過程中,我們花費(fèi)了大量的時(shí)間和精力,更重要的是,我們在學(xué)會(huì)創(chuàng)新的基礎(chǔ)上,同時(shí)還懂得合作精神的重要性,學(xué)會(huì)了與他人合作,也十分感謝老師在實(shí)習(xí)過程中的指導(dǎo)與幫助。

實(shí)物演示圖

元件清單

序號1234567891011插座單片機(jī)開發(fā)板1位數(shù)碼管12MHZ晶振30pF電容20uF電容9腳排阻(470*8)按鈕10K電阻1K電阻200歐姆電阻電源插孔電源開關(guān)

溫馨提示

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

最新文檔

評論

0/150

提交評論