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

📄 1602液晶屏驱动源程序7.txt

📁 液晶显示器1602显示编程范例
💻 TXT
字号:
1602液晶屏驱动源程序7 
     

      ;lcd display program
      RS BIT P3.3
      R_W BIT P3.4
      ENABLE BIT P3.5 
      LCDDATA DATA P1


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

      ORG 0000H
      AJMP MAIN
      ORG 000BH
      AJMP INSERS

      ORG 0050H
      MAIN:
      MOV TMOD,#00H
      MOV TL0,#00H
      MOV TH0,#00H
      SETB EA
      SETB ET0
      SETB TR0
      MOV R5,#50
      CLR P3.2
      SETB P3.1
      MOV SP,#60H
      LCALL INITIAL
      LCALL CLS
      LCALL SAVE_FONT
      MOV A,#10000111B
      LCALL WRITE_INSTRUCTION
      MOV R1,#00H

      OUT_DDRAM1:
      MOV A,R1
      LCALL WRITELCDDATA
      INC R1
      CJNE R1,#3,OUT_DDRAM1

      MOV A,#11000110B
      LCALL WRITE_INSTRUCTION
      MOV R1,#3

      OUT_DDRAM2:
      MOV A,R1
      LCALL WRITELCDDATA
      INC R1
      CJNE R1,#8,OUT_DDRAM2

      AJMP $

      INSERS:
      MOV TL0,#00H
      MOV TH0,#00H
      DJNZ R5,L0
      MOV R5,#50
      CPL P3.2
      CPL P3.1
      L0:
      RETI

      INITIAL:
      MOV A,#00111000B
      LCALL WRITE_INSTRUCTION
      MOV A,#00001100B
      LCALL WRITE_INSTRUCTION
      MOV A,#00000110B
      LCALL WRITE_INSTRUCTION
      RET

      CHECKBUSY:
      PUSH ACC
      CHECKBUSYLOOP:
      CLR ENABLE
      SETB R_W
      CLR RS
      SETB ENABLE
      MOV A,LCDDATA
      CLR ENABLE
      JB ACC.7,CHECKBUSYLOOP
      POP ACC
      LCALL DELAY
      RET

      WRITE_INSTRUCTION:
      LCALL CHECKBUSY
      CLR ENABLE
      CLR R_W
      CLR RS 
      SETB ENABLE
      MOV LCDDATA,A
      CLR ENABLE
      LCALL DELAY
      RET

      WRITELCDDATA:
      LCALL CHECKBUSY
      CLR ENABLE
      CLR R_W
      SETB RS
      SETB ENABLE
      MOV LCDDATA,A
      CLR ENABLE
      RET

      CLS:
      MOV A,#01H
      LCALL WRITE_INSTRUCTION
      RET

      SAVE_FONT:
      MOV A,#01000000B
      LCALL WRITE_INSTRUCTION
      MOV R4,#64
      MOV DPTR,#USER_PATTERN

      PUT_LOOP:
      CLR A
      MOVC A,@A+DPTR
      LCALL WRITELCDDATA
      INC DPTR
      DJNZ R4,PUT_LOOP
      MOV A,#10000000B
      LCALL WRITE_INSTRUCTION
      RET

      USER_PATTERN:
      DB 00H,00H,00H,00H,01H,03H,03H,00H
      DB 04H,04H,0EH,1FH,1FH,1FH,0AH,00H
      DB 00H,00H,00H,00H,10H,18H,18H,00H
      DB 00H,00H,00H,17H,10H,17H,17H,00H
      DB 07H,0AH,15H,03H,1CH,1FH,1FH,00H
      DB 1FH,1FH,0EH,1FH,0EH,1FH,1FH,00H
      DB 1CH,0AH,15H,1FH,07H,1FH,1FH,00H
      DB 00H,00H,00H,1DH,01H,1DH,1DH,00H

      ;PR_STRING:
      ;PUSH ACC
      ;PR_LOOP:
      ;CLR A
      ;MOVC A,@A+DPTR
      ;JZ END_PR
      ;LCALL WRITELCDDATA
      ;INC DPTR
      ;AJMP PR_LOOP

      ;END_PR:
      ;POP ACC
      ;RET

      DELAY:
      MOV R5,#05H
      L1:
      MOV R6,#0F8H
      L2:
      DJNZ R6,L2
      DJNZ R5,L1
      RET

      END



⌨️ 快捷键说明

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