ARM課程設(shè)計_LCD顯示24_第1頁
ARM課程設(shè)計_LCD顯示24_第2頁
ARM課程設(shè)計_LCD顯示24_第3頁
ARM課程設(shè)計_LCD顯示24_第4頁
ARM課程設(shè)計_LCD顯示24_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 西 安 工 業(yè) 大 學(xué) 課 程 設(shè) 計 報 告 嵌入式系統(tǒng)開發(fā)與應(yīng)用課程設(shè)計 班 級: 090615 學(xué) 號: XXXXXXXXXX 姓 名: XXX 指導(dǎo)老師: 郭軍團 計算機科學(xué)與技術(shù)系 2012年11月15日前言11.系統(tǒng)設(shè)計11.1涉及的軟硬件簡介11.1.1 Proteus 7.8簡介11.1.2 RVDS簡介11.1.3 芯片LPC2106簡介11.2.1 LCD特點21.2.2 LCD顯示簡介31.2.3 LCD顯示流程圖31.2.4 LCD相關(guān)參數(shù)41.3 Proteus仿真電路81.3.1 Proteus仿真元件清單81.3.2 Proteus仿真電路圖截圖8 1.4 程序

2、代碼分模塊介紹82.實驗(測試)結(jié)果183.總結(jié)19參考文獻20后附資料2121 前言近年來,隨著計算機技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。通過顯示器同步顯示元器件的狀態(tài)可以更深刻地理解控制的原理。通過Proteus模擬ARM7芯片設(shè)計,可以增強我們的自學(xué)能力和思考能力,掌握科學(xué)研究的方法,提高信息檢索的能力以及獲取與時俱進知識的能力。同時,使我們深刻

3、學(xué)習(xí)了ARM的相關(guān)知識,增強對實際電路的感性認識,提高了分析問題,處理問題的能力。運用Keil編譯C語言,連接生成Hex文件和Axf文件。使用PROTEUS 7.8SP2仿真,選用ARM7 LPC2106 芯片和LCD1602,導(dǎo)入Hex或文件,然后進行軟件仿真調(diào)試。1.系統(tǒng)設(shè)計 1.1涉及的軟硬件簡介 設(shè)計中軟件主要用到了模型仿真軟件Proteus和編譯套件RVDS(RealView Development Suite),硬件主要采用了NXP公司的LPC2106微控制器。 1.1.1 Proteus 7.8簡介Proteus軟件是英國Labcenter electronics公司出版的EDA

4、工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等

5、。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。在Proteus繪制好原理圖后,調(diào)入已編譯好的目標代碼文件:*.hex(或者*.axf),可以在Proteus的原理圖中看到模擬的實物運行狀態(tài)和過程。Proteus不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應(yīng)。這在相當程度上替代了傳統(tǒng)的單片機實驗教學(xué)的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運行結(jié)果等。 1.1.2 RVDS簡介RealView Deve

6、lopment Suite(RVDS)是ARM公司繼SDT與ADS1.2之后主推的新一代開發(fā)工具。RVDS集成的RVCT是業(yè)內(nèi)公認的能夠支持所有ARM處理器,并提供最好的執(zhí)行性能的編譯器。RealView Developer Suite 支持所有 ARM 系列核心,并與眾多第三方實時操作系統(tǒng)及工具商合作簡化開發(fā)流程。RVDS包含有四個模塊: (1)IDE:RVDS中集成了Eclipse IDE,用于代碼的編輯和管理。支持語句高亮和多顏色顯示,以工程的方式管理代碼,支持第三方Eclipse功能插件。 (2)RVCT:RVCT是業(yè)界最優(yōu)秀的編譯器,支持全系列的ARM和XSCALE架構(gòu),支持匯編、C

7、和C+。 (3)RVD:是RVDS中的調(diào)試軟件,功能強大,支持Flash燒寫和多核調(diào)試,支持多種調(diào)試手段,快速錯誤定位。 (4)RVISS:是指令集仿真器,支持外設(shè)虛擬,可以使軟件開發(fā)和硬件開發(fā)同步進行,同時可以分析代碼性能,加快軟件開發(fā)速度。RVDS具有代碼小執(zhí)行效率高、支持Linux操作系統(tǒng)、調(diào)試功能強大、可虛擬外設(shè)等優(yōu)點,同時還具有內(nèi)容豐富的在線文檔。 1.1.3 芯片LPC2106簡介LPC2106/2105/2104 包含一個支持仿真的ARM7TDMI-S CPU、與片內(nèi)存儲器控制器接口的ARM7 局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI外

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

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

10、多達6 路輸出的PWM 單元 u 實時時鐘 u 看門狗定時器 u 通用I/O 口 u CPU 操作頻率可達60MHz u 雙電源 CPU 操作電壓范圍:1.65V1.95V(1.8V ±8.3%) I/O 電壓范圍:3.0V3.6V(3.3V ±10%) u 兩個低功耗模式:空閑和掉電 u 通過外部中斷將處理器從掉電模式中喚醒 u 外設(shè)功能可單獨使能/ 禁止,實現(xiàn)功耗最優(yōu)化 u 片內(nèi)晶振的操作頻率范圍:10MHz25MHz u 片內(nèi)PLL 允許CPU 以最大速度運行,可以在超過整個晶振操作頻率范圍的情況下使用。由于擁有以上特性,LPC2106適用于nternet 網(wǎng)關(guān)、串行

11、通信協(xié)議轉(zhuǎn)換器、訪問控制、工業(yè)控制、醫(yī)療設(shè)備及其它各種類型的應(yīng)用。 1.2 LCD顯示原理和初始化流程圖 1.2.1 LCD特點在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管和LED數(shù)碼管比較常用,軟硬件都比較簡單,在前面章節(jié)已經(jīng)介紹過,在此不作介紹,本章重點介紹字符型液晶顯示器的應(yīng)用。 在單片機系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個優(yōu)點:u 顯示質(zhì)量高由于液晶顯示器每一個

12、點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質(zhì)高且不會閃爍。u 數(shù)字式接口液晶顯示器都是數(shù)字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。u 體積小、重量輕液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。u 功耗低相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。 1.2.2 LCD顯示簡介 液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶

13、顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領(lǐng)域。 液晶顯示器的分類液晶顯示的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動方式來分,可以分為靜態(tài)驅(qū)動(Static)、單純矩陣驅(qū)動(Simple Matrix)和主動矩陣驅(qū)動(Active Matrix)三種。液晶顯示器各種圖形的顯示原理:u 線段的顯示點陣圖形式液晶由M×N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每

14、行由16字節(jié),共16×8=128個點組成,屏上64×16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。u 字符的顯示用LCD顯示一個字符時比較復(fù)雜

15、,因為一個字符由6×8或8×8點陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標,在此送上該字符對應(yīng)的代碼即可。u 漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機中提取要顯示的漢字的點陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6根據(jù)在LC

16、D上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應(yīng)的地址,設(shè)立光標,送上要顯示的漢字的第一字節(jié),光標位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)直到32B顯示完就可以LCD上得到一個完整漢字。1.2.3 LCD顯示流程圖LCD顯示流程圖如下圖所示:1.2.4 LCD相關(guān)參數(shù)u 1602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖所示:u 1602LCD主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最

17、佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mmu 引腳功能說明1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼

18、影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。u 1602LCD的指令說明及時序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如下表所示:序號指令RSR/WD

19、7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復(fù)位到地

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

21、字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。 與HD44780相兼容的芯片時序表如下所示:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無讀寫操作時序如下圖所示:讀操作時序圖寫操作時序圖u 1602L

22、CD的RAM地址映射及標準字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,下圖所示為1602的內(nèi)部顯示地址。例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工

23、干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,如圖10-58所示,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”u 1602LCD的一般初始化(復(fù)位)過程延時15mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指

24、令38H:顯示模式設(shè)置寫指令08H:顯示關(guān)閉寫指令01H:顯示清屏寫指令06H:顯示光標移動設(shè)置寫指令0CH:顯示開及光標設(shè)置 1.3 Proteus仿真電路 使用Proteus進行仿真電路設(shè)計,下面依次介紹仿真細節(jié)。 1.3.1 Proteus仿真元件清單元件名稱規(guī)格型號單位數(shù)量ARM7芯片LPC2106片1LCD1602LM016L個1瓷片電容CAP-ELEC個1電源+3.3V個1電源+1.8V個1電阻10K歐姆只2 1.3.2 Proteus仿真電路圖截圖 1.4 程序代碼分模塊介紹實驗的C語言程序代碼如下所示(附注釋):/main.c/* File: main.c* 功能:向LCD輸出

25、HelloWorld*/#include "config.h"#define rs (1<<8)#define rw (1<<9)#define en (1<<10)#define busy (1<<7)uint8 txt="HelloWorld"/* 名稱:ChkBusy()* 功能:檢查總線是否忙*/void ChkBusy()IODIR=0x700;while(1)IOCLR=rs;IOSET=rw;IOSET=en;if(!(IOPIN & busy)break;IOCLR=en;IODIR

26、=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)

27、WrOp(0x38);WrOp(0x06);/光標加1WrOp(0x0c);/開顯示/* 名稱:DisText()* 功能:顯示文本函數(shù)*/void DisText(uint8 addr,uint8 *p)WrOp(addr);while(*p !='0')WrDat(*(p+);/* 名稱:main()* 功能:顯示文本*/int main(void) lcd_init();IODIR=0x7ff;/設(shè)置為輸出IOCLR=0x7ff;DisText(0x86,txt);while(1);/LPC2106.h/* External Interrupts */* 外部中斷控制寄存

28、器 */#define EXTINT (*(volatile unsigned char *) 0xE01FC140)/外部中斷標志寄存器#define EXTWAKE (*(volatile unsigned char *) 0xE01FC144)/外部中斷喚醒,是否從處理器掉電中喚醒/* SMemory mapping control. */* 內(nèi)存remap控制寄存器 */#define MEMMAP (*(volatile unsigned long *) 0xE01FC040)/選擇讀取向量的不同地址/* Phase Locked Loop (PLL) */* PLL控制寄存器 */

29、#define PLLCON (*(volatile unsigned char *) 0xE01FC080)/PLL控制位保持寄存器#define PLLCFG (*(volatile unsigned char *) 0xE01FC084)/PLL配置值保持寄存器#define PLLSTAT (*(volatile unsigned short*) 0xE01FC088)/控制和配置信息讀回寄存器#define PLLFEED (*(volatile unsigned char *) 0xE01FC08C)/使能控制和配置/* Power Control */* 功率控制寄存器 */#d

30、efine PCON (*(volatile unsigned char *) 0xE01FC0C0)/功率控制(空閑模式或掉電模式)#define PCONP (*(volatile unsigned long *) 0xE01FC0C4)/外設(shè)功率控制/* VPB Divider */* VLSI外設(shè)總線(VPB)分頻寄存器 */#define VPBDIV (*(volatile unsigned char *) 0xE01FC100)/VPB時鐘設(shè)置/* Memory Accelerator Module (MAM) */* 存儲器加速模塊 */#define MAMCR (*(vol

31、atile unsigned char *) 0xE01FC000)/控制#define MAMTIM (*(volatile unsigned char *) 0xE01FC004)/定時控制/* Vectored Interrupt Controller (VIC) */* 向量中斷控制器(VIC)的特殊寄存器 */#define VICIRQStatus (*(volatile unsigned long *) 0xFFFFF000)/IRQ狀態(tài)#define VICFIQStatus (*(volatile unsigned long *) 0xFFFFF004)/FIQ狀態(tài)#defi

32、ne VICRawIntr (*(volatile unsigned long *) 0xFFFFF008)/所有中斷的狀態(tài)#define VICIntSelect (*(volatile unsigned long *) 0xFFFFF00C)/中斷選擇#define VICIntEnable (*(volatile unsigned long *) 0xFFFFF010)/中斷使能#define VICIntEnClr (*(volatile unsigned long *) 0xFFFFF014)/中斷使能清零#define VICSoftInt (*(volatile unsigned

33、 long *) 0xFFFFF018)/軟件中斷#define VICSoftIntClear (*(volatile unsigned long *) 0xFFFFF01C)/軟件中斷清零#define VICProtection (*(volatile unsigned long *) 0xFFFFF020)/保護使能#define VICVectAddr (*(volatile unsigned long *) 0xFFFFF030)/向量地址#define VICDefVectAddr (*(volatile unsigned long *) 0xFFFFF034)/默認地址#def

34、ine VICVectAddr0 (*(volatile unsigned long *) 0xFFFFF100)/向量地址#define VICVectAddr1 (*(volatile unsigned long *) 0xFFFFF104)#define VICVectAddr2 (*(volatile unsigned long *) 0xFFFFF108)#define VICVectAddr3 (*(volatile unsigned long *) 0xFFFFF10C)#define VICVectAddr4 (*(volatile unsigned long *) 0xFFF

35、FF110)#define VICVectAddr5 (*(volatile unsigned long *) 0xFFFFF114)#define VICVectAddr6 (*(volatile unsigned long *) 0xFFFFF118)#define VICVectAddr7 (*(volatile unsigned long *) 0xFFFFF11C)#define VICVectAddr8 (*(volatile unsigned long *) 0xFFFFF120)#define VICVectAddr9 (*(volatile unsigned long *)

36、0xFFFFF124)#define VICVectAddr10 (*(volatile unsigned long *) 0xFFFFF128)#define VICVectAddr11 (*(volatile unsigned long *) 0xFFFFF12C)#define VICVectAddr12 (*(volatile unsigned long *) 0xFFFFF130)#define VICVectAddr13 (*(volatile unsigned long *) 0xFFFFF134)#define VICVectAddr14 (*(volatile unsigne

37、d long *) 0xFFFFF138)#define VICVectAddr15 (*(volatile unsigned long *) 0xFFFFF13C)#define VICVectCntl0 (*(volatile unsigned long *) 0xFFFFF200)/向量控制#define VICVectCntl1 (*(volatile unsigned long *) 0xFFFFF204)#define VICVectCntl2 (*(volatile unsigned long *) 0xFFFFF208)#define VICVectCntl3 (*(volat

38、ile unsigned long *) 0xFFFFF20C)#define VICVectCntl4 (*(volatile unsigned long *) 0xFFFFF210)#define VICVectCntl5 (*(volatile unsigned long *) 0xFFFFF214)#define VICVectCntl6 (*(volatile unsigned long *) 0xFFFFF218)#define VICVectCntl7 (*(volatile unsigned long *) 0xFFFFF21C)#define VICVectCntl8 (*(

39、volatile unsigned long *) 0xFFFFF220)#define VICVectCntl9 (*(volatile unsigned long *) 0xFFFFF224)#define VICVectCntl10 (*(volatile unsigned long *) 0xFFFFF228)#define VICVectCntl11 (*(volatile unsigned long *) 0xFFFFF22C)#define VICVectCntl12 (*(volatile unsigned long *) 0xFFFFF230)#define VICVectC

40、ntl13 (*(volatile unsigned long *) 0xFFFFF234)#define VICVectCntl14 (*(volatile unsigned long *) 0xFFFFF238)#define VICVectCntl15 (*(volatile unsigned long *) 0xFFFFF23C)/* General Purpose Input/Output (GPIO) */* 通用并行IO口的特殊寄存器 */#define IOPIN (*(volatile unsigned long *) 0xE0028000)#define IOSET (*(

41、volatile unsigned long *) 0xE0028004)#define IODIR (*(volatile unsigned long *) 0xE0028008)#define IOCLR (*(volatile unsigned long *) 0xE002800C)/* Pin Connect Block */* 管腳連接模塊控制寄存器 */#define PINSEL0 (*(volatile unsigned long *) 0xE002C000)#define PINSEL1 (*(volatile unsigned long *) 0xE002C004)/* U

42、niversal Asynchronous Receiver Transmitter 0 (UART0) */* 通用異步串行口0(UART0)的特殊寄存器 */#define U0RBR (*(volatile unsigned char *) 0xE000C000)#define U0THR (*(volatile unsigned char *) 0xE000C000)#define U0IER (*(volatile unsigned char *) 0xE000C004)#define U0IIR (*(volatile unsigned char *) 0xE000C008)#de

43、fine U0FCR (*(volatile unsigned char *) 0xE000C008)#define U0LCR (*(volatile unsigned char *) 0xE000C00C)#define U0LSR (*(volatile unsigned char *) 0xE000C014)#define U0SCR (*(volatile unsigned char *) 0xE000C01C)#define U0DLL (*(volatile unsigned char *) 0xE000C000)#define U0DLM (*(volatile unsigne

44、d char *) 0xE000C004)/* Universal Asynchronous Receiver Transmitter 1 (UART1) */* 通用異步串行口1(UART1)的特殊寄存器 */#define U1RBR (*(volatile unsigned char *) 0xE0010000)#define U1THR (*(volatile unsigned char *) 0xE0010000)#define U1IER (*(volatile unsigned char *) 0xE0010004)#define U1IIR (*(volatile unsign

45、ed char *) 0xE0010008)#define U1FCR (*(volatile unsigned char *) 0xE0010008)#define U1LCR (*(volatile unsigned char *) 0xE001000C)#define U1MCR (*(volatile unsigned char *) 0xE0010010)#define U1LSR (*(volatile unsigned char *) 0xE0010014)#define U1MSR (*(volatile unsigned char *) 0xE0010018)#define

46、U1SCR (*(volatile unsigned char *) 0xE001001C)#define U1DLL (*(volatile unsigned char *) 0xE0010000)#define U1DLM (*(volatile unsigned char *) 0xE0010004)/* I2C (8/16 bit data bus) */* 芯片間總線(I2C)的特殊寄存器 */#define I2CONSET (*(volatile unsigned long *) 0xE001C000)#define I2STAT (*(volatile unsigned lon

47、g *) 0xE001C004)#define I2DAT (*(volatile unsigned long *) 0xE001C008)#define I2ADR (*(volatile unsigned long *) 0xE001C00C)#define I2SCLH (*(volatile unsigned long *) 0xE001C010)#define I2SCLL (*(volatile unsigned long *) 0xE001C014)#define I2CONCLR (*(volatile unsigned long *) 0xE001C018)/* SPI (S

48、erial Peripheral Interface) */* SPI總線接口的特殊寄存器 */#define SPI_SPCR (*(volatile unsigned char *) 0xE0020000)#define SPI_SPSR (*(volatile unsigned char *) 0xE0020004)#define SPI_SPDR (*(volatile unsigned char *) 0xE0020008)#define SPI_SPCCR (*(volatile unsigned char *) 0xE002000C)#define SPI_SPINT (*(volatile unsigned char *) 0xE002001

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論