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

📄 12864(st7920).asm

📁 12864液晶显示程序 12864液晶显示程序 12864液晶显示程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:

	  DATA1    EQU  30H
	  DATA2    EQU  31H
	  DATA0    EQU  32H
          X        EQU  33H
	  Y        EQU  34H
	  TER0     EQU  35H
	  TER1     EQU  36H
	  COUNTER  EQU  37H
	  ADDRH    EQU  38H
	  CTRL     EQU  39H
	  CTWL     EQU  3AH
	  DARL     EQU  3BH
	  DAWL     EQU  3CH
	  ROW      EQU  3EH
	  COLUMN   EQU  3FH
	  N        EQU  40H
          CUNH     EQU  41H
          CUNL     EQU  42H

	    E1      BIT    P3.2
	    RW      BIT    P3.1
	    RS      BIT    P3.0
	  ORG   0000H
	  AJMP  CBEGIN
;
	  ORG   0013H
	  LJMP  ZD1
;
	  ORG   0040H
CBEGIN:   NOP
	  NOP
	  MOV   SP,#50H

          SETB  EA;     open interrupter
	  SETB  EX1;    open ZD1
	  CLR   IT1;    active low level
	  NOP
CINITIAL: NOP

          LCALL DELAY1S
          MOV   A,#30H; INTERNAL RESET
	  LCALL CWRCTRL
          LCALL  DELAY
          MOV   A,#30H; FUNCTION SET
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#0CH; set ON/OFF
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#01H; CLEAR
	  LCALL CWRCTRL
          LCALL  DELAY500
          MOV   A,#06H; ENTRY MODE
	  LCALL CWRCTRL
          LCALL DELAY
          NOP;-----------------------
;STARTDIS: NOP
 ;         MOV  A,#82H
 ;         LCALL CWRCTRL
  ;        MOV   DPTR,#TAB; display successively word
 ;         LCALL CWRITE
   ;       LCALL DELAY500

   ;       MOV  A,#89H
   ;       LCALL CWRCTRL
   ;       MOV   DPTR,#TAB1; display successively word
   ;       LCALL CWRITE
   ;       LCALL DELAY500

   ;       MOV  A,#91H
    ;      LCALL CWRCTRL
   ;       MOV   DPTR,#TAB2; display successively word
   ;       LCALL CWRITE
   ;       LCALL DELAY500

   ;       MOV  A,#9AH
   ;       LCALL CWRCTRL
   ;       MOV   DPTR,#TAB3; display successively word
   ;       LCALL CWRITE
   ;       LCALL DELAY500


;	  NOP
CDISALL:
          MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
	  LCALL CWRCTRL

          LCALL DELAY
          MOV   DATA1,#0FFH
	  MOV   DATA2,#0FFH
	  MOV   TER1,#03H
	  LCALL CWRITE0;  display full screen
	  LCALL DELAY1S
          NOP

CDISROW:  MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL
          LCALL DELAY
          MOV   DATA1,#0FFH
	  MOV   DATA2,#00H
          MOV   TER1,#02H
	  LCALL CWRITE0;    one row on, one row off
	  LCALL DELAY1S
	  MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL

          LCALL DELAY
	  MOV   DATA1,#00H
	  MOV   DATA2,#0FFH
	  MOV   TER1,#02H
	  LCALL CWRITE0;    one row on, one row off
	  LCALL DELAY1S
	  NOP
CDISCOL:  MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL

          LCALL DELAY
          MOV   DATA1,#0AAH
	  MOV   DATA2,#0AAH
	  MOV   TER1,#02H
	  LCALL CWRITE0;  one column on, one column off
	  LCALL DELAY1S
	  NOP
          MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL

          LCALL DELAY
	  MOV   DATA1,#55H
	  MOV   DATA2,#55H
	  MOV   TER1,#02H
	  LCALL CWRITE0; one column on, one column off
	  LCALL DELAY1S
	  NOP
CDISDOT:  MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL

          LCALL DELAY
      	  MOV   DATA1,#0AAH
	  MOV   DATA2,#55H
	  MOV   TER1,#02H
	  LCALL CWRITE0;    one dot on, one dot off
	  LCALL DELAY1S
	  NOP
          MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY

          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL
          LCALL DELAY
	  MOV   DATA1,#55H
	  MOV   DATA2,#0AAH
	  MOV   TER1,#02H
	  LCALL CWRITE0;    one dot on, one dot off
	  LCALL DELAY1S
	  NOP
loop:     LCALL CCLRRAM
          MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL

          LCALL DELAY
         MOV   DPTR,#board
         MOV   A,DPH
         MOV   CUNH,A
         MOV   A,DPL
         MOV   CUNL,A
         LCALL DISPLAY
         LCALL DELAY

loop2: LCALL CCLRRAM
          MOV   A,#01H; clear display ram
	  LCALL CWRCTRL
          LCALL DELAY
          MOV   A,#36H; FUNCTION SET
          LCALL CWRCTRL

          LCALL DELAY
         MOV   DPTR,#board2
         MOV   A,DPH
         MOV   CUNH,A
         MOV   A,DPL
         MOV   CUNL,A
         LCALL DISPLAY
         LCALL DELAY


         LJMP CBEGIN







 DISPLAY: MOV   X,#00H;  start page address 0
 DISPLAY0:
          MOV   A,X
	  ORL   A,#80H; set page address
	  LCALL CWRCTRL
	  NOP

	  MOV  A,#80H;  set uper column address 0
	  LCALL CWRCTRL
          MOV  R0,#8
   LOOP0: MOV  A,#00
          MOVC  A,@A+DPTR
          MOV   DATA0,A
          LCALL  CWRDATA
          INC  DPTR
          MOV  A,#00
          MOVC  A,@A+DPTR
          MOV   DATA0,A
          LCALL  CWRDATA
          INC   DPTR
          DJNZ  R0, LOOP0
          INC   X

          MOV   A,X
          CJNE A,#32,DISPLAY0

          MOV   X,#00H;  start page address 0
 DISPLAY1:
          MOV   A,X
	  ORL   A,#80H; set page address
	  LCALL CWRCTRL
	  NOP
          MOV   Y,#8
          MOV   A,Y
	  ORL   A,#80H;  set uper column address 0
	  LCALL CWRCTRL
          MOV  R0,#8
LOOP1:     MOV  A,#00
          MOVC  A,@A+DPTR
          MOV   DATA0,A
          LCALL  CWRDATA
          INC  DPTR
          MOV  A,#00
          MOVC  A,@A+DPTR
          MOV   DATA0,A
          LCALL  CWRDATA
          INC   DPTR
          DJNZ  R0, LOOP1
          INC   X
          MOV   A,X
          CJNE  A,#32 ,DISPLAY1
          RET


CWRCTRL:   NOP
          PUSH  ACC
          CLR   RS
          NOP
          NOP
          CLR    RW
          NOP
          NOP
          MOV    P1,A
          NOP
          SETB    E1
          NOP
          NOP
          CLR     E1
          NOP
          NOP
          NOP
          NOP
          NOP
          POP ACC
          NOP

          RET
CWRDATA:   PUSH ACC
           SETB   RS
           NOP
           NOP
           CLR    RW
           NOP
           NOP
           MOV A,DATA0
           MOV    P1,A
           LCALL DELAY0
           SETB   E1
           LCALL DELAY0
           CLR    E1
           LCALL DELAY0
           POP ACC
           NOP

⌨️ 快捷键说明

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