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

📄 hg1286419.asm

📁 EPL65132驱动HG1286419液晶测试程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;This source file is for 128*64 graphic liquid crystal module
;controler: ST7565s

;	  X        EQU  32H
;	  Y        EQU  33H
	  DATA1    EQU  35H
	  DATA2    EQU  36H
	  TIME0    EQU  37H
	  TIME1    EQU  38H
	  TEMP     EQU  31H
	  TEMP1    EQU  30H
	  TEMP2    EQU  39H
	  BUFF     EQU  3AH

;老合板口设置

          CD     BIT P3.1    ; RS, COMMAND/DATA SELECTION
	  WR1    BIT P3.2    ; R/W, H: READ L: WRITE
          E      BIT P3.3    ; ENABLE
          RSTB   BIT P3.4    ; RESET


	  ORG   0000H
	  LJMP  BBEGIN


	  ORG   0040H
	  NOP
BBEGIN:   MOV   SP,#40H


          NOP
          NOP
          SETB RSTB
          LCALL DELAY50
          LCALL DELAY50
          CLR RSTB
          LCALL DELAY50
          LCALL DELAY50
          SETB RSTB          ;Reset the LCM

BINITIAL: LCALL DELAY50

	  MOV   A,#0E2H     ;RESET
	  LCALL BWRCTRL
          LCALL DELAY50

	  MOV   A,#084H     ;duty set
	  LCALL BWRCTRL
          MOV   A,#07H     ;1/64duty
	  LCALL BWRCTRL

	  MOV   A,#082H     ;CL frequency set
	  LCALL BWRCTRL
	  MOV   A,#03H     ;1/4 fosc
          LCALL BWRCTRL

	  MOV   A,#085H    ;LCD BIAS: 1/9
	  LCALL BWRCTRL
	  MOV   A,#0AH    ;LCD BIAS: 1/9
	  LCALL BWRCTRL

	  MOV   A,#0A0H    ;SET ADC
          LCALL BWRCTRL
          MOV   A,#0C0H    ;SET SHL
          LCALL BWRCTRL

	  MOV   A,#0A6H    ;REVESE OFF
	  LCALL BWRCTRL

          MOV   A,#26H    ; 1+RB/RA
          LCALL BWRCTRL

	  MOV   A,#81H      ;perhaps it should be #80.set contrast control register
	  LCALL BWRCTRL
	  MOV   A,#0Fh      ;registor result=30
	  LCALL BWRCTRL
          LCALL DELAY50

	  MOV   A,#0A4H    ;ENTIRE MODE OFF, POWER SAVE MODE RELEASE
	  LCALL BWRCTRL

	

	  MOV   A,#2FH      ;power  control register
	  LCALL BWRCTRL
          LCALL DELAY50
       
	  MOV   A,#0AFH    ;display on
	  LCALL BWRCTRL

BDISALL:
          MOV   DATA1, #0FFH
          MOV   DATA2, #0FFH
          LCALL DISPFRAM
	  LCALL DELAY1S
	  LCALL DELAY1S

          LCALL BCLRRAM
	  LCALL DELAY1S
	  LCALL DELAY1S


          MOV   DATA1, #0FFH
          MOV   DATA2, #0H
          LCALL DISPFRAM
          LCALL DELAY1S
          LCALL DELAY1S

          MOV   DATA1, #0H
          MOV   DATA2, #0FFH
          LCALL DISPFRAM
          LCALL DELAY1S
          LCALL DELAY1S

          MOV   DATA1, #055H
          MOV   DATA2, #055H
          LCALL DISPFRAM
          LCALL DELAY1S
          LCALL DELAY1S

          MOV   DATA1, #0aaH
          MOV   DATA2, #0aaH
          LCALL DISPFRAM
          LCALL DELAY1S
          LCALL DELAY1S

          MOV   DATA1, #055H
          MOV   DATA2, #0aaH
          LCALL DISPFRAM
          LCALL DELAY1S
          LCALL DELAY1S

          MOV   DATA1, #0aaH
          MOV   DATA2, #055H
          LCALL DISPFRAM
          LCALL DELAY1S
          LCALL DELAY1S

          LCALL BCLRRAM
          MOV   DPTR,#TAB1
	  LCALL DISPFRAM1
	  LCALL DELAY1S
          LCALL DELAY1S
          LCALL DELAY1S
          LCALL DELAY1S
          LCALL BCLRRAM
	  MOV   DPTR,#TAB2
	  LCALL DISPFRAM1
	  LCALL DELAY1S
          LCALL DELAY1S
          LCALL DELAY1S
          LCALL DELAY1S
          LCALL BCLRRAM
          MOV   DPTR,#TAB3
	  LCALL DISPFRAM1
	  LCALL DELAY1S
          LCALL DELAY1S
          LCALL DELAY1S
          LCALL DELAY1S
          LCALL BCLRRAM


	  LJMP  BDISALL

;------------------------
BCLRRAM:  MOV   DATA1,#00H
	  MOV   DATA2,#00H
          lcall DISPFRAM
	  RET;-------------------
;
DISPFRAM1:
         MOV A,#40H
         LCALL  BWRCTRL                 ;显示一幅图案
         MOV  R6,DPH
	 MOV  R7,DPL

         MOV R4,#00H       ;R4: 页地址
         MOV R0,#00H       ;

WLOOOP:
         MOV A,R4
         ORL A,#0B0H
         LCALL  BWRCTRL      ;设定页地址

         MOV A,#10H
         LCALL  BWRCTRL      ;设定列地址
         MOV A,#00H
         LCALL  BWRCTRL      ;设定列地址

         NOP
         MOV  DPL,R7
         MOV  DPH,R6

         MOV A,R4
         JZ  WRPAGEE1         ;如果是第零页,跳转,由开始写

         MOV R0,A
 ADDREE: INC DPTR
         DJNZ R0,ADDREE     ;根据页地址,确定从哪里开始取数据

WRPAGEE1: LCALL WRPAGEE

         INC R4             ;页地址加1。

         CJNE R4,#8,WLOOOP   ;  循环,写8个页面

         RET


WRPAGEE:  MOV R3,#128          ;写128列,一个页面
WLOOOP1:  NOP
         NOP
         PUSH  ACC
         MOV   A,#00
         MOVC  A,@A+DPTR
         PUSH  DPH
         PUSH  DPL
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         LCALL BWRDATA
         POP   DPL
         POP   DPH
         POP   ACC
         NOP
         NOP
         LCALL JIA8
         DJNZ R3,WLOOOP1
;
         RET
;

JIA8:    MOV    R5,  #8   ;数据地址增加页面数个
 JIA:    INC    DPTR
         DJNZ   R5,JIA
         RET
         NOP
         NOP;------------------

DISPFRAM:

         MOV A,#40H
         LCALL  BWRCTRL

         MOV R4,#00H       ;R4: 页地址
WLOOP2:  MOV R1,#128       ; 128列
         MOV A,R4
         ORL A,#0B0H
         LCALL  BWRCTRL      ;设定页地址

         MOV A,#10H
         LCALL  BWRCTRL      ;设定列地址
         MOV A,#00H
         LCALL  BWRCTRL      ;设定列地址
WLOOP:

         MOV A, DATA1
         LCALL  BWRDATA


         MOV A, DATA2
         LCALL  BWRDATA

         DJNZ   R1, WLOOP

         MOV A,R4
         INC A
         MOV R4, A
         CJNE A, #8, WLOOP2
         RET

;write a control byte in register a
BWRCTRL:
          CLR E
          CLR   CD
          NOP
          CLR    WR1
          NOP
          MOV   p1,A
          NOP
          SETB E
	  NOP
	  NOP
	  NOP
	  NOP
          CLR E

⌨️ 快捷键说明

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