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

📄 lcd.asm

📁 单片机驱动LCD液晶字符显示的驱动程序用VHDL语言编写
💻 ASM
字号:
CS1 EQU P2.3H ;端口定义
CS2 EQU P2.4H
DI EQU P2.2H
RW EQU P2.1H
E EQU P2.0H
X EQU 20H
Y EQU 21H
ZC EQU 22H
LFT EQU 7FH

ORG 0H
     AJMP START
     
ORG 30H

START: MOV 20H,#3EH ;关显示设置
       ACALL WI
       INC 20H ;开显示设置
       ACALL WI
       MOV 20H,#0C0H ;设置显示起始行为第一行
       ACALL WI
       MOV X,#0 ;设置X 为第1 页
       MOV Y,#0 ;列计数器Y=0
       CLR LFT ;LCD 屏幕(左)
       MOV DPTR,#HANG ;杭
       ACALL HZ_1
       MOV Y,#1
       MOV DPTR,#ZHOU ;州
       ACALL HZ_1
       MOV Y,#2
       MOV DPTR,#KANG ;康
       ACALL HZ_1
       MOV Y,#3
       MOV DPTR,#XIN ;芯
       ACALL HZ_1
       MOV Y,#0 ;列计数器Y=0
       SETB LFT ;LCD 屏幕(右)
       MOV DPTR,#DIAN ;电
       ACALL HZ_1
       MOV Y,#1
       MOV DPTR,#ZI ;子
       ACALL HZ_1
       MOV Y,#2
       MOV DPTR,#GONG ;公
       ACALL HZ_1
       MOV Y,#3
       MOV DPTR,#SI ;司
       ACALL HZ_1
       SJMP $
       
;以下程序显示一个汉字
HZ_1: MOV ZC,#0
     MOV A,#0B8H ;X addr 页面地址暂存器设置
     ACALL HZ_3
     MOV ZC,#1
     MOV A,#0B9H
HZ_3: ADD A,X ;
     MOV 20H,A
     ACALL WI
     MOV A,Y
     SWAP A
     ADD A,#40H ;设置列计数器Y
     MOV 20H,A
     ACALL WI
HZ_0: MOV R2,#16 ;取汉字字模
HZ_2: MOV A,ZC
     MOVC A,@A+DPTR
     MOV 20H,A
     MOV A,ZC
     ADD A,#2
     MOV ZC,A
     JB LFT,HZ_5
     ACALL WD1
     SJMP HZ_6
HZ_5: ACALL WD2
HZ_6: DJNZ R2,HZ_2
      CLR  E  ;使能信号E=0
      CLR  CS1
      CLR  CS2  
      RET
      
RDY: CLR DI ;读状态标志
      CLR RW
      SETB E
      MOV A,P0 ;读LCD 状态
      CLR E
      JB ACC.7,RDY ;检测BUSY 位
      RET
      
WI:   SETB CS1 ;写控制指令
      SETB CS2
      LCALL RDY   ;检测BUSY位
      CLR   DI
      CLR   RW
      MOV   P0,20H ;向LCD写数据
      SETB  E
      CLR   CS2
      RET
      
WD1:  SETB CS1 ;写显示数据(左)
      LCALL RDY ;检测BUSY 位
      SETB DI
      CLR RW
      MOV P0,20H ;输出数据
      SETB E
      CLR E
      CLR CS1
      RET
      
WD2:  SETB CS2 ;写显示数据(右)
      LCALL RDY
      SETB DI
      CLR RW
      MOV P0,20H ;输出数据
      SETB E ;使能信号E=1
      CLR E ;使能信号E=0
      LCALL RDY ;检测BUSY 位
      CLR DI
      CLR RW
      MOV P0,20H ;向LCD 写数据
      SETB E ;使能信号E=1
      CLR CS2
      RET
      
;汉字点阵“杭州康芯”
HANG: DB 08H,04H,10H,03H,0D0H,00H,0FFH,0FFH
      DB 90H,80H,10H,41H,08H,20H,0C8H,1FH
      DB 49H,00H,4EH,00H,48H,00H,0E8H,3FH
      DB 4CH,40H,08H,40H,00H,70H,00H,00H
ZHOU: DB 80H,00H,70H,40H,00H,30H,0FFH,0FH
      DB 00H,00H,10H,00H,60H,00H,00H,00H
      DB 0FEH,3FH,00H,00H,10H,00H,60H,00H
      DB 00H,00H,0FFH,0FFH,00H,00H,00H,00H
KANG: DB 00H,40H,00H,30H,0FCH,0FH,44H,40H
      DB 54H,23H,54H,15H,54H,49H,55H,18H
      DB 0FEH,7FH,54H,05H,54H,09H,54H,11H
      DB 0F4H,29H,46H,64H,44H,20H,00H,00H
XIN:  DB 04H,08H,04H,07H,04H,00H,04H,3FH
      DB 1FH,40H,04H,40H,44H,40H,84H,40H
      DB 04H,43H,04H,40H,1FH,40H,04H,40H
      DB 04H,70H,06H,01H,04H,0EH,00H,00H
DIAN: DB 08H,04H,10H,03H,0D0H,00H,0FFH,0FFH
      DB 90H,80H,10H,41H,08H,20H,0C8H,1FH
      DB 49H,00H,4EH,00H,48H,00H,0E8H,3FH
      DB 4CH,40H,08H,40H,00H,70H,00H,00H
ZI: DB 80H,00H,70H,40H,00H,30H,0FFH,0FH
      DB 00H,00H,10H,00H,60H,00H,00H,00H
      DB 0FEH,3FH,00H,00H,10H,00H,60H,00H
      DB 00H,00H,0FFH,0FFH,00H,00H,00H,00H
GONG: DB 00H,40H,00H,30H,0FCH,0FH,44H,40H
      DB 54H,23H,54H,15H,54H,49H,55H,18H
      DB 0FEH,7FH,54H,05H,54H,09H,54H,11H
      DB 0F4H,29H,46H,64H,44H,20H,00H,00H
SI:  DB 04H,08H,04H,07H,04H,00H,04H,3FH
      DB 1FH,40H,04H,40H,44H,40H,84H,40H
      DB 04H,43H,04H,40H,1FH,40H,04H,40H
      DB 04H,70H,06H,01H,04H,0EH,00H,00H      

⌨️ 快捷键说明

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