新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于32位微處理器的液晶顯示系統設計

        基于32位微處理器的液晶顯示系統設計

        作者: 時間:2013-12-05 來源:網絡 收藏

        SED1353 初始化程序:
        INCLUDE SED1353. ASM
        INIT MOVE. B # $00 ,AUX00 ;設置為正常工作模式
        MOVE. B # $44 ,AUX01 ;設置關顯示,雙屏結構,不屏蔽XSCL ,8 位LCD 數據, 16 位顯存結構
        MOVE. B # $27 ,AUX02 ;設置顯示域寬度LBCB8:0=1×640/ 16-1=39 (十進制)
        MOVE. B # $04 ,AUX03 ;設置正常運行方式,單色無灰度顯示,1位/像素
        MOVE. B # $EF ,AUX04 ;設置掃描行數, TDLC7:0=480/ 2-1=239(十進制)
        MOVE. B # $00 ,AUX05 ;使用默認值,每幀WF 翻轉一次
        MOVE. B # $00 , AUX06 ; 設置上半屏顯示首址為$220000
        MOVE. B # $00 ,AUX07
        MOVE. B # $80 ,AUX08 ;設置下半屏顯示首址為$224B00 (使用連續地址)
        MOVE. B # $25 ,AUX09
        MOVE. B # $00 ,AUX0C ;使用默認非顯示周期
        MOVE. B # $00 ,AUX0D ;不使用虛擬屏
        ORI.B # $90 ,AUX01 ;開顯示和LCDE 使能不需要設置的寄存器會被自動旁路

        4.2 漢字顯示程序的設計

        在對系統進行完正確的初始化后將ROM 中的字模數據送到SED1353顯示存儲器,就可以使液晶顯示屏顯示出漢字。顯示漢字需要指定其坐標位置,坐標對應該漢字模入口地址。在顯示漢字界面前, 首先清屏。由于本文中顯示存儲器結構為16 位,所以X 方向以字為單位(偶數地址對齊) 。故規定顯示區左上角坐標為(0 ,0) ,右下角坐標為(39 ,479) 。每個漢字都有唯一的代碼,所以在調用字模數據前需要對漢字的代碼進行解碼,對坐標進行解析。

        字模入口地址=Y坐標×80 + X 坐標×2 ;字模首地址=漢字代碼×32 + 字庫首地址以在坐標(30 ,148) 處顯示代碼為24 的16×16漢字為例,程序如下:
        (1) 清屏子程序
        MOVE. L # $220000 ,A4; 賦當前顯示首址
        BRA CLRLCD ;調用清屏子程序
        CLRLCD CLR. LD3
        CLR. LD4
        MOVE. W # 480 ,D3;需要清480 行
        LOOP1  MOVE. W # 40 ,D4;每行40個字
        LOOP2  MOVE. W # $0000 , (A4) + ;清零
        SUB. W # 1,D4
        BNE LOOP2
        SUB. W # 1,D3
        BNE LOOP1
        RTS

        (2) 漢字顯示子程序
        MOVE. L # 0 ,A1 ;清A1 ,A2
        MOVE. L  # 0 ,A2
        CLR. L  D1 ;清D1~D4
        CLR. L  D2
        CLR. L  D3
        CLR. L  D4
        MOVE. B  # 30,D2; 賦坐標值
        MOVE. W # 148,D3
        BSR ALXY; 調坐標解析子程序
        MOVE. LD3 ,A1 ;坐標的絕對地址送出
        MOVE. W # 24, D4 ;賦代碼值
        BSR  DECODE;調解碼子程序
        MOVE. L  D4,A2;字模首址送出
        LOOP  MOVE. W (A2) + , (A1)
        ADD. L  # $50,A1 ;字模數據寫入換行
        SUB. B  # 1 ,D1
        BNE LOOP
        END
        DECODE  MULU  # 32,D4
        ADD. W # TAB16,D4
        MOVE. B  # 16,D1 ;循環16 次
        RTS
        ... .

         
        ALXY MULU  # $50 ,D3
        MULU  # $2 ,D2
        ADD. W D2 ,D3
        ADD. L  # $220000 ,D3
        RTS

        TAB16  ......
        ******設“馬”漢字代碼為24 ******
        DC. W $0020 , $3FF0 , $0020 , $0820 ;馬
        DC. W $0820 , $0820 , $0820 , $0824
        DC. W $0FFE , $0004 , $0024 , $FFF4
        DC. W $0004 , $0004 , $0028 , $0010
        ...

        5  結束語

        32 位嵌入式處理器的軟件開發以C語言為主,通常情況下用匯編語言編寫與硬件有關的程序,高級語言C編寫主程序實現某些復雜算法,若再配上實時多任務任務操作系統更是如虎添翼。本文所述方法可移植性強,稍作修改可應用于摩托羅拉MC68K系列嵌入式系統;選用的SED1353具有直接管理128K大容量顯示緩沖區的能力,編程簡單、顯示速度快和執行效率高;可支持多種單色/ 彩色液晶顯示屏,可以實現數據顯示、繪制圖表以及翻轉等功能,具有良好的顯示界面,提高了系統的可操作性,值得在智能化儀器儀表中推廣。


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 额尔古纳市| 南乐县| 宝丰县| 措美县| 玉林市| 珲春市| 兴海县| 双流县| 黑龙江省| 孙吴县| 霍城县| 昌图县| 永丰县| 临邑县| 锡林郭勒盟| 天等县| 布尔津县| 扎鲁特旗| 资源县| 上栗县| 富锦市| 苍南县| 房产| 广平县| 泾阳县| 淮阳县| 安达市| 巨鹿县| 长顺县| 杨浦区| 博湖县| 江西省| 大兴区| 汕头市| 大安市| 荆门市| 马龙县| 亚东县| 尉犁县| 襄汾县| 大宁县|