嵌入式系統(tǒng)實驗報告_第1頁
嵌入式系統(tǒng)實驗報告_第2頁
嵌入式系統(tǒng)實驗報告_第3頁
嵌入式系統(tǒng)實驗報告_第4頁
嵌入式系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

XXXX大學(xué)實驗報告課程(項目)名稱:嵌入式系統(tǒng)學(xué)院:自動化專業(yè):班級:學(xué)號:姓名:成績:2014年11月2日LCD的驅(qū)動控制實驗一、 實驗?zāi)康牧私釲CD基本概念與原理。理解LCD的驅(qū)動控制。熟悉用總線方式驅(qū)動LCD模塊。熟悉用ARM內(nèi)置的LCD控制器驅(qū)動LCD。二、 實驗內(nèi)容學(xué)習(xí)LCD顯示器的基本原理,理解其驅(qū)動控制方法。掌握兩種LCD驅(qū)動方式的基本原理和方法。并用編程實現(xiàn):用總線方式直接驅(qū)動帶有驅(qū)動模塊的LCD。用ARM內(nèi)置的LCD控制器來驅(qū)動LCD。三、 預(yù)備知識用ARMADS1.2集成開發(fā)環(huán)境,編寫和調(diào)試程序的基本過程。ARM應(yīng)用程序的框架結(jié)構(gòu)。四、 實驗設(shè)備及工具硬件:ARM嵌入式開發(fā)平臺、用于ARM920T的JTAG仿真器、PC機(jī)Pentium100以上。軟件:PC機(jī)操作系統(tǒng)Win2000或WinXP、ARMADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序五、 實驗原理及說明LCD(LiquidCrystalDisplay)原理液晶得名于其物理特性:它的分子晶體,以液態(tài)存在而非固態(tài)。這些晶體分子的液體特性使得它具有兩種非常有用的特點:1、如果讓電流通過液晶層,這些分子將會以電流的流向方向進(jìn)行排列,如果沒有電流,它們將會彼此平行排列。2、如果提供了帶有細(xì)小溝槽的外層,將液晶倒入后,液晶分子會順著槽排列,并且內(nèi)層與外層以同樣的方式進(jìn)行排列。液晶的第三個特性是很神奇的:液晶層能使光線發(fā)生扭轉(zhuǎn)。液晶層表現(xiàn)的有些類似偏光器,這就意味著它能夠過濾除了那些從特殊方向射入之外的所有光線。此外,如果液晶層發(fā)生了扭轉(zhuǎn),光線將會隨之扭轉(zhuǎn),以不同的方向從另外一個面中射出。液晶的這些特點使得它可以被用來當(dāng)作一種開關(guān)一一即可以阻礙光線,也可以允許光線通過。液晶單元的底層是由細(xì)小的脊構(gòu)成的,這些脊的作用是讓分子呈平行排列。上表面也是如此,在這兩側(cè)之間的分子平行排列,不過當(dāng)上下兩個表面之間呈一定的角度時,液晶隨著兩個不同方向的表面進(jìn)行排列,就會發(fā)生扭曲。結(jié)果便是這個扭曲的螺旋層使通過的光線也發(fā)生扭曲。如果電流通過液晶,所有的分子將會按照電流的方向進(jìn)行排列,這樣就會消除光線的扭轉(zhuǎn)。如果將一個偏振濾光器放置在液晶層的上表面,扭轉(zhuǎn)的光線通速如圖A),而沒有發(fā)生扭轉(zhuǎn)的光線(如圖B)將被阻礙。因此可以通過電流的通斷改變LCD中的液晶排列,使光線在加電時射出,而不加電時被阻斷。也有某些設(shè)計為了省電的需要,有電流時,光線不能通過,沒有電流時,光線通過。

圖A加電時 圖B不加電時圖3-15光線穿過與陰斷示意圖LCD顯示器的基本原理就是通過給不同的液晶單元供電,控制其光線的通過與否,從而達(dá)到顯示的目的。因此,LCD的驅(qū)動控制歸于對每個液晶單元的通斷電的控制,每個液晶單元都對應(yīng)著一個電極,對其通電,便可使光線通過(也有剛好相反的,即不通電時光線通過,通電時光線不通過)。2.電致發(fā)光LCD的發(fā)光原理是通過控制加電與否來使光線通過或擋住,從而顯示圖形。光源的提供方式有兩種:透射式和反射式。筆記本電腦的LCD顯示屏即為透射式,屏后面有一個光源,因此外界環(huán)境可以不需要光源。而一般微控制器上使用的LCD為反射式,需要外界提供光源,靠反射光來工作。電致發(fā)光(EL)是液晶屏提供光源的一種方式。電致發(fā)光的特點是低功耗,與二極管發(fā)光比較而言體積小。!1!1川!!1!1川!1!妙|皿畫畫——明PIT履-背電£inntniiiiiinLiJiiiiii唆明ttnH——3二二二工J保護(hù)層—— 電致發(fā)光(EL)是將電能直接轉(zhuǎn)換為光能的一種發(fā)光現(xiàn)象。電致發(fā)光片是利用此原理經(jīng)過加工制作而成的一種發(fā)光薄片,如圖7-2所示。其特點是:超薄、高亮度、高效率、低功耗、低熱量、可彎曲、抗沖擊、長壽命、多種顏色選擇等。因此,電致發(fā)光片被廣泛應(yīng)用于各種領(lǐng)域。圖3-16電致發(fā)光片的基本結(jié)構(gòu)LCD的驅(qū)動控制市面上出售的LCD有兩種類型:一種是帶有驅(qū)動電路的LCD顯示模塊,這種LCD可以方便地與各種低檔單片機(jī)進(jìn)行接口,如8051系列單片機(jī),但是由于硬件驅(qū)動電路的存在,體積比較大。這種模式常常使用總線方式來驅(qū)動。另一種是LCD顯示屏,沒有驅(qū)動電路,需要與驅(qū)動電路配合使用。特點是體積小,但卻需要另外的驅(qū)動芯片。也可以使用帶有LCD驅(qū)動能力的高檔MCU驅(qū)動,如ARM系列的S3C2410X。六、實驗步驟啟動ARMJTAG仿真器并進(jìn)行初始化配置。啟動ADS1.20新建工程,將“Exp6LCD驅(qū)動控制實驗”中的文件添加到工程中。定義有關(guān)常量與宏編寫LCD初始化函數(shù)(lcd640.c),設(shè)置各功能寄存器。編寫LCD刷新函數(shù)(lcd640.c)。此函數(shù)主要是將二級緩存LCDBuffer的數(shù)據(jù)由32位彩色圖形信息轉(zhuǎn)換成16位的圖形信息,然后放到pLCDFB指向的一級緩存。轉(zhuǎn)換公式:pixcolor=((pbuf[0]&0xf8)<<11)|((pbuf[1]&0xfc)<<6)|(pbuf[2]&0xf8)。其中,pbuf[0]、pbuf[1]、pbuf[2]是一個象素的32位彩色數(shù)據(jù)的前24位,分別代表R、G、B。編寫主函數(shù)(main.c)在LCD上顯示16位色圖形的關(guān)鍵是填充二級顯示緩沖,將顯示象素的24位顏色信息寫入LCDBuffer。將RGB三種基本顏色按一定比例混合即可構(gòu)成更復(fù)雜的顏色,每個象素的三種基本顏色分別占一個字節(jié),可以方便的在程序里改寫各基本顏色的數(shù)值,從而改變該象素的混合顏色。在ADS集成開發(fā)環(huán)境中編譯、調(diào)試和運行工程程序。七、結(jié)論與收獲首對這根線很好奇,后來發(fā)現(xiàn)它的用途真的很給力1用于燒寫FLASH燒寫FLASH的軟件有很多種包括jatg.exeflutedflashpgm等等,但是所有這些軟件都是通過jtag接口來燒寫flash的,由于pc機(jī)上是沒有jtag接口的,所以利用并口來傳遞信息給目標(biāo)板的jtag接口。所以就需要并口轉(zhuǎn)jtag接口的電路。2用于調(diào)試程序同時應(yīng)該注意到j(luò)tag接口還可以用來調(diào)試程序。而調(diào)試程序(如ARM開發(fā)組件中的AXD)為了通過jtag接口去調(diào)試目標(biāo)板上的程序,同樣是使用pc的并口轉(zhuǎn)jtag接口來實現(xiàn)與目標(biāo)板的通信。這樣,并口轉(zhuǎn)jtag接口的電路就有了兩種作用。3仿真器根據(jù)1和2的總結(jié),并口轉(zhuǎn)jtag接口的電路是兩種應(yīng)用的關(guān)鍵,而這種電路在嵌入式開發(fā)中就叫仿真器。并口轉(zhuǎn)jtag接口的電路有很多種,有簡單有復(fù)雜的,常見的仿真器有

Wigger,EasyJTAG,Multi-ICE等。這些所謂的仿真器的內(nèi)部電路都是并口轉(zhuǎn)jtag接口,區(qū)別只是電路不同或使用的技術(shù)不同而已。國見皿-超級終端 -B||x1 I文件。犒輯值】吉看擅】精助w□百Scat?VIVIversion0.1.4[threewatErSLinuxServer)[gccversion2.95.220000516(releasF[R$b£lccnUMO.1.4ThuSep1611:59:47CST2904MHlIl^blo詞瓣Address=0x33DF即的Succeed■emery■apuing.HANDdeviceiMamifactureID:Bwec.ChipID:0x73(Sftnsui^KM29U128T)Poundsav&dviuip^rcita^ters.K'ressReturntcstarttheLINUXnow.anyotherkevforvivitype"help"forhelp.viwi>_對超級終端的作用的理解超級終端是一個通用的串行交互軟件,很多嵌入式應(yīng)用的系統(tǒng)有與之交換的相應(yīng)程序,通過這些程序,可以通過超級終端與嵌入式系統(tǒng)交互,使超級終端成為嵌入式系統(tǒng)的“顯示奠,,右器O消息循環(huán)通常在多任務(wù)操作系統(tǒng)中,任務(wù)之間的通訊是通過發(fā)送消息來實現(xiàn)的。消息隊列是uCOS-II操作系統(tǒng)的一種通信機(jī)制,它可以使一個任務(wù)或者中斷服務(wù)程序向另一個任務(wù)發(fā)送以指針方式定義的變量。uCOS-II操作系統(tǒng)提供了若干對消息隊列進(jìn)行操作的函數(shù),例如OSQCreate(),OSQPend(),OSQPost()等,都定義在OS_Q.C中。但是,在將uCOS-II移植到本ARM嵌入式開發(fā)平臺時,對消息隊列相關(guān)函數(shù)又作了提高,使得程序中對消息隊列的使用變得更加簡單易行。請參考附錄API函數(shù)系統(tǒng)消息部分,開發(fā)平臺的消息隊列相關(guān)函數(shù)定義在OSMessage.h中。程序中可以用OSCreateMessage()函數(shù)為某個控件創(chuàng)建消息,用SendMessage()函數(shù)將該消息發(fā)送到消息隊列中,用 WaitMessage()函數(shù)等待消息,用DeleteMessage()函數(shù)刪除消息。消息的數(shù)據(jù)結(jié)構(gòu)定義如下:typedefstruct{POS_CtrlpOSCtrl; //消息所發(fā)到的窗口(控件),為NULL時指桌面U32Message; //消息類型U32WParam; //消息參數(shù)U32LParam;}OSMSG,*POSMSG;//U32LParam;}OSMSG,*POSMSG;下面是平臺的基本消息類型定義:#defineOSM_KEY1//鍵盤消息#defineOSM_TOUCH_SCREEN2//觸摸屏消息#defineOSM_SERIAL100//串口收到數(shù)據(jù)的消息#defineOSM_LISTCTRL_SELCHANGE1001//列表框的選擇被改變的消息#defineOSM_LISTCTRL_SELDBCLICK1002//列表框的選擇雙擊消息#defineOSM_BUTTON_CLICK1003//單擊按鈕消息下面是各基本消息類型的參數(shù)說明:MessageWParamLParamOSM_KEY鍵盤掃描碼OSM_TOUCH_SCREEN低16位=觸摸點x坐標(biāo)值高16位=觸摸點y坐標(biāo)值觸摸動作OSM_LISTCTRL_SELCHANGECtrlIDCurrentSelOSM_LISTCTRL_SELDBCLICKCtrlIDCurrentSelOSM_BUTTON_CLICKCtrlID對于鍵盤消息來說其類型pMsg->Message=OSM_KEY,參數(shù)pMsg->WParam則是按鍵的鍵碼(pMsg是指向該消息結(jié)構(gòu)體的指針)。鍵盤消息是由鍵盤掃描任務(wù)(voidKey_Scan_Task(void*Id))創(chuàng)建并發(fā)送到系統(tǒng)的消息隊列,鍵盤掃描任務(wù)用函數(shù)KeyBoard_Read()從IIC的數(shù)據(jù)收發(fā)移位寄存器中獲得鍵盤掃描碼,這個掃描碼是由ATMEGA8當(dāng)有鍵盤按下時發(fā)送到IIC的數(shù)據(jù)收發(fā)移位寄存器的。主任務(wù)由消息隊列中得到消息。staticvoidKey_Scan_Task(void*Id)(U32key;INT8Uerr;POSMSGpmsg;printk("beginkeytask\n");for(;;){OS_FLAGSflag;flag=OSFlagPend(Input_Flag,UCOS2_KBINPUT,OS_FLAG_WAIT_SET_ANY,0,&err);OSFlagPost(Input_Flag,flag,OS_FLAG_CLR,&err);key=KeyBoard_Read(0,FALSE);if(key==-1)continue;pmsg=OSCreateMessage(NULL,OSM_KEY,key,0);if(pmsg)SendMessage(pmsg);}}所謂的系統(tǒng)消息循環(huán)如下圖所示:函敢響應(yīng)淚總 古圖15-1應(yīng)用程序在Main_Task任務(wù)中等待消息,并對該消息進(jìn)行判斷和處理,如果是鍵盤消息則提取出鍵碼,變換為對應(yīng)字符,然后將其顯示到液晶屏上。在圖形模式下,液晶屏的文字輸出函數(shù)是TextOut(),實際是通過在圖形方式下繪圖完成文字顯示的。此函數(shù)輸出的字符數(shù)組必須是基于雙字節(jié)Unicode編碼的。在程序中可以使用Int2Unicode()和strChar2Unicode()兩個函數(shù)分別將整形數(shù)或ASCII字符轉(zhuǎn)換為Unicode字符串。這部分內(nèi)容請參考附錄API函數(shù),在Ustring.h定義。文件的使用uCOS-II操作系統(tǒng)本身并沒有文件系統(tǒng),不支持文件相關(guān)的管理功能。在將uCOS-II操作系統(tǒng)移植到ARM嵌入式開發(fā)平臺時參考YAFFS(yetanotherFlashFileSystem)為該系統(tǒng)擴(kuò)展了一個簡單的文件系統(tǒng),從而使該操作系統(tǒng)功能更強(qiáng)大,也符合實際嵌入式產(chǎn)品開發(fā)的需要。開發(fā)平臺的硬件中有一片容量至少64M的NANDFLASH存儲芯片作為嵌入式設(shè)備的固態(tài)數(shù)據(jù)存儲器,或稱為電子硬盤。該存儲器由文件系統(tǒng)管理,在文件系統(tǒng)的功能函數(shù)與FLASH芯片之間有相關(guān)驅(qū)動程序?qū)崿F(xiàn)高層系統(tǒng)功能和底層具體硬件的數(shù)據(jù)交換。YAFFS是一個專為Nandflash設(shè)計的文件系統(tǒng),不同的文件系統(tǒng)提供不同的訪問方式對于各種flash類型。nor型flash和nandflash的約束條件是不同的,很容易使人產(chǎn)生錯覺是適用于norflash的文件系統(tǒng)同樣也適用于nandflash,這是一個誤區(qū)。nandflash設(shè)備驅(qū)動,經(jīng)常使用fat格式的文件系統(tǒng)。fat文件系統(tǒng)不很健壯,也不適用于flash。塊驅(qū)動提供邏輯層到物理層的映射來模擬可重寫的磁盤扇區(qū)。與所有的fat文件系統(tǒng)類似,他們?nèi)菀妆罎?。JFFS和JFFS2對norflash的支持很好。他們都是基于日志文件系統(tǒng)的。因此更為健壯。這對嵌入式系統(tǒng)來說很重要。JFFS的缺點是引導(dǎo)的flash檢測時間較長,文件系統(tǒng)對ram的占用較多。而YAFFS文件系統(tǒng)就克服了以上的缺點。因此他:專為NAND設(shè)計,系統(tǒng)健壯節(jié)省ram,啟動時間短。YAFFS文件描述的文件的單位是chunks,相當(dāng)與page(ie.512bytes)。每頁都提供了文件ID和chunk號。這些標(biāo)記保存在flash的帶外空間。當(dāng)文件中的數(shù)據(jù)被重寫的時候,相應(yīng)的chunks就會被新的具有相同tag標(biāo)記的內(nèi)容所替代。而原有的tag就會標(biāo)記為“過期”。文件頭單獨保存為一頁。標(biāo)識與數(shù)據(jù)頁不同。每個頁還具有一個短的(2位的)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論