您当前的位置:五五电子网电子知识单片机-工控设备51单片机LCD12864汇编语言程序例子 正文
LCD12864汇编语言程序例子

LCD12864汇编语言程序例子

点击数:7662 次   录入时间:03-04 11:57:28   整理:http://www.55dianzi.com   51单片机
12864接口程序(MCS51模拟口线方式)
;***************************************************************************
;连线图: *LCM---8031* *LCM---8031* *LCM------------8031* *LCM----------8031*
;        *DB0---P1.0* *DB4---P1.4* *RS-------------P3.0* *CS1----------P3.4*
;        *DB1---P1.1* *DB5---P1.5* *RW-------------P3.1* *CS2----------P3.5*
;        *DB2---P1.2* *DB6---P1.6* *E--------------P3.3
;        *DB3---P1.3* *DB7---P1.7* */RST-----------VDD       (详见说明书)
;注:8031的晶振频率为12MHz

;**************************************************************************
XPOS    EQU     20H             ;列方向地址指针(用于LCDPOS子程序)
YPOS    EQU     21H             ;行方向地址指针(用于LCDPOS子程序)
RSPIN   EQU    P3.0          
RWPIN   EQU     P3.1            ;
EPIN    EQU     P3.3            ;
CS1PIN  EQU     P3.4            ;
CS2PIN  EQU     P3.5            ;
        ORG     0000H
        JMP     START
START:  MOV     SP,#60H
MAIN:
        CALL    LCDRESET
        MOV A,#55H
        CALL LCDFILL
        MOV DPTR,#STRING1
        CALL PUTSTR
        CALL PUTSTR
        JMP MAIN
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
DELAY:
 MOV R6,#2
DLY_PA: MOV R5,#0
DLY_PB: MOV R4,#0
 DJNZ R4,$
 DJNZ R5,DLY_PB
 DJNZ R6,DLY_PA
 RET
GETSTRCHAR:
GSC_PA:
 CLR A
 MOVC A,@A+DPTR
 INC DPTR
 MOV B,A
 INC A
 CLR C
 JZ GSC_LAX
 CLR A
 MOVC A,@A+DPTR
 INC DPTR
 SETB C
GSC_LAX:
 RET
PUTSTR:
 CALL DELAY
 CALL GETSTRCHAR
 PUSH DPL
 PUSH DPH
 JNC PSR_LAX
 JNB B.7,PSR_LBY
;CHINESE:
 CALL HZKPOS
 CALL PUTCHARDOT
 CALL PUTCHARDOT
 JMP PSR_LBX
PSR_LBY:
;ENGLISH:
 CALL HZKPOS
 CALL PUTCHARDOT
PSR_LBX:
 POP DPH
 POP DPL
 JMP PUTSTR
PSR_LAX:POP DPH
 POP DPL
 RET
PUTCHARDOT:
 MOV R7,#8
PAC_PA:
 CLR A
 MOVC A,@A+DPTR
 CALL LCDWRITE
 INC YPOS
 INC DPTR
 CLR A
 MOVC A,@A+DPTR
 CALL LCDWRITE
 DEC YPOS
 INC DPTR
 CALL CUSORNEXT
 MOV A,XPOS
 JNZ PAC_LAX
 INC YPOS
PAC_LAX:
 DJNZ R7,PAC_PA
 RET
HZKPOS:
 MOV R2,#5
HTP_PA:
 CLR C
 RLC A
 XCH A,B
 RLC A
 XCH A,B
 DJNZ R2,HTP_PA

 MOV DPTR,#HZKDOT
 ADD A,DPL
 MOV DPL,A
 MOV A,B
 ADDC A,DPH
 MOV DPH,A
 RET
LCDFILL:                        ;LCD整屏显示A的内容
        MOV     R7,A
        MOV     YPOS,#0
LFL_PB: MOV     XPOS,#0
LFL_PA: MOV     A,R7
        CALL    LCDWRITE        ;定位并写数据
        CALL    CUSORNEXT
        MOV     A,XPOS
        JNZ     LFL_PA          ;XPOS<128则循环(128列)
        MOV     A,YPOS
        JNZ     LFL_PB          ;YPOS<8则循环(8页)
        RET
LCDWRITE:                    ;定位并写数据子程序
        CALL    LCDPOS       ;内部写数指针定位
        CALL    LCDWD        ;写数据
        RET
CUSORNEXT:
 ANL YPOS,#7
 INC XPOS
 MOV A,XPOS
 JNB ACC.7,CNT_LAX
 MOV XPOS,#0
 INC YPOS
 MOV A,YPOS
 ANL A,#0F8H
 JZ CNT_LAX
 MOV YPOS,#0
CNT_LAX:
 RET
LCDPOS:                      ;内部写数指针定位子程序
        PUSH    ACC
        MOV     A,XPOS
        JB      ACC.6,LPS_LAY
        MOV     A,YPOS       ;XPOS列方向小于64则对CS1操作
        ANL     A,#07H
        ADD     A,#0B8H
        CALL    LCDWC1       ;设页码
        MOV     A,XPOS
        ANL     A,#3FH
        ORL     A,#40H
        CALL    LCDWC1       ;设列码

[1] [2] [3]  下一页


本文关键字:程序  51单片机单片机-工控设备 - 51单片机