版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
東南大學(xué)自動化學(xué)院實驗報告課程名稱: DSP原理及C程序開發(fā)第三次實驗實驗名稱:液晶屏、鍵盤外設(shè)控制實驗院(系):自動化專業(yè):自動化姓名:學(xué)號:實驗室:實驗組別:同組人員:實驗時間:2012年4月25日評定成績:審閱教師:實驗3:基于DSP系統(tǒng)的實驗——液晶屏、鍵盤外設(shè)控制實驗一.實驗?zāi)康耐ㄟ^實驗學(xué)習(xí)使用28335ADSP的擴展端口控制外圍設(shè)備的方法,了解(1)發(fā)光二極管的控制編程方法、(2)液晶顯示器編程方法、(3)鍵盤外設(shè)控制編程方法。二.實驗設(shè)備計算機,ICETEK-F28335-EDU實驗箱(或ICETEK仿真器+ICETEK–F28335-A系統(tǒng)板+相關(guān)連線及電源)。三.實驗原理1.發(fā)光二極管顯示陣列(交通燈)控制TMS320F28335DSP的擴展存儲器接口(EMIF)用來與大多數(shù)外圍設(shè)備進行連接,典型應(yīng)用如連接片外擴展存儲器等。這一接口提供地址連線、數(shù)據(jù)連線和一組控制線。ICETEK-F28335-A將這些擴展線引到了板上的擴展插座上供擴展使用。實驗箱中ICETEK-CTR板上的發(fā)光二極管顯示陣列(交通燈)的顯示是由擴展端口控制,擴展在EMIF接口的兩個寄存器提供具體控制。交通燈一共12個,使其順序亮滅的例程如下所示:unsignedintuLedmy[12]={0x1,0x2,0x04,0x48,0x50,0x60,0x8,0x10,0x20,0x41,0x42,0x44};voidmain(void){intnCount; InitSysCtrl(); InitXintf16Gpio(); CTRGR=0x80; //初始化ICETEK-CTR CTRGR=0x0; CTRGR=0x80; CTRLR=0; //關(guān)閉東西方向的交通燈 CTRLR=0x40; //關(guān)閉南北方向的交通燈 nCount=0; for(;;) { *(int*)0x208007=uLedmy[nCount]; //設(shè)置指示燈狀態(tài) nCount++;nCount%=12; Delay(512); }}2.液晶顯示器控制顯示液晶顯示模塊的訪問、控制是由28335ADSP對擴展接口的操作完成。控制口的尋址:命令控制接口的地址為0x208001,數(shù)據(jù)控制接口的地址為0x208003和0x208004,輔助控制接口的地址為0x208002。液晶顯示模塊中有兩片顯示緩沖存儲器,分別對應(yīng)屏幕顯示的象素,向其中寫入數(shù)值將改變顯示,寫入“1”則顯示一點,寫入“0”則不顯示。液晶屏是64*64點陣的,一個基本字符占用8*8點陣。其地址與象素的對應(yīng)方式如下:列左側(cè)顯示內(nèi)存右側(cè)顯示內(nèi)存01…6301…63行0DB0DB0DB0DB0DB0DB01DB1DB1DB1DB1DB1DB1…7DB7DB7DB7DB7DB7DB78DB0DB0DB0DB0DB0DB09DB1DB1DB1DB1DB1DB1…15DB7DB7DB7DB7DB7DB7……63發(fā)送控制命令:向液晶顯示模塊發(fā)送控制命令的方法是通過向命令控制接口寫入命令控制字,然后再向輔助控制接口寫入0。下面給出的是基本命令字、解釋和C語言控制語句舉例:顯示開關(guān):0x3f打開顯示;0x3e關(guān)閉顯示;設(shè)置顯示起始行:0x0c0+起始行取值,其中起始行取值為0至63;設(shè)置操作頁:0x0b8+頁號,其中頁號取值為0-7;設(shè)置操作列:0x40+列號,其中列號為取值為0-63;寫顯示數(shù)據(jù):在使用命令控制字選擇操作位置(頁數(shù)、列數(shù))之后,可以將待顯示的數(shù)據(jù)寫入液晶顯示模塊的緩存。將數(shù)據(jù)發(fā)送到相應(yīng)數(shù)據(jù)控制I/O接口即可。3.鍵盤輸入鍵盤的掃描碼由DSP的擴展地址0x208001給出,當(dāng)有鍵盤輸入時,讀此端口得到掃描碼,當(dāng)無鍵被按下時讀此端口的結(jié)果為0。各按鍵的掃描碼排列如下所示(scancode.h)。#defineSCANCODE_00x70#defineSCANCODE_10x69#defineSCANCODE_20x72#defineSCANCODE_30x7A#defineSCANCODE_40x6B#defineSCANCODE_50x73#defineSCANCODE_60x74#defineSCANCODE_70x6C#defineSCANCODE_80x75#defineSCANCODE_90x7D#defineSCANCODE_Del0x49#defineSCANCODE_Enter0x5A#defineSCANCODE_Plus0x79#defineSCANCODE_Minus0x7B#defineSCANCODE_Mult0x7CdefineSCANCODE_Divid0x4A#defineSCANCODE_Num0x77四.實驗步驟1.打開例程“Lab402-Ledarray”工程,編譯運行,觀察交通燈流水亮滅。實驗程序:#defineLCDDELAY1#defineLCDCMDTURNON0x3f#defineLCDCMDTURNOFF0x3e#defineLCDCMDSTARTLINE0xc0#defineLCDCMDPAGE0xb8#defineLCDCMDVERADDRESS0x40#defineCTRGR*(int*)0x208000#defineCTRLCDCMDR*(int*)0x208001#defineCTRKEY*(int*)0x208001#defineCTRLCDCR*(int*)0x208002#defineCTRCLKEY*(int*)0x208002#defineCTRLCDLCR*(int*)0x208003#defineCTRLCDRCR*(int*)0x208004#defineCTRLA*(int*)0x208005voidmain(void){ intnCount,nCursorCount; unsignedintnScanCode,nKeyCode; unsignedcharcKey,cOldKey; unsignedintnSpeed;InitSysCtrl();InitXintf16Gpio(); CTRGR=0x80; //初始化ICETEK-CTR CTRGR=0x0; CTRGR=0x80; CTRLR=0; //關(guān)閉東西方向的交通燈 CTRLR=0x40; //關(guān)閉南北方向的交通燈 CTRLR=0xc1; uPort8000=CTRLCDCR; //清鍵盤緩沖區(qū) RefreshLEDArray(); nCount=nCursorCount=0; /**************************************************************************************Task1:編寫一段循環(huán)程序,用交通燈實現(xiàn)流水點亮,可利用本程序中的Delay()函數(shù)**************************************************************************************/ for(;;) { CTRLR=uLedmy[nCount]; //設(shè)置指示燈狀態(tài) nCount++; nCount%=12; Delay(1024);} } 2.打開例程“Lab405-lcd”工程,編譯運行,可以觀察到液晶屏左側(cè)頂部第一個8*8單元顯示從0到9的計數(shù)單字符。實驗程序:unsignedcharledkey[10][8]={ {0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0 {0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1 {0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2 {0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00}, {0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00}, {0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00}, {0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00}, {0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00}, {0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00}, {0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}};for(;;){ for(j=0;j<10;j++){ CTRLCDCMDR=LCDCMDPAGE; //設(shè)置操作頁=0 Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); CTRLCDCMDR=LCDCMDVERADDRESS; //起始列=0 Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); for(i=0;i<8;i++) { /*********************************************************************** Task:推算ledkey數(shù)組值的含義;給屏幕左側(cè)第1至8行第i列賦值。另外,可利用變量nBW來控制背景/前景色取反;即:CTRLCDLCR= **********************************************************************/ CTRLCDLCR=ledkey[j][i]; Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); } Delay(4096);//延時子程序 nCount++; if(nCount==10) { nCount=0; nBW=1-nBW; }}}3.打開例程“Lab404-key”工程,編譯運行,可以觀察到發(fā)光二極管陣列顯示鍵盤輸入字符。實驗程序:/**************************************************************************************Task2:完善如下一段循環(huán)程序,查詢小鍵盤,用按鍵點亮對應(yīng)的交通燈,例如按下“1”點亮左交通燈的紅燈提示:用cOldKey和cKey變量分別保存上次鍵值和本次鍵值**************************************************************************************/ for(;;){ nScanCode=CTRLCDCMDR; nScanCode&=0x0ff; uPort8000=CTRLCDCR; if(nScanCode!=0){cOldKey=cKey; cKey=nScanCode; if(cOldKey!=cKey) {CTRLR=0x40; //關(guān)閉南北方向的交通燈 CTRLR=0;; CTRLR=uLedmy[cKey];} } Delay(25);} 五.問題與思考1.修改例程“Lab405-lcd”工程,使得液晶屏右側(cè)頂部第一個8*8單元顯示從0到9的計數(shù)單字符。實驗程序:for(;;){ for(j=0;j<10;j++){ CTRLCDCMDR=LCDCMDPAGE; //設(shè)置操作頁=0 Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); CTRLCDCMDR=LCDCMDVERADDRESS; //起始列=0 Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); for(i=0;i<8;i++) { /*********************************************************************** Task:推算ledkey數(shù)組值的含義;給屏幕右側(cè)第1至8行第i列賦值。另外,可利用變量nBW來控制背景/前景色取反;即:CTRLCDRCR= **********************************************************************/ CTRLCDRCR=ledkey[j][i]; Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); } Delay(4096);//延時子程序 nCount++; if(nCount==10) { nCount=0; nBW=1-nBW; }}}2.結(jié)合例程“Lab405-lcd”與“Lab404-key”,更改程序中對液晶屏頁、列的設(shè)置,實現(xiàn)不同位置的顯示,顯示鍵盤按鍵結(jié)果1-9數(shù)字。實驗程序:for(;;){ CTRLCDCMDR=0xb9; //設(shè)置操作頁=1 Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); CTRLCDCMDR=0x50; //起始列=16 Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); nScanCode=CTRLCDCMDR; nScanCode&=0x0ff; uPort8000=CTRLCDCR; if(nScanCode!=0) { cOldKey=cKey; cKey=nScanCode; if(cOldKey!=cKey) { LCDCLS(); for(i=0;i<8;i++) { CTRLCDRCR=ledkey[nScanCode][i]; Delay(LCDDELAY); CTRLCDCR=0; Delay(LCDDELAY); } Delay(4096);//延時子程序 } } Delay(25); nCount++; if(nCount==10) { nCount=0; nBW=1-nBW; }} 六、實驗總結(jié)1.給控制寄存器CTRLCDCMDR寫不同的數(shù)值功能不同:例如: 顯示開關(guān):0x3f打開顯示;0x3e關(guān)閉顯示;CTRLCDCMDR=0x3f;CTRLCDCR=0;//將液晶顯示打開CTRLCDCMDR=0x3e;CTRLCDCR=0;//將液晶顯示關(guān)閉設(shè)置顯示起始行:0x0c0+起始行取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 螺紋滾絲機操作規(guī)程有哪些(4篇)
- 2024至2030年中國環(huán)己基苯基甲酮數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國工藝柜門行業(yè)投資前景及策略咨詢研究報告
- 2024年鋼索懸掛輸送機項目可行性研究報告
- 第一章 第4節(jié) 速度的測量2024-2025學(xué)年新教材八年級上冊物理新說課稿(人教版2024)
- Unit4 Customs and Traditions Moving Forward說課稿-2024-2025學(xué)年高中英語上外版必修第一冊
- 幼兒園安吉游戲活動心得范文(6篇)
- 林業(yè)車輛輪胎翻新用胎面市場發(fā)展預(yù)測和趨勢分析
- 含藥物的口腔護理制劑市場需求與消費特點分析
- 系狗帶相關(guān)項目建議書
- 裝飾裝修工程售后服務(wù)具體措施
- 乙炔發(fā)生器、電石庫安全檢查表
- 克拉申監(jiān)控理論述評
- ICH技術(shù)指導(dǎo)原則概述
- (完整版)一年級家長會PPT模板
- 《中華商業(yè)文化》第七章
- 15D503利用建筑物金屬體做防雷及接地裝置安裝圖集
- 消防訓(xùn)練工作研討材料
- 第六章-機車轉(zhuǎn)向架課件
- 醫(yī)患雙方權(quán)利和義務(wù)課件
- 高三年級班級成績分析報告
評論
0/150
提交評論