數(shù)碼管顯示4×4矩陣鍵盤(pán)的鍵盤(pán)號(hào)(程序解釋好了)大作業(yè)_第1頁(yè)
數(shù)碼管顯示4×4矩陣鍵盤(pán)的鍵盤(pán)號(hào)(程序解釋好了)大作業(yè)_第2頁(yè)
數(shù)碼管顯示4×4矩陣鍵盤(pán)的鍵盤(pán)號(hào)(程序解釋好了)大作業(yè)_第3頁(yè)
數(shù)碼管顯示4×4矩陣鍵盤(pán)的鍵盤(pán)號(hào)(程序解釋好了)大作業(yè)_第4頁(yè)
數(shù)碼管顯示4×4矩陣鍵盤(pán)的鍵盤(pán)號(hào)(程序解釋好了)大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)原理及應(yīng)用課程設(shè)計(jì)報(bào)告數(shù)碼管顯示4X 4矩陣鍵盤(pán)的鍵盤(pán)號(hào)專(zhuān) 業(yè):電子信息科學(xué)與技術(shù)班 級(jí):姓 名:學(xué) 號(hào):指導(dǎo)教師:2012年5月15日1、課程設(shè)計(jì)目的1.1鞏固和加深對(duì)單片機(jī)原理和接口技術(shù)知識(shí)的理解;1.2培養(yǎng)根據(jù)課題需要選學(xué)參考書(shū)籍、查閱手冊(cè)和文獻(xiàn)資料的能力;1.3學(xué)會(huì)方案論證的比較方法,拓寬知識(shí),初步掌握工程設(shè)計(jì)的基本方法;1.4掌握常用儀器、儀表的正確使用方法,學(xué)會(huì)軟、硬件的設(shè)計(jì)和調(diào)試方法;1.5能按課程設(shè)計(jì)的要求編寫(xiě)課程設(shè)計(jì)報(bào)告,能正確反映設(shè)計(jì)和實(shí)驗(yàn)成果, 能用計(jì)算機(jī)繪制電路圖和流程圖。2、課程設(shè)計(jì)要求單片機(jī)的P1 口的P1.0P1.7連接4X 4矩陣鍵盤(pán),P0 口控制一只數(shù)碼

2、管,當(dāng)4X4矩陣鍵盤(pán)中的某一按鍵按下時(shí),數(shù)碼管上顯示對(duì)應(yīng)的鍵號(hào)。例如,1號(hào)鍵按下時(shí),數(shù)碼管顯示“ 1”,14號(hào)鍵按下時(shí),數(shù)碼管顯示“ E”等等。3、硬件設(shè)計(jì)3.1設(shè)計(jì)思想分析本任務(wù)的要求,在課程設(shè)計(jì)的基礎(chǔ)上,添加要求,使設(shè)計(jì)能夠完成當(dāng)4X4矩陣鍵盤(pán)中的某一按鍵按下時(shí),數(shù)碼管上顯示對(duì)應(yīng)的鍵號(hào)。3.2主要元器件介紹:AT89C51單片機(jī)LED數(shù)碼管 4X4矩陣鍵盤(pán)3.3功能電路介紹AT89C51單片機(jī):控制器。程序中將單片機(jī)的引腳置高電平低電平,單片機(jī)通過(guò)讀取10引腳的電平,在根據(jù)讀取的數(shù)據(jù)去查找數(shù)組中相應(yīng)的按鍵值,然后 在送到數(shù)碼管也就是P0 口去顯示.(51單片機(jī)通過(guò)I0 口來(lái)讀取鍵盤(pán)的電平,

3、再 通過(guò)程序來(lái)查找對(duì)應(yīng)的數(shù)值,在送到數(shù)碼管去顯示 )LED數(shù)碼管:輸出設(shè)備4X4矩陣鍵盤(pán):輸入設(shè)備4、軟件設(shè)計(jì)4.1設(shè)計(jì)思想最終通過(guò)數(shù)碼管顯通過(guò)對(duì)矩陣鍵盤(pán)的逐行掃描,來(lái)獲得所按下鍵的鍵盤(pán)號(hào), 示出來(lái)。4.3源程序#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned intucharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;定義顯示段碼uchar nu m,temp;void dela

4、y(uchar k)定義延時(shí)函數(shù)uchar i,j;for(i=k;i0;i-)for(j=110;j0;j-);void disp(char num1)定義顯示函數(shù)P0=tablenuml;/將段碼值送入 P0 口顯示char keysca n() 定義鍵盤(pán)檢測(cè)函數(shù)P仁0xfe; 給P1 口送檢測(cè)信號(hào)11111110,即先檢測(cè)第一列有無(wú)按鍵被按下(key1key4)temp=P1;/將檢測(cè)信號(hào)賦給變量temptemp=temp&0 xf0;/ 與11110000相“與”去除低四位檢測(cè)部分 while(temp!=0xf0)判斷是否有按鍵被按下,即 key1-key4有任意按鍵被按下temp便

5、不等于0xffdela y( 5);/按鍵防抖動(dòng)延時(shí)(時(shí)間要求不嚴(yán)格)while(temp!=0xf0)/延時(shí)之后再次判斷temp=P1;/進(jìn)入函數(shù)說(shuō)明有按鍵被按下,再將 p1值賦給temp進(jìn)行判斷是哪位被按下switch(temp)/利用 switch 函數(shù)判斷 temp 值case 0xee:/若P0等于0xee,即11101110,則由判斷為0的位被 按下即第四位(最低位),則應(yīng)賦值num為0;num=0;break;case0xde:/11011110同理判斷其為第三位被按下(該行第二位)num=1num=1;break;case 0xbe:/同上貝U num=2num=2;break

6、;case 0x7e:/同上 num=3num=3;break;判斷按鍵是否松開(kāi),循環(huán)判斷直至按鍵松開(kāi)while(temp!=OxfO)temp=P1; temp=temp&OxfO;P仁Oxfd;/給P1 口再次送檢測(cè)信號(hào)11111101,來(lái)檢測(cè)第二列有無(wú)按鍵被按下(key5key8),以下幾步同上temp=P1;temp=temp&0 xfO;while(temp!=OxfO)delay(5);while(temp!=OxfO)temp=P1;switch(temp)case Oxed:num=4;break;case Oxdd:num=5;break;case Oxbd:num=6;br

7、eak;case 0x7d:num=7;break;while(temp!=OxfO)temp=P1;temp=temp&0 xfO;P仁Oxfb;/給P1 口再次送檢測(cè)信號(hào)11111011,來(lái)檢測(cè)第三列有無(wú)按鍵被按 下(key9key12),以下幾步同上temp=P1;temp=temp&0 xfO;while(temp!=OxfO)delay(5);while(temp!=OxfO)temp=P1;switch(temp)case Oxeb:num=8;break;case Oxdb:num=9;break;case Oxbb:num=10;break;case 0x7b:num=11;b

8、reak;while(temp!=OxfO)temp=P1;temp=temp&0 xfO;P仁0xf7;給P1 口再次送檢測(cè)信號(hào)11110111,來(lái)檢測(cè)第四列有無(wú)按鍵被按下(key13key16),以下幾步同上temp=P1;temp=temp&0 xfO;while(temp!=OxfO)delay(5);while(temp!=OxfO)temp=P1;switch(temp)case 0xe7: num=12; break;case 0xd7: num=13; break;case 0xb7: num=14; break;case 0x77: num=15; break; while(

9、temp!=0xf0)temp=P1;temp=temp&0 xf0;return num;/ 子函數(shù)最后返回 num值 void mai n()P0=0x00; 清屏 dela y(5);/ 延時(shí) while(1)/ 主循環(huán) disp(keysca n();檢測(cè)并顯示5、調(diào)試運(yùn)行電路圖U1AJJEf2P23.-il PZIZZfl.13 PZWAI + *ZW.T5raiiT-:bpaairrafuHTT92 TUF33fTIp3*wrnjiffir.TIM. 51依次按下開(kāi)關(guān)k1-k16,數(shù)碼管會(huì)對(duì)應(yīng)顯示出0f的16個(gè)數(shù)字K=2的數(shù)碼管顯示2.K=15時(shí)的數(shù)碼管顯示6設(shè)計(jì)心得體會(huì)硬件設(shè)計(jì)方面,此課題所需的硬件并不負(fù)責(zé),只許少量的導(dǎo)線、簡(jiǎn)單的電路 便可以完成。軟件設(shè)計(jì)方面,我感覺(jué)到在編寫(xiě)循環(huán)嵌套程序時(shí)非常容易出錯(cuò), 需要反復(fù)的 查錯(cuò)和耐心的調(diào)試。我雖然能夠編寫(xiě)出程序,其可讀性卻有待于提高。經(jīng)過(guò)這次課程設(shè)計(jì),我對(duì)51系統(tǒng)的單片機(jī)內(nèi)部

溫馨提示

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

評(píng)論

0/150

提交評(píng)論