近年來(lái),隨著(zhù)低價(jià)格、高性能DSP芯片的出現,DSP已越來(lái)越多地被應用于高速信號采集、語(yǔ)音處理、圖像分析處理等領(lǐng)域中,并且日益顯示其巨大的優(yōu)越性。而液晶顯示屏更以其顯示直觀(guān)、便于操作的特點(diǎn)被用作各種便攜式系統的顯示前端。傳統的液晶顯示往往采用單片機控制。但在系統有大量高速實(shí)時(shí)數據的情況下,單片機由于受到處理速度的限制就顯得力不從心。為了解決這些問(wèn)題,本文提出了一種基于DSP控制的液晶顯示屏的設計,有效地解決以上所遇到的問(wèn)題。 1 SED1335控制器的介紹 AT-320240Q1型液晶顯示屏是由臺北晶采用電科技股份有限公司生產(chǎn)的一款內嵌SED1335控制器的液晶顯示屏。它由320×240點(diǎn)陣構成,具有高分辨率(點(diǎn)型為0.225mm×0.225mm)、接口方便(5V或3.3V)、設計簡(jiǎn)便(內嵌控制器)、功耗低、價(jià)格便宜等優(yōu)點(diǎn),常常用于各種便攜式設備顯示前端以及日用家電顯示模塊中;320×240點(diǎn)陣的顯示屏具有多種擴展功能供用戶(hù)選擇,大大方便了用戶(hù),提高了系統的集成度與實(shí)用性。 SED1335控制器是由日本EPSON公司生產(chǎn)的一款液晶顯示屏控制器,與同類(lèi)產(chǎn)品相比,功能最強。其主要特點(diǎn)有: ?有較強功能的I/O緩沖器; ?指令功能豐富; ?四位數據并行發(fā)送; ?圖形和文本方式混合顯示。 SED1335控制器的指令集見(jiàn)表1。SED1335控制器具有13條指令,多數指令帶有參數,參數值可由用戶(hù)根據所控制的液晶顯示模塊的特征和顯示的需要來(lái)設置。 表1 SED1335控制器指令表 SED1335控制器是應用于MPU系統與液晶模塊之間的控制芯片,它接收來(lái)自MPU系統的指令與數據,并產(chǎn)生相應的時(shí)序及數據控制模塊的顯示。A0為LCD控制制寄存器的選擇輸入,分別選通指令輸入緩沖器和數據輸入緩沖器,類(lèi)似于通常字符點(diǎn)陣LCD模塊的RS或D/I。MPU把指令代碼寫(xiě)入指令輸入緩沖器內(即A0=1),指令的參數數據則隨后通過(guò)數據輸入緩沖寫(xiě)入(A0=0)。帶有參數指令代碼的作用之一就是選通相應的參數寄存器,任一條指令的執行(除SLEEPIN、CSRDIR、CSRR和MREAD外)都產(chǎn)生在附屬參數的輸入完成之后。MPU也可用寫(xiě)入新的參數與余下的舊參數有效地組合成新的參數組。需要注意的是,在實(shí)際使用指令時(shí),如果該指令具有多個(gè)參數,則必須按順序依次寫(xiě)入各個(gè)參數,不能隨意省略。尤其在MPU操作SED1335及其控制的液晶顯示模塊時(shí),必須首先寫(xiě)入SYSTEN SET(40H)指令。如果該指令設置出現錯誤,則顯示必定不正常。 這里著(zhù)重介紹CPSDIR指令。該指令的作用是規定光標地址指針自動(dòng)移動(dòng)的方向。SED1335所控制的光標地址指針實(shí)際也是顯示RAM的當前地址指針。在控制器執行完讀寫(xiě)操作后,將自動(dòng)修改光標地址指針。該指令有四個(gè)參數:4C/4D/4E/4FH,分別表示修改的四個(gè)方向,這樣就具有了很強的作圖功能,這也是很多液晶控制器所沒(méi)有的。在A(yíng)T-320240Q1型液晶顯示屏的設計中,顯示的順序是從右向左,即顯示屏上的一個(gè)8×1點(diǎn)陣從左至右依次對應內存單元中1bit數據的高位到低位。因此對于常規的字模來(lái)說(shuō),就會(huì )導致顯示相反的現象,可通過(guò)控制光標地址指針的移動(dòng)方向很好地解決這個(gè)問(wèn)題。 2 DSP與液晶顯示屏硬件接口的設計 由于該款液晶顯示屏內嵌了SED1335控制器,并且將接口電路直接引出,因此對于用戶(hù)而言,整體設計大大簡(jiǎn)化,只需考慮DSP同接口電路間的連接即可。 以下是DSP與該液晶顯示屏硬件接口的一種設計方案,如圖1所示。 在該系統的設計過(guò)程中,選用了TI公司的TMS320C5402芯片。由于其內部ROM不可寫(xiě),所以外掛一片32K的27256 EEPROM作為外部程序區來(lái)存儲程序與外部字庫?紤]到TMS320C5402芯片具有高達1Mbit的外擴空間,實(shí)際應用時(shí)用戶(hù)可以根據需要改變ROM的大小。對于液晶顯示屏的數據接口,因為DSP與液晶顯示屏均由3.3V供電,可以直接將二者數據線(xiàn)相連,這樣DSP就能將ROM或RAM中的數據直接送入控制器的緩存中以便顯示。液晶顯示屏的控制信號由DSP地址線(xiàn)的第16位與第9位譯碼,因此在程序的設計中,指令口地址為8100H,數據口地址為8000H。由于DSP的讀寫(xiě)管腳復用,當該管腳為高時(shí),通過(guò)非門(mén)輸出低電平選通液晶顯示屏的讀信號;當讀管腳為低時(shí),則直接選通液晶顯示屏的寫(xiě)管腳。 3 DSP控制液晶顯示屏的軟件設計 這里通過(guò)液晶顯示屏的初始化過(guò)程以及如何顯示一幅圖畫(huà)來(lái)具體說(shuō)明DSP控制液晶顯示屏的軟件設計。需要顯示的圖片如圖2所示?梢酝ㄟ^(guò)WINDOWS附帶的畫(huà)圖工具制作這樣一幅320×240的黑白位圖。針對這款顯示屏是由右向左顯示的特點(diǎn),需要將其垂直對稱(chēng)翻轉,最后將處理過(guò)的圖片以16進(jìn)制文件的形式燒入外部27256中。該圖片數據文件在DSP外部空間的起始地址為:0C000H。 由流程圖(圖3)可以看出,在系統硬件上電復位后,軟件根據用戶(hù)的需要自動(dòng)對各項控制器指令代碼及其參數進(jìn)行設置,從而完成對液晶模塊的參數(如液晶的行數、列數、掃描頻率、光標的位置等)以及顯示方式等一系列的初始化過(guò)程。在對系統進(jìn)行正確的初始化以后,可以通過(guò)DSP將外部ROM中的數據直接送至SED1335顯示緩沖區,控制器就可以控制液晶屏顯示出用戶(hù)所要的圖畫(huà)。同時(shí)用戶(hù)也可以根據自己的需要在主程序運行的過(guò)程中改變圖片顯示的形式,只需在表1中選擇相應的指令代碼以及參數即可。 設置系統指令及其參數的方法如下:根據用戶(hù)硬件電路的設計,先將指令代碼送到SED1335控制器的命令口地址;然后把該指令的參數依次送到數據口地址,經(jīng)過(guò)系統指令及其參數的設置后,就可以把數據送到數據口地址。具體語(yǔ)法形式如下: 指令設置語(yǔ)句: STM #XXH,AR0 ;XXH為指令代碼 PORTW AR0,#8100H ;8100H為命令口地址 參數設置語(yǔ)句: STM #XXH,AR0 ;XXH為指令參數 PORTW AR0,#8000H ;8000H為數據口地址 ………… 數據輸入語(yǔ)句: STM #XXH,AR0 ;XXH為用戶(hù)數據 PORTW AR0,#8000H ;8000H為數據口地址 ………… 液晶顯示屏的初始化程序如下: INIT: STM #40H,AR0 ;系統設置命令,指令代碼:40H PORTW WR0,#8100H STM #10H,AR0 ;標準設置 PORTW AR0,#8000H STM #87H,AR0 ;設置光標寬度為8 PORTW AR0,#8000H STM #07H,AR0 ;設置光標高度為8 PORTW AR0,#8000H STM #27H,AR0;設置LCD每行需要的字節數, PORTW AR0,#8000H每行320個(gè)點(diǎn),行數為320/8=40 STM #36H,AR0 ;設置液晶的掃描頻率約為70Hz PORTW AR0,#8000H STM #0F0H,AR0 ;設置LCD的點(diǎn)行數為240 PORTW AR0,#8000H STM #28H,AR0 ;設置顯示屏一行所占顯緩的字節數 PORTW AR0,#8000H STM #00H,AR0 PORTW AR0,#8000H STM #44H,AR0 ;SCROLL指令,指令代碼:44H PORTW AR0,#8100H STM #00H,AR0 ;確定第一顯示區的首地址 PORTW AR0,#8000H STM #00H,AR0 PORTW AR0,#8000H STM #240D,AR0 ;設置第一顯示區的行數 PORTW AR0,#8000H STM #00H,AR0 ;確定第二顯示區的首地址 PORTW AR0,#8000H STM #40H,AR0 PORTW AR0,#8000H STM #0F0H,AR0 ;設置第二顯示區的行數 PORTW AR0,#8000H STM #00H,AR0 ;確定第三顯示區的首地址 PORTW AR0,#8000H STM #80H,AR0 PORTW AR0,#8000H STM #4CH,AR0 ;設置光標自動(dòng)由左向右移動(dòng) PORTW AR0,#8100H STM #5BH,AR0 ;設置顯示屏為兩層疊加顯示方式 PORTW AR0,#8100H STM #0DH,AR0 PORTW AR0,#8000H ………… STM #42H,AR0 ;液晶顯示屏顯緩寫(xiě)指令 PORTW AR0,#8100H LD #240D,A ;清屏程序 LOOP1:LD #40D,B LOOP2:STM #00H,AR0 PORTW AR0,#8000H SUB #1H,B BC LOOP2,BNEQ SUB #1H,A BC LOOP1,ANEQ RET ;初始化結束 顯示圖片的主程序如下: AMIN:STM #800H,SP CALL INIT ;調用液晶顯示屏初始化程序 STM #0C03EH,AR1 ;位圖數據相對于BMP文件頭的地址 STM #42H,AR0 PORTW AR0,#8100H ;送液晶顯示屏緩寫(xiě)指令 LD #240,A CMP:LD #40,B CMP1:PORTW AR1+,#8000H;將320×240的位圖數據依次寫(xiě)入緩存區 SUB #1,B BC CMP1,BNEQ SUB #1,A BC CMP,ANEQ B $ ;主程序結束 以上就是該系統的軟件設計。由于篇幅有限,這里省略了某些控制指令的設置,用戶(hù)可根據實(shí)際需要添加設置。在實(shí)際的軟件設計中,DSP匯編語(yǔ)言執行過(guò)程中由于本身延時(shí)而引起的數據丟失現象,可以適當地加入空指令(NOP)來(lái)解決。同時(shí),本程序中使用圖片顯示的例子只是用來(lái)說(shuō)明控制器的利用方面就顯得有些浪費而且靈活性較差。針對那些存儲空間有限、效率要求高的系統,可以制作成字模存儲在外部ROM中供多次調用, 當顯示文字時(shí)只需計算出顯示地址而后調用字模入口地址即可。 本文提出的基礎DSP控制的液晶顯示屏,作為示波表顯示前端已在實(shí)際應用中取得了成功。該系統中所選用具有64K大容量緩存區的SED1335控制器,適用于多種點(diǎn)陣規格的顯示屏使用,加之其內部固化的字符發(fā)生器可產(chǎn)生160種字模,以及具有通過(guò)改變指令參數可實(shí)現圖像的閃爍、翻轉、移動(dòng)等特點(diǎn),因此從總體性能方面而言其大大強于同類(lèi)型的其它控制器,非常適用于各種便攜式系統顯示前端的設計。 |