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

📄 12864汇编程序.asm

📁 液晶YM12864与AT89S51并行通信
💻 ASM
字号:
        ;LCD12864 汇编源程序

;=================NAME: HANDSET=====================
      LCDSCLK  BIT 0C2H
      LCDSI    BIT 0C1h
      LCDA0    BIT P2.4     ;命令与数据选择位
      LCDRES   BIT P2.5     ;复位
      LCDCS1   BIT 0C3h     ;片选
      ST_PAGE  EQU 37H      ;起始显示页
      COL_MSB  EQU 38H      ;起始显示列(高位)
      COL_LSB  EQU 39H      ;起始显示列(低位)
      TD_DATA  EQU 40H
      TD_NUM   EQU 41H
;******************************************************
      ORG     0000H
      AJMP MAIN
      ORG 0100H
;---------------------------------
MAIN:
      MOV     SP,#060H
      LCALL LCDINI          ;初始化
      NOP
      NOP
      LCALL CLR_SCR         ;清屏
      NOP
      NOP
      NOP
      NOP
      ;MOV TD_DATA,#2fH
      MOV TD_NUM,#128
      LCALL TDIS
      NOP
      NOP
      SJMP $

TDIS:
      MOV COL_LSB,#10H      ;起始显示列(低位)
      MOV COL_MSB,#00H      ;起始显示列(高位)

      MOV ST_PAGE,#0B0H     ;页B0写入2F
      MOV TD_DATA,#2fH
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B1H
      MOV TD_DATA,#22H
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B2H
      MOV TD_DATA,#0f5H
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B3H
      MOV TD_DATA,#52H
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B4H
      MOV TD_DATA,#11H
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B5H
      MOV TD_DATA,#40H
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B6H
      MOV TD_DATA,#25H
      LCALL DIS_1SL
      NOP
      
      MOV ST_PAGE,#0B7H
      MOV TD_DATA,#2fH
      LCALL DIS_1SL
      RET

 ;NOP
; SJMP $
;======================================================
DIS_1SL:
      CLR LCDA0             ;送命令
      MOV A,ST_PAGE         ;选中页
      LCALL LCD_SEND

      MOV A,COL_MSB         ;定义页的起始列(包括高,底列)
      LCALL LCD_SEND
      MOV A,COL_LSB
      LCALL LCD_SEND

      SETB LCDA0            ;送数据
      MOV A,TD_NUM
      MOV R4,A
TDIS0:
      MOV A,TD_DATA         ;写满128个字节
      LCALL LCD_SEND
      DJNZ R4,TDIS0
      RET
;=======================================================
;清屏子程序
CLR_SCR:               ;清屏
      MOV   ST_PAGE,#0B0H   ;第0页地址
CSCR0:
      CLR   LCDA0           ;送命令
      MOV   A,ST_PAGE
      LCALL LCD_SEND
      MOV   A,#10H          ;起始显示列(低位)
      LCALL LCD_SEND
      MOV   A,#00H          ;起始显示列(高位)
      LCALL LCD_SEND

      SETB  LCDA0           ;送数据
      MOV   R6,#128
CSCR1:
      MOV   A,#00H          ;页全部清零
      LCALL LCD_SEND
      DJNZ  R6,CSCR1        ;送0循环128次

      CLR   C               ;B0-B7页全部清零
      INC   ST_PAGE
      MOV   A,ST_PAGE
      SUBB  A,#0B8H
      JC    CSCR0
      RET
;========================================================
;LCD初始化
LCDINI:
      CLR LCDCS1           ;选择LCM

      SETB LCDRES          ;复位
      CLR LCDRES
      NOP
      NOP
      SETB LCDRES

      CLR LCDA0            ;A0=1.送控制命令
      MOV     A,#0E2H      ;软件复位
      LCALL   LCD_SEND

      MOV     A,#0A2H      ;BIAS=1/7[A2H=1/9偏压]
      LCALL   LCD_SEND

      MOV     A,#0A0H      ;ADC
      LCALL   LCD_SEND

      MOV     A,#0C0H      ;Common Output Status Slect=normal
      LCALL   LCD_SEND

      MOV     A,#026H      ;Set on-chip resistance factor for Vlc1 Voltage regulator
      LCALL   LCD_SEND

      MOV     A,#081H          ;Electronic volume mode set command(first byte)
      LCALL   LCD_SEND

      MOV     A,#20H           ;Second byte
      LCALL   LCD_SEND

      MOV     A,#02FH          ;Power contrl set [Vb Vr Vf]=111
      LCALL   LCD_SEND

      ;LCALL DELAY1  ;delay 1s

       MOV     A,#0AFH          ;Display ON
       LCALL   LCD_SEND

       MOV     A,#0A4H           ;Normal display mode
       LCALL   LCD_SEND


       RET
;----------------------------------------------------
;-----------------------------向LCD传送1个字节的数据[IN:A],寄存器只用到R7
LCD_SEND:
       MOV R7,#8
LSEND1:
       CLR LCDSCLK
       RLC A                    ;带进位位循环左移
       MOV LCDSI,C
       SETB LCDSCLK
       DJNZ R7,LSEND1
       CLR LCDSCLK
       RET
;----------------------------------------------
       END

⌨️ 快捷键说明

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