基于ARM單片機的小車顯示系統(tǒng)設(shè)計
摘要:為完成小車顯示系統(tǒng)的設(shè)計方案,根據(jù)LM3S811微處理器和TH12864液晶顯示模塊的主要功能及特點,設(shè)計出了小車顯示系統(tǒng)的軟硬件實現(xiàn)方法,經(jīng)過實際系統(tǒng)的測試和驗證,驅(qū)動程序功能正常,可供參考,且LM3S811硬件資源豐富,軟件易于編程開發(fā),開發(fā)的顯示系統(tǒng)可方便移植應(yīng)用到其他領(lǐng)域。
關(guān)鍵詞:ARM;LM3S811;微控制器;TH12864;液晶顯示;驅(qū)動程序
0 引言
8位的51單片機長期占據(jù)著微控制器(MCU)的主流市場,但隨著技術(shù)與需求的發(fā)展,32位微控制器應(yīng)用增長率也在不斷攀升。目前,基于ARM內(nèi)核的32位微處理器在市場上處于領(lǐng)導(dǎo)地位。
基于ARM嵌入式處理器的片上系統(tǒng)解決方案可應(yīng)用于企業(yè)應(yīng)用、汽車系統(tǒng),家庭網(wǎng)絡(luò)和無線技術(shù)等市場領(lǐng)域。ARM CortexTM系列提供了一個標(biāo)準(zhǔn)的體系結(jié)構(gòu)來滿足以上各種技術(shù)的不同性能要求,基于ARM架構(gòu)有3個分工明確的系列:A系列面向復(fù)雜的尖端應(yīng)用程序,用于運行開放式的復(fù)雜操作系統(tǒng);R系列針對實時系統(tǒng);M系列專為低成本控制和微控制器應(yīng)用開發(fā)。Cortex-M3是基于ARM架構(gòu)的處理器,是專門為了在微控制器等對功耗和成本敏感的應(yīng)用領(lǐng)域?qū)崿F(xiàn)高系統(tǒng)性能而設(shè)計的,它簡化了可編程的復(fù)雜性,使ARM架構(gòu)成為各種應(yīng)用方案的良好選擇。
Luminary Micro公司(已被TI公司收購)StelIaris提供一系列的微控制器是首款基于ARM Cortex-M3的控制器,它們?yōu)閷Τ杀居绕涿舾械那度胧轿⒖刂破鲬?yīng)用方案帶來了高性能的32位運算能力。這些具備領(lǐng)先技術(shù)的芯片使用戶能夠以傳統(tǒng)的8位和16位器件的價位來享受32位的性能。其中,LM3S811微控制器正是針對工業(yè)應(yīng)用方案而設(shè)計的,包括測試和測量設(shè)備、工廠自動化、建筑控制、運動控制、醫(yī)療器械、火警安防以及電力能源等。
TH12864等圖形點陣液晶顯示器以其工作電壓低、功耗低、壽命長、不產(chǎn)生電磁輻射污染、可以顯示復(fù)雜的文字及圖形等優(yōu)點,已被廣泛應(yīng)用在各種儀器儀表、電子設(shè)備和家用電器等領(lǐng)域。
本文嘗試將基于ARM的LM3S811微控制器與TH12864顯示模塊相結(jié)合的技術(shù)應(yīng)用。
1 系統(tǒng)硬件設(shè)計
1.1 LM3S811主控芯片
本次系統(tǒng)硬件設(shè)計的主控芯片選擇TI公司LM3S811芯片,其電源電壓為3.3 V,最高時鐘頻率50 MHz,64 kHz的單周期FLASH;3個32位通用定時器,可分成6個16位定時器使用;一組同步串行接口(SSI),2個異步串行接口(UART);4通道模數(shù)轉(zhuǎn)換器(ADC),1組模擬比較器和I2C接口;3個脈寬調(diào)制信號(PWM)模塊,32個通用輸入輸出管腳(GPIO)及硬件看門狗等。LM3S811系統(tǒng)方框圖如圖1所示。
[!--empirenews.page--]
1.2 TH12864顯示模塊
本次系統(tǒng)設(shè)計的顯示模塊選擇帶中文字庫的TH12864,其電源電壓為3.3 V。TH12864液晶顯示模塊是128×64點陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置國標(biāo)GB2312碼簡體中文字庫(16×16點陣)、128個字符(8×16點陣)及64×256點陣顯示RAM(GDRAM)。可提供8位并行及串行2種連接方式,具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。其中TH12864的管腳功能如下:
1:VSS,地(GND);2:VDD,電源;3:V0,背光調(diào)節(jié);4:CS,片選信號;5:STD,串行數(shù)據(jù);6:SCLK,串行時鐘;14:DB0-DB7,并行數(shù)據(jù);15:PSB,串并口選擇,串行模式為低電平有效;17:/RST,復(fù)位;19:LEDA,背光正極;20:LEDK,背光負(fù)極。
1.3 LM3S811主控芯片與TH12864顯示模塊的連接
為節(jié)約系統(tǒng)硬件資源以便其他用途,故選擇TH12864顯示模塊為串行模式。則主控芯片LM3S811只需要占用3個GPIO管腳即可,保留PWM等用于小車驅(qū)動等,選擇與比較器和I2C復(fù)用的PB2,PB4和PB6,如圖2所示。
2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計分為底層驅(qū)動程序、中層實現(xiàn)程序和上層應(yīng)用程序。軟件以IAR集成開發(fā)環(huán)境為開發(fā)平臺,用C語言編寫,便于維護和移植。下面是部分源程序。[!--empirenews.page--]
2.1 底層驅(qū)動部分
底層驅(qū)動程序完成的功能是實現(xiàn)TH12864的硬件時序。
程序如下:
驅(qū)動程序先預(yù)處理3個字節(jié)要發(fā)送數(shù)據(jù)的具體內(nèi)容,片選后,依次循環(huán),按時鐘信號發(fā)送每個字節(jié)的每一位,其中延時不能省略。
2.2 中層實現(xiàn)程序
中層實現(xiàn)程序完成主要功能是,按照TH12864的用戶指令集,用底層驅(qū)動程序發(fā)送指令,完成初始化、顯示、清除、設(shè)定等功能。例如初始化程序:
[!--empirenews.page--]
從前兩句可以看出LM3S811在設(shè)置GPIO時,比普通51單片機設(shè)置要簡單許多,無需記憶眾多的寄存器,由于廠家提供了Stellaris外設(shè)驅(qū)動庫函數(shù),只要調(diào)用相應(yīng)API接口函數(shù)即可,簡化了編程的復(fù)雜性,對于新學(xué)者也可以迅速上手編程工作。
2.3 上層應(yīng)用程序
在底層驅(qū)動程序和中層實現(xiàn)程序的基礎(chǔ)上,程序移植方便??梢愿鶕?jù)系統(tǒng)需求完成字符、漢字和圖片等實際顯示內(nèi)容。
此次系統(tǒng)實現(xiàn)了開機圖片顯示,歡迎詞和小車狀態(tài)的循環(huán)動態(tài)顯示,速度顯示及電子秒表等功能。
3 結(jié)語
通過本次系統(tǒng)集成的設(shè)計、制作、調(diào)試和驗證,完成并實現(xiàn)了基于ARM單片機的小車顯示系統(tǒng)功能。實現(xiàn)了LM3S811對于TH12864顯示模塊的控制,其底層驅(qū)動程序可以供大家參考。在實現(xiàn)過程中發(fā)現(xiàn),在硬件方面,LM3S811的主頻較高,運算能力較強,外設(shè)資源豐富。在軟件方面,由于廠家提供了Stellaris外設(shè)驅(qū)動庫函數(shù),降低了編程的難度,可以快速上手工作。此外,本系統(tǒng)也可以推廣應(yīng)用到其他小型儀表或設(shè)備顯示系統(tǒng)。