一種基于DSP控制的液晶顯示屏的設計及實(shí)現
需要顯示的圖片如圖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為指令代碼
PORTWAR0,#8100H;8100H為命令口地址
參數設置語(yǔ)句:
STM#XXH,AR0;XXH為指令參數
PORTWAR0,#8000H;8000H為數據口地址
…………
數據輸入語(yǔ)句:
STM#XXH,AR0;XXH為用戶(hù)數據
PORTWAR0,#8000H;8000H為數據口地址
…………
液晶顯示屏的初始化程序如下:
INIT:
STM#40H,AR0;系統設置命令,指令代碼:40H
PORTWWR0,#8100H
STM#10H,AR0;標準設置
PORTWAR0,#8000H
STM#87H,AR0;設置光標寬度為8
PORTWAR0,#8000H
STM#07H,AR0;設置光標高度為8
PORTWAR0,#8000H
STM#27H,AR0;設置LCD每行需要的字節數,
PORTWAR0,#8000H每行320個(gè)點(diǎn),行數為320/8=40
STM#36H,AR0;設置液晶的掃描頻率約為70Hz
PORTWAR0,#8000H
STM#0F0H,AR0;設置LCD的點(diǎn)行數為240
PORTWAR0,#8000H
STM#28H,AR0;設置顯示屏一行所占顯緩的字節數
PORTWAR0,#8000H
STM#00H,AR0
PORTWAR0,#8000H
STM#44H,AR0;SCROLL指令,指令代碼:44H
PORTWAR0,#8100H
STM#00H,AR0;確定第一顯示區的首地址
PORTWAR0,#8000H
STM#00H,AR0
PORTWAR0,#8000H
STM#240D,AR0;設置第一顯示區的行數
PORTWAR0,#8000H
STM#00H,AR0;確定第二顯示區的首地址
PORTWAR0,#8000H
STM#40H,AR0
PORTWAR0,#8000H
STM#0F0H,AR0;設置第二顯示區的行數
PORTWAR0,#8000H
STM#00H,AR0;確定第三顯示區的首地址
PORTWAR0,#8000H
STM#80H,AR0
PORTWAR0,#8000H
STM#4CH,AR0;設置光標自動(dòng)由左向右移動(dòng)
PORTWAR0,#8100H
STM#5BH,AR0;設置顯示屏為兩層疊加顯示方式
PORTWAR0,#8100H

STM#0DH,AR0
PORTWAR0,#8000H
…………
STM#42H,AR0;液晶顯示屏顯緩寫(xiě)指令
PORTWAR0,#8100H
LD#240D,A;清屏程序
LOOP1:LD#40D,B
LOOP2:STM#00H,AR0
PORTWAR0,#8000H
SUB#1H,B
BCLOOP2,BNEQ
SUB#1H,A
BCLOOP1,ANEQ
RET;初始化結束
顯示圖片的主程序如下:
AMIN:STM#800H,SP
CALLINIT;調用液晶顯示屏初始化程序
STM#0C03EH,AR1;位圖數據相對于BMP文件頭的地址
STM#42H,AR0
PORTWAR0,#8100H;送液晶顯示屏緩寫(xiě)指令
LD#240,A
CMP:LD#40,B
CMP1:PORTWAR1+,#8000H;將320×240的位圖數據依次寫(xiě)入緩存區
SUB#1,B
BCCMP1,BNEQ
SUB#1,A
BCCMP,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)型的其它控制器,非常適用于各種便攜式系統顯示前端的設計。
評論