新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 顯示效果:全屏幕顯示0---9 :該程序試驗(yàn)通過

        顯示效果:全屏幕顯示0---9 :該程序試驗(yàn)通過

        作者: 時(shí)間:2011-02-27 來源:網(wǎng)絡(luò) 收藏

        現(xiàn)在:我?guī)ьI(lǐng)大家從字符型1602液晶入手, 一步一步的來掌握液晶的編程

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

        以上為運(yùn)行的照片,實(shí)際是動(dòng)態(tài)的, 從0--9

        ;********************************************************************************
        ;1602液晶全屏幕顯示0-9 *
        ;********************************************************************************
        ;* 日期: 2007-3-25 *
        ;* 版本: 3.0 *
        ;* 作者: 深圳學(xué)林電子有限公司 專業(yè)8051教程站 *
        ;* 郵箱: sxj1974@163.com *
        ;* 網(wǎng)站: http://www.51c51.com http://www.8951.com 更多例程請登陸網(wǎng)站 *
        ;********************************************************************************
        ;* 硬件:此程序在本公司xlisp系列實(shí)驗(yàn)儀運(yùn)行通過 *
        ;********************************************************************************
        ;* 【版權(quán)】 Copyright(C)深圳學(xué)林電子有限公司 www.51c51.com All Rights Reserved *
        ;* 【聲明】 此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息! *
        ;********************************************************************************
        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: ;整屏循環(huán)顯示"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: ;設(shè)置第(XPOS,YPOS)個(gè)字符的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)對應(yīng)DDRAM地址
        CJNE A,#00,LPS_LA1
        MOV A,XPOS ;(第一行)X: 第0----19個(gè)字符
        JMP LPS_LAX ; DDRAM: 0----13H
        LPS_LA1:CJNE A,#01,LPS_LA2
        MOV A,XPOS ;(第二行)X: 第0----19個(gè)字符
        ADD A,#40H ; DDRAM: 40----53H
        JMP LPS_LAX ;
        LPS_LA2:CJNE A,#02,LPS_LAY
        MOV A,XPOS ;(第三行)X: 第0----19個(gè)字符
        ADD A,#14H ; DDRAM: 14----27H
        JMP LPS_LAX
        LPS_LAY:MOV A,XPOS ;(第四行)X: 第0----19個(gè)字符
        ADD A,#54H ; DDRAM: 54----67H
        LPS_LAX:ORL A,#80H ;設(shè)置DDRAM地址
        CALL LCDWC
        POP ACC
        RET
        LCDWRITE: ;定位寫字符子程序
        CALL LCDPOS ;定位顯示地址
        CALL LCDWD ;寫字符
        RET
        LCDRESET: ;初始化程序
        CALL DELAY5MS ;延時(shí)15MS
        CALL DELAY5MS
        CALL DELAY5MS
        MOV A,#38H ;顯示模式設(shè)置(不檢測忙信號(hào))
        CALL LCDWCN ;共三次
        CALL DELAY5MS
        MOV A,#38H
        CALL LCDWCN
        CALL DELAY5MS
        MOV A,#38H
        CALL LCDWCN
        MOV A,#38H ;顯示模式設(shè)置(以后均檢測忙信號(hào))
        CALL LCDWC
        MOV A,#08H ;顯示關(guān)閉
        CALL LCDWC
        MOV A,#01H ;顯示清屏
        CALL LCDWC
        MOV A,#06H ;顯示光標(biāo)移動(dòng)設(shè)置
        CALL LCDWC
        MOV A,#0CH ;顯示開及光標(biāo)設(shè)置
        CALL LCDWC
        RET
        LCDWC: ;送控制字子程序(檢測忙信號(hào))
        CALL WAITIDLE
        LCDWCN: ;送控制字子程序(不檢測忙信號(hào))
        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控制器狀態(tài)
        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 ;延時(shí)子程序(5MS)
        DL5_PA: MOV R2,#100
        DJNZ R2,$
        DJNZ R1,DL5_PA
        RET
        DELAY400MS:
        MOV R0,#20 ;延時(shí)子程序(400MS)
        DL4_PA: MOV R1,#100
        DL4_PB: MOV R2,#100
        DJNZ R2,$
        DJNZ R1,DL4_PB
        DJNZ R0,DL4_PA
        RET
        END



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 内丘县| 翁牛特旗| 通海县| 吉林省| 西畴县| 荥阳市| 大悟县| 河北区| 河曲县| 沂水县| 岐山县| 深泽县| 且末县| 交城县| 双辽市| 溧阳市| 白城市| 满城县| 岫岩| 竹北市| 通渭县| 浦县| 本溪市| 读书| 保康县| 南汇区| 天水市| 永川市| 长兴县| 息烽县| 侯马市| 长垣县| 新竹县| 亳州市| 克什克腾旗| 济宁市| 凯里市| 阿瓦提县| 伊春市| 金山区| 安吉县|