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

📄 lcd.a51

📁 液晶显示程序lcd320*240,图形方式下显示汉字
💻 A51
📖 第 1 页 / 共 3 页
字号:
        MOV COOE,#08H 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 
        MOV O_XL,#16H             ;屏
        MOV O_YL,#8FH
        MOV COOE,#09H 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 

       	MOV TOTAL,#32D
	MOV WIDTH,#2D
	MOV HEIGH,#16D
        MOV LAYER,#40H

        MOV O_XL,#06H              ;欢
        MOV O_YL,#0cFH
        MOV COOE,#00H 
        MOV DPTR,#CHARTAB3 
        LCALL CCW2_PR 
        MOV O_XL,#08H              ;迎
        MOV O_YL,#0cFH 
        MOV COOE,#01H 
        MOV DPTR,#CHARTAB3 
        LCALL CCW2_PR 
        MOV O_XL,#0AH              ;您
        MOV O_YL,#0cFH
        MOV COOE,#02H 
        MOV DPTR,#CHARTAB3 
        LCALL CCW2_PR 
        MOV O_XL,#0CH              ;的
        MOV O_YL,#0cFH
        MOV COOE,#03H 
        MOV DPTR,#CHARTAB3
        LCALL CCW2_PR 
        MOV O_XL,#0EH              ;光
        MOV O_YL,#0cFH
        MOV COOE,#04H 
        MOV DPTR,#CHARTAB3 
        LCALL CCW2_PR 
        MOV O_XL,#10H              ;临
        MOV O_YL,#0cFH
        MOV COOE,#05H 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 
        MOV O_XL,#16H              ;竭
        MOV O_YL,#0cFH
        MOV COOE,#06H 
        MOV DPTR,#CHARTAB3 
        LCALL CCW2_PR 
        MOV O_XL,#18H              ;诚
        MOV O_YL,#0cFH
        MOV COOE,#07H 
        MOV DPTR,#CHARTAB3 
        LCALL CCW2_PR 
        MOV O_XL,#1AH              ;为
        MOV O_YL,#0cFH
        MOV COOE,#08H 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 
        MOV O_XL,#1CH              ;您
        MOV O_YL,#0cFH
        MOV COOE,#02H 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 
        MOV O_XL,#1EH              ;服
        MOV O_YL,#0cFH
        MOV COOE,#09H 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 
        MOV O_XL,#20H              ;务
        MOV O_YL,#0cFH
        MOV COOE,#0AH 
        MOV DPTR,#CHARTAB2 
        LCALL CCW2_PR 
        sjmp  $
;--------延时子程序--------------------------
DELAY: MOV R2,#01H ; 延时子程序
       MOV R3,#01H
DEL1:  NOP
       DJNZ R3,DEL1
       DJNZ R2,DEL1
       RET

; 写指令代码子程序
PR1: PUSH DPL
     PUSH DPH
     MOV DPTR,#CWADD1
     MOV A,COM
     MOVX @DPTR,A
     POP DPH
     POP DPL
     RET
;---------------------------
; 写参数及显示数据子程序
PR2: PUSH DPL
     PUSH DPH
     MOV DPTR,#DWADD1
     MOV A,DAT1
     MOVX @DPTR,A
     POP DPH
     POP DPL
     RET
;---------------------------
; 读参数及显示数据子程序
PR3: PUSH DPL
     PUSH DPH
     MOV DPTR,#DRADD1
     MOVX A,@DPTR
     MOV DAT1,A
     POP DPH
     POP DPL
     RET
;=====================================
; 初始化子程序INT
; 内部调用子程序:PR1,PR2
; 程序调用入口:INT
; 程序参数库:SYSTAB,SCRTAB
; 程序调用变量:无
;=====================================
INT:  MOV COM,#40H ; SYSTEM SET 代码
      LCALL PR1 ; 写入指令代码
      MOV COUNT1,#00H ; 设置计数器COUNT=0
INT3: MOV DPTR,#SYSTAB ; 设置指令参数表地址
      MOV A,COUNT1 ; 取参数
      MOVC A,@A+DPTR
      MOV DAT1,A
      LCALL PR2 ; 写入参数
      INC COUNT1 ; 计数器加一
      MOV A,COUNT1
      CJNE A,#08H,INT3 ; 循环
      MOV COM,#44H ; SCROLL 代码
      LCALL PR1 ; 写入指令代码
      MOV COUNT1,#00H ; 设置计数器COUNT=0
INT2: MOV DPTR,#SCRTAB ; 设置指令参数表地址
      MOV A,COUNT1 ; 取参数
      MOVC A,@A+DPTR
      MOV DAT1,A
      LCALL PR2 ; 写入参数
      INC COUNT1
      MOV A,COUNT1 ; 计数器加一
      CJNE A,#0AH,INT2 ; 循环
      MOV COM,#5AH ; HDOT SCR 代码
      LCALL PR1 ; 写入指令代码
      MOV DAT1,#07H ; 设置参数P1
      LCALL PR2 ; 写入参数
      MOV COM,#5BH ; OVLAY 代码
      LCALL PR1 ; 写入指令代码
      MOV DAT1,#10H ; 设置参数:显示一,三区为文本属性
      LCALL PR2 ; 三重"或"合成
      MOV COM,#59H ; DISP ON/OFF 代码
      LCALL PR1 ; 写入指令代码
      MOV DAT1,#0a4H ; 设置参数:显示一~四区开显示0101 0100
      LCALL PR2 ; 光标关显示
      RET
;=====================================================
; 显示字符子程序
; 参数:TOTAL,WIDTH,HEIGH, O_XL,O_YL,LAYER
;=====================================================
CCW2_PR:MOV A,COOE ; 计算汉字字模数据首地址
        MOV B,TOTAL
        MUL AB
        
        ADD A,DPL
        MOV DPL,A
        MOV A,B
        ADDC A,DPH
        MOV DPH,A
        MOV TEMP1,DPL
        MOV TEMP2,DPH
        MOV A,O_YL ; 计算光标地址
        MOV B,#PARA1 ; PARA1值等于SYSTEM SET 指令P9
        MUL AB ; 而P10=0
        ADD A,O_XL
        MOV O_XL,A ; 存光标地址低字节
        MOV A,B
        ADDC A,LAYER ; 加入显示二区起始地址SAD2H
        MOV O_YL,A ; 存光标地址高字节
        MOV COM,#4FH ; CSRDIR 代码(右移)
        LCALL PR1
        MOV COUNT1,WIDTH ; 设置计数器1=2
CCW2_1: MOV COM,#46H ; CSRW 代码
        LCALL PR1
        MOV DAT1,O_XL ; 设置光标地址CSR  
        LCALL PR2
        MOV DAT1,O_YL
        LCALL PR2
        MOV COM,#42H ; MWRITE 代码
        LCALL PR1
        MOV COUNT2,HEIGH ; 设置计数器2=16
CCW2_2: CLR A
        MOVC A,@A+DPTR ; 取字模数据
        MOV DAT1,A
        INC DPTR ; 指针加一
	MOV A,WIDTH
	CJNE A,#4D,AAA
        INC DPTR
        INC DPTR
	INC DPTR
	AJMP AA
AAA:    CJNE A,#2D,AA
        INC DPTR
AA:     LCALL PR2 ; 写入数据
        DJNZ COUNT2,CCW2_2 ; 循环
        MOV A,O_XL ; 修正光标地址
        ADD A,#01H ; (加一)
        MOV O_XL,A
        MOV A,O_YL
        ADDC A,#00H
        MOV O_YL,A
        MOV DPL,TEMP1
        MOV DPH,TEMP2
        INC DPTR
        MOV TEMP1,DPL

        MOV TEMP2,DPH
        DJNZ COUNT1,CCW2_1 ; 循环
        RET
;====================================
; 清显示RAM 区(清屏)子程序CLEAR
; 占用内部寄存器:COM,DAT1,A,R3,R4
; 内部调用子程序:PR1,PR2
; 程序输入变量:无
; 程序调用入口:CLEAR
;====================================
CLEAR: MOV COM,#4CH ; CSRDIR 代码
       LCALL PR1 ; 写入指令代码
       MOV COM,#46H ; CSRW 代码
       LCALL PR1 ; 写入指令代码
       MOV DAT1,#00H ; 设置参数光标指针低8位
       LCALL PR2 ; 写入参数CSRL
       LCALL PR2 ; 写入参数CSRH
       MOV COM,#42H ; MWRITE 代码
       LCALL PR1 ; 写入指令代码
       MOV R3,#00H ; 设置循环量0000H
       MOV R4,#00H
       MOV DAT1,#00H ; 设置显示数据=0
CLR1:
       LCALL PR2 ; 写入数据
       DJNZ R3,CLR1 ; 循环
       DJNZ R4,CLR1
       RET
;==============================================================================================
SYSTAB:    DB 30H,87H,07H,29H,42H,0FFH,30H,00H ; P1-P8参数
SCRTAB:    DB 00H,00H,0F0H,00H,40H,0F0H,00H,80H,00H,00H ; P1-P10参数 
CHARTAB1:
        DB 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00         ;北
        DB 0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0x00,0x00,0x60,0xE0,0x00,0x00,0xE0,0xE0,0x00
        DB 0x00,0xE0,0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC1,0x00,0x00,0xC1,0xC3,0x00
        DB 0x20,0xC1,0xCF,0x80,0x3C,0xC1,0xFF,0x00,0x3E,0xC1,0xFC,0x00,0x3F,0xC1,0xF8,0x00
        DB 0x1F,0xC1,0x90,0x10,0x00,0xC1,0x80,0x18,0x00,0xC1,0x80,0x18,0x00,0xE1,0x80,0x18
        DB 0x01,0xE1,0x80,0x18,0x03,0xC0,0x80,0x18,0x07,0xC0,0xC0,0x3C,0x1F,0x00,0xE0,0x3C
        DB 0x3E,0x00,0x7F,0xFC,0x7C,0x00,0x7F,0xFC,0x38,0x00,0x3F,0xFC,0x10,0x00,0x3F,0xF8
        DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00      
       
        DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00         ;京
        DB 0x00,0x07,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x07,0x80,0x00,0x00,0x01,0x80,0x00

⌨️ 快捷键说明

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