基于MSP430單片機(jī)的彩色TFT液晶顯示模塊的應(yīng)用
現(xiàn)代顯示技術(shù)的基本特點(diǎn)是將各種非電置的信息,如聲、光、熱、力、數(shù)、氣氛等的信息源通過一定的傳感器、處理器進(jìn)行感知和處理,傳輸給顯示裝置,再由顯示裝置進(jìn)行處理、轉(zhuǎn)換,最后經(jīng)由顯示器件轉(zhuǎn)換為人類視覺可識(shí)別的信息。在顯示的過程中,TFT彩色液晶顯示模塊可以提供更大的信息量。而觸摸屏是一種使電子設(shè)備改頭換面的設(shè)備,它賦予電子設(shè)備以嶄新的面貌,是極富吸引力的全新多媒體交互設(shè)備。
總體設(shè)計(jì)
任何一種基于微控制器的系統(tǒng)設(shè)計(jì)都包含了硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)大的方面。硬件設(shè)計(jì)主要根據(jù)系統(tǒng)的功能要求選擇不同的器件和芯片完成電路的搭建:軟件設(shè)計(jì)是根據(jù)硬件的設(shè)計(jì)編寫驅(qū)動(dòng)代碼和控制代碼來完成特定的功能。硬件設(shè)計(jì)與軟件設(shè)計(jì)結(jié)合起來才是一個(gè)完整的系統(tǒng)設(shè)計(jì)。
系統(tǒng)硬件框圖根據(jù)系統(tǒng)的設(shè)計(jì)要求(1)能顯示溫度、濕度和時(shí)間信息:(2)時(shí)間信息在外部斷電后可以保持;(3)能將溫度、濕度和時(shí)間等信息進(jìn)行語音提示;(4)可以對(duì)時(shí)間進(jìn)行設(shè)置。提出系統(tǒng)的硬件框圖如下圖所示。
系統(tǒng)軟件設(shè)計(jì)思想要完成這樣一個(gè)系統(tǒng),一般都會(huì)使用到微控制器的中斷系統(tǒng)?;诖?,系統(tǒng)軟件的設(shè)計(jì)思想如下:(1)開機(jī)檢測(cè)系統(tǒng)狀態(tài),完成相應(yīng)的初始化(在初始化中打開中斷);(2)進(jìn)入正常工作狀態(tài);(3)等待中斷觸發(fā),在不同的中斷中完成不同的功能。
硬件設(shè)計(jì)
微控制器的選擇與最小系統(tǒng)設(shè)計(jì)在整個(gè)系統(tǒng)中,微控制器是一個(gè)很重要的核心器件,它主要完成傳感器信號(hào)的加工與處理、時(shí)間信號(hào)的加工與處理、顯示信號(hào)的加工與處理以及人機(jī)交互信息的加工與處理。這些信息量是非常大的。
目前市面上單片機(jī)的種類與型號(hào)是最豐富的,從系統(tǒng)需求和筆者的經(jīng)驗(yàn)出發(fā),選擇高速、高性能的MSP430系列單片機(jī)中的2系列單片機(jī)作為主控制器。
在2系列單片機(jī)中,性價(jià)比相對(duì)比較高的是MSP430F24X(1)、MSP430F241(×)中的64腳封裝的幾種型號(hào)。它們的管腳是完全兼容的,區(qū)別是片內(nèi)資源的不同。
根據(jù)利爾達(dá)公司的LSD-FET430UIF這種型號(hào)的仿真頭的使用說明和MSP430單片機(jī)的特性和管腳定義繪制最小系統(tǒng)板原理圖如下圖所示。
該最小系統(tǒng)板主要是完成MSP430單片機(jī)管腳的引出,采用DC3簡(jiǎn)易牛角插座;同時(shí),對(duì)于UART串口使用了一片MAX3232芯片進(jìn)行電平轉(zhuǎn)換,配合DB9插座,從而可以和PC機(jī)進(jìn)行通信。之所以采用這種插座引出的方式,是為了實(shí)現(xiàn)模塊化,方便調(diào)試、檢測(cè)和進(jìn)行替換。
溫度與濕度信息獲取模塊的設(shè)計(jì)溫度與濕度信息都是模擬量,因此必須使用相應(yīng)的傳感器及相關(guān)器件組成一定的模塊將其轉(zhuǎn)變成單片機(jī)可以識(shí)別的數(shù)字量。目前市面上溫度和濕度傳感器的品種有很多,已經(jīng)出現(xiàn)了溫濕度一體化的傳感器,通過調(diào)研,筆者選定了瑞士盛世瑞恩公司的SHT數(shù)字溫濕度傳感器。SHT數(shù)字溫濕度傳感器最大的特點(diǎn)是:①全標(biāo)定輸出,無需標(biāo)定即可互換使用;②兩線制數(shù)字接口,無需額外電路。
實(shí)時(shí)時(shí)鐘模塊的設(shè)計(jì)實(shí)時(shí)時(shí)鐘信號(hào)的獲取有多種途徑,可以利用單片機(jī)自身的內(nèi)部定時(shí)器或者中斷產(chǎn)生,也可以使用專用的時(shí)鐘芯片獲得。而無論使用哪一種方式,都必須考慮到斷電后時(shí)鐘繼續(xù)工作的問題。
這個(gè)時(shí)候,采用專用的時(shí)鐘芯片來解決這個(gè)問題是最簡(jiǎn)便的方法,本設(shè)計(jì)中直接使用PCF8563來完成實(shí)時(shí)時(shí)鐘模塊的設(shè)計(jì)。
PCF8563是低功耗的CMOS實(shí)時(shí)時(shí)鐘/日歷芯片,它提供一個(gè)可編程時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測(cè)器,所有的地址和數(shù)據(jù)通過12C總線接口串行傳遞。最大總線速度為400Kbits/s,每次讀寫數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會(huì)自動(dòng)產(chǎn)生增量。
語音提示模塊的設(shè)計(jì)目前市面上有多種類型的語音芯片。
對(duì)于用量不大的使用者來說,最常見的語音芯片主要分為兩大類:一類以Flash為存儲(chǔ)器,需要將語音信號(hào)進(jìn)行錄入后才可以播放,以后也可以修改語音信號(hào),以ISD系列芯片為代表;一類將語音信號(hào)固化在ROM中,通過輸入相應(yīng)的控制和數(shù)據(jù)代碼只能進(jìn)行放音操作。在本系統(tǒng)中,選擇使用第二類芯片。具體的型號(hào)是北京宇音天下科技有限公司采用自主核心技術(shù)開發(fā)的OSYN06188嵌入式中文語音合成芯片。
OSYN06188的特點(diǎn)是:通過UART接收待合成的文本,可直接通過PWM輸出方式驅(qū)動(dòng)揚(yáng)聲器,亦可外接單支三極管驅(qū)動(dòng)揚(yáng)聲器,即可實(shí)現(xiàn)文本到聲音(TTS)的轉(zhuǎn)換。支持國(guó)家標(biāo)準(zhǔn)GB2312所有漢字。
人機(jī)交互模塊的設(shè)計(jì)人機(jī)交互模塊是系統(tǒng)設(shè)計(jì)中非常重要的組成部分,主要包括了信息顯示終端與輸入終端這兩個(gè)部分。
在這樣一個(gè)系統(tǒng)中,信息顯示終端必然選擇平板顯示器件;在平板顯示器件中要么選擇數(shù)碼管/LED點(diǎn)陣,要么選擇液晶顯示模塊。輸入終端可以選擇獨(dú)立式鍵盤、矩陣式鍵盤;當(dāng)選擇使用了液晶顯示模塊后還可以選擇觸摸屏作為輸入終端。
本系統(tǒng)選擇4.7TFT真彩色液晶顯示模塊做為顯示終端,與之配套的觸摸屏做為輸入終端來完成人機(jī)交互模塊的設(shè)計(jì)。
1.漢字顯示:標(biāo)準(zhǔn)漢字的點(diǎn)陣為15列16行,在沒有硬件漢字庫(kù)的情況下使用軟件對(duì)漢字進(jìn)行取模操作,然后將顯示模數(shù)據(jù)送液晶顯示器件進(jìn)行顯示。筆者選用的4.7液晶顯示模塊中自帶了集通數(shù)碼科技的GT21標(biāo)準(zhǔn)漢字字庫(kù)芯片。GT21芯片采用了SPI總線,使用相對(duì)簡(jiǎn)單方便。
2.觸摸屏:觸摸屏是一種極富吸引力的全新交互設(shè)備,它極大的簡(jiǎn)化了系統(tǒng)的使用,使各種類型的系統(tǒng)展現(xiàn)出更大的魅力。觸摸屏的三大主要種類是:電阻式觸摸屏、聲表面波式觸摸屏、電容式觸摸屏。其中電阻式觸摸屏自進(jìn)入市場(chǎng)以來,就以穩(wěn)定的質(zhì)量,可靠的品質(zhì)及環(huán)境的高度適應(yīng)性占據(jù)了廣大的市場(chǎng),占有90%的市場(chǎng)量,已成為市場(chǎng)上的主流產(chǎn)品。本系統(tǒng)即選用電阻式觸摸屏。從工作原理來看,要完成電阻式觸摸屏的驅(qū)動(dòng)與控制,必須具備以下兩個(gè)條件。(1)完成電極電壓的切換;(2)采集接觸點(diǎn)處的電壓值(即A/D)。
此時(shí)可以通過使用模擬開關(guān)與MSP430內(nèi)部自帶的AD轉(zhuǎn)換器來實(shí)現(xiàn)電阻式觸摸屏的驅(qū)動(dòng)與控制,但是這樣會(huì)增加系統(tǒng)硬件設(shè)計(jì)的難度以及軟件編寫的難度。因此選擇使用觸摸屏專用控制芯片AD7843是一種簡(jiǎn)單、有效的解決方式。
3.基于觸摸屏的人機(jī)交互模塊的硬件設(shè)計(jì):根據(jù)所選擇的器件,最終完成的硬件設(shè)計(jì)如下圖所示。
在圖中左側(cè)的接口也使用了DC3-10腳插座,與MSP430F2XX最小系統(tǒng)板是一一對(duì)應(yīng)的。連接采用FC3-10芯的排線進(jìn)行連接。
軟件設(shè)計(jì)
系統(tǒng)工作流程與大多數(shù)的微控制器一樣,MSP430系列單片機(jī)支持匯編與C語言的編程,另外MSP430系列單片機(jī)還支持C++語言的編程。由于C語言的優(yōu)異特性,筆者選用C語言進(jìn)行編程。目前針對(duì)MSP430系列單片機(jī)的開發(fā)環(huán)境中,相對(duì)使用比較多的是IAREmbeddedWorkbench。
1MSP430系列單片機(jī)低功耗程序結(jié)構(gòu):由于MSP430系列單片機(jī)的在超低功耗的特殊性能,使得基于MSP430系列單片機(jī)的編程有自己獨(dú)到且方便的方面。本系統(tǒng)程序設(shè)計(jì)選擇如下圖所示結(jié)構(gòu)。
低功耗的實(shí)現(xiàn)是由程序狀態(tài)寄存器(SR)中的控制位進(jìn)行控制的。它實(shí)現(xiàn)了5種低功耗模式:LPMO、LPM1、LPM2、LPM3、LPM40任何一種低功耗模式都只能與活動(dòng)模式進(jìn)行切換,如下圖所示。
程序代碼編寫程序代碼要根據(jù)不同模塊、不同硬件連接方式進(jìn)行編寫。
1Flash驅(qū)動(dòng):MSP430系列單片機(jī)的Flash分為程序Flash和信息Flash。程序Flash按512字節(jié)分段,信息Flash按64字節(jié)分段。MSP430系列單片機(jī)可以對(duì)自身的Flash進(jìn)行讀寫操作,因此可以將系統(tǒng)設(shè)置、狀態(tài)信息保存在自身的Flash中,從而省去相應(yīng)的外設(shè)。
值得注意的是,F(xiàn)lash的擦除是按段進(jìn)行的。因此,要改變某一字節(jié)的Flash中的內(nèi)容必須按照以下幾個(gè)步驟進(jìn)行。(1)將相應(yīng)段中的內(nèi)容讀入到內(nèi)存中保存起來;(2)修改相應(yīng)字節(jié)的內(nèi)容;(3)段擦除;(4)寫入修改后的信息。
2硬件乘法器驅(qū)動(dòng):硬件乘法器是一個(gè)外圍器件,它的運(yùn)算過程與CPU無關(guān),軟件通過訪問相關(guān)的寄存器就可以得到最終的運(yùn)算結(jié)果。(1)操作數(shù)1寄存器(OPI)不能直接訪問,只能通過4個(gè)寄存器MPY、MPYS、MAC或MACS來間接訪問,這4個(gè)寄存器又代表了不同的乘法操作,分別為無符號(hào)乘法運(yùn)算、有符號(hào)乘法運(yùn)算、無符號(hào)乘加運(yùn)算以及無符號(hào)乘加運(yùn)算:(2)操作數(shù)2寄存器(OP2)可以直接訪問:(3)當(dāng)數(shù)據(jù)寫入OP2寄存器時(shí),立即開始相應(yīng)的運(yùn)算,運(yùn)算結(jié)果放入RESHI、RESLO以及SUMEXT這3個(gè)寄存器中。
3USCI驅(qū)動(dòng):所謂的USCI指的就是UniversalSerialCommunICationInter-face,通用串行通信接口。MSP430系列單片機(jī)提供的USCI包括了硬件的UART、SPI和IIC。
這幾種接口有些口線是復(fù)用的,有些寄存器也是復(fù)用的,在驅(qū)動(dòng)編寫中要根據(jù)當(dāng)前不同的器件及其接口在這幾個(gè)寄存器UCAxCTLO(USCI_AxControlRegistero)、UCAxCTLl(USCI_AxControlRegis-terl)、UCBxCTLO(USCI_BxControlRegisterO)、UCBxCTLl(USCI_BxCon-trolRegisterl)(x=l或2)中進(jìn)行USCI工作模式的選擇。
使用USCI驅(qū)動(dòng)時(shí),可以使用中斷方式也可以使用查詢方式進(jìn)行操作。
以查詢方式為例,如果通過USCIBO發(fā)送一個(gè)字節(jié),那么使用如下語句:
第二行代碼的作用就是等待發(fā)送操作完成。