




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)告利用矩陣鍵盤(pán)來(lái)控制1602液晶顯示器的顯示設(shè)計(jì)2011年12月7日目錄1 .課程設(shè)計(jì)的目的12 .課程設(shè)計(jì)的要求3 .硬件設(shè)計(jì)3.1 設(shè)計(jì)思想3.2 主要元器件介紹3.3 .功能電路介紹4.1 1602液晶顯示器4.2 3*4矩陣鍵盤(pán)(1)矩陣式鍵盤(pán)的結(jié)構(gòu)與工作原理(2)矩陣式鍵盤(pán)的按鍵識(shí)別方法.軟件設(shè)計(jì)設(shè)計(jì)思想軟件流程圖源程序:.調(diào)試運(yùn)行.設(shè)計(jì)心得體會(huì):.課程設(shè)計(jì)目的鞏固和加深對(duì)單片機(jī)原理和接口技術(shù)知識(shí)的理解;培養(yǎng)根據(jù)課題需要選學(xué)參考書(shū)籍、查閱手冊(cè)和文獻(xiàn)資料的能力;學(xué)會(huì)方案論證的比較方法,拓寬知識(shí),初步掌握工程設(shè)計(jì)的基本方法;掌握常用儀器、儀表的正確使用方法,學(xué)會(huì)
2、軟、硬件的設(shè)計(jì)和調(diào)試方法;能按課程設(shè)計(jì)的要求編寫(xiě)課程設(shè)計(jì)報(bào)告,能正確反映設(shè)計(jì)和實(shí)驗(yàn)成果,能用計(jì)算機(jī)繪制電路圖和流程圖。.課程設(shè)計(jì)要求在3*4矩陣鍵盤(pán)上輸入信息在1602芯片上顯示時(shí)間信息。顯示數(shù)據(jù)的設(shè)計(jì)與變換.硬件設(shè)計(jì).1設(shè)計(jì)思想在3*4矩陣鍵盤(pán)上輸入信息,通過(guò)中央處理器處理信息,再通過(guò)1602液晶顯示器顯示信息。.2主要元器件介紹(1)電源電路2)STC89C82RC片機(jī)一塊。3)1602液晶顯木器一塊(4)杜邦線若干。(5)3*4矩陣鍵盤(pán)3.3.功能電路介紹3.311602液晶顯示器液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn),現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息
3、顯示器件了。1602可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線D0-D7,和RS、R/W、EN三個(gè)控制端口,工作電壓為5V,并且?guī)в凶址麑?duì)比度調(diào)節(jié)和背光。1602外觀如下圖所示1602引腳說(shuō)明編!符引腳說(shuō)明編0符引腳說(shuō)明號(hào)號(hào)號(hào)號(hào)1VSS電源地9D2雙向數(shù)據(jù)口2VDD電源正極10D3雙向數(shù)據(jù)口3VL對(duì)比度調(diào)節(jié)11D4雙向數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇12D5雙向數(shù)據(jù)口5R/W讀/寫(xiě)選擇13D6雙向數(shù)據(jù)口6E模塊使能端14D7雙向數(shù)據(jù)口7D0雙向數(shù)據(jù)口15BLK背光源地8D1雙向數(shù)據(jù)口16BLA背光源正極注意事項(xiàng):從該模塊的正面看,引腳排列從右向左為:15腳、16腳,然后才是114腳(線路板上已經(jīng)標(biāo)明)。
4、VDD電源正極,4.55.5V,通常使用5V電壓;VL:LCD對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為05V。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地;RS:MCU!入數(shù)據(jù)或者指令選擇端。MCIM寫(xiě)入指令時(shí),使RS為低電平;MC要寫(xiě)入數(shù)據(jù)時(shí),使RS為高電平;R/W讀寫(xiě)控制端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫(xiě)入數(shù)據(jù);E:LCDJI塊使能信號(hào)控制端。寫(xiě)數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU勺I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4-D7接口傳送
5、數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;BLALED背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDDBLK接地,實(shí)測(cè)該模塊的背光電流為50m磔右;BLKLED背光地端。1602操作時(shí)序(1)讀操作時(shí)序(2)寫(xiě)操作時(shí)序輸出:DODX狀態(tài)字輸出工無(wú)輸出:DOD7二數(shù)據(jù)輸出:無(wú)(3)基本操作時(shí)序1.1讀狀態(tài):輸入:RS=L,E=HL2寫(xiě)指令.輸入,RS=L,RH,D0T)7=#j令碼,脈沖L3讀數(shù)據(jù):輸入;RS二HR和H,E二H1.4寫(xiě)數(shù)據(jù):輸入:RS=H,RW二LDOW二數(shù)據(jù),E二高脈沖圖為DM-162液晶顯示模塊和單片機(jī)STC89C82R的接口電路3.323*4矩陣鍵盤(pán)4#3矩陣鍵盤(pán)pii-
6、tl;產(chǎn)產(chǎn)(i)矩陣式鍵盤(pán)的結(jié)構(gòu)與工作原理在鍵盤(pán)中按鍵數(shù)量較多時(shí),為了減少I(mǎi)/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤(pán)中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤(pán)多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤(pán),而直接用端口線則只能多出一鍵(9鍵)。由此可見(jiàn),在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。矩陣式結(jié)構(gòu)的鍵盤(pán)顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,列線通過(guò)電阻接正電源,并將行線所接的單片機(jī)的I/O作為輸出端,而列線所接的I/O則作為輸入
7、。這樣,當(dāng)按鍵沒(méi)有按下時(shí),所有的輸出端都是高電平,代表無(wú)鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過(guò)讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識(shí)別及編程方法如下所述。(2)矩陣式鍵盤(pán)的按鍵識(shí)別方法確定矩陣式鍵盤(pán)上何鍵被按下介紹一種行掃描法行掃描法行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法。1、判斷鍵盤(pán)中有無(wú)鍵按下將全部行線Y0-Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。2、判斷閉合鍵所在的位置在確認(rèn)有鍵按下后,
8、即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。4.軟件設(shè)計(jì)設(shè)計(jì)思想:把一個(gè)多功能的復(fù)雜程序劃分為若干簡(jiǎn)單的,功能單一的程序模塊,各程序模塊完成明確的任務(wù),實(shí)現(xiàn)某個(gè)具體功能。在具體需要時(shí)調(diào)用相應(yīng)的模塊即可。軟件流程圖:源程序:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintuch
9、ardis_buf;/顯示緩存uchartemp;ucharkey;/鍵順序嗎voiddelay0(ucharx);/x*0.14MSsbitLCD_RW=P2八5;sbitLCD_RS=P2八6;sbitLCD_EN=P2A7;ucharcdis116="KEYNUMBER"ucharcdis216="KEY-CODE:H"#definedelayNOP();_nop_();_nop_();_nop_();_nop_();I*/*/*延時(shí)子程序*/*/*/voiddelay(ucharx)ucharj;while(x-)!=0)for(j=0;j<
10、;125;j+);產(chǎn)*/*檢查L(zhǎng)CD忙狀態(tài)*/*lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù)*/I*/bitlcd_busy()(bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(b)(P0&0x8);LCD_EN=0;return(result);)/*/*寫(xiě)指令數(shù)據(jù)到LCD*/RS=L,RW=LE=ft脈沖,D0-D7才旨令碼。*/*/voidlcd_wcmd(ucharcmd)while(lcd_busy();LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop
11、_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;/*/*寫(xiě)顯示數(shù)據(jù)到LCD*/*RS=H,RW=LE=ft脈沖,D0-D7嗷據(jù)。*/I*voidlcd_wdat(uchardat)(while(lcd_busy();LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;)/*/*LCD初始化設(shè)定*/I*/voidlcd_init()(delay(15);lcd_wcmd(0x38);/162delay(5);lcd_wcmd(0x38);delay
12、(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);/delay(5);lcd_wcmd(0x06);/delay(5);lcd_wcmd(0x01);/顯示,5*7點(diǎn)陣,8位數(shù)據(jù)顯示開(kāi),關(guān)光標(biāo)移動(dòng)光標(biāo)清除LCD的顯示內(nèi)容delay(5);產(chǎn)*/*設(shè)定顯示位置*/產(chǎn)*/voidlcd_pos(ucharpos)lcd_wcmd(pos|0x80);/數(shù)據(jù)指針=80+地址變量產(chǎn)*/*鍵掃描子程序(4*3的矩陣)P1.4P1.5P1.6P1.7*/*P1.1P1.2P1.3為列為行*/產(chǎn)*/voidkeyscan(void)(delay(10);temp=0;P3
13、=0xF0;/為低電平delay(1);temp=P3;/temp=temp&0xF0;temp=(temp>>4)|0xF0);if(temp=1)/p1.4key=0;elseif(temp=2)/p1.5key=1;elseif(temp=4)/p1.6key=2;elseif(temp=8)/p1.7key=3;elsekey=16;P3=0x0F;/高四位輸入行為高電平列讀P1口/屏蔽低四位被拉低被拉低被拉低被拉低低四位輸入列為高電平行為低電平delay(1);temp=P3;/讀P1口temp=temp&0x0F;temp=(temp|0xF0);if(
14、temp=2)/p1.1被拉低key=key+0;elseif(temp=4)/p1.2被拉低key=key+4;elseif(temp=8)/p1.3被拉低key=key+8;elsekey=16;dis_buf=key;/鍵值入顯示緩存轉(zhuǎn)換為ASCII碼dis_buf=dis_buf&0x0f;if(dis_buf>9)/dis_buf=dis_buf+0x37;elsedis_buf=dis_buf+0x30;P3=0xff;while(P3!=0xff)P3=0xff;delay(30);產(chǎn)*/*判斷鍵是否按下*/產(chǎn)*/voidkeydown(void)P3=0xF0;i
15、f(P3!=0xF0)/判斷按鍵是否按下如果按鈕按下會(huì)拉低P1其中的一個(gè)端口keyscan();*/*主程序*/I*main()(ucharm;P0=0xFF;/置P0口P1=0xFF;/置P1口delay(10);/延時(shí)lcd_init();/初始化LCDlcd_pos(0);/個(gè)字符設(shè)置顯示位置為第一行的第1m=0;顯示字符while(cdis1m!='0')/lcd_wdat(cdis1m);m+;lcd_pos(0x40);/字符m=0;while(cdis2m!='0')(lcd_wdat(cdis2m);/m+;)dis_buf=0x2d;/whil
16、e(1)(keydown();lcd_pos(0x4c);lcd_wdat(dis_buf);/)5.調(diào)試運(yùn)行程序調(diào)試正確后,在設(shè)置顯示位置為第二行第顯示字符顯示字符"-"第一位數(shù)顯示1602LCD!t查看是否顯示光標(biāo)在矩陣鍵盤(pán)上按下鍵盤(pán),看在1620顯示器上是不是有顯示。一開(kāi)始沒(méi)有,說(shuō)明還是程序的問(wèn)題,經(jīng)過(guò)我多次修改,終于可以顯示信息了。在矩陣鍵盤(pán)上按下不同的鍵盤(pán),發(fā)現(xiàn)顯示的數(shù)據(jù)是我想要的,而且是規(guī)律的,但是手一離開(kāi)按鍵,數(shù)字都?xì)w為O,不能保持不變,說(shuō)明程序還得再修改再次修改程序,修改延遲時(shí)間,使得顯示穩(wěn)定。修改后終于達(dá)到我要的效果了,從鍵盤(pán)上依次按下,能顯示0-9,A-
17、B的數(shù)據(jù)。而且顯示穩(wěn)定,只要不再按鍵,數(shù)據(jù)就不再變化。6.設(shè)計(jì)心得體會(huì):通過(guò)此次課程設(shè)計(jì),我對(duì)1602這塊芯片和矩陣鍵盤(pán)的原理有所了解,由于是初次接觸1602這塊芯片,所以實(shí)驗(yàn)起來(lái)遇到了很多問(wèn)題,比如時(shí)序問(wèn)題,在程序燒錄完后實(shí)驗(yàn)好幾次沒(méi)有我要的效果,有時(shí)候顯示屏上沒(méi)有光標(biāo),有時(shí)候顯示數(shù)據(jù)的地方成為一塊灰色而不能顯示數(shù)據(jù),有時(shí)候按下鍵盤(pán)能顯示數(shù)據(jù),但是一按下鍵盤(pán)數(shù)據(jù)就不見(jiàn)了。這些都是程序還有接口的問(wèn)題。經(jīng)過(guò)多次修改后,終于成功了,我領(lǐng)悟到時(shí)序就是芯片的靈魂,做什么都要按照時(shí)序的要求才能達(dá)到想要的效果。通過(guò)這次課程設(shè)計(jì),讓我認(rèn)識(shí)到很多問(wèn)題,比如光光學(xué)習(xí)課本上的知識(shí)還遠(yuǎn)遠(yuǎn)不夠,還需要加強(qiáng)自己的動(dòng)手能力。另外我發(fā)現(xiàn)自己的外語(yǔ)能力也需要加強(qiáng),因?yàn)樽约涸诓槲墨I(xiàn)時(shí)發(fā)現(xiàn)好多資料多是英文版的,這就很大程度上阻礙了我的理解能力。所以平時(shí)我要加強(qiáng)學(xué)習(xí)專業(yè)外語(yǔ)知識(shí),以便來(lái)充實(shí)自己的能力。通過(guò)這次實(shí)驗(yàn),我學(xué)會(huì)了一步一步地寫(xiě)程序,保證每個(gè)寫(xiě)出來(lái)的子函數(shù)都正確,這樣可以避免最后回頭找錯(cuò)誤的繁瑣,比如在本實(shí)驗(yàn)中,我寫(xiě)完復(fù)位函數(shù)就進(jìn)行檢測(cè),看復(fù)位是否成功,假如不成功,就重新審查函數(shù),直到復(fù)位成功。另外,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司團(tuán)隊(duì)?wèi)敉馔卣够顒?dòng)合作協(xié)議
- 水利行業(yè)智能化水利工程運(yùn)行與管理安全性方案
- 系統(tǒng)學(xué)習(xí)的2025年工程經(jīng)濟(jì)試題及答案
- 游戲賽事組織與執(zhí)行方案
- 2025年公共關(guān)系學(xué)常見(jiàn)名詞定義及試題及答案
- 物理光學(xué)及聲學(xué)考點(diǎn)習(xí)題
- 經(jīng)濟(jì)學(xué)的實(shí)踐案例試題及答案
- 高校成本核算體系構(gòu)建與應(yīng)用
- 行政管理結(jié)構(gòu)調(diào)整試題及答案
- 住院醫(yī)師考試試題及答案
- 《漢語(yǔ)國(guó)際教育概論》超詳細(xì)一萬(wàn)字筆記
- 《南海南部海洋環(huán)流的結(jié)構(gòu)與季節(jié)變化》
- 《大學(xué)計(jì)算機(jī)基礎(chǔ)教程》課件第1章 計(jì)算機(jī)基礎(chǔ)知識(shí)
- 武漢版生命生態(tài)安全【武漢版】《生命安全教育》五年級(jí) 第7課《網(wǎng)絡(luò)資訊辨真假》課件
- 《電氣基礎(chǔ)知識(shí)培訓(xùn)》課件
- 中國(guó)共產(chǎn)主義青年團(tuán)團(tuán)章
- 2024年下半年貴州省貴陽(yáng)人力資源和社會(huì)保障部人事考試中心招聘4人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 游戲動(dòng)漫游戲體驗(yàn)提升及游戲衍生品開(kāi)發(fā)策略
- DB11∕T 729-2020 外墻外保溫工程施工防火安全技術(shù)規(guī)程
- 體育-小學(xué)移動(dòng)性技能:跳躍游戲教學(xué)設(shè)計(jì)與教案
- 第02輯一輪語(yǔ)法 專題16 with復(fù)合結(jié)構(gòu)(高考真題+名校模擬+寫(xiě)作升格)(教師版) 2025屆新高三英語(yǔ)提分培優(yōu)通關(guān)練(高考真題+名校模擬)
評(píng)論
0/150
提交評(píng)論