資源描述:
《51單片機矩陣鍵盤設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、湖南工業(yè)大學(xué)課程設(shè)計資料袋電氣與信息工程學(xué)院(系、部)2009--2010學(xué)年第1學(xué)期課程名稱單片機應(yīng)用系統(tǒng)指導(dǎo)教師賀正蕓學(xué)生姓名專業(yè)班級電子信息科學(xué)與技術(shù)學(xué)號題目4*4矩陣鍵盤成績起止日期2009年11月23日~2009年12月04日目錄清單序號材料名稱資料數(shù)量備注1課程設(shè)計任務(wù)書2課程設(shè)計說明書3課程設(shè)計圖紙張45610湖南工業(yè)大學(xué)課程設(shè)計任務(wù)書2009—2010學(xué)年第1學(xué)期電氣與信息工程學(xué)院(系、部)電子信息科學(xué)與技術(shù)專業(yè)班級課程名稱:單片機應(yīng)用系統(tǒng)設(shè)計題目:4*4矩陣鍵盤完成期限:自2009年11月9日至2
2、009年11月20日共2周內(nèi)容及任務(wù)由P1.0—P1.3(列)和P1.4—P1.7(行)組成4*4矩陣鍵盤,P0口接LED靜態(tài)顯示電路。由于P0口內(nèi)部無上拉電阻,因此必須外部接上上拉電阻,其阻值的選擇可以根據(jù)LED數(shù)碼管發(fā)光電流及其亮度來決定,參考值為560歐姆。編寫4*4鍵盤的驅(qū)動程序。編寫主程序,當(dāng)按鍵按下時,能夠在數(shù)碼管顯示器與按鍵的鍵值對應(yīng)的數(shù)字。進度安排起止日期工作內(nèi)容2009.11.23-2009.11.24設(shè)計內(nèi)容及基本原理2009.11.25-2009.11.27進行系統(tǒng)的軟件設(shè)計,2009.11.
3、28-2009.12.04進行系統(tǒng)的硬件設(shè)計主要參考資料[1]歐偉明.單片機原理與應(yīng)用.電子工業(yè)出版社,2009年指導(dǎo)教師(簽字):年月日系(教研室)主任(簽字):年月日10單片機應(yīng)用系統(tǒng)4*4矩陣鍵盤設(shè)計說明書學(xué)生姓名班級電科072學(xué)號成績指導(dǎo)教師(簽字)起止日期:2009年11月23日至2009年12月4日電氣與信息工程學(xué)院(部)10年月日單片機設(shè)計題目:矩陣式鍵盤數(shù)顯設(shè)計一、設(shè)計要求及任務(wù)1、設(shè)計要求(1)由P1.0—P1.3(列)和P1.4—P1.7(行)組成4*4矩陣鍵盤,P0口接LED靜態(tài)顯示電路。由于
4、P0口內(nèi)部無上拉電阻,因此必須外部接上上拉電阻,其阻值的選擇可以根據(jù)LED數(shù)碼管發(fā)光電流及其亮度來決定,參考值為560歐姆。編寫4*4鍵盤的驅(qū)動程序。(2)編寫主程序,當(dāng)按鍵按下時,能夠在數(shù)碼管顯示器與按鍵的鍵值對應(yīng)的數(shù)字2、設(shè)計任務(wù)(1)以AT89S51為核心,設(shè)計系統(tǒng)硬件電路,并根據(jù)所設(shè)計的電路制作實物。(2)分析任務(wù)要求,繪制程序流程圖,編寫相應(yīng)的軟件程序。(3)編寫設(shè)計說明書,內(nèi)容包括:電路原理圖;程序流程圖,源程序清單;電路實測波形、電路原理分析、硬件調(diào)試分析;軟件調(diào)試分析;結(jié)論和體會。序號器件名稱器件數(shù)
5、量1AT89S5112插座13萬能板141位數(shù)碼管1512MHZ晶振1630pF電容2720uF電容189腳排阻(470*8)19按鈕171010K電阻4111K電阻1200歐姆電阻2電源插孔1電源開關(guān)1發(fā)光二極管1下載接口1實驗電源(220V轉(zhuǎn)5V)1電烙鐵1焊錫絲若干10導(dǎo)線若干若干二、任務(wù)分析根據(jù)任務(wù)要求知此課程設(shè)計是做一個4*4的矩陣鍵盤P1口接鍵盤,P0口接數(shù)碼管。19腳和18腳接晶振電路,9腳接復(fù)位電路,P1.5—P1.7要接下載接口。應(yīng)先畫出電路原理圖,根據(jù)原理圖列出報目表,編寫程序,進行軟件仿真,軟
6、件仿真成功后開始做硬件。編寫程序時,步驟如下:1、判斷是否有鍵按下2、識別被按下的鍵3、查數(shù)碼顯示編碼表三、報目表根據(jù)任務(wù)分析列出報目表,如表一所示表一三、總體設(shè)計1、軟件設(shè)計(1)電路原理圖(2)程序流程圖10(3)源程序#include#includeUnsigned;charkey_code[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1,0x00};uns
7、ignedcharksp0[4]={0xfe,0xfd,0xfb,0xf7};unsignedcharksp1[4]={0xef,0xdf,0xbf,0x7f};unsignedchark=1;voiddelay(void){unsignedchari,j;for(i=0;i<5;i++)for(j=0;j<255;j++);}//鍵盤掃描unsignedcharkey_scan(){unsignedchari,j,key;P1=0x0f;while(P1!=0x0f){delay();P1=0x0f;while(
8、P1!=0x0f){10for(i=0;i<=3;i++){P1=ksp1[i];if(P1!=ksp1[i])break;}for(j=0;j<=3;j++){P1=ksp0[j];if(P1!=ksp0[j])break;}key=i*4+j;return(key);}return(16);}return(16);}voidmain(){unsigned