新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 顯示效果:全屏幕顯示0---9 :該程序試驗通過

        顯示效果:全屏幕顯示0---9 :該程序試驗通過

        作者: 時間:2011-02-27 來源:網絡 收藏

        現在:我帶領大家從字符型1602液晶入手, 一步一步的來掌握液晶的編程

        SMC1602接口程序(MCS51模擬口線方式)

        以上為運行的照片,實際是動態的, 從0--9

        ;********************************************************************************
        ;1602液晶全屏幕顯示0-9 *
        ;********************************************************************************
        ;* 日期: 2007-3-25 *
        ;* 版本: 3.0 *
        ;* 作者: 深圳學林電子有限公司 專業8051教程站 *
        ;* 郵箱: sxj1974@163.com *
        ;* 網站: http://www.51c51.com http://www.8951.com 更多例程請登陸網站 *
        ;********************************************************************************
        ;* 硬件:此程序在本公司xlisp系列實驗儀運行通過 *
        ;********************************************************************************
        ;* 【版權】 Copyright(C)深圳學林電子有限公司 www.51c51.com All Rights Reserved *
        ;* 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
        ;********************************************************************************
        RSPIN EQU P2.0
        RWPIN EQU P2.1
        EPIN EQU P2.2
        XPOS EQU 20H ;列方向地址指針(用于LCDPOS子程序)
        YPOS EQU 21H ;行方向地址指針(用于LCDPOS子程序)
        ORG 0000H
        JMP START
        START: MOV SP,#60H
        CLR EPIN
        MAIN:
        MOV R7,#'0' ;測試主程序
        MN_PA: ;整屏循環顯示"0"到"9"及空格
        CALL LCDRESET
        MOV A,R7
        CALL LCDFILL
        CALL DELAY400MS
        INC R7
        MOV A,R7
        CJNE A,#'9'+1,MN_PA
        MOV A,#' '
        CALL LCDFILL
        CALL DELAY400MS
        JMP MAIN
        LCDFILL:
        MOV B,A
        MOV YPOS,#0
        LFL_PB: MOV XPOS,#0 ;整屏顯示A中所代表字符
        LFL_PA: MOV A,B
        CALL LCDWRITE
        INC XPOS
        MOV A,XPOS
        CJNE A,#20,LFL_PA
        INC YPOS
        MOV A,YPOS
        CJNE A,#4,LFL_PB
        RET
        LCDPOS: ;設置第(XPOS,YPOS)個字符的DDRAM地址
        PUSH ACC
        CLR C ;X位置范圍(0到19)
        MOV A,XPOS
        SUBB A,#20
        JC LPS_LBX
        MOV XPOS,#0
        LPS_LBX:ANL YPOS,#03H ;Y位置范圍(0到3)
        MOV A,YPOS ;(XPOS,YPOS)對應DDRAM地址
        CJNE A,#00,LPS_LA1
        MOV A,XPOS ;(第一行)X: 第0----19個字符
        JMP LPS_LAX ; DDRAM: 0----13H
        LPS_LA1:CJNE A,#01,LPS_LA2
        MOV A,XPOS ;(第二行)X: 第0----19個字符
        ADD A,#40H ; DDRAM: 40----53H
        JMP LPS_LAX ;
        LPS_LA2:CJNE A,#02,LPS_LAY
        MOV A,XPOS ;(第三行)X: 第0----19個字符
        ADD A,#14H ; DDRAM: 14----27H
        JMP LPS_LAX
        LPS_LAY:MOV A,XPOS ;(第四行)X: 第0----19個字符
        ADD A,#54H ; DDRAM: 54----67H
        LPS_LAX:ORL A,#80H ;設置DDRAM地址
        CALL LCDWC
        POP ACC
        RET
        LCDWRITE: ;定位寫字符子程序
        CALL LCDPOS ;定位顯示地址
        CALL LCDWD ;寫字符
        RET
        LCDRESET: ;初始化程序
        CALL DELAY5MS ;延時15MS
        CALL DELAY5MS
        CALL DELAY5MS
        MOV A,#38H ;顯示模式設置(不檢測忙信號)
        CALL LCDWCN ;共三次
        CALL DELAY5MS
        MOV A,#38H
        CALL LCDWCN
        CALL DELAY5MS
        MOV A,#38H
        CALL LCDWCN
        MOV A,#38H ;顯示模式設置(以后均檢測忙信號)
        CALL LCDWC
        MOV A,#08H ;顯示關閉
        CALL LCDWC
        MOV A,#01H ;顯示清屏
        CALL LCDWC
        MOV A,#06H ;顯示光標移動設置
        CALL LCDWC
        MOV A,#0CH ;顯示開及光標設置
        CALL LCDWC
        RET
        LCDWC: ;送控制字子程序(檢測忙信號)
        CALL WAITIDLE
        LCDWCN: ;送控制字子程序(不檢測忙信號)
        CLR RSPIN ;RS=0 RW=0 E=高脈沖
        CLR RWPIN
        MOV P0,A
        SETB EPIN
        NOP
        CLR EPIN
        RET
        LCDWD: ;寫字符子程序
        CALL WAITIDLE
        SETB RSPIN ;RS=1 RW=0 E=高脈沖
        CLR RWPIN
        MOV P0,A
        SETB EPIN
        NOP
        CLR EPIN
        RET
        WAITIDLE:
        PUSH ACC ;正常讀寫操作之前必須檢測LCD控制器狀態
        MOV P0,#0FFH
        CLR RSPIN ;RS=0 RW=1 E=高電平
        SETB RWPIN
        SETB EPIN
        WTD_PA: NOP ;DB7: 0 LCD控制器空閑
        JB P0.7,WTD_PA ; 1 LCD控制器忙
        CLR EPIN
        POP ACC
        RET
        DELAY5MS:
        MOV R1,#25 ;延時子程序(5MS)
        DL5_PA: MOV R2,#100
        DJNZ R2,$
        DJNZ R1,DL5_PA
        RET
        DELAY400MS:
        MOV R0,#20 ;延時子程序(400MS)
        DL4_PA: MOV R1,#100
        DL4_PB: MOV R2,#100
        DJNZ R2,$
        DJNZ R1,DL4_PB
        DJNZ R0,DL4_PA
        RET
        END



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 青岛市| 日照市| 英德市| 奇台县| 景洪市| 郧西县| 古交市| 冷水江市| 黑龙江省| 浦县| 永胜县| 海林市| 夹江县| 涿州市| 太仓市| 肇州县| 海安县| 临泉县| 诏安县| 长垣县| 阿城市| 营山县| 永城市| 庆安县| 酉阳| 高尔夫| 武山县| 玉树县| 南宫市| 平塘县| 黑河市| 江城| 吉安市| 玉龙| 噶尔县| 盱眙县| 三原县| 桃园市| 静安区| 万安县| 武鸣县|