版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
西安歐亞學(xué)院本科畢業(yè)論文(設(shè)計)基于物聯(lián)網(wǎng)的安保系統(tǒng)軟件設(shè)計—測控模塊摘要:在現(xiàn)在的信息時代,物聯(lián)網(wǎng)已成為信息網(wǎng)絡(luò)發(fā)展的一個必然趨勢,而安防這個概念我們已不再陌生,它與我們的生活息息相關(guān),所以安防物聯(lián)就有待我們的研究與開發(fā)。安防物聯(lián)網(wǎng)系統(tǒng)最突出的特點是其終端產(chǎn)品具有智能化、一體化,能夠連接多種傳感器,能夠通過互聯(lián)網(wǎng)傳輸報警圖像和信息,同時具有網(wǎng)絡(luò)平臺監(jiān)控報警服務(wù)功能。根據(jù)行業(yè)的特點,物聯(lián)網(wǎng)安防產(chǎn)品要求具有體積小巧、造價低廉,集監(jiān)控、圖像分析、智能處理、前端存儲、警笛訊響、主動報警等多種功能于一體,可連接多個傳感器,能脫離電腦主機單獨運行。在整個軟件開發(fā)過程中利用IAR進行軟件的編輯和仿真。通過仿真器JLINK將程序下載到目標(biāo)板,先進行單個分支模塊的設(shè)計與調(diào)試,最后進行整個模塊的整合調(diào)試,實現(xiàn)人機交換。關(guān)鍵詞:ARM;UART0;RTC
Basedonnetworksecuritysystemthatsoftwaredesign-measurement—controlmoduleAbstract:Nowintheinformationage,thethingnetworkinginformationnetworkhasbecomeacertaintrendofdevelopmentof,andpreventthisconcepttowenolongerstrange,itwithourlife,sothattheyshouldbeunitedsecurityofourresearchanddevelopment.Securitycontentnetworkingsystemthemostoutstandingcharacteristicisitsendproductshaveintelligence,integration,abletoconnectavarietyofsensors,canthroughtheInternettotransmitalarmimageandinformation,andatthesametimeanetworkplatformmonitoringalarmservicefunctions.Accordingtothecharacteristicsoftheindustry,networksecurityproductsthatarerequiredtohavesmallsizeandlowcost,thecollectionmonitoring,imageanalysis,intelligentprocessing,storage,sirenfront-sound,andtheactivealarmandotherfunctionsinabody,canconnectmultiplesensor,fromthemaincomputerrunseparately.InthesoftwaredevelopmentprocessofsoftwareandtheeditorofIARsimulation.ThroughthesimulatorwillJLINKprogramdownloadtothetargetboard,firstforasinglebranchmoduledesignandcommissioning,finallythemoduleintegrationcommissioning,realizehuman-machineexchange.Keywords:ARM;UART0;RTC西安歐亞學(xué)院本科畢業(yè)論文(設(shè)計)II目錄TOC\o"2-3"\h\z\u\t"標(biāo)題1,1"1緒論 11.1技術(shù)背景 11.2選題意義 11.3課題設(shè)計思路 11.4整體結(jié)構(gòu) 22LPC1768芯片介紹 32.1LPC1768簡介 32.2技術(shù)特性 32.3LPC1768的結(jié)構(gòu)功能介紹 43應(yīng)用模塊 53.1存儲器 53.2系統(tǒng)控制模塊 63.3UART模塊 63.3.1主要寄存器描述 63.3.2編程結(jié)構(gòu) 73.4實時日歷時鐘RTC 83.4.1概述 93.4.2特殊寄存器 93.5LCD顯示模塊 103.5.1簡介 103.5.2指令集使用示例 104開發(fā)工具介紹 144.1IAREWARM開發(fā)軟件 144.1.1簡介 144.1.2項目創(chuàng)建 144.1.3IAR項目管理 144.1.4集成開發(fā)環(huán)境的界面 154.1.5調(diào)試器 154.1.6C/C++編譯器 164.1.7匯編器 174.2J-LINK仿真器簡介 174.2.1J-LinkARM主要特點 174.2.2J-Link支持ARM內(nèi)核 184.2.3J-Link在IAR開發(fā)環(huán)境調(diào)試過程 185程序設(shè)計 205.1LPC1768芯片底層代碼 205.2主程序 225.3系統(tǒng)初化設(shè)計 265.4UARTO初始化 285.5GPIO模塊程序 285.6RTC模塊 295.7觸屏操作界面模塊 316系統(tǒng)調(diào)試 356.1整體概述 356.2調(diào)試環(huán)境 356.3調(diào)試及問題處理 35結(jié)論 36致辭 37參考文獻 38PAGE351緒論1.1技術(shù)背景1999年美國麻省理工學(xué)院(MIT)提出物聯(lián)網(wǎng)概念,10余年間物聯(lián)網(wǎng)在世界范圍內(nèi)越來越受到關(guān)注。在國內(nèi),隨著政府對物聯(lián)網(wǎng)產(chǎn)業(yè)關(guān)注和支持力度的顯著提高,物聯(lián)網(wǎng)已呈現(xiàn)出一種從產(chǎn)業(yè)愿景走向現(xiàn)實應(yīng)用的趨勢。但是大家一直以來對物聯(lián)網(wǎng)的概念沒有一個準(zhǔn)確而固定的定義,以及一些利益相關(guān)方各自對這一概念進行基于自身利益的解讀,使得大家對物聯(lián)網(wǎng)這一概念的內(nèi)涵和外延認識明確。一般大家認為,物聯(lián)網(wǎng)就是通過射頻信息傳感設(shè)備,按照約定的協(xié)議實現(xiàn)人與人、人與物、物與物之間進行全面互聯(lián)的網(wǎng)絡(luò),主要特征是通過射頻識別、傳感器等方式采集物理世界的各種信息,結(jié)合互聯(lián)網(wǎng)絡(luò)、移動通信網(wǎng)絡(luò)等進行信息的傳送與交換,采用智能計算技術(shù)對所采集信息進行分析處理,提高對物質(zhì)世界的感知能力,從而實現(xiàn)智能化的決策和控制。1.2選題意義安防物聯(lián)網(wǎng)就是物聯(lián)網(wǎng)和安防應(yīng)用相結(jié)合而產(chǎn)生的,它將給安防領(lǐng)域帶來新的應(yīng)用價值,他的終端產(chǎn)品具有智能化和集成等特征,能夠與多種傳感器相連接,并通過互聯(lián)網(wǎng)絡(luò)報警傳輸圖像和信息,同時也有一個網(wǎng)絡(luò)平臺的監(jiān)控和報警功能。根據(jù)行業(yè)的特點,網(wǎng)絡(luò)安全產(chǎn)品還要求其小體積、集監(jiān)控、制造成本很低、圖像分析、前端存儲、智能處理、主動報警和警笛訊響等多種功能于一體,可連接多個傳感器,可以脫離電腦主機單獨進行運行。從這個概念看,已人們被廣泛應(yīng)用的室內(nèi)入侵自動報警系統(tǒng)是物聯(lián)網(wǎng)在安防領(lǐng)域的初步應(yīng)用,目前安防行業(yè)已經(jīng)在朝著物聯(lián)網(wǎng)方向發(fā)展,具有率先廣泛應(yīng)用的基礎(chǔ)和必然優(yōu)勢。由此可見,加快安防物聯(lián)網(wǎng)應(yīng)用建設(shè),不但是提升安全防范水平有效的技術(shù)手段,而且也是提升社會信息化水平的重要杠桿,對推動物聯(lián)網(wǎng)在其他行業(yè)應(yīng)用有巨大的示范作用,對經(jīng)濟發(fā)展和社會生活都將產(chǎn)生深遠影響。國家工信部在《物聯(lián)網(wǎng)“十二五”發(fā)展規(guī)劃》中指出:物聯(lián)網(wǎng)已成為當(dāng)前世界新一輪經(jīng)濟和科技發(fā)展的戰(zhàn)略制高點之一,發(fā)展物聯(lián)網(wǎng)對于促進經(jīng)濟發(fā)展和社會進步具有重要的現(xiàn)實意義。1.3課題設(shè)計思路通過相關(guān)資料,了解基于ARM的RTC模塊開發(fā)、人機交互接口、LCD真彩屏的原理。基于ARM實驗板進行設(shè)計開發(fā),利用IAR開發(fā)軟件對各個模塊進行程序編寫和調(diào)試,確認程序調(diào)試無誤后,先將PC機與ARM實驗板進行串口聯(lián)接,進行收/發(fā)通信調(diào)試,最后再將各個部分整理綜合起來調(diào)試整個安防系統(tǒng)。1.4整體結(jié)構(gòu)通過外部無線模塊的物理探測,將采集的數(shù)據(jù)信息傳遞到目標(biāo)開發(fā)板LPC1768中,在目標(biāo)板上進行數(shù)據(jù)處理并顯示結(jié)果。外部信息采集J-Link目標(biāo)板ARM外部信息采集J-Link目標(biāo)板ARM(LPC1768)PC機LCDLCD顯示圖1-1整體結(jié)構(gòu)圖
2LPC1768芯片介紹2.1LPC1768簡介LPC1768是NXP公司推出的基于ARMCortex-M3內(nèi)核的微控制器LPC17XX系列中的一員。LPC17XX系列Cortex-M3微處理器用于處理要求高度集成和低功耗的嵌入式應(yīng)用。LPC1700系列微控制器的操作頻率可達100MHz(新推出的LPC1769和LPC1759可達120MHz)。ARMCortex-M3CPU具有3級流水線和哈佛結(jié)構(gòu)[1]。LPC17XX系列微控制器的外設(shè)組件包含高達512KB的flash存儲器、64KB的數(shù)據(jù)存儲器、以太網(wǎng)MAC、USB主機/從機/OTG接口、8通道DMA控制器、4個UART、2條CAN通道、2個SSP控制器、SPI接口、3個IIC接口、2輸入和2輸出的IIS接口、8通道的12位ADC、10位DAC、電機控制PWM、正交編碼器接口、4個通用定時器、6輸出的通用PWM、帶有獨立電池供電的超低功耗RTC和多大70個的通用IO管腳[1]。2.2技術(shù)特性64KB片內(nèi)SRAM。32KB可供高性能CPU通過本地代碼/數(shù)據(jù)總線訪問。2個靜態(tài)存儲器模塊、帶獨立訪問路徑、可以進行吞吐量更高的操作,靜態(tài)存儲器可用做Ethernet、通用串行總線、DMA存儲器,以及通用指令與Datastorage。以太網(wǎng)串行EEPROM中的物理地址帶簡化媒體獨立接口和相關(guān)的直接存儲器。USB2.0全速從機/主機/OTG控制器,帶有用于從機、主機功能的片內(nèi)PHY和相關(guān)的控制器。4個異步串行通信、全部的UART都支持IrDA[2]。CAN控制器,帶有2個通道。2個SSP控制器,帶有FIFO,可按多種協(xié)議進行通信。其中一個可選擇用于SPI,并且和SPI公用中斷。SSP接口可以與GPDMA控制器一起使用[3]。IIS接口可與GPDMA一起使用。IIS接口支持3線數(shù)據(jù)發(fā)送和接收或4線組合發(fā)送和接收連接,以及主機時鐘輸入輸出[3]。4個通用定時/計數(shù)器,共有8個捕獲輸入和10個比較輸出。每個定時器都有一個外部計數(shù)輸入。一個電機控制PWM,支持三相的電機控制。通過片內(nèi)PLL,沒有高頻晶振,CPU頁可以以最高頻率運轉(zhuǎn)。第二個專用的PLL可用于USB接口,以允許增加主PLL的靈活性。100MHz的工作頻率。嵌套向量中斷控制器,可快速確定中斷。四種節(jié)能模式:睡眠模式、深度睡眠模式、關(guān)機模式,和深度省電模式。喚醒中斷控制器支持超低漏電保持模式,并針對關(guān)鍵事件提供瞬時完全活動模式。2.3LPC1768的結(jié)構(gòu)功能介紹LPC1768芯片包含一個支持仿真的Cortex-M3CPU,片內(nèi)存儲器控制器接口的Cortex-M3局部總線,中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的外設(shè)總線(VPB,ARMAMBA總線的兼容超集)LPC1768將Cortex-M3處理器配置為小端(little-endian)字節(jié)順序[4]。AHB外設(shè)分配了2M字節(jié)的地址范圍,它位于4G字節(jié)ARM存儲器空間的最頂端。每個AHB外設(shè)都分配了16kb字節(jié)的地址空間。LPC1768的外設(shè)功能(中斷控制器除外)都連接到VPB總線。AHB到VPB的橋?qū)PB總線與AHB總線相連。VPB外設(shè)也分配了2M字節(jié)的地址范圍,從3.5GB地址點開始。每個VPB外設(shè)在VPB地址空間內(nèi)都分配了16k字節(jié)地址空間。Cortex-M3處理器專為控制極低動態(tài)功耗和漏電而設(shè)計。類似于所有Cortex-M部分處理器,Cortex-M3處理器也利用ARM180ULL電源管理工具包(PMK)和標(biāo)準(zhǔn)單元庫來支持超低功耗休眠實現(xiàn)。這款處理器與集成喚醒中斷控制器(WIC)相結(jié)合,支持迅速將內(nèi)核置為超低漏電狀態(tài)保持模式,并可在發(fā)生關(guān)鍵事件時以近乎瞬時的響應(yīng)速度返回完全活躍模式[5]。這些技術(shù)的整合便產(chǎn)生了超低功耗的32位處理器,其性能效率和響應(yīng)能力可最大限度地減少活動持續(xù)時間,在利用ARM物理IP實現(xiàn)時,可在活躍和休眠狀態(tài)下實現(xiàn)更低功耗。
3應(yīng)用模塊3.1存儲器存儲器是構(gòu)成嵌入式系統(tǒng)硬件(處理器、存儲器、I/O電路)的重要做成部分。設(shè)計嵌入式系統(tǒng)的存儲器時需要考慮許多因素:有的嵌入式控制器集成了存儲器,一般不需要額外擴展,甚至有的嵌入式控制器無法擴展;有的嵌入式微處理器片上沒有存儲器,必須外部擴展;有的嵌入式處理器片上集成了一定數(shù)量的存儲器,可以滿足一定的需要,如果軟件占用空間比較大,可能需要擴展存儲器,所以整個存儲器系統(tǒng)由片上片外兩部分組[6]。RAM空間ROM空間EEPROM圖3-1嵌入式系統(tǒng)典型的存儲空間分配示意圖隨機存儲器RAM這種存儲器之所以稱之為隨機存儲器(RAM),是因為任一存儲單元的數(shù)據(jù)可以以任一順序而非固定順序被訪問(讀/寫)。在RAM中有兩種重要的存儲元件:SRAM(靜態(tài)RAM)和DRAM(動態(tài)RAM)。它們之間的主要差別是存儲于其中的數(shù)據(jù)的壽命長短。SRAM只要是芯片有就會保留其中的內(nèi)容,但如果切斷了電源或者是暫時斷電了,其中的內(nèi)容就會永久的丟失;DRAM只有極短的數(shù)據(jù)壽命,通常不超過0.25s,即使是在連續(xù)供電的情況下也是如此。因此使用DRAM時,需要配合SRAM控制器,對DRAM進行周期性刷新或再生[6]。只讀存儲器ROMROM家族中的存儲器是按照向其寫入或更新數(shù)據(jù)的方法(通常叫作編程)及其可以從寫的次數(shù)來區(qū)分的,其中包括不可擦除型。通常,系統(tǒng)開發(fā)過程中常用的是可擦除型只讀存儲器。可一次編程的只讀存儲器通常與處理器集成在一起。快閃存儲器FLASH是存儲器技術(shù)最新的發(fā)展結(jié)果,具有高密度、低價格、非意失性、快速讀取以及電氣可重編程等特點,在嵌入式系統(tǒng)中的使用迅速增長。嵌入式系統(tǒng)中使用FLASH有兩種形式,一種是嵌入式處理器上集成了FLASH,另一種是片外擴展FLASH。3.2系統(tǒng)控制模塊一個ARM芯片中通常有很多功能部件,其中有一些是獨自工作的,不會對其他部件產(chǎn)生影響,比如UART接口、I2C接口等。而有一些部件的影響是全局性的,它們的狀態(tài)改變時可能引起整個系統(tǒng)運行狀態(tài)的改變,這些部件如表3-1所列。表3-1系統(tǒng)控制模塊名稱及簡介部件名稱功能簡介晶體振蕩器通過外外結(jié)晶振或時鐘源為系統(tǒng)提供時鐘信號復(fù)位復(fù)位使ARM內(nèi)核與外設(shè)部件進入一個確定的初始狀態(tài)存儲器隱射控制控制異常向量表的重新映射方式鎖相環(huán)(PLL)將晶體振蕩器輸入的時鐘倍頻到一個合適的時鐘頻率VPB分頻器將內(nèi)核時鐘與外設(shè)時鐘分開的部件功率控制使處理器空閑或者掉電,還能關(guān)閉指定的功能部件,以降低芯片功耗喚醒定時器系統(tǒng)上電或掉電喚醒后,保證晶體振蕩器能輸出穩(wěn)定的時鐘信信號時鐘系統(tǒng)是計算機系統(tǒng)的脈搏,處理器核在一拍接一拍的時鐘驅(qū)動下完成指令執(zhí)行、狀態(tài)變換等動作。外設(shè)部件在時鐘的驅(qū)動下進行著各種工作,比如串口數(shù)據(jù)的收發(fā)、A/D轉(zhuǎn)換、定時器計數(shù)等[7]。因此時鐘對于一個計算機系統(tǒng)是至關(guān)重要的,通常時鐘系統(tǒng)出現(xiàn)問題也是最致命的,比如振蕩器不起振、振蕩不穩(wěn)、停振等[7]。時鐘系統(tǒng)包括4個部分,分別為晶體振蕩器、喚醒定時器、鎖相環(huán)(PLL)和VPB分頻器。其中“晶體振蕩器”為系統(tǒng)提供基本的時鐘信號。當(dāng)復(fù)位或處理器從掉電模式被喚醒時,“喚醒定時器”要對輸入的時鐘信號做計數(shù)延時,使芯片內(nèi)部件有時間進行初始化。接下來Fosc信號被PLL提高到一個符合用戶需要的頻率(Fcclk),F(xiàn)cclk用于CPU內(nèi)核。因為CPU內(nèi)核通常比外設(shè)部件的工作速度要快,所以用戶可以設(shè)置VPB分頻器,把Fcclk信號降低到一個合適的值Fpclk,該信號用于外設(shè)部件。3.3UART模塊3.3.1主要寄存器描述UART是異步通信收發(fā)器的簡稱,遵守工業(yè)異步通信標(biāo)準(zhǔn)。目前大多數(shù)嵌入式處理器都配了UART接口,有的處理器上稱為SCI。異步通信允許處理器之間的通信不使用公共的參考時鐘。通信的雙方使用相同的波特率,數(shù)據(jù)發(fā)送和接收的單位是幀。幀由一系列在通信線上傳輸?shù)奈唤M成[8]。UART的特性:16字節(jié)接收FIFO和16字節(jié)發(fā)送FIFO。寄存器位置符合16C550工業(yè)標(biāo)準(zhǔn)。接收器FIFO觸發(fā)點可為1、4、8和14字節(jié)。內(nèi)置波特率發(fā)生器。UART1含有標(biāo)準(zhǔn)調(diào)制解調(diào)器接口信號。3.3.2編程結(jié)構(gòu)UART的編程結(jié)構(gòu)通常包括發(fā)送寄存器、接收寄存器、模式寄存器、狀態(tài)寄存器、控制寄存器和波特率發(fā)生器等;如果串行接口模塊支持同步通信方式,則還會包含同步字符寄存器等。對于高性能的UART模塊,發(fā)送寄存器和接收寄存器可能被多個字節(jié)的發(fā)送緩沖區(qū)和接收緩沖區(qū)所取代,以最大限度地減少處理器內(nèi)核的負擔(dān)[8]。U0RBR是UART0RxFIFO的最高字節(jié),是UART0接收FIFO的出口,如圖3-3所示。它包含了最早接收到的字符,可通過總線接口讀出。LSB(bit0)代表最早接收到的數(shù)據(jù)位。如果接收到的字符小于8位,未使用的MSB填充為0。如果要訪問U0RBR,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為0。U0RBR為只讀寄存器。由于PE、FE和BI位與RBRFIFO頂端的字節(jié)相對應(yīng)(即下次讀RBR時讀出的字節(jié)),因此,將接收的字節(jié)及其狀態(tài)位成對讀出的正確方法是先讀U0LSR寄存器的內(nèi)容,再讀U0RBR的字節(jié)[9]。圖3-2接收FIFO16字節(jié)U0THR是異步串行通信0口Tx先進先出的高字節(jié),UART0發(fā)送FIFO的入口。我們可以用總線接口寫入TxFIFO中最近的字符[9]。假如訪問U0THR,U0LCR的除數(shù)鎖存訪問位(DLAB)要置為0。U0THR為只能寫入的寄存器。圖3-3發(fā)送FIFO16字節(jié)其中PCLK為外圍時鐘,U0DLM和U0DLL為標(biāo)準(zhǔn)的異步串行通信T0波特率除數(shù)寄存器,DIVADDVAL和MULVAL為異步串行通信T0規(guī)定的值[10]。MULVAL和DIVADDVAL的參數(shù)值應(yīng)具備[11]:0<MULVAL≤150≤DIVADDVAL≤15如果U0FDR寄存器的數(shù)值不滿足以上條件,則會引起小數(shù)分頻后輸出未定義。如果DIVADDVAL為0,就不會被分頻。UART0可以使能4個UART0中斷源,操作示例:U0IER=0X01;//使能RBR中斷,即接收中斷。U0IIR提供狀態(tài)代碼用于指示一個掛起中斷的中斷源和優(yōu)先級。在訪問U0IIR過程中中斷被凍結(jié)。如果在訪問U0IIR時產(chǎn)生了中斷,該中斷被記錄,下次U0IIR訪問可讀出[11]。3.4實時日歷時鐘RTC日歷時鐘主要包括日歷數(shù)據(jù)(年、月、日)和時鐘數(shù)據(jù)(時、分、秒)。目前大多數(shù)嵌入式系統(tǒng)的日歷時鐘采用專用的日歷時鐘芯片實現(xiàn),有的時鐘芯片需要外接電池,也有的時鐘芯片與電池組裝在一起,形成模塊電路,即使系統(tǒng)掉電,憑借電池也可以維持日歷時鐘芯片準(zhǔn)確的運行。3.4.1概述內(nèi)部的RTC實時日歷時鐘模塊需要以外部晶振來提供時鐘源,并且可以在系統(tǒng)關(guān)閉的情況下運行計時,具有閏年產(chǎn)生器、報警功能和時鐘節(jié)拍中斷等功能。內(nèi)部實時日歷時鐘RTC模塊,在系統(tǒng)電源掉電的情況下,支持備用電池供電,從而保持了日歷時間的持續(xù)。用ARM的STRB/LDRB指令,RTC能發(fā)送8位BCD碼數(shù)據(jù)給處理器,包含了秒、分、時、星期、日、月和年。RTC單元也具備報警功能。RTC總體特性:BCD數(shù)據(jù)包含秒、分、時、星期、日、月和年。具有閏年產(chǎn)生器。具有報警中斷或者從掉電模式中喚醒等功能。獨立的電源供電引腳VDDRTC。支持毫秒級的時鐘節(jié)拍中斷,可用于RTCS的內(nèi)核時鐘節(jié)拍。具備循環(huán)時間復(fù)位功能。3.4.2特殊寄存器控制寄存器(RTCCON)控制寄存器RTCCON由4位組成,RTCEN位于控制BCD寄存器的讀/寫功能,CLKSEL、CNTSETL和CLKRST位用于測試。由于RTCEN位控制著處理器和RTC的所有接口,所以在系統(tǒng)復(fù)位之后,RTC控制程序要使能數(shù)據(jù)的讀/寫功能。在掉電之前,RTCEN位又必須清零,以防止對RTC寄存器的不安全操作。在小端存儲模式下,RTCCON寄存器位于0x01D70040地址處;在大端存儲模式下,RTCCON寄存器位于0x01D70043地址處,各位定義如下表[12]。表3-2RTCCON寄存器RTCCON位描述初始值CLKRST[3]RTC時鐘計數(shù)重置0=不重置1=重置0CNTSEL[2]BCD計數(shù)選擇0=組合BCD計數(shù)器1=保留0CLKSEL[1]BCD時鐘選擇0=XTAL1/215分頻1=保留0RTCEN[0]RTC讀/寫使能0=禁止1=使能0報警控制寄存器(RTCALM)報警控制寄存器RTCALM用于設(shè)置報警使能和報警時間,在掉電模式下,RTCALM寄存器可產(chǎn)生ALMINT和PMWKUP信號,但是在正常模式下,只產(chǎn)生ALMINT信號。在小端模式下,RTCALM寄存器位于0x01D70050地址處;在大端模式下,位于0x01D70053地址處[13]。報警時間數(shù)據(jù)寄存器報警時間數(shù)據(jù)寄存器共6個,為ALMSEC到ALMYEAT。均為8位,最高位保留,其他位保存設(shè)置的報警時間。循環(huán)復(fù)位寄存器(RTCRST)循環(huán)復(fù)位寄存器RTCRST用于設(shè)置循環(huán)復(fù)位使能和循環(huán)邊界值。在小端存儲模式下,RTCRST寄存器位于0x01D7006C地址處;在大端存儲模式下,位于0x01D7006F地址處。BCD時間數(shù)據(jù)寄存器BCD時間數(shù)據(jù)寄存器一共7個,為BCDSEC到BCDYEAR,分別保存時間秒、分、時、日、星期、月和年。時鐘節(jié)拍計數(shù)寄存器(TICNT)時鐘節(jié)拍計數(shù)寄存器TICNT用于設(shè)置節(jié)拍時鐘使能和時鐘計數(shù)值。在小端存儲模式下,TICNT寄存器位于0x01D7008C地址處;在大端存儲模式下,位于0x01D7008F地址處[13]。3.5LCD顯示模塊3.5.1簡介采用32位ARM處理器和FPGA雙核控制架構(gòu)開發(fā)的一款高性能、低功耗、易使用的64K的TFT真彩顯示器,可以直接和具有UART串行接口的MCU(如51單片機、AVR、PIC、DSP、ARM、工控機等)連接。只需通過串口向終端發(fā)命令,便可完成相應(yīng)的操作。主要特點如下:處理器:采用32位ARM處理器+FPGA雙核控制架構(gòu),加強圖像處理功能。存儲容量:1GBitFlash存儲容量,儲存一百多張16bit真彩色圖片。接口特性圖片下載接口:全速USB,速度600KB/S。通訊接口:3.3VRS232或TTL/CMOS電平。PC軟件功能IDE編譯下載環(huán)境,可視化窗口、界面美觀大方;IDE集成了大量工控行業(yè)圖標(biāo)、按鈕、3D視圖等矢量圖,降低了美工難度;支持新建多個頁面,編譯后軟件自動生成每個頁面的驅(qū)動函數(shù);支持PC軟件與HMI同步顯示,具有單步調(diào)試等功能;支持二進制文件燒錄,量產(chǎn)更快更安全。工程編譯后IDE將自動生成工程二進制文件。電源:9-12V@1A工作溫度:20℃~70℃3.5.2指令集使用示例握手(0x00)發(fā)送:fd000000ddccbbaa返回:05ffff清屏(0x02)發(fā)送:fd020000ddccbbaa設(shè)置調(diào)色板(0x05)發(fā)送:fd050004fffff800ddccbbaa0xff0xff:前景色的顏色編碼,0xffff代表白色。0x550x00:背景色的顏色編碼,0xf800代表紅色。智能終端收到該命令后將白色和紅色分別設(shè)為默認的前景色和背景色。在沒有執(zhí)行該命令前,系統(tǒng)默認的前景色為黃色,背景色為藍色。背景色取色(0x06)發(fā)送:fd06000400030005ddccbbaa返回:無解析:0xfd:命令頭,每個指令發(fā)送前必須發(fā)送。0x06:背景色取色指令的指令碼。0x000x04:用兩個字節(jié)表示數(shù)據(jù)長度。在本指令中需要發(fā)送的數(shù)據(jù)為0x000x030x000x05,共4個。0x000x03:表示x軸的坐標(biāo)。0x000x05:表示x軸的坐標(biāo)。用十進制表示其XY坐標(biāo)為(3,5)。智能終端收到該命令后將坐標(biāo)值為(3,5)的點的顏色設(shè)為默認的背景色。前景色取色(0x07)發(fā)送:fd07000400030005ddccbbaa返回:無解析:0x07:前景色取色指令的指令碼。智能終端收到該命令后將坐標(biāo)值為(3,5)的點的顏色設(shè)為默認的前景色。設(shè)置字符顯示模式(0x08)。發(fā)送:fd080003010000ddccbbaa背光燈關(guān)閉背光燈指令(0x09),發(fā)送:fd090000ddccbbaa返回:無系統(tǒng)默認開機自動打開背光燈。打開背光燈指令(0x0a),發(fā)送:fd0a0000ddccbbaa返回:無調(diào)節(jié)背光亮度(0x0b),發(fā)送:fd0b000166ddccbbaa返回:無解析:0x7f:為為背光亮度PWM控制設(shè)定值PWM_Light,PWM_Light設(shè)為0x7f即將背光亮度設(shè)為半暗。PWM_Light的取值范圍0x00-0xff,值越大背光亮度越大,例如0x00將關(guān)閉背光,0x7f將背光調(diào)至半暗,0xff將背光調(diào)至最亮。工作模式設(shè)定(0x0c)發(fā)送:fd0c00020005ddccbbaa返回:無解析:0x000x02:用兩個字節(jié)表示數(shù)據(jù)長度,本指令只有兩個字節(jié)的參數(shù):ModePic_num。0x000x05:設(shè)定為工作模式0。在工作模式0下,支持32*32點陣漢字(指令0x13)、支持5幅終端圖片的保存與調(diào)用(指令0x30)。發(fā)送:fd0c0002ff12ddccbbaa返回:無0xff0x12:設(shè)定為工作模式1。在工作模式1下,支持12幅終端圖片的保存與調(diào)用(指令0x30)。這是出廠默認設(shè)置,與之前版本完全兼容。當(dāng)指令執(zhí)行完畢后,彩屏終端會返回Mode的值。字符顯示6X10點陣ASCII字符串顯示(0x10),首先定義數(shù)組:charAscii[]="GoldenPalmElectronicsGroup";發(fā)送:fd10002200000000Ascii1[0]…Ascii1[29]ddccbbaa返回:無0x000x00:表示x軸的坐標(biāo)。0x000x00:表示y軸的坐標(biāo)。即以(0,0)為顯示起始位置開始顯示字符串。8X16點陣ASCII字符串顯示(0x11),發(fā)送:fd11002200000000Ascii1[0]…Ascii1[29]ddccbbaa返回:無16X16點陣GB2312字符串顯示(0X12),發(fā)送:fd13001500000000GB2312[0]…GB2312[16]ddccbbaa返回:無解析:使用本示例方式顯示的字符必須為全角字符。32X32點陣GB2312字符串顯示(0X13)首先定義數(shù)組:charGB2312[]="通信工程畢業(yè)設(shè)計"。發(fā)送:fd12001500000000GB2312[0]…GB2312[16]ddccbbaa返回:無注意:要能正常使用本功能必須保證:工作在模式0下,32x32字庫已正確燒寫到終端。畫點(0x21)首先定義數(shù)組:uint8dot[]={0,5,0,140,0,10,0,140,0,15,0,140,0,20,0,140,0,25,0,140,0,30,0,140,0,35,0,140,0,40,0,140,0,45,0,140,0,50,0,140,0,55,0,140,0,60,0,140,0,65,0,140,0,70,0,140};發(fā)送:0xfd0x210x000x38dot[0]…dot[55]0xdd0xcc0xbb0xaa返回:無畫圓框或圓域指令(0x26)首先定義數(shù)組:uint8circle[]={1,0,160,0,135,5,0,0,180,0,125,5};發(fā)送:0xfd0x230x000x10circle[0]…circle[15]0xdd0xcc0xbb0xaa返回:無畫矩形框或矩形域指令(0x27)首先定義數(shù)組:uint8rectangle[]={0,0,30,0,30,0,90,0,200};發(fā)送:0xfd0x270x000x09rectangle[0]…rectangle[8]0xdd0xcc0xbb0xaa返回:無LCD初始化步驟1:使用設(shè)置波特率(0x01)命令(fd01000555aa5aa5ffddccbbaa)將通訊波特率改為本終端所支持的最大通訊波特率115200。相應(yīng)的在串口選擇115200,且選中HEX。發(fā)送:fd01000555aa5aa5ffddccbbaa返回:ff步驟2:去掉電源后,再次插好,波特率更換成功。步驟3:發(fā)送實時滿屏顯示(0x35)指令(fd350000ddccbbaa)后,返回fc提示可以發(fā)送圖數(shù)據(jù)。發(fā)送:fd350000ddccbbaa返回:FC
4開發(fā)工具介紹4.1IAREWARM開發(fā)軟件4.1.1簡介IAREmbeddedWorkbench是一種有效的基于ARM的嵌入式系統(tǒng)軟件開發(fā)工具,它不但使用戶能夠充分有效地進行開發(fā)管理嵌入式應(yīng)用項目,而且其界面類似于MSVisualC++,并且可以在Windows95/98/2000/XP/7等多種平臺上運行。IAR中不僅包含了源程序文件編輯器和源程序調(diào)試器(Debug)而且還包括項目管理器(Project)等,并且為C/C++編譯器、匯編器、鏈接定位器等提供了單一而又靈活的軟件開發(fā)環(huán)境。其中的文件查找功能可在指定的若干種文件中進行全局文件搜索;IAREW還提供了對第三方工具軟件的接口,允許啟動用戶指定的應(yīng)用程序[14]。4.1.2項目創(chuàng)建在IAREW集成開發(fā)環(huán)境中用戶需要建立一個工作區(qū)(Workspace),用于創(chuàng)建一個或多個項目,每個項目都可以建立以組(Group)為級別的結(jié)構(gòu),用戶的源程序文件可以直接添加到項目中,也可以分別添加到各個組中。在創(chuàng)建項目前,應(yīng)先創(chuàng)建一個新的工作區(qū)。進入IAREW集成開發(fā)環(huán)境后,選擇File→New→Workspace菜單項,即可創(chuàng)建一個工作區(qū)。4.1.3IAR項目管理各個項目中可以包含不同的組(Group)和文件(File)模塊,并且可以為每個項目進行選項設(shè)置[14]。在項目開發(fā)過程中任何修改都會被記錄,從而保證修改設(shè)計時可以獲得所有需要的模塊。通過目標(biāo)創(chuàng)建(Make)選項可以很方便地實現(xiàn)對一個IAREW項目進行完整的編譯和鏈接,直接產(chǎn)生最終的應(yīng)用目標(biāo)文件,而且可執(zhí)行文件中不包含已過期的模塊。4.1.4集成開發(fā)環(huán)境的界面分層次的工程組織。同一工作空間中允許存放多個工程??赏?康拇翱诤投嘁晥D。源代碼瀏覽。創(chuàng)建和維護庫的工具??梢院驮创a控制系統(tǒng)相集成。文本編輯器。IAREmbededWorkbench的工作界面。1為工作窗口,2是程序源代碼窗口,3是反匯編窗口,4是寄存器窗口,5是存儲器窗口,其實還可以打開更多的窗口,例如變量窗口等。由此可見IAR為編程人員在調(diào)試過程中提供了很大的方便。圖4-1調(diào)試窗口4.1.5調(diào)試器IARC-SPY調(diào)試器是IAR可設(shè)置復(fù)雜的條件斷點,具有在任意時刻中斷的能力,調(diào)試時可選擇實時模式,可進行內(nèi)存驗證[14]。圖4-2C-SPY調(diào)試窗口IARC-SPY調(diào)試器使用戶能進行C,C++和匯編語言源代碼調(diào)試、反匯編調(diào)試或二者混合調(diào)試。采用源代碼調(diào)試是驗證用戶應(yīng)用程序邏輯性正確與否的最快捷、最便利的方式;而反匯編調(diào)試則針對應(yīng)用程序的錯誤段,并對硬件進行精確控制。在混合顯示模式中,調(diào)試器顯示相應(yīng)的C/C++源代碼及其它對應(yīng)的反匯編代碼清單。4.1.6C/C++編譯器IARC/C++編譯器是一個具有世界先進水平并具備標(biāo)準(zhǔn)C/C++特性的編譯器,與其他IAR系統(tǒng)軟件一起集成在IAREW環(huán)境之中。IARC/C++編譯器的主要特性包括:支持符合ANSIC標(biāo)準(zhǔn)的C/C++編程語言;提供了運行庫IARDLLB,其中包含豐富的庫函數(shù);同時還支持IEEE754格式的浮點數(shù)、多字節(jié)參數(shù)和局部參數(shù)。IARC/C++編譯順提供靈活的變量分配能力,可真接采用C/C++語言編寫中斷函數(shù),具有針對不同CPU保持可移性的“#pragma”編譯命令,支持IAR擴展嵌入式C++特性,例如模板、名稱空間、多重虛擬外設(shè)、固定操作符(static_cast、const_cast和reinterpret_cast)以及標(biāo)準(zhǔn)模板庫(STL)等。支持特殊目標(biāo)語言的擴展,例如特殊函數(shù)的輸入、擴展關(guān)鍵字、指示、預(yù)設(shè)標(biāo)志、同部函數(shù)等。IARC/C++編譯器運行速度快,采用面向存儲器的設(shè)計避免了暫存文件及覆蓋技術(shù)。編譯時進行嚴(yán)格的擴展類型檢查,鏈接時進行嚴(yán)格的模塊接口類型檢查。IARC/C++編譯器采用最優(yōu)化技術(shù)產(chǎn)生高效的目標(biāo)代碼,可選擇以代碼大小或速度快慢進行目標(biāo)代碼優(yōu)化。多種輸出格式選擇,有重定位二進制、匯編源代碼和可選的匯編器列表文件等。提供容易理解的錯誤和警告信息。生成與C-SPY高級調(diào)試兼容的擴展調(diào)試信息。4.1.7匯編器IAR可以從新置位宏匯編器,兼容很多格式的宏,而且具有很多指示符號和表達式。在IAR中既可以進行C語言的編輯也可以用匯編語言編寫程序,并且與其余IAR系統(tǒng)軟件相集成。支持外部調(diào)用的復(fù)雜表達式、每個模塊有多達65536個可重定位段、符號可長達255個有效字符。4.2J-LINK仿真器簡介圖4-3J-LINK仿真器4.2.1J-LinkARM主要特點IAREWARM集成開發(fā)環(huán)境無縫連接的J-Link仿真器。支持所有ARM7/ARM9內(nèi)核的芯片,以及cortexM3,包括Thumb模式。支持ADS,IAR,KEIL,WINARM,REALVIEW等幾乎所有的開發(fā)環(huán)境。下載速度高達ARM7:600kB/s,ARM9:550kB/s,通過DCC最高可達800kB/s。最高JTAG速度12MHz。開發(fā)板安全電壓區(qū)間1.2V–3.3V,兼容5V。自動快速識別功能。監(jiān)測所有J-Link信號和開發(fā)板電壓??梢詫崿F(xiàn)即插即用。使用USB電源。帶USB連接線和20芯扁平電纜。支持多J-Link器件串行連接。標(biāo)準(zhǔn)20芯J-Link仿真插頭。選配14芯J-Link仿真插頭。帶J-LinkTCP/IPserver,允許通過TCP/IP網(wǎng)絡(luò)使用J-Link。4.2.2J-Link支持ARM內(nèi)核ARM7TDMI(Rev1)ARM7TDMI(Rev3)ARM7TDMI-S(Rev4)ARM720T/ARM920TARM926EJ-SARM946E-SARM966E-SARM11Cortex-M3表4-1速度信息RevisionARM7MemorydownloadARM9MemorydownloadJ-LinkRev.1-4150.0kB/s(4MHzJTAG)75.0kB/s(4MHzJTAG)J-LinkRev.5-8720.0kB/s(12MHzJTAG)550.0kB/s(12MHzJTAG)J-TraceRev.1420.0kB/s(12MHzJTAG)280.0kB/s(12MHzJTAG4.2.3J-Link在IAR開發(fā)環(huán)境調(diào)試過程在IAR既可以使用IAR提供的JLINK的驅(qū)動,也可以使用RDI接口的驅(qū)動,推薦使用RDI接口的驅(qū)動,因為IAR版本的JLINK對速度和功能做了限制。首先打開一個工程,然后按照下圖開始進入設(shè)置頁面:圖4-4選項設(shè)置界面圖4-5選項設(shè)置界面
5程序設(shè)計5.1LPC1768芯片底層代碼ARM芯片開發(fā)應(yīng)用的重要環(huán)節(jié)之一底層開發(fā),即用匯編和C語言混合編程來啟動代碼,系統(tǒng)配置及部份啟動代碼程序如下:config.h#ifndef__CONFIG_H#define__CONFIG_H#ifndefTRUE#defineTRUE1#endif#ifndefFALSE#defineFALSE0#endiftypedefunsignedcharuint8;/*無符號8位整型變量*/typedefsignedcharint8;/*有符號8位整型變量*/typedefunsignedshortuint16;/*無符號16位整型變量*/typedefsignedshortint16;/*有符號16位整型變量*/typedefunsignedintuint32;/*無符號32位整型變量*/typedefsignedintint32;/*有符號32位整型變量*/typedeffloatfp32;/*單精度浮點數(shù)(32位長度)*/typedefdoublefp64;/*雙精度浮點數(shù)(64位長度)*/#include"nxp/iolpc1768.h"#include"stdio.h"#include"intrinsics.h"http://ARM核特征頭函數(shù)/*****************************************************************************系統(tǒng)時鐘配置:Fosc、Fcclk、Fcco、Fpclk/*****************************************************************************/#defineFosc12000000//時鐘頻率:12MHz(晶振頻率范圍:10MHz~25MHz)。#defineFcclk(Fosc*5)//系統(tǒng)時鐘:60MHz(系統(tǒng)頻率范圍:Fcclk=(1~32)*Fosc,且<=60MHZ)。#defineFcco(Fcclk*4)//流控振蕩頻率:240MHz(允許頻率范圍:Fcco=156MHz~320MHz,且必須為Fcclk的2、4、8、16倍)。#defineFpclk(Fcclk/4)*2//外設(shè)時鐘頻率:30MHz(Fpclk必須為(Fcclk/4)的1、2、4倍,且不能高于Fcclk)。#defineKOM_HIO1SET_bit.P1_24=1;#defineKOM_LIO1CLR_bit.P1_24=1;voidZLG7289_cmd_dat(charcmd,chardat);voidZLG7289_Init();#endif部份啟動代碼MODE_MSKDEFINE0x1F;//設(shè)置比特位CPSR模式USR_MODEDEFINE0x10;//用戶模式FIQ_MODEDEFINE0x11;//快速中斷請求模式IRQ_MODEDEFINE0x12;//中斷請求模式SVC_MODEDEFINE0x13;//管理模式ABT_MODEDEFINE0x17;//終止模式UND_MODEDEFINE0x1B;//未定義模式SYS_MODEDEFINE0x1F;//系統(tǒng)模式mrsr0,cpsr;//原始PSR值bicr0,r0,#MODE_MSK;//清除模式位orrr0,r0,#SVC_MODE;//設(shè)置管理模式位msrcpsr_c,r0;//改變模式ldrsp,=SFE(SVC_STACK);//SVC_STACK結(jié)束bicr0,r0,#MODE_MSK;//清除模式位orrr0,r0,#ABT_MODE;//終止模式設(shè)置位msrcpsr_c,r0;//改變模式ldrsp,=SFE(ABT_STACK);//ABT_STACK結(jié)束bicr0,r0,#MODE_MSK;//清除模式位orrr0,r0,#UND_MODE;//未定義模式設(shè)置位msrcpsr_c,r0;//改變模式ldrsp,=SFE(UND_STACK);//UND堆棧結(jié)束bicr0,r0,#MODE_MSK;//清除模式位orrr0,r0,#FIQ_MODE;//設(shè)置有限脈沖響應(yīng)位msrcpsr_c,r0;//改變模式位ldrsp,=SFE(FIQ_STACK);bicr0,r0,#MODE_MSK;//清除模式位orrr0,r0,#IRQ_MODE;//設(shè)置中斷請求位msrcpsr_c,r0;//改變模式位ldrsp,=SFE(IRQ_STACK);//結(jié)束中斷請求堆棧bicr0,r0,#MODE_MSK;//清除模式位orrr0,r0,#SYS_MODE;//設(shè)置系統(tǒng)模式位msrcpsr_c,r0;//改變模式位ldrsp,=SFE(CSTACK);//結(jié)束堆棧類5.2主程序圖5-1主環(huán)路程序代碼:#include"nxp/iolpc1768.h"#include"type.h"#include"irq.h"#include"target.h"#include"intrinsics.h"#include"hw.h"#include"hmi.h"intmain(void){uint8lines[]={0xfd,0x23,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x90,0xdd,0xcc,0xbb,0xaa};//畫線數(shù)組uint8addrxy1[]={0xfd,0x23,0x00,0x08,0,160,0,45,0,160,0,20,0xdd,0xcc,0xbb,0xaa};//uint8addrxy1[]=uint8state=0;//界面狀態(tài)變量定義、賦值uint16touch_x=0x0;//觸摸點X坐標(biāo)變量定義/賦(任意)初值uint16touch_y=0x0;//觸摸點Y坐標(biāo)變量定義/賦(任意)初值uint8pic_id=0x1f;//圖片編號變量定義、賦值uint8option3=0x3;//二級目錄啟動停止判斷TargetResetInit();//目標(biāo)板初始化UART1_Init();//UART1初始化DelayMS(100);//用于做其他處理或延時,使得彩屏終端上電完SetColor(0x6781F,0x06ff);//白底藍WaitNoBusy();//LCM空閑判跳DisPicture(2);//顯示第1幅圖片SetColor(0x9152,0x6eff);ClearScreen();//清屏(調(diào)色板設(shè)置后必須清屏)DelayMS(10);PutString(10,10,0x12,"二零一二界畢業(yè)設(shè)計");DelayMS(100);PutString(65,60,0x13,"基于物聯(lián)網(wǎng)的");DelayMS(100);PutString(100,100,0x13,"安保系統(tǒng)");DelayMS(100);PutString(170,190,0x12,"西安歐亞學(xué)院");DelayMS(100);PutString(150,210,0x12,"通信工程四人小組");DelayMS(3000);PageMenu();//菜單函數(shù)for(;;)//循環(huán)體{WaitNoBusy();//無觸摸判跳switch(state)//散轉(zhuǎn)(條件跳轉(zhuǎn)){//主菜單界面case0:if(GetTouchValue(&touch_x,&touch_y))//觸摸判斷,返回觸摸值{pic_id=GetTouchID(touch_x,touch_y);//獲得圖片ID,同時改變顏色if(pic_id<12)//ID邊界判跳{Page2();panbie(pic_id);state=1;//跳轉(zhuǎn)界面狀態(tài)}elsebreak;}break;case1:if(GetTouchValue(&touch_x,&touch_y)){option3=TouchValid(touch_x,touch_y);{if(option3==0){Page2();state=panbie_bt(pic_id);}elseif(option3==1){Page2();panbie(pic_id);state=1;}elseif(option3==2){WaitNoTouch();DelayMS(15);//延時state=2;}elseif(option3==3){WaitNoTouch();DelayMS(15);//延時state=2;}else{WaitNoTouch();state=1;}break;}}break;//在下級界面中被按了返回鍵case2:PageMenu();state=0;break;default:break;}}}5.3系統(tǒng)初化設(shè)計(1)程序流程圖圖5-2系統(tǒng)初始化(2)程序源代碼voidsystem_init(){/*VPB分頻系數(shù)配置*/PLLCON=1;//PLL使能(開啟)#if((Fcclk/4)/Fpclk)==1//VPB總線時鐘為處理器時鐘的1/4時VPBDIV=0;//VPB分頻器設(shè)置為0#endif#if((Fcclk/4)/Fpclk)==2//VPB總線時鐘為處理器時鐘的1/2時VPBDIV=2;//VPB分頻器設(shè)置為2#endif#if((Fcclk/4)/Fpclk)==4//VPB總線時鐘與處理器時鐘相同VPBDIV=1;//VPB分頻器設(shè)置為1#endif/*PLL倍頻/分頻值自動配置*/#if(Fcco/Fcclk)==2//流控振蕩頻率是系統(tǒng)頻率的2倍時PLLCFG=((Fcclk/Fosc)-1)|(0<<5);//PLLCFG配置寄存器,4:0PLL倍頻器值,6:3分頻器值。#endif#if(Fcco/Fcclk)==4PLLCFG=((Fcclk/Fosc)-1)|(1<<5);#endif#if(Fcco/Fcclk)==8PLLCFG=((Fcclk/Fosc)-1)|(2<<5);#endif#if(Fcco/Fcclk)==16PLLCFG=((Fcclk/Fosc)-1)|(3<<5);#endifPLLFEED=0xaa;//PLL饋送寄存器使PLLCOM/PLLCFG的值更改生效。PLLFEED=0x55;while((PLLSTAT&(1<<10))==0);//等待PLL鎖存PLLCON=3;//將PLL作為時鐘源連接到微控制器。PLLFEED=0xaa;PLLFEED=0x55;//存儲器加速配置MAMCR=0;#ifFcclk<20000000MAMTIM=1;#else#ifFcclk<40000000MAMTIM=2;#elseMAMTIM=3;#endif#endifMAMCR=2;//VIC初始化VICIntSelect=0;VICIntEnClear=0xFFFFFFFF;VICSoftIntClear=0xFFFFFFFF;VICProtection=0;VICVectAddr=0;VICDefVectAddr=0;}5.4UARTO初始化(1)程序流程圖圖5-3程序流程圖(2)程序源代碼voiduart0_init(){uint32baud=115200;U0LCR=0x83;//數(shù)據(jù)格式設(shè)置(字長、停止位、奇偶選擇/校驗位)/除數(shù)鎖存器訪問使能。U0DLM=((Fpclk/16)/baud)/256;//除數(shù)鎖存器高字節(jié)計算。U0DLL=((Fpclk/16)/baud)%256;//除數(shù)鎖存器低字節(jié)計算。U0LCR=0x03;//數(shù)據(jù)格式設(shè)置/除數(shù)鎖存寄存器訪問禁能。}5.5GPIO模塊程序GPIO控制蜂鳴器程序代碼:voidDelayNS(uint32dly){uint32i;for(;dly>;dly--)for(i=0;<5000;i++)}/*******************************名稱main()功能控制蜂鳴器蜂鳴*******************************intmain(void){PINSEL0=0x00000000;IO0DIR=BEEPCON;while(1){IO0SET=BEEPCON;DelayNS(10);IO0CLR=BEEPCON;DelayNS(10);}return(0);}5.6RTC模塊實時時鐘日歷RTC程序代碼:intmain(void){TargetResetInit();/*初始化RTC模塊*/RTCInit();local_time.RTC_Sec=0;local_time.RTC_Min=0;local_time.RTC_Hour=0;local_time.RTC_Mday=8;local_time.RTC_Wday=3;local_time.RTC_Yday=12;/*當(dāng)前時間03/12/2012*/local_time.RTC_Mon=03;local_time.RTC_Year=2012;RTCSetTime(local_time);/*設(shè)置當(dāng)前時間*/alarm_time.RTC_Sec=0;alarm_time.RTC_Min=0;alarm_time.RTC_Hour=0;alarm_time.RTC_Mday=1;alarm_time.RTC_Wday=0;alarm_time.RTC_Yday=21;/*報警時間03/21/2012*/alarm_time.RTC_Mon=3;alarm_time.RTC_Year=2012;RTCSetAlarm(alarm_time);/*設(shè)置報警時間*//*主要用于安裝RTC定時器處理報警控制*///if(install_irq(RTC_INT,(void*)RTCHandler,HIGHEST_PRIORITY)==FALSE)//此處報錯{while(1);/*verybadhappened*/}/**maskoffalarmmask,turnonIMYEARinthecounterincrementinterruptRegister**/RTCSetAlarmMask(AMRSEC|AMRMIN|AMRHOUR|AMRDOM|AMRDOW|AMRDOY|AMRMON|AMRYEAR);//CIIR=IMMIN|IMYEAR;//此處報錯/*2012/03/21/00:00:00在此時報警*/RTCStart();while(1){/*進入死循環(huán)*/current_time=RTCGetTime();if(alarm_on!=0){alarm_on=0;/*在現(xiàn)在的時間報警*/current_time=RTCGetTime();}}return0;}5.7觸屏操作界面模塊uint16touch_x=0x0;//觸摸點X坐標(biāo)變量定義/賦(任意)初值uint16touch_y=0x0;//觸摸點Y坐標(biāo)變量定義/賦(任意)初值/**************************框內(nèi)字符顯示**************************/PutString(105,20,0x12,"測控模塊功能界面");PutString(10,75,0x13,"一路檢測");PutString(180,75,0x13,"二路檢測");PutString(10,165,0x13,"三路檢測");PutString(180,165,0x13,"四路檢測");}/*******************************************************************函數(shù)名稱:GetTouchID()函數(shù)功能:主界面觸摸數(shù)據(jù)判跳。入口參數(shù):x,y坐標(biāo)數(shù)據(jù)。返回參數(shù):圖片編號(據(jù)此判斷觸摸信息,確定按下的區(qū)域)。*************************************************************/uint8GetTouchID(uint16x,uint16y){if(x>=10&&x<=110){if(y>=50&&y<=100)return0;elseif(y>=140&&y<=190)return2;}elseif(x>=180&&x<=300){if(y>=50&&y<=100)return1;elseif(y>=140&&y<=190)return3;}/*****************************************************************/voidPage2(void){uint16Rectangles2[]={//x_sy_sx_ey_e//矩形坐標(biāo)15,65,87,101,//0組坐標(biāo)15,121,87,157,//1組坐標(biāo)15,177,87,213,//2組坐標(biāo)120,60,300,220//3組坐標(biāo)};/*********************矩形框&字符前景/背景色設(shè)置****************/SetColor(0x9152,0x0eff);//矩形框前景/背景色設(shè)置ClearScreen();//清屏(調(diào)色板設(shè)置后必須清屏)DrawRectangles(Rectangles2,4);//畫矩形框組:共3組(利用指針實現(xiàn))SetColor(0xffd0,37768);//字符前景/背景色設(shè)置SetC
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 監(jiān)控服務(wù)合同的變更與終止情形探討
- 房屋買賣合同的監(jiān)管與維權(quán)
- 營業(yè)執(zhí)照轉(zhuǎn)讓合同文本
- 企業(yè)保全服務(wù)合同范本
- 電力工程分包合同協(xié)議
- 內(nèi)部勞務(wù)分包合同糾紛的解決方法
- 房屋買賣合同詳盡指南
- 水果供應(yīng)商采購合同模板
- 瓷磚促銷活動購銷合同
- 不銹鋼購銷合同范本
- 小學(xué)英語-What's he like Story time教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 第5章 自動駕駛技術(shù)
- 國開經(jīng)濟法律基礎(chǔ)形考任務(wù)國開電大《經(jīng)濟法律基礎(chǔ)》形考任務(wù)3答案
- 水質(zhì)監(jiān)測運維方案樣本
- 生命教育三年級下冊
- 五金產(chǎn)品檢驗作業(yè)指導(dǎo)書
- 高壓旋噴樁檢測方案
- Unit1 My classroom Part A Lets spell(說課稿)-2022-2023學(xué)年英語四年級上冊
- 【要點解讀】《實踐是檢驗真理的唯一標(biāo)準(zhǔn)》論證邏輯圖
- 商務(wù)禮儀(山東聯(lián)盟)知到章節(jié)答案智慧樹2023年山東財經(jīng)大學(xué)
- 跳繩興趣小組活動總結(jié)
評論
0/150
提交評論