




已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
小車(chē)電子產(chǎn)品顯示系統(tǒng)畢業(yè)論文1 緒論 目前,科學(xué)技術(shù)處于不斷的發(fā)展當(dāng)中,電子產(chǎn)品日益更新,已經(jīng)成為我們生活中必不可少的一部分,不論是日常生活還是工業(yè)應(yīng)用等等,都已經(jīng)與電子技術(shù)緊密的聯(lián)系在一起。從瓦特發(fā)明蒸汽機(jī)開(kāi)始,世界技術(shù)已經(jīng)進(jìn)入到了一個(gè)新的時(shí)期,伴隨著第一臺(tái)計(jì)算機(jī)的出世,科學(xué)技術(shù)就有了一個(gè)飛躍,伴隨著科學(xué)技術(shù)的提高,而顯示技術(shù)也應(yīng)用廣泛起來(lái),從而提高了人民的生活水平。而今,隨著信息社會(huì)的發(fā)展,在工業(yè)應(yīng)用方面,顯示系統(tǒng)也已經(jīng)廣泛的應(yīng)用于各個(gè)領(lǐng)域。諸如溫度檢測(cè)的顯示系統(tǒng)、智能儀表的顯示系統(tǒng)等服務(wù)于社會(huì)的各行各業(yè)。在主控硬件開(kāi)發(fā)方面,ARM微控制器已被廣泛應(yīng)用。ARM(Advanced RISC Machines)微處理器是Acorn計(jì)算機(jī)有限公司面向低預(yù)算市場(chǎng)設(shè)計(jì)的第一款RISC微處理器,更早稱(chēng)作Acorn RISC Machine。ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集。一般來(lái)講,比等價(jià)32位代碼節(jié)省達(dá)35,卻能保留32位系統(tǒng)的所有優(yōu)勢(shì),具有很高的性?xún)r(jià)比。ARM處理器是一種性能高、成本低的微處理器,具有很高的實(shí)用性,ARM的Jazelle技術(shù)使Java加速得到比基于軟件的Java虛擬機(jī) (JVM)高得多的性能,和同等的非Java加速核相比功耗降低80。同時(shí)ARM處理器的CPU功能上增加DSP指令集提供增強(qiáng)的16位和32位算術(shù)運(yùn)算能力,提高了性能和靈活性。而且ARM還提供兩個(gè)前沿特性來(lái)輔助帶深嵌入處理器的高集成SoC器件的調(diào)試,它們是嵌入式ICE-RT邏輯和嵌入式跟蹤宏核(ETMS)系列。由于一系列的優(yōu)點(diǎn)使得ARM微處理器具有很高的市場(chǎng)占有率,使得ARM處理器得以被廣泛的應(yīng)用于生活和科研中1。在軟件開(kāi)發(fā)方面,IAR軟件是一款主流的開(kāi)發(fā)集成環(huán)境軟件,其中IAR為所有ARM開(kāi)發(fā)者帶來(lái)很大的益處,IAR Systems為所有使用ARM MCU的開(kāi)發(fā)者提供了業(yè)界最領(lǐng)先的集成開(kāi)發(fā)環(huán)境:IAR Embedded Workbench for ARM; 它支持很多知名公司的微處理器。它帶有高度優(yōu)化的C/C+編譯器和先進(jìn)的C-SPY調(diào)試器。此外,JTAG硬件調(diào)試工具IAR J-Link也幫助成千上萬(wàn)的開(kāi)發(fā)者解決了在使用ARM MCU進(jìn)行開(kāi)發(fā)過(guò)程中的許多問(wèn)題,使得用戶(hù)能夠在IAR Embedded Workbench for ARM軟件中進(jìn)行全面的開(kāi)發(fā)和調(diào)試。全球很多著名的公司都在使用IAR SYSTEMS提供的開(kāi)發(fā)工具,用以開(kāi)發(fā)最前沿的科技產(chǎn)品,從手機(jī)應(yīng)用系統(tǒng)到航天航空、消費(fèi)電子及工業(yè)制造等等2。目前的顯示系統(tǒng),在各個(gè)領(lǐng)域都有廣泛的應(yīng)用,尤其是在一些公共場(chǎng)合,像室外液晶顯示,機(jī)場(chǎng)航班動(dòng)態(tài)信息顯示,證券交易、金融信息顯示港口、車(chē)站旅客引導(dǎo)信息顯示,體育場(chǎng)館信息顯示道路交通信息顯示,調(diào)度指揮中心信息顯示,電力調(diào)度、車(chē)輛動(dòng)態(tài)跟蹤、車(chē)輛調(diào)度管理,郵政、電信、商場(chǎng)購(gòu)物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳及信息顯示,這些足以證明,顯示系統(tǒng)在我們當(dāng)今的生活中變得越來(lái)越重要。圖1 整體框圖2 系統(tǒng)設(shè)計(jì)ARM控制器(LM3S811)外 部數(shù) 據(jù)數(shù)據(jù)接 收數(shù)據(jù)處 理中斷處 理內(nèi)部數(shù) 據(jù)數(shù)據(jù)處 理數(shù)據(jù)傳 輸12864顯示器2.1 整體設(shè)計(jì)本設(shè)計(jì)是以德州儀器半導(dǎo)體技術(shù)有限公司LM3S811為主控芯片,12864LCD為顯示模塊及其他外圍電路共同工作,實(shí)現(xiàn)對(duì)歡迎詞及外部數(shù)據(jù)的實(shí)時(shí)顯示。首先,控制器從傳感器采集到各參數(shù)的數(shù)據(jù),數(shù)據(jù)經(jīng)過(guò)初步處理,在液晶上分為4行同步顯示出來(lái)。由于主控芯片可以工作在中斷方式,如果有串行中斷到來(lái),控制器會(huì)利用中斷與主控制芯片進(jìn)行通信,把數(shù)據(jù)傳送到顯示器,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)顯示。2.2 顯示模塊選擇1602 液晶顯示器采用57點(diǎn)陣,可以顯示2行,每行16個(gè)字。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”3。 12864LCD 顯示器 (LCD) 具有功耗低、體積小、重量輕、超薄等,其它顯示器無(wú)法比擬的優(yōu)點(diǎn),近年來(lái)被廣泛用于單片機(jī)控制和微控制器控制的智能儀器、儀表和低功耗電子產(chǎn)品中。LCD主要分為段位式LCD、字符式LCD和點(diǎn)陣式LCD三種,其中段位式 LCD和字符式LCD只能用于字符和數(shù)字的簡(jiǎn)單的顯示,而不能滿足圖形曲線和漢字顯示的要求,在很多方面有很大的弊端;而點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線和漢字,像12864TH點(diǎn)陣式液晶顯示模塊就可以顯示漢字、圖片,還可以顯示自定義字符,是1602所不具有的功能4。 由于本設(shè)計(jì)需要顯示漢字、圖形等,用1602顯示模塊及其他簡(jiǎn)易的顯示器已經(jīng)不能滿足本設(shè)計(jì)的需求,因此本文選用了12864(12864)LCD顯示器,它是128(列)64(行)點(diǎn)陣的 LCD 顯示模塊。在該系統(tǒng)中,通過(guò)LM3S811微控制器輸入輸出接口,利用C語(yǔ)言編程控制輸入輸出端口的高低電平,根據(jù)時(shí)序,以實(shí)現(xiàn)對(duì)LCD的控制,使得所需顯示的數(shù)據(jù)以及功能得以在LCD顯示模塊上顯示。3 硬件設(shè)計(jì)3.1 元件的創(chuàng)建 由于在Protel5畫(huà)圖時(shí)庫(kù)中沒(méi)有找到LM3S811和12864的元件,因此在畫(huà)原理圖的過(guò)程中,自己創(chuàng)建了元件如圖2: 圖2 LM3S811原理圖圖2為L(zhǎng)M3S811元件,在創(chuàng)建的過(guò)程中,把管腳標(biāo)識(shí)放在外面,影響原理圖的連接及效果,如果要把管腳標(biāo)識(shí)放在里面,需要對(duì)管腳的屬性進(jìn)行調(diào)整,在protel里面的操作為:點(diǎn)擊Place選擇Pins,雙擊放置的管腳,根據(jù)管腳需要的標(biāo)識(shí)改動(dòng)name,管教的標(biāo)號(hào)number,再根據(jù)上下左右需要選擇Orientatic(如左邊管腳選擇180,右邊0,上下分別為90和270),最終得到了LM3S811元件如圖。希望能給以后的元件制作帶來(lái)一些借鑒。圖3則是12864元件圖,共有20個(gè)引腳,經(jīng)歷了LM3S811的創(chuàng)建,此12864就方便了很多,其引腳功能后面有描述。 圖3 12864原理圖3.2 主控芯片LM3S811LM3S811有48個(gè)引腳,其大部分引腳具有復(fù)用功能,如LM3S811用作JTAG的五個(gè)管腳,同時(shí)也可以作為GPIO使用,這是LM3S811的一個(gè)缺點(diǎn),但同時(shí)也是它的一個(gè)優(yōu)點(diǎn),由于JTAG被用來(lái)下載(燒寫(xiě))程序使用,再用作GPIO可能會(huì)使得芯片鎖死,這是它的缺點(diǎn);但同時(shí),它有防鎖死的措施,如果使用者細(xì)心加上防鎖死程序,或者在不需要使用太多GPIO的情況下,可以盡量不用這五個(gè)管腳,如果需要,那么在加上防鎖死程序后,就有五個(gè)GPIO管腳可以復(fù)用,這是它的一大優(yōu)點(diǎn)。在LM3S811中,有很多功能模塊,比如串口,可以應(yīng)用在調(diào)試過(guò)程中,一個(gè)USB虛擬串口和一個(gè)實(shí)際串口,通過(guò)串口調(diào)試器的調(diào)試,在電腦上可以看到輸入輸出的結(jié)果,同時(shí)對(duì)照硬件的工作情況,可以更直觀得到運(yùn)行結(jié)果。在本設(shè)計(jì)中,定時(shí)器是必不可少的一部分,因?yàn)樵谛≤?chē)的運(yùn)動(dòng)中,需要顯示其運(yùn)動(dòng)總時(shí)間。LM3S811支持多種定時(shí)模式,主要有以下三種,32-位定時(shí)器模式、16-位定時(shí)器模式、16-位輸入捕獲模式。LM3S811的功能模塊很多,其中主要有JTAG、UART(串口)、PWM(脈沖寬度調(diào)制)、Timer(定時(shí)器)、ADC(模數(shù)轉(zhuǎn)換)等等,在LM3S811的DATASHEET里面有詳細(xì)解釋。本設(shè)計(jì)主要使用GPIO端口為主,通過(guò)模擬同步串行時(shí)序來(lái)對(duì)顯示模塊進(jìn)行控制。3.2.1 LM3S811申請(qǐng)?jiān)谠O(shè)計(jì)的過(guò)程中,通過(guò)LM3S811的熟悉,同時(shí)也了解了其生產(chǎn)廠家Ti公司的情況,該公司提供給大學(xué)生免費(fèi)的LM3S811芯片,登錄,進(jìn)行信息注冊(cè),得到公司的認(rèn)可后,進(jìn)行登錄,再對(duì)樣片進(jìn)行選擇,通過(guò)審核,公司就會(huì)發(fā)貨給我們。公司發(fā)貨給我的通知單:圖4 LM3S811申請(qǐng)圖3.2.2 GPIO(通用輸入輸出端口)LM3S8116中有五個(gè)GPIO端口,分別為PORTA、PORTB、PORTC、PORTD及PORTE。其中各個(gè)端口所擁有的引腳數(shù)不相同,PE口具有兩個(gè)引腳,在不作通用輸入輸出用時(shí),此兩個(gè)引腳作為脈沖編碼調(diào)制使用,而PA口有六個(gè)管腳,在不作為GPIO使用時(shí),它是作為SSI和UART兩個(gè)功能模塊使用的。在LM3S811芯片的引腳中,很多都具有復(fù)用功能,這也是的芯片的可用性有了很大的提高。在作為通用輸入輸出端口時(shí),其中的PB7及PC0PC3一般不要使用,因?yàn)榇宋鍌€(gè)引腳通常是用于JTAG的,它是用作燒寫(xiě)程序的,一旦被使用,可能芯片在執(zhí)行命令時(shí)會(huì)出現(xiàn)無(wú)法估計(jì)的錯(cuò)誤,導(dǎo)致把芯片鎖死,無(wú)法再次使用。3.3 顯示模塊12864LCD本設(shè)計(jì)使用的是TH12864顯示模塊,如圖3所示。TH12864 液晶顯示模塊是128 64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示中文漢字及字符,且內(nèi)含圖形庫(kù),可顯示自定義字符,內(nèi)置國(guó)標(biāo)GB2312碼簡(jiǎn)體中文字庫(kù)(1616 點(diǎn)陣)、128個(gè)字符(816 點(diǎn)陣)及64256 點(diǎn)陣顯示RAM(GDRAM)。與外部 CPU 接口采用并行或串行兩種控制方式。其中TH12864的供電電源有3.3V和5V的,在本設(shè)計(jì)中使用的是3.3V。其引腳說(shuō)明如下7:在本小車(chē)顯示系統(tǒng)的設(shè)計(jì)中共使用了6條12864管腳與LM3S811進(jìn)行連接,其12864 表1 12864引腳說(shuō)明 引腳名稱(chēng)方向說(shuō)明 1 VSS -GND(0V) 2 VDD - Supply Voltage For Logic(+3.3V) 3 V0 -Supply Voltage For LCD 4 RS(CS) 0H:Data L:Instruction Code 5 R/W(SID) 0H:Read L:Write 6 E(SCLK) 0Enable Signal7-14 DB0-DB7 |數(shù)據(jù)0-數(shù)據(jù)7 15 PSB 0H:Parallel Mode L:Serial Mode 16 NC -空腳 17 /RST 0Reset signal 低電平有效 18 NC -空腳 19 LEDA -背光電源正極(LED+3.3V) 20 LEDK -背光電源負(fù)極(LED-0V)的引腳為1、2、4、5、6、15,其中1、2兩條分別是接地和電源(3.3V);4引腳在串行狀態(tài)下為12864的芯片選擇端,控制12864到底是使用還是禁止,高電平有效,并行狀態(tài)下為12864的數(shù)據(jù)、命令選擇端,高電平為數(shù)據(jù)端,低電平為命令端;5引腳在串行狀態(tài)下12864的數(shù)據(jù)傳送端,并行狀態(tài)下為讀寫(xiě)控制端,高電平讀,低電平寫(xiě);6引腳串行狀態(tài)下為12864的同步時(shí)鐘引腳,并行狀態(tài)下為信號(hào)使能端;15引腳為設(shè)置12864為并行還是串行模式,高電平為并行,低電平為串行,在本設(shè)計(jì)中使用串行模式,低電平有效。3.4供電部分圖5 電源原理圖 圖5是TLV1117供電電源的原理圖,由于常用穩(wěn)壓電源為5V,而LM3S811主控芯片與12864顯示模塊所需的供電電壓為3.3V,所以需要供電電源對(duì)電壓進(jìn)行轉(zhuǎn)換,以匹配兩者所需的不同電壓值。通過(guò)TLV1117給芯片供電,使得電路得以正常運(yùn)行。3.5 其他外設(shè)LED:圖6是發(fā)光二極管與主控芯片的連接,發(fā)光二極管作為L(zhǎng)M3S811的一個(gè)外圍設(shè)備,在設(shè)計(jì)調(diào)試的過(guò)程中起著很重要的作用,在給LM3S811的36引腳(PWM5)高電平的時(shí)候,發(fā)光二極管導(dǎo)通,開(kāi)始發(fā)光,在36引腳為低電平時(shí)截止,二極管熄滅。發(fā)光二極管在調(diào)試程序的時(shí)候起著很重要的作用,在沒(méi)有完成顯示系統(tǒng)的連接時(shí),可以根據(jù)LED的閃光來(lái)調(diào)試程序。需要注意的是:需要將JP3的跳線接上,保證硬件電路的接通,很多人容易忽略這一點(diǎn)。 圖6 LED原理圖 圖7 按鍵原理圖按鍵:圖7按鍵與LM3S811的連接,在LM3S811中,按鍵是必不可少的一部分,按鍵可以作為防鎖死和普通的按鍵使用。由于LM3S811的JTAG管腳可以與GPIO復(fù)用,所以可能導(dǎo)致JTAG的五個(gè)管腳被作為GPIO使用,致使程序跑死后,下一次無(wú)法繼續(xù)使用該芯片,所以有了防鎖死程序,在這種情況下,鎖死了以后需要進(jìn)行解鎖,就可以按下按鍵,使得JTAG處于等待中,進(jìn)而可以繼續(xù)使用。另外,此按鍵在作為JTAG使用完后,可以作為普通按鍵使用,比如在時(shí)間程序中,按下鍵以后開(kāi)始計(jì)時(shí),再次按鍵,則停止計(jì)時(shí)。此按鍵與LM3S811連接時(shí),在按鍵無(wú)效時(shí),43(PB5)引腳為高電平時(shí),按鍵處于斷開(kāi)狀態(tài);在按鍵有效時(shí),43引腳為低電平時(shí),按鍵導(dǎo)通。3.6 芯片連接本設(shè)計(jì)使用德州儀器有限公司的LM3S811控制芯片作為控制器 , 該控制器有功能很齊全的調(diào)試解決方案,內(nèi)部有串行線JTAG調(diào)試端口 (SWJ-DP)、Flash 修補(bǔ)和斷點(diǎn)(FPB)單元,用于實(shí)現(xiàn)斷點(diǎn)操作、數(shù)據(jù)觀察點(diǎn)和觸發(fā)(DWT)單元,用于執(zhí)行觀察點(diǎn)、觸發(fā)源和系統(tǒng)性能分析、儀表跟蹤宏單元(ITM)用于支持printf 型調(diào)試、跟蹤端口接口單元(TPIU)用作跟蹤端口分析儀的橋接8。TH12864 液晶顯示器與外部 CPU接口有兩種控制方式,本設(shè)計(jì)采用的是串行方式, 因此利用控制器的GPIOB端口作為與TH12864連接的接口,用PB2與12864的4(12864的串行片選端)引腳進(jìn)行連接,對(duì)顯示模塊是否工作進(jìn)行選擇;PB4與12864的5(串行數(shù)據(jù)傳輸端)引腳進(jìn)行連接;PB6控制時(shí)鐘,與12864的6引腳進(jìn)行連接,控制12864傳輸每個(gè)字符為多少個(gè)脈沖;12864的第15引腳為選擇串行或者是并行工作方式,與主控芯片LM3S811的地線進(jìn)行連接,使其置為低電平,為串行工作方式。另外,主控芯片可以從外部傳感器獲得數(shù)據(jù),通過(guò)LM3S811的控制讀取,處理,傳送,最終可以同內(nèi)部數(shù)據(jù)一樣得以在顯示模塊上顯示出來(lái)。LM3S811與TH12864的接線如圖8所示。 圖8 LM3S811與12864連接圖LM3S81112864PB2PB4PB6RS/CSR/W/SIDE/SCLK外部數(shù)據(jù)PD2、圖9 芯片連接框圖 與此同時(shí),12864顯示模塊的3、18、19、20引腳也在顯示系統(tǒng)中起著很 重要的作用,其中19、20引腳分別為12864模塊的背光電源正負(fù)極,19引腳連接到LM3S811的電源,20引腳接地,使得顯示模塊得以亮起來(lái)。圖9為芯片連接框圖。4 軟件設(shè)計(jì)4.1 IAR軟件IAR是全球領(lǐng)先的嵌入式系統(tǒng)開(kāi)發(fā)工具和服務(wù)供應(yīng)商。IAR Systems成立于1983年,到目前為止,已經(jīng)有27年的歷史,它所提供的產(chǎn)品和服務(wù)涉及到嵌入式系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)和測(cè)試的每一個(gè)階段,包括帶有C/C+的編譯器和調(diào)試器的集成開(kāi)發(fā)環(huán)境、實(shí)時(shí)操作系統(tǒng)、硬件仿真器等。IAR Systems公司總部在北歐的瑞典,在美國(guó)、日本、巴西、中國(guó)等國(guó)家設(shè)有分公司,他最著名的、被廣泛應(yīng)用的產(chǎn)品是C編譯器-IAR Embedded Workbench,它支持很多知名公司的微處理器。全球很多著名的公司都在使用IAR SYSTEMS提供的開(kāi)發(fā)工具,用以開(kāi)發(fā)最前沿的科技產(chǎn)品,從手機(jī)應(yīng)用系統(tǒng)到航天航空、消費(fèi)電子及工業(yè)制造等等。2003年6月,IAR Systems傳入中國(guó),在中國(guó)成立辦事處;2007年5月,成立了愛(ài)亞軟件技術(shù)咨詢(xún)(上海)有限公司,加強(qiáng)了對(duì)中國(guó)辦事處及部分東亞國(guó)家的產(chǎn)品銷(xiāo)售和技術(shù)支持,至此,國(guó)內(nèi)開(kāi)始正式引用該軟件9。4.1.1 IAR的下載(1) 登陸IAR公司的網(wǎng)站:。(2) 點(diǎn)擊“下載”,出現(xiàn)下載版本選擇界面如圖11所示,由于IAR EWARM試用版有:30天功能無(wú)限制版本、32K代碼限制版本,32K代碼限制版的優(yōu)點(diǎn)是在使用時(shí)間上無(wú)限制。點(diǎn)擊ARM一欄32K限制版,出現(xiàn)軟件下載確認(rèn)頁(yè)面點(diǎn)擊左下角的“continue”,出現(xiàn)注冊(cè)信息頁(yè)面,輸入注冊(cè)信息。注意需在“Chip manufacture”中選擇“Texsas instruments”圖10 EWARM 下載版本選擇 (3) 填完全部選項(xiàng)后,點(diǎn)擊“Submit Registion”,會(huì)出現(xiàn)注冊(cè)成功的頁(yè)面如圖11:圖11 注冊(cè)成功頁(yè)面提示(4) 稍過(guò)一會(huì),可收到IAR系統(tǒng)發(fā)出的確認(rèn)郵件,點(diǎn)擊頁(yè)面中的鏈接,在彈出的頁(yè)面中,獲得IAR提供的試用版序列號(hào)和密鑰,如圖12,點(diǎn)擊頁(yè)面中的“Download from”中的鏈接便可下載安裝程序。圖12 EWARM 提供的序列號(hào)及密鑰4.1.2 IAR安裝(1) 下載完IAR開(kāi)發(fā)軟件,找到安裝文件,雙擊安裝程序“EWARM-KS-WEB-5501”,啟動(dòng)安裝。(2) 在安裝頁(yè)面中,點(diǎn)擊Install IAR Embedded workbench,開(kāi)始安裝。在安裝過(guò)程中,需要輸入試用版序列號(hào)和密鑰在下載過(guò)程中得到,輸入完成后,點(diǎn)擊Next繼續(xù)安裝。(3) 安裝完成后,點(diǎn)擊Finish,結(jié)束安裝。4.1.3 IAR文件的創(chuàng)建、使用(1) 先創(chuàng)建一個(gè)工程文件目錄,用來(lái)存放工作區(qū)文件、工程文件及源文件10。以時(shí)間顯示為例,存放于D:qclshijian目錄下。(2) 啟動(dòng)IAR EWARM(3) 創(chuàng)建“shijian”項(xiàng)目 打開(kāi)IAR EWARM,在工作區(qū)內(nèi)新建項(xiàng)目:1) 點(diǎn)擊“project”,選擇“Creat new project”。2)默認(rèn)選擇ARM和Empty project,創(chuàng)建一個(gè)基于ARM得空項(xiàng)目。3)保存項(xiàng)目,設(shè)置其名稱(chēng)為shijian.ewp。(4) 創(chuàng)建文件組 項(xiàng)目創(chuàng)建完成后,在項(xiàng)目中添加三個(gè)文件組lib、src、startup,用于存放不同類(lèi)型的源文件。1) 右擊項(xiàng)目名稱(chēng),點(diǎn)擊“add”,選擇“add group”,在彈出的add group對(duì)話框中輸入文件組的名稱(chēng),如圖13:圖13添加文件組名稱(chēng)2) 向文件組中添加文件,右擊文件組名,單擊“add”,選擇“add files”,添加所需文件,比如lib文件組中的driverlib.a,是任何一個(gè)項(xiàng)目中必不可少的,路徑為:C:stellarisWaredriverlibewarmExe。如圖14:圖14 添加文件driverlib.a另一個(gè)必不可少的文件為startup_ewarm.c,需添加在startup文件組下,其路徑為C:stellarisWareboardsek-lm3s9b92hello。此文件需復(fù)制到新項(xiàng)目的文件夾下,再添加到startup文件組 3) 在本例中,直接向源程序添加“shijian.c”及其它程序,添加完成后,如圖15所示:圖15 項(xiàng)目主頁(yè)面 (5) 項(xiàng)目屬性設(shè)置 在完成前兩步之后,對(duì)項(xiàng)目進(jìn)行設(shè)置,右擊“shijian-Debug”,彈出如圖16窗口:圖16 項(xiàng)目屬性設(shè)置窗口 1) 通用選項(xiàng)設(shè)置 點(diǎn)擊General Options選項(xiàng),在Target選項(xiàng)下,點(diǎn)擊Device,在右側(cè)選擇Texas Insruments、LM3S811。 2) C/C+編譯器設(shè)置點(diǎn)擊Preprocessor選項(xiàng)卡,添加Include文件目錄,如圖17所示:添加C:stellarisWaredriverlib、C:stellarisWareinc等。圖17 C/C+ Compiler設(shè)置 3) Output Converter設(shè)置 在Output選項(xiàng)卡中,勾中General additional output,在output format里選擇binary,再勾中override default。這樣在編譯時(shí)會(huì)自動(dòng)生成二進(jìn)制文件shijian.bin,方便下載。 4) Linker選項(xiàng)設(shè)置 勾中override default,在選擇添加D:qclshijianLM3S811.icf。在List選項(xiàng)中選擇generate linker map file,生成MAP文件。 5) Debugger選項(xiàng)設(shè)置 在setup里面的driver選項(xiàng)選擇LMFTDI;在download下勾中verify download和use flash load。 6) LMI FTDI 設(shè)置 在Interface下選擇JTAG,在JTAG里選擇100KHz。(6) 編譯、下載 若代碼經(jīng)過(guò)調(diào)試、編譯沒(méi)有問(wèn)題,可以下載仿真,編譯調(diào)試界面如圖18:圖18 編譯調(diào)試4.2 控制顯示在顯示系統(tǒng)中,我們通過(guò)主控芯片LM3S811對(duì)12864顯示模塊進(jìn)行控制,通過(guò)12864顯示模塊對(duì)主控芯片的命令進(jìn)行讀取,得到需要顯示的數(shù)據(jù)或者指令,對(duì)所需顯示的數(shù)據(jù)進(jìn)行顯示。12864液晶顯示模塊的每一個(gè)字符分為三個(gè)字節(jié)進(jìn)行傳送,其串行傳送過(guò)程如圖19: 圖19 串行時(shí)序圖 串行數(shù)據(jù)傳送分三個(gè)字節(jié)完成: 第一個(gè)字節(jié):串口控制格式為 11111ABC A為數(shù)據(jù)傳送方向控制:H表示數(shù)據(jù)從LCD到MCU,L表示數(shù)據(jù)從MCU到LCD B為數(shù)據(jù)類(lèi)型選擇:H表示數(shù)據(jù)時(shí)顯示數(shù)據(jù),L表示數(shù)據(jù)是控制指令 C固定為0 第二個(gè)字節(jié): 8位數(shù)據(jù)的低4位格式為 DDDD0000 第三個(gè)字節(jié): 8位數(shù)據(jù)的高4位DDDD0000 在本設(shè)計(jì)中使用了如上的串行傳送方式,每一個(gè)數(shù)據(jù)分三個(gè)字節(jié)進(jìn)行傳送,其中第一個(gè)字節(jié)的前五位與最后一位為固定的1或0,第六位控制數(shù)據(jù)的傳送方向,第七位對(duì)傳送的數(shù)據(jù)類(lèi)型進(jìn)行選擇;第二個(gè)字節(jié)開(kāi)始對(duì)具體數(shù)據(jù)進(jìn)行傳送,首先傳送的是數(shù)據(jù)的高四位,經(jīng)過(guò)第二個(gè)字節(jié)的傳送,就完成了對(duì)數(shù)據(jù)的高四位的傳送,第三個(gè)字節(jié)就對(duì)數(shù)據(jù)的第四位進(jìn)行了傳送,至此,一個(gè)完整的數(shù)據(jù)得以傳送成功。 以下是對(duì)幾個(gè)基本的在設(shè)計(jì)中用到的具體指令集的介紹11: (1) 清除顯示CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLLLH 功能:清楚顯示屏幕,把DDRAM位址計(jì)數(shù)器調(diào)整為“ 00H”(2) 顯示狀態(tài) 開(kāi)/關(guān)CODERW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLHDCB功能:D=1:整體顯示ON C=1:游標(biāo)ON B=1:游標(biāo)位置ON(3) 功能設(shè)定CODERW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLHDLX0 REXX 功能:DL=1(必須設(shè)為1)RE=1:擴(kuò)充指令集動(dòng)作 RE=0:基本指令集動(dòng)作(4) 位址歸位CODERW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLLHX功能:把DDRAM位址計(jì)數(shù)器調(diào)整為“00H”,游標(biāo)回原點(diǎn),該功能不影響顯示DDRAM(5) 反白選擇CODERW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLHR1R0功能:選擇4行中任意一行作反白顯示,并可以決定反白的與否。其中R1R0為00是表示第一行反白與否,01表示第二行的反白與否,依此類(lèi)推。下面是一段字符傳送程序,即一個(gè)字符是如何分為三個(gè)字節(jié)傳送的:void Send(uchar type,uchar transdata)uchar firstbyte = 0xf8;/synchronizing bit stringuchar temp;uchar i,j = 3; if(type) firstbyte |= 0x02; GPIOPinWrite(cy_PORT, cyCS, 0xFF); GPIOPinWrite(cy_PORT, cyCLK, 0x00); while(j 0) if(j = 3) temp = firstbyte; /Synchronizing bit string else if(j = 2) temp = transdata&0xf0; /1st byte = Higher Data else temp = (transdata 0;i-)if(temp & 0x80) GPIOPinWrite(cy_PORT, cySID, 0xFF); else GPIOPinWrite(cy_PORT, cySID, 0x00); GPIOPinWrite(cy_PORT, cyCLK, 0xFF); temp = 1; GPIOPinWrite(cy_PORT, cyCLK, 0x00);if(j = 3) SysCtlDelay(600 * (TheSysClock/ 3000000); / 延時(shí)約600us else SysCtlDelay(200 * (TheSysClock/ 3000000); / 延時(shí)約200us j-; GPIOPinWrite(cy_PORT, cySID, 0x00); GPIOPinWrite(cy_PORT, cyCS, 0x00);4.2.1 漢字顯示在12864顯示模塊中,帶有中文字庫(kù),可以顯示漢字,下面的程序就是漢字顯示的主程序,它顯示的是8行漢字,由于12864顯示模塊為128*64,即可以顯示四行漢字,每行可以顯示八個(gè)漢字,所以通過(guò)循環(huán)顯示,每次顯示四行,完成八行漢字的顯示。void main(void) jtagWait(); / 防止JTAG失效,重要! clockInit(); / 時(shí)鐘初始化:晶振,6MHz /初始化指針數(shù)組 ptr0 = h0; ptr1 = h1; ptr2 = h2; ptr3 = h3; ptr4 = h4; ptr5 = h5;ptr6 = h6;Ini_Lcd(); / 初始化液晶 unsigned char tmp; for(;) tcnt+; if(tcnt = 0x02) Disp_HZ(0x80,ptrd1,8); Disp_HZ(0x90,ptrd2,8); Disp_HZ(0x88,ptrd3,8); Disp_HZ(0x98,ptrd4,8); tmp = d4; d4+; if(d4 = 7) d4 = 0; d1 = d2; d2 = d3; d3 = tmp; tcnt = 0; SysCtlDelay(1000 * (TheSysClock/ 3000); / 延時(shí)約1000ms 4.2.2 圖片顯示 12864顯示模塊可以顯示圖片,由于在顯示圖片的過(guò)程中,需要根據(jù)圖片的內(nèi)容來(lái)控制128*64個(gè)點(diǎn)的每個(gè)點(diǎn)的高低電平,從而達(dá)到顯示圖片的效果,在這里我非常感謝曉奇提供的液晶顯示字模提取系統(tǒng),給予了我很大的方便,在實(shí)現(xiàn)顯示延大?;盏臅r(shí)候,通過(guò)圖形編輯器對(duì)圖片進(jìn)行處理處理,先用魔棒對(duì)圖片部分進(jìn)行選擇,再根據(jù)需要調(diào)整圖片的飽和度、色度以及黑白、銳化等,最終使用曉奇提供的液晶顯示字模提取工具對(duì)圖片進(jìn)行字模提取,在圖片編輯和提取的過(guò)程中,需要注意的是圖片的大小必須是128*64的,在提取的界面中,參數(shù)書(shū)設(shè)定為128*64,才可以得到正確的顯示內(nèi)容,否則會(huì)出現(xiàn)顯示器顯示出來(lái)為亂碼的情況,如圖20是字模提取的顯示結(jié)果: 圖20 提取的圖片 4.2.3 按鍵中斷控制時(shí)間顯示 在小車(chē)顯示系統(tǒng)的設(shè)計(jì)中,根據(jù)需要,對(duì)時(shí)間的顯示是必不可少的一部分內(nèi)容,其中要對(duì)總時(shí)間顯示。在時(shí)間顯示中,需要用到的功能主要為定時(shí)器,在定時(shí)的過(guò)程中,把秒轉(zhuǎn)換成我們平時(shí)所見(jiàn)的時(shí)分秒的形式,由于是小車(chē)時(shí)間顯示,所以需要在小車(chē)啟動(dòng)的時(shí)候,開(kāi)始計(jì)時(shí),在小車(chē)停止的時(shí)候,停止計(jì)時(shí)。所以就需要設(shè)置按鍵,在按下鍵時(shí),開(kāi)始計(jì)時(shí),再次按鍵時(shí),停止計(jì)時(shí),在三次按鍵時(shí),由于對(duì)變量eiTi進(jìn)行清零處理,因此從零開(kāi)始再計(jì)時(shí)。從而達(dá)到可以計(jì)出每次小車(chē)運(yùn)行的總時(shí)間。如下是按鍵計(jì)時(shí)的流程圖和部分源程序:t=1啟 動(dòng) 動(dòng)GPIO中斷處理停止t=0if(t=0) t=1;if(t=1) t=0;按 鍵計(jì) 時(shí)圖21 按鍵計(jì)時(shí)void GPIO_Port_B_ISR(void) unsigned char ucVal; unsigned long ulStatus; ulStatus = GPIOPinIntStatus(KEY_PORT, true); /讀取中斷狀態(tài) GPIOPinIntClear(KEY_PORT, ulStatus); /清除中斷狀態(tài),重要 if (ulStatus & KEY_PIN) /如果KEY的中斷狀態(tài)有效 SysCtlDelay(10 * (TheSysClock /3000); /延時(shí)約10ms,消除按鍵抖動(dòng) while (GPIOPinRead(KEY_PORT, KEY_PIN) = 0x00) ; SysCtlDelay(10 * (TheSysClock /3000); /延時(shí)約10ms,消除松鍵抖動(dòng) if(t=0) t=1; TimerLoadSet(TIMER0_BASE, TIMER_A, 60000); /定時(shí)1s TimerEnable(TIMER0_BASE, TIMER_A); /使能Timer計(jì)數(shù) GPIOPinWrite(LED_PORT, LED_PIN, 0xFF);/點(diǎn)亮LED,定時(shí)開(kāi)始 eiTi=0; /三次按鍵后時(shí)間清零 else if(t=1) t=0; 進(jìn)入程序for定 時(shí)1S按 鍵中斷處理eiTi+否是eiTi換算為時(shí)分秒的形式顯 示 按 鍵停 止 圖22 時(shí)間顯示流程 在啟動(dòng)程序之后,對(duì)GPIO、定時(shí)器、中斷進(jìn)行一系列的設(shè)置,再通過(guò)for循環(huán)顯示出小車(chē)運(yùn)行的總時(shí)間,再通過(guò)處理使得時(shí)間以x時(shí)x分x秒的形式顯示出來(lái)。進(jìn)入for循環(huán)之后,第一次按鍵之后,設(shè)置定時(shí)器定時(shí)為1秒,即每隔一秒進(jìn)入中斷一次,變量eiTi將增加1,LED將翻轉(zhuǎn)一次,計(jì)時(shí)器開(kāi)始計(jì)時(shí)。流程圖見(jiàn)圖22:/ 計(jì)算并顯示 eiHo=eiTi / 3600; n=eiTi %3600; eiMi=n/60; eiSe=n%60; Disp_HZ(0x88,cstr,8); sprintf(cbuf, 時(shí)間:%dS,%d , eiTi,i); sprintf(cstr, 時(shí)鐘%2d時(shí)%2d分%2d秒 ,eiHo,eiMi,eiSe); Disp_HZ(0x98,cbuf,8); i+; void Timer0A_ISR(void) unsigned char ucVal; unsigned long ulStatus; ulStatus = TimerIntStatus(TIMER0_BASE, true); / 獲取當(dāng)前中斷狀態(tài) TimerIntClear(TIMER0_BASE, ulStatus); /清除全部中斷狀態(tài) if (ulStatus & TIMER_TIMA_TIMEOUT) /如果是超時(shí)中斷 ucVal = GPIOPinRead(LED_PORT, LED_PIN); /反轉(zhuǎn)LED GPIOPinWrite(LED_PORT, LED_PIN, ucVal); +eiTi; 4.2.4 “小車(chē)狀態(tài)”動(dòng)態(tài)顯示在實(shí)現(xiàn)顯示的過(guò)程中,我做了“小車(chē)狀態(tài)”的動(dòng)態(tài)顯示,由于一個(gè)漢字要占兩個(gè)字節(jié),因此在編寫(xiě)程序的過(guò)程中,需要一次移位兩個(gè)字節(jié),如果只移一位,顯示出的結(jié)果是亂碼。下面是實(shí)現(xiàn)動(dòng)態(tài)顯示的過(guò)程:首先把第一個(gè)漢字的兩個(gè)字節(jié)賦給兩個(gè)臨時(shí)變量,然后把第二個(gè)漢字的兩個(gè)字節(jié)按高低字節(jié)放入第一個(gè)漢字原占的單元中,第三個(gè)漢字放入第二個(gè)漢字的單元中,依此類(lèi)推,直到最后一個(gè)放入倒數(shù)第二個(gè)漢字的單元中,再把第一個(gè)漢字的兩個(gè)臨時(shí)變量中的內(nèi)容放入最后一個(gè)漢字原來(lái)占的單元中,至此完成了第一個(gè)循環(huán),如此一直下去,則可完成漢字的動(dòng)態(tài)(循環(huán)往左)顯示。 if(i%10=0) psl=strlen(cstr1); ctemp=cstr10; ctemp1=cstr11; for(j=0;jpsl-2;) cstr1j=cstr1j+2; cstr1j+1=cstr1j+3; j=j+2; if(j=psl-3) cstr1j=ctemp; cstr1j+1=ctemp1; Disp_HZ(0x80,cstr1,8); 4.2.5 串口實(shí)現(xiàn)控制LED亮滅串口是LM3S811的一個(gè)功能模塊,它可以通過(guò)串口調(diào)試器對(duì)程序進(jìn)行調(diào)試。在調(diào)試的過(guò)程中需要設(shè)定它的參數(shù):其中有:波特率一般為9600、數(shù)據(jù)長(zhǎng)度為8位、1個(gè)停止位、無(wú)奇偶校驗(yàn)、FIFO禁能、無(wú)中斷。選擇串口一般為COM2、COM4、COM6等,在使用它進(jìn)行調(diào)試時(shí),先打開(kāi)串口,再在輸入欄里輸入on+回車(chē)或Off+回車(chē),觀察LED的亮滅情況。源程序見(jiàn)附錄1: 4.2.6 防JTAG失效程序程序:void jtagWait(void) SysCtlPeriEnable(KEY_PERIPH); GPIOPinTypeIn(KEY_PORT, KEY_PIN); if (GPIOPinRead(KEY_PORT, KEY_PIN) = 0x00) for (;); SysCtlPeriDisable(KEY_PERIPH); 在LM3S811芯片中,JTAG是作為下載(燒寫(xiě))程序來(lái)使用的,同時(shí),它的五個(gè)管腳也可以與GPIO復(fù)用,如果這五個(gè)管腳作為GPIO進(jìn)行使用了,那么可能會(huì)使得這五個(gè)管腳上有高低電平不斷存在,在進(jìn)行新的程序燒寫(xiě)的時(shí)候,可能會(huì)與原來(lái)的高低電平?jīng)_突,這樣一來(lái)會(huì)導(dǎo)致芯片無(wú)法進(jìn)行下一次燒寫(xiě)操作,永久性的無(wú)法使用。因此,在寫(xiě)LM3S811的程序時(shí),需要在每個(gè)程序的最前面寫(xiě)上jtagWait()這一句就解決了上面的麻煩,有了這個(gè)程序,在每次系統(tǒng)上電以后,如果沒(méi)有按下JTAG鍵,系統(tǒng)就會(huì)執(zhí)行以前有的程序,不影響正常運(yùn)行;如果需要下載入新的程序,則只需要按下JTAG鍵,程序就會(huì)進(jìn)入死循環(huán),等待下一次程序的的下載。4.2.7 顯示系統(tǒng)總體流程圖延大校徽前進(jìn)(后退)顯示個(gè)人信息時(shí)間顯示歡迎詞準(zhǔn)備按鍵圖23是所要顯示的整體框圖,詳細(xì)程序見(jiàn)附錄3。否按鍵啟動(dòng)小車(chē)(總時(shí)間)是否是按鍵 圖23 整體顯示流程5 調(diào)試 5.1 硬件調(diào)試完成LM3S811與12864的連接后,發(fā)現(xiàn)顯示器不能顯示,因此為了使得顯示模塊得以顯示,在顯示模塊3、18引腳間接了一個(gè)電阻,其電阻大小與顯示模塊的顯示的具體情況經(jīng)試驗(yàn)得出下表:表2 阻值變化與背光情況阻值大小背光情況 2K 灰棕色 清晰度差 7K 深藍(lán)色帶灰 清晰度一般 10K 深藍(lán)色 清晰度適中 20K 藍(lán)色 清晰度差 36K 藍(lán)色 光強(qiáng) 清晰度一般由此可見(jiàn),選擇阻值為10k的阻值為最好。在硬件電路的焊接過(guò)程中,需要注意的是所使用的電路板縱向?qū)ǖ?,如果沒(méi)有注意到的話,可能導(dǎo)致最終所焊接電路會(huì)短路。在硬件電路焊接完畢后,需要使用萬(wàn)用表對(duì)所焊電路進(jìn)行檢查,電路是否導(dǎo)通,或者電路是否短路等。從LM3S811帶仿真器的開(kāi)發(fā)板上往不帶仿真器的最小系統(tǒng)開(kāi)發(fā)板上移植程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3633-2024 原液著色滌綸牽伸絲
- T-ZSM 0074-2024 餐飲業(yè)油煙排放在線監(jiān)測(cè)儀
- 二零二五年度旅游行業(yè)客服業(yè)務(wù)員雇傭服務(wù)協(xié)議
- 二零二五年度總經(jīng)理社會(huì)責(zé)任與公益慈善聘用協(xié)議
- 2025年度模特時(shí)尚活動(dòng)贊助商權(quán)益合作協(xié)議
- 二零二五年度荒山承包轉(zhuǎn)讓及林業(yè)資源開(kāi)發(fā)利用合同
- 二零二五年度學(xué)校事業(yè)單位校車(chē)司機(jī)勞動(dòng)合同
- 二零二五年度私人土地買(mǎi)賣(mài)合同案:森林資源開(kāi)發(fā)合作合同樣本
- 二零二五年度學(xué)生校園交通安全管理協(xié)議范本匯編
- 二零二五年度合作社職業(yè)經(jīng)理人鄉(xiāng)村振興聘用協(xié)議
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)一套
- 2025年黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)參考答案
- 2025年廣東省深圳法院招聘書(shū)記員招聘144人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 變電站電網(wǎng)側(cè)儲(chǔ)能項(xiàng)目可行性研究報(bào)告
- 新版統(tǒng)編版一年級(jí)道德與法治下冊(cè)全冊(cè)教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 4.2 同學(xué)相伴 第二課時(shí) 課件 2024-2025學(xué)年三年級(jí)下冊(cè)道德與法治 統(tǒng)編版
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃安排表(完整版)
- 2025年全球及中國(guó)調(diào)頻儲(chǔ)能行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2025年度會(huì)計(jì)人員繼續(xù)教育會(huì)計(jì)法律法規(guī)答題活動(dòng)測(cè)試100題答案
- 消防維保年度工作計(jì)劃
評(píng)論
0/150
提交評(píng)論