基于ARM7LCD顯示電路仿真課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于ARM7LCD顯示電路仿真課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于ARM7LCD顯示電路仿真課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于ARM7LCD顯示電路仿真課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于ARM7LCD顯示電路仿真課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄 ARM課程設(shè)計(jì)報(bào)告題 目:基于ARM7的LCD顯示電路仿真學(xué) 院:計(jì)算機(jī)科學(xué)與工程學(xué)院專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí): 學(xué) 號(hào): 姓 名: 導(dǎo) 師: 日 期:2014.12.29-2015.01.08目錄 一 系統(tǒng)背景簡(jiǎn)介1二 芯片介紹12.1芯片LPC2104簡(jiǎn)介12.1.1 LPC2104的特性22.2 芯片LM016L簡(jiǎn)介32.2.1液晶顯示原理32.2.2 LCD相關(guān)參數(shù)3三 軟件選擇53.1 Proteus Version 7.0簡(jiǎn)介53.2 RealView MDK簡(jiǎn)介63.2.1 RealView MDK的特點(diǎn)6四 課程設(shè)計(jì)74.1 電路設(shè)計(jì)74.1.1 Proteus創(chuàng)建

2、工程步驟74.1.2 元件選擇84.1.3 電路效果圖104.2 程序設(shè)計(jì)114.2.1 RealView MDK創(chuàng)建工程過(guò)程114.2.2 流程圖134.2.3 功能函數(shù)134.2.4 主函數(shù)15五 問(wèn)題與處理16六 設(shè)計(jì)結(jié)果166.1 編譯結(jié)果166.2 設(shè)計(jì)效果16七 心得體會(huì)17參考文獻(xiàn)19附錄20基于ARM7的LCD顯示電路仿真3基于ARM7的LCD顯示電路仿真一 系統(tǒng)背景簡(jiǎn)介近年來(lái),隨著計(jì)算機(jī)技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來(lái)越重要的作用。嵌入式系統(tǒng)無(wú)疑成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。液晶顯示器以其微功耗、體積

3、小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。通過(guò)顯示器同步顯示元器件的狀態(tài)可以更深刻地理解控制的原理。通過(guò)Proteus模擬ARM7芯片設(shè)計(jì),可以增強(qiáng)我們的自學(xué)能力和思考能力,掌握科學(xué)研究的方法,提高信息檢索的能力以及獲取與時(shí)俱進(jìn)知識(shí)的能力。同時(shí),使我們深刻學(xué)習(xí)了ARM的相關(guān)知識(shí),增強(qiáng)對(duì)實(shí)際電路的感性認(rèn)識(shí),提高了分析問(wèn)題,處理問(wèn)題的能力。運(yùn)用Keil編譯C語(yǔ)言,連接生成Hex文件,使用PROTEUS 7.0SP2仿真,選用ARM7 LPC2104 芯片和LM016L,導(dǎo)入Hex文件,然后進(jìn)行軟件仿真調(diào)試。本學(xué)期我專業(yè)開設(shè)了嵌入式系統(tǒng)課程設(shè)計(jì)這門課程

4、,是嵌入式系統(tǒng)課程的輔助教學(xué)課程。通過(guò)課程設(shè)計(jì),進(jìn)一步掌握嵌入式ARM的基本概念,結(jié)合實(shí)際的操作和設(shè)計(jì),鞏固課堂教學(xué)內(nèi)容,此外也讓我們進(jìn)一步掌握嵌入式系統(tǒng)的基本概念、原理和技術(shù),將理論與實(shí)際相結(jié)合,應(yīng)用現(xiàn)有的仿真工具和嵌入式軟件開發(fā)平臺(tái),規(guī)范、科學(xué)地完成一個(gè)小型LCD顯示電路的設(shè)計(jì)與實(shí)現(xiàn),把理論課與實(shí)驗(yàn)課所學(xué)內(nèi)容統(tǒng)一起來(lái),并在此基礎(chǔ)上強(qiáng)化實(shí)踐意識(shí)、提高其實(shí)際動(dòng)手能力和創(chuàng)新能力。二 芯片介紹2.1芯片LPC2104簡(jiǎn)介L(zhǎng)PC2104包含一個(gè)支持仿真的ARM7TDMI-S CPU、與片內(nèi)存儲(chǔ)器控制器接口的ARM7 局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI

5、外設(shè)總線(VPB ,ARMAMBA 總線的兼容超集)。LPC2104將ARM7TDMI-S配置為小端(little-endian)字節(jié)順序。 AHB外設(shè)分配了2M 字節(jié)的地址范圍,它位于 4G字節(jié)ARM存儲(chǔ)器空間的最頂端。每個(gè) AHB外設(shè)都分配了16k 字節(jié)的地址空間。LPC2104的外設(shè)功能(中斷控制器除外)都連接到VPB 總線。AHB到VPB 的橋接將VPB 總線與AHB總線相連。VPB 外設(shè)也分配了2M 字節(jié)的地址范圍,從3.5GB 地址點(diǎn)開始。每個(gè)VPB 外設(shè)在VPB 地址空間內(nèi)都分配了16k 字節(jié)地址空間。2.1.1 LPC2104的特性LPC2104擁有以下多種特性:(1)ARM7

6、TDMI-S處理器 (2)128k字節(jié)片內(nèi)Flash程序存儲(chǔ)器,具有ISP 和IAP 功能。 (3)Flash編程時(shí)間:1ms 可編程512 字節(jié),扇區(qū)擦除或整片擦除只需400ms 。 (4)64/32/16K 字節(jié)靜態(tài)RAM(LPC2104) (5)向量中斷控制器 (6)仿真跟蹤模塊,支持實(shí)時(shí)跟蹤 (7)RealMonitor模塊支持實(shí)時(shí)調(diào)試 (8)標(biāo)準(zhǔn)ARM測(cè)試/ 調(diào)試接口,兼容現(xiàn)有工具 (9)極小封裝:TQFP48 (7×7mm2) (10)雙UART,其中一個(gè)帶有完全的調(diào)制解調(diào)器接口 (11)I2C 串行接口 (12)SPI 串行接口 (13)兩個(gè)定時(shí)器,分別具有4 路捕獲/

7、 比較通道 (14)多達(dá)6 路輸出的PWM 單元 (15)實(shí)時(shí)時(shí)鐘 (16)看門狗定時(shí)器 (17)通用I/O 口 (18)CPU 操作頻率可達(dá)60MHz (19)雙電源 CPU 操作電壓范圍:1.65V1.95V(1.8V ±8.3%) I/O 電壓范圍:3.0V3.6V(3.3V ±10%) (20)兩個(gè)低功耗模式:空閑和掉電 (21)通過(guò)外部中斷將處理器從掉電模式中喚醒 (22)外設(shè)功能可單獨(dú)使能/ 禁止,實(shí)現(xiàn)功耗最優(yōu)化 (23)片內(nèi)晶振的操作頻率范圍:10MHz25MHz (24)片內(nèi)PLL 允許CPU 以最大速度運(yùn)行,可以在超過(guò)整個(gè)晶振操作頻率范圍的情況下使用。由于

8、擁有以上特性,LPC2104適用于internet 網(wǎng)關(guān)、串行通信協(xié)議轉(zhuǎn)換器、訪問(wèn)控制、工業(yè)控制、醫(yī)療設(shè)備及其它各種類型的應(yīng)用。2.2 芯片LM016L簡(jiǎn)介2.2.1液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。2.2.2 LCD相關(guān)參數(shù)(1)LM016L LCD主要技術(shù)參數(shù):顯示容量:16×2個(gè)字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳

9、工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm(2)引腳功能說(shuō)明:LM016LLCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表1所示:表2-1 引腳接口說(shuō)明表編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比

10、度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。(3)LM016LLCD的指令說(shuō)明及時(shí)序:LM016L液晶模塊內(nèi)部的控制器共有11條

11、控制指令,如表2所示:表2-2 控制命令表序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容LM016L液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:

12、1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置。 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:

13、低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址。 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。三 軟件選擇3.1 Proteus Version 7.0簡(jiǎn)介Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起

14、步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。在Proteus繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.hex(或

15、者*.axf),可以在Proteus的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。Proteus不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。3.2 RealView MDK簡(jiǎn)介RealView MDK(RealView Microcontroller Development Kit)開發(fā)套件源自德國(guó)Keil公司,被全球超過(guò)10萬(wàn)

16、的嵌入式開發(fā)工程師驗(yàn)證和使用,是ARM公司目前最新推出的針對(duì)各種嵌入式處理器的軟件開發(fā)工具。RealView MDK集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),融合了中國(guó)多數(shù)軟件開發(fā)工程師所需的特點(diǎn)和功能。包括Vision集成開發(fā)環(huán)境與 RealView編譯器,支持ARM7、ARM9和最新的Cortex-M3核處理器,自動(dòng)配置啟動(dòng)代碼,集成Flash燒寫模塊,強(qiáng)大的Simulation設(shè)備模擬,性能分析等功能。3.2.1 RealView MDK的特點(diǎn)(1)自動(dòng)生成啟動(dòng)代碼:RealView MDK開發(fā)工具可以幫您自動(dòng)生成完善的啟動(dòng)代碼,并提供圖形化的窗口,隨您輕松修改。無(wú)論對(duì)于初學(xué)者還是有經(jīng)驗(yàn)的開發(fā)工程師,都能

17、大大節(jié)省時(shí)間,提高開發(fā)效率。(2)提供軟件模擬器:RealView MDK的設(shè)備模擬器可以仿真整個(gè)目標(biāo)硬件,包括快速指令集仿真、外部 信號(hào)和I/O仿真、中斷過(guò)程仿真、片內(nèi)所有外圍設(shè)備仿真等。開發(fā)工程師在無(wú)硬件的情況下即可開始軟件開發(fā)和調(diào)試,使軟硬件開發(fā)同步進(jìn)行,大大縮短開發(fā)周期。而一般的ARM開發(fā)工具僅提供指令集模擬器,只能支持ARM內(nèi)核模擬調(diào)試。(3)提供性能分析器:RealView MDK的性能分析器可以讓工程師看得更遠(yuǎn)和更準(zhǔn),它輔助您查看代碼覆蓋情況,程序運(yùn)行時(shí)間,函數(shù)調(diào)用次數(shù)等高端控制功能,指導(dǎo)您輕松的進(jìn)行代碼優(yōu)化,成為嵌入式開發(fā)高手。通常這些功能只有價(jià)值數(shù)千美元的昂貴的Trace工具

18、才能提供。(4)支持Cortex-M3:RealView MDK支持的Cortex-M3核是ARM公司最新推出的針對(duì)微控制器應(yīng)用的內(nèi)核,它提供業(yè)領(lǐng)先的高性能和低成本的解決方案,未來(lái)幾年將成為MCU應(yīng)用的熱點(diǎn)和主流。目前國(guó)內(nèi)只有ARM公司的MDK和RVDS開發(fā)工具可以支持CortexM3芯片的應(yīng)用開發(fā)。四 課程設(shè)計(jì)4.1 電路設(shè)計(jì)4.1.1 Proteus創(chuàng)建工程步驟打開ISIS 7 Professional軟件,單擊鼠標(biāo)左鍵新建New File(From Default Template)如圖4-1工程新建顯示位置框圖所示。圖4-1 工程新建顯示位置框圖然后點(diǎn)擊保存Save Design,如圖

19、4-2工程保存顯示位置框圖所示。圖4-2工程保存顯示位置框圖彈出對(duì)話框,選擇你已經(jīng)建好的文件夾,在這里我的文件夾已經(jīng)建好,起的名字叫LCD_DSN,然后再給項(xiàng)目起個(gè)名字也叫LCD_DSN,最后點(diǎn)擊確定。如圖4-3 保存位置選擇框圖所示圖4-3保存位置選擇框圖4.1.2 元件選擇現(xiàn)在就可以進(jìn)行電路圖的制作了?,F(xiàn)在我們來(lái)畫電路圖,先點(diǎn)擊左側(cè)的Component Mode,如圖4-4模塊組件框圖所示。圖4-4模塊組件框圖然后雙擊下方空白處,就會(huì)彈出一個(gè)Pick Devices對(duì)話框,如圖4-5元器件選擇框圖所示。圖4-5元器件選擇框圖然后在Keywords下的空格中搜索LM016L,在右邊的窗口中雙

20、擊相應(yīng)的LM016L元器件,即可加入到元器件模板中。同理可加入LPC2104元器件。如圖4-6元器件添加框圖所示。圖4-6元器件添加框圖單擊選中元器件LM016L,在右窗體中單擊鼠標(biāo)左鍵,確定元器件想要放的位置,然后再次單擊鼠標(biāo)左鍵。元器件即可出現(xiàn)在所想要放置的位置上。同理放置元器件LPC2104。完成后如圖4-7元器件擺放顯示框圖所示。圖4-7元器件擺放顯示框圖LM016L芯片可以用于顯示兩行,每行十六個(gè)字符,可以是字母、數(shù)字和簡(jiǎn)單日文。芯片工作電壓:4.55.5V,工作電流:2.0mA(5.0V),模塊最佳工作電壓:5.0V,字符尺寸:2.95×4.35(W×H)mm。

21、4.1.3 電路效果圖系統(tǒng)電路圖如圖4-8系統(tǒng)電路圖所示。圖4-8 系統(tǒng)電路圖電路元件LPC2104通過(guò)P0.0P0.10和LM016L連接起來(lái)。其中,P0.0P0.7是用來(lái)傳送數(shù)據(jù)、地址和控制信號(hào)指令,至于什么時(shí)候傳數(shù)據(jù)、地址和控制信號(hào)指令,用P0.8P0.10來(lái)進(jìn)行選擇。4.2 程序設(shè)計(jì)4.2.1 RealView MDK創(chuàng)建工程過(guò)程打開Keil uVision4軟件,單擊菜單項(xiàng)Project中的New uVision Project項(xiàng),如圖4-9工程新建指示框圖所示。圖4-9工程新建指示框圖然后彈出對(duì)話窗Create New Project,選擇已新建好的文件夾,文件夾名為L(zhǎng)CD_PRO

22、,然后再建工程名為L(zhǎng)CD_PRO,點(diǎn)擊保存。如圖4-10工程新建位置框圖所示。圖4-10工程新建位置框圖然后彈出對(duì)話框Select Device For Target,選擇飛利浦公司的LPC2104芯片,點(diǎn)擊確認(rèn),并加載啟動(dòng)代碼。如圖4-11芯片仿真選擇框圖所示圖4-11芯片仿真選擇框圖注意,在完成工程的建立以后,單擊鼠標(biāo)右鍵點(diǎn)工程,選擇Options for Target LCDTarget,在彈出的對(duì)話框中,選擇Output選項(xiàng)卡,將Create HEX file選中,并點(diǎn)擊Select Folder for Object選擇你生成的文件所要放置的目錄中。如圖4-12選項(xiàng)設(shè)置框圖所示。圖4

23、-12選項(xiàng)設(shè)置框圖圖4-13運(yùn)行框圖4.2.2 流程圖開 始LCD初始化延時(shí) 設(shè)第一行顯示位置 顯示第一行內(nèi)容 設(shè)第二行顯示位置 顯示第二行內(nèi)容 否 是 結(jié)束 4.2.3 功能函數(shù)在程序中我使用了幾個(gè)功能函數(shù),函數(shù)如下:函數(shù)名稱:ChkBusy(),函數(shù)主要功能:檢查總線是否忙void ChkBusy() IODIR=0x700; /先設(shè)置方向使P0.8P0.10輸出,使P0.0P0.7輸入while(1) /循環(huán)語(yǔ)句IOCLR=rs;/選擇IOSET=rw;/選擇讀方式IOSET=en; if(!(IOPIN & busy)break;IOCLR=en;IODIR=0x7ff;/*函

24、數(shù)名稱:WrOp(),函數(shù)功能為:寫指令函數(shù)void WrOp(uint8 dat) ChkBusy();/檢查L(zhǎng)CD是否繁忙IOCLR=rs;/全部清零IOCLR=rw;/設(shè)置讀寫方式為讀IOCLR=0xff;/先清零IOSET=dat;/再送數(shù)IOSET=en;/使能,讓置位寄存器開始工作IOCLR=en;/使能,讓清零寄存器開始工作函數(shù)名稱:WrDat(),函數(shù)功能為:寫數(shù)據(jù)函數(shù)void WrDat(uint8 dat)ChkBusy();/檢查L(zhǎng)CD是否繁忙IOSET=rs;/置位控制選擇IOCLR=rw;/清零寄存器選擇讀IOCLR=0xff;/先清零IOSET=dat;/再送數(shù)IO

25、SET=en;/使能,讓置位寄存器開始工作IOCLR=en;/使能,讓清零寄存器開始工作函數(shù)名稱:lcd_init(),函數(shù)功能為:lcd初始化函數(shù)void lcd_init(void) WrOp(0x38);WrOp(0x06);/光標(biāo)加1WrOp(0x0c);/開顯示函數(shù)名稱:DisText(),函數(shù)功能為:顯示文本函數(shù)void DisText(uint8 addr,uint8 *p) int a = 16; /定義一個(gè)變量WrOp(0x80);/告訴LCD從0x80地址開始while(a-)WrDat('0'); /將數(shù)據(jù)重新刷一遍,清空WrOp(addr);/告訴LCD

26、要寫數(shù)據(jù)的起始地址while(*p !='0')WrDat(*(p+); /從起始地址開始,將數(shù)據(jù)一個(gè)字符一個(gè)字符寫入函數(shù)名稱:time(),函數(shù)功能為:延時(shí)void time() int i = 100000;for(;i >= 0; i-);4.2.4 主函數(shù)函數(shù)名稱:main(),函數(shù)功能為:顯示文本int main(void) int i;uint8 *p=" 16"," 3116 "," 603116 "," 10603116 "," 110603116 ",&q

27、uot; 110603116 "," 110603116 "," 110603116 ","110603116 ","Sh "," ShiS "," ShiSha "," ShiShaoC "," ShiShaoChu "," ShiShaoChun "," ShiShaoChun "," ShiShaoChun "," ShiShaoChun",

28、" ShiShaoChun"," ShiShaoChun"lcd_init();IODIR=0x7ff;/設(shè)置為輸出IOCLR=0x7ff;while(1) DisText(0x80,p0); for(i=0;i<0x1ffff;i+); DisText(0x80,p1); for(i=0;i<0x1ffff;i+); DisText(0x80,p2); for(i=0;i<0x1ffff;i+); DisText(0x80,p3); for(i=0;i<0x1ffff;i+); DisText(0x80,p4); for(i=0

29、;i<0x1ffff;i+); DisText(0x80,p5); for(i=0;i<0x1ffff;i+);五 問(wèn)題及處理1.在Proteus中找不到各種元器件,通過(guò)上網(wǎng)查詢,得到解決;2.在Proteus中將圖畫好時(shí),無(wú)法按設(shè)計(jì)出現(xiàn)效果,總是出現(xiàn)電源的電壓不在范圍內(nèi),先放電源,再將電源和芯片LPC2104管腳進(jìn)行相連;3.無(wú)法將姓名顯示在LCD中,通過(guò)修改、調(diào)試程序,最終解決。六 設(shè)計(jì)結(jié)果6.1 編譯結(jié)果下面是對(duì)于實(shí)驗(yàn)源程序的編譯結(jié)果。如圖5-1編譯結(jié)果顯示框圖所示。圖6-1編譯結(jié)果顯示框圖6.2 設(shè)計(jì)效果學(xué)號(hào)第一行從右到左逐個(gè)顯示,姓名第二行從左到右依次顯示,依次循環(huán)。其效

30、果如以下圖5-2所示。圖6-2 設(shè)計(jì)效果顯示框23基于ARM7的LCD顯示電路仿真七 心得體會(huì)說(shuō)實(shí)話,到目前為止所做的課設(shè)中,這次的嵌入式課設(shè)最不盡人意。剛開始毫無(wú)頭緒,即使在查閱了大量相關(guān)資料的基礎(chǔ)上。后來(lái),手上有了一份參考程序,打開一看,頓時(shí)懵了。當(dāng)時(shí)想如果純粹靠我自己或者和同學(xué)討論,恐怕很難完成這次課設(shè)吧。于是,實(shí)驗(yàn)室剛開放,我就立刻去調(diào)試程序,通過(guò)觀察試驗(yàn)箱上顯示的結(jié)果來(lái)理解程序。一個(gè)模塊一個(gè)模塊對(duì)應(yīng)的理解下去之后,思路開始清晰起來(lái)。每當(dāng)遇到一行程序不懂或者有疑問(wèn)時(shí),比如這行程序起什么作用、可不可以刪掉或者可不可以換個(gè)位置,我都通過(guò)程序的相關(guān)改動(dòng)結(jié)合實(shí)驗(yàn)結(jié)果的觀察將這些疑問(wèn)解決掉了。同

31、時(shí),同學(xué)的幫助也給了我很多的啟發(fā),非常感謝他們。但不得不承認(rèn),關(guān)于芯片LPC2014與芯片LM016L理解的很不透徹。驗(yàn)收時(shí),我只是把LCD顯示界面的構(gòu)建部分理解了,在驗(yàn)收時(shí)對(duì)于老師的提問(wèn)也是磕磕絆絆。老師讓我充分認(rèn)識(shí)到了自己在這次課設(shè)中的不足,謝謝老師。因而,在編寫這份報(bào)告前,我又認(rèn)真地上網(wǎng)搜索了好多資料。在寫這份報(bào)告時(shí),我也許還沒(méi)能完全弄懂芯片LPC2104,但我相信,只要努力過(guò),總會(huì)有收獲?;仡櫿麄€(gè)課程設(shè)計(jì)過(guò)程,感慨頗多,從理論到實(shí)踐,我學(xué)到很多東西,不僅鞏固了以前所學(xué)過(guò)的理論知識(shí),而且學(xué)到了很多在書本上學(xué)不到的東西。也更深刻得明白ARM的應(yīng)用領(lǐng)域,我們可以運(yùn)用ARM技術(shù)來(lái)做些什么。通過(guò)

32、本次課設(shè),增強(qiáng)了動(dòng)手實(shí)踐能力,也懂得了,光學(xué)習(xí)理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須把它運(yùn)用到實(shí)際中去,充分發(fā)揮所學(xué)知識(shí)的作用。通過(guò)此次LCD顯示的設(shè)計(jì),C語(yǔ)言的編程,我們開始了ARM的實(shí)際應(yīng)用的學(xué)習(xí),一方面,是我們養(yǎng)成了遵循ARM的嵌入式系統(tǒng)項(xiàng)目開發(fā)步驟的習(xí)慣;另一方面,使我們能夠利用所學(xué)的ARM的知識(shí)設(shè)計(jì)出一些簡(jiǎn)單的東西,為以后進(jìn)行更深層次的學(xué)習(xí)打下基礎(chǔ)。參考文獻(xiàn)1周立功ARM嵌入式基礎(chǔ)教程北京航空航天大學(xué)出版社2008年9月第2版;2周潤(rùn)景PROTEUS在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例電子工業(yè)出版社2006年10月第一版;3. 吳學(xué)智,基于ARM的嵌入式系統(tǒng)設(shè)計(jì)與開發(fā).人民郵電出版社

33、,2007;4. 金建設(shè),嵌入式系統(tǒng)基礎(chǔ)實(shí)驗(yàn).大連理工大學(xué)出版社,2009;5. 王曉薇,嵌入式硬件基礎(chǔ)實(shí)驗(yàn)與習(xí)題解答.電子工業(yè)出版社,2009;6. 譚會(huì)生,ARM嵌入式系統(tǒng)原理及應(yīng)用開發(fā).西安電子科技大學(xué)出版社,2012。附錄附錄/* File: main.c* 功能:向LCD輸出姓名學(xué)號(hào)*/#include "config.h"#define rs (1<<8)#define rw (1<<9)#define en (1<<10)#define busy (1<<7)/* 名稱:ChkBusy()* 功能:檢查總線是否忙

34、*/void ChkBusy()IODIR=0x700;while(1)IOCLR=rs;IOSET=rw;IOSET=en;if(!(IOPIN & busy)break;IOCLR=en;IODIR=0x7ff;/* 名稱:WrOp()* 功能:寫指令函數(shù)*/void WrOp(uint8 dat)ChkBusy();IOCLR=rs;/全部清零IOCLR=rw;IOCLR=0xff;/先清零IOSET=dat;/再送數(shù)IOSET=en;IOCLR=en;/* 名稱:WrDat()* 功能:寫數(shù)據(jù)函數(shù)*/void WrDat(uint8 dat)ChkBusy();IOSET=rs;IOCLR=rw;IOCLR=0xff;/先清零IOSET=dat;/再送數(shù)IOSET=en;IOCLR=en;/* 名稱:lcd_init()* 功能:lcd初始化函數(shù)*/void lcd_init(void)WrOp(0x38);WrOp(0x06);/光標(biāo)加1WrOp(0x0c);/開顯示/* 名稱:DisText()* 功能:顯示文本函數(shù)*/void DisText(uint8 addr,uint8 *p)WrOp(addr);while(*p !='0')WrDat(*(p+);/* 名稱:main()*

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論