⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 126x64液晶显示1.asm

📁 proteus实例集锦
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*********************************************

 ;Controller:ST7920

 ;MCU:AT89C51 ,晶体频率:12MHz

 ;LCM:128*64

 ;LCM型号:带中文字库的128X64-0402

 ;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7--14:DB0-DB7 15:PSB 16:NC 17:RST 18:Vout

;**********************************************

      RS      EQU   P2.4
      RW      EQU   P2.5
      E       EQU   P2.6
      PSB     EQU   P2.7
      RST     EQU   P2.0
      COM     EQU   30H
      DAT     EQU   31H

;******************************以上是接口定义
       ORG  0000H
       AJMP START
       ORG 0030H
START: MOV  SP,#60H
       LJMP    DISP

;*********************************
DISP:   CLR     PSB
        LCALL   DELAY
        SETB    PSB         ;将PSB置1,通信方式为8位数据并口
        LCALL   DELAY
        MOV     COM,#30H    ;功能设置---8BIT控制界面,基本指令集
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY       ;延迟39uS
        MOV     COM,#0CH    ;显示打开,光标关,反白显示关
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY       ;延迟39uS
        MOV     COM,#01H    ;清除屏幕显示,将DDRAM的地址计数器归零
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY       ;延迟39uS
        MOV     COM,#06H    ;DDRAM的地址计数器(AC)加1
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY       ;延迟39uS

;****************************************************

DISPLAY5A:
        MOV     R2,#64      ;DDRAM地址记数器设为最大值
        MOV     R1,#10H
        MOV     COM,#80H    ;DD RAM 地址-----0000000
        ACALL   WRI

DISP5A: MOV     DAT,R1
        ACALL   WRD         ;写入第二字节数据
        INC     R1
        DJNZ    R2,DISP5A
        LCALL   DELAY1      ;1S延时子程序

;*************************************以上是写入半角字符

DISPLAY5:
        MOV     R2,#64      ;DDRAM地址记数器设为最大值
        MOV     R1,#0DEH
        MOV     COM,#80H    ;DD RAM 地址-----0000000
        ACALL   WRI

DISP5:  MOV     DAT,#0B4H
        ACALL   WRD         ;写入第一字节数据
        MOV     DAT,R1
        ACALL   WRD         ;写入第二字节数据
        INC     R1
        DJNZ    R2,DISP5
        LCALL   DELAY1      ;1S延时子程序

;**********************************以上是从字库中“崔”字处开始显示
        MOV     COM,#01H    ;清屏
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY
        MOV     COM,#32H    ;功能设置---8BIT控制界面,绘图显示ON
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY       ;延迟39uS
        MOV     COM,#36H    ;功能设置---8BIT控制界面,扩充指令集
        ACALL   WRI         ;调用写指令子程序
        LCALL   DELAY       ;延迟39uS

DISPLAY6:
        MOV     DPTR,#DAB2  ;图形数据入口地址
        MOV     R2,#32      ;32行,(双屏结构中上半屏)
        MOV     R3,#80H     ;Y地址寄存器

DISP6:  MOV     COM,R3      ;设置绘图区的Y地址坐标
        INC     R3          ;Y地址加1
        LCALL   WRI
        MOV     COM,#80H    ;设置绘图区的X地址坐标
        LCALL   WRI
        MOV     R1,#16      ;16*8列

DISP7:  CLR  A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R1,DISP7
        DJNZ    R2,DISP6    ;写满全屏的16*8字节X64
        MOV     R2,#32      ;32行,(双屏结构的下半屏)
        MOV     R3,#80H     ;Y地址寄存器

DISP8:  MOV     COM,R3      ;设置绘图区的Y地址坐标
        INC     R3          ;Y地址加1
        LCALL   WRI
        MOV     COM,#88H    ;设置绘图区的X地址坐标
        LCALL   WRI
        MOV     R1,#16      ;16*8列

DISP9:  CLR  A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R1,DISP9
        DJNZ    R2,DISP8        ;写满全屏的16*8字节X64
        LCALL   DELAY1          ;1S延时子程序

;*******************************************以上是写入一幅图画(电脑桌面图)

DISPLAY6A:
        MOV     DPTR,#DAB3      ;图形数据入口地址
        MOV     R2,#32          ;32行,(双屏结构中上半屏)
        MOV     R3,#80H         ;Y地址寄存器

DISP6A: MOV     COM,R3          ;设置绘图区的Y地址坐标
        INC     R3              ;Y地址加1
        LCALL   WRI
        MOV     COM,#80H        ;设置绘图区的X地址坐标
        LCALL   WRI
        MOV     R1,#16          ;16*8列

DISP7A: CLR  A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R1,DISP7A
        DJNZ    R2,DISP6A       ;写满全屏的16*8字节X64
        MOV     R2,#32          ;32行,(双屏结构的下半屏)
        MOV     R3,#80H         ;Y地址寄存器

DISP8A: MOV     COM,R3          ;设置绘图区的Y地址坐标
        INC     R3              ;Y地址加1
        LCALL   WRI
        MOV     COM,#88H        ;设置绘图区的X地址坐标
        LCALL   WRI
        MOV     R1,#16          ;16*8列

DISP9A: CLR  A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R1,DISP9A
        DJNZ    R2,DISP8A       ;写满全屏的16*8字节X64
        LCALL   DELAY1          ;1S延时子程序
        LJMP    START           ;从开始处循环显示

;***************************************以上是写入一幅图画(电子制作实验室)
WRI:    PUSH    ACC
        CLR     RS
        SETB    RW

WRI1:   MOV     P0,#0FFH
        SETB    E
        MOV     A,P0
        CLR     E
        JB      ACC.7,WRI1
        CLR     RW
        MOV     P0,COM
        SETB    E
        CLR     E
        POP     ACC
        RET

;********************以上是写指令子程序

WRD:    PUSH    ACC
        CLR     RS
        SETB    RW
WRD1:   MOV     P0,#0FFH
        SETB    E
        MOV     A,P0
        CLR     E
        JB      ACC.7,WRD1
        SETB    RS
        CLR     RW
        MOV     P0,DAT
        SETB    E
        CLR     E
        POP     ACC
        RET

;********************以上是写数据子程序
DELAY:  MOV  R7,#0FFH
DELAY4: MOV  R6,#00FH
LOOP2:  DJNZ R6,LOOP2
        DJNZ R7,DELAY4
        RET

DELAY1: MOV  R4,#08H
DELAY11:MOV  R7,#0FFH
DELAY41:MOV  R6,#0FFH
        DJNZ R6,$
        DJNZ R7,DELAY41
        DJNZ R4,DELAY11
        RET

XX:     MOV  R5,#0FFH
XX1:    MOV  R6,#0FFH
XX2:    DJNZ R6,XX2
        DJNZ    R5,XX1
        RET

;************************以上是延时子程序

DAB2:

DB  0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,03FH,0FFH,0F0H,000H,001H

DB  080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,040H,000H,018H,000H,001H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -