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

📄 128641.asm

📁 多种液晶显示驱动程序。使用汇编语音编写。
💻 ASM
字号:
;
;128*64-1 LCD演示程序
;61202 LCD控制器
;标题:测试板
;时间:2004。05。08
;----------------------------------------------------
CUL      EQU   30H          ;列变量
ROW      EQU   31H          ;页变量
CODEE    EQU   2FH
TEMP1    EQU   32H
COM      EQU   36H          ;指令寄存器
DAT      EQU   37H          ;数据寄存器

;定议LCD控制脚
;P3  为控制线,P1 为数据线
PREST    EQU   P3.6
CS2      EQU   P3.5         ;高有效
CS1      EQU   P3.4
PDI      EQU   P3.2         ;高为数据,低为指令
PWR      EQU   P3.1         ;高为读  ,H->L为写
PEE      EQU   P3.0
                        
;-----------------------------------------------
cseg  at  0
  JMP    START
  NOP
  ORG  20H
START:
   CLR    PREST
   LCALL   DELAY2              ;LCD  复位
   SETB   PREST
   NOP
   LCALL   INT                 ;LCD  初始化
   LCALL   CLEAR               ;清屏
   LCALL   CLEARA
   LCALL   DELAY1
   LCALL   CLEARB
   LCALL   DELAY1
   LCALL   CLEAR

   NOP
   MOV  CODEE,#01
   MOV  CUL,#08
   MOV  ROW,#00
   LCALL  WRNUN
   LCALL  WRNUN
   MOV   CODEE,#8
   LCALL  WRNUN
   MOV   CODEE,#6
   LCALL  WRNUN
   MOV   CODEE,#4
   LCALL  WRNUN
   MOV   CODEE,#00
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   MOV   CUL,#00
   MOV   ROW,#2
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   LCALL  WRCHIN
   MOV    CUL,#08
   MOV    ROW,#6
   LCALL  WRCHIN
   LCALL  WRCHIN
   MOV   CODEE,#10
   LCALL  WRNUN
   MOV   CODEE,#0
   LCALL  WRNUN
   LCALL  WRNUN
   LCALL  WRNUN
   LCALL  WRNUN
   LCALL  WRNUN
   LCALL  WRNUN
   LCALL  WRNUN
   LCALL  WRNUN
   NOP
   LCALL  DELAY3
   LJMP   START
   
;延时子程序
DELAY1:
   MOV   R6,#0
   MOV   R7,#0
   MOV   R5,#10
DELA11:
   DJNZ  R6,DELA11
   DJNZ  R7,DELA11
   DJNZ  R5,DELA11
   RET
DELAY2:
   MOV   R5,#0
   MOV   R6,#0
   MOV   R7,#1
DELA21:
   DJNZ   R5,DELA21
   DJNZ   R6,DELA21
   DJNZ   R7,DELA21
   RET
DELAY3:
   MOV   R6,#0
   MOV   R7,#0
   MOV   R5,#80
DELA31:
   DJNZ  R6,DELA31
   DJNZ  R7,DELA31
   DJNZ  R5,DELA31
   RET

; 写一个8*16的数字子程序
WRNUN:   
  ANL   CUL,#07FH         
  MOV   DPTR,#NUNTAB
  MOV   A,CODEE
  MOV   B,#16
  MUL   AB
  ADD   A,DPL
  MOV   DPL,A
  MOV   A,B
  ADDC  A,DPH
  MOV   DPH,A
  MOV   A,CUL
  JB   ACC.6,WRNUN20
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRL0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRL0
  MOV   R7,#08
WRNUN11:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRL1
  INC   DPTR
  DJNZ   R7,WRNUN11
  INC  ROW
  MOV   A,CUL
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRL0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRL0
  MOV   R7,#08
WRNUN12:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRL1
  INC   DPTR
  DJNZ   R7,WRNUN12
  DEC   ROW
  MOV  A,#08
  ADD  A,CUL
  MOV   CUL,A
  INC  CODEE
  RET
WRNUN20:
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRR0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRR0
  MOV   R7,#08
WRNUN21:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRR1
  INC   DPTR
  DJNZ   R7,WRNUN21
  INC  ROW
  MOV   A,CUL
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRR0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRR0
  MOV   R7,#08
WRNUN22:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRR1
  INC   DPTR
  DJNZ   R7,WRNUN22
  DEC   ROW
  MOV  A,#08
  ADD  A,CUL
  MOV   CUL,A
  INC  CODEE
  RET
 


; 写一个16*16的中文子程序
WRCHIN:   
  ANL   CUL,#07FH         
  MOV   DPTR,#CHINTAB
  MOV   A,CODEE
  MOV   B,#32
  MUL   AB
  ADD   A,DPL
  MOV   DPL,A
  MOV   A,B
  ADDC  A,DPH
  MOV   DPH,A
  MOV   A,CUL
  JB   ACC.6,WRCHIN20
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRL0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRL0
  MOV   R7,#16
WRCHIN11:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRL1
  INC   DPTR
  DJNZ   R7,WRCHIN11
  INC  ROW
  MOV   A,CUL
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRL0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRL0
  MOV   R7,#16
WRCHIN12:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRL1
  INC   DPTR
  DJNZ   R7,WRCHIN12
  DEC   ROW
  MOV  A,#16
  ADD  A,CUL
  MOV   CUL,A
  INC  CODEE
  RET
WRCHIN20:
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRR0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRR0
  MOV   R7,#16
WRCHIN21:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRR1
  INC   DPTR
  DJNZ   R7,WRCHIN21
  INC  ROW
  MOV   A,CUL
  ORL  A,#40H
  MOV  COM,A
  LCALL  PRR0
  MOV   A,ROW
  ORL   A,#0B8H
  MOV   COM,A
  LCALL  PRR0
  MOV   R7,#16
WRCHIN22:
  CLR  A
  MOVC  A,@A+DPTR
  MOV  DAT,A
  LCALL   PRR1
  INC   DPTR
  DJNZ   R7,WRCHIN22
  DEC   ROW
  MOV  A,#16
  ADD  A,CUL
  MOV   CUL,A
  INC  CODEE
  RET
  


INT:
   MOV   COM,#0C0H      ;设置显示起始行为第一行
   LCALL  PRL0
   LCALL  PRR0
   MOV   COM,#03FH      ;开显示设置
   LCALL  PRL0
   LCALL  PRR0
   RET
CLEAR:
   MOV   R4,#00H
CLEAR1:
   MOV   A,R4
   ORL   A,#0B8H
   MOV   COM,A
   LCALL   PRL0
   LCALL   PRR0
   MOV   COM,#40H
   LCALL   PRL0
   LCALL   PRR0
   MOV    R3,#40H
CLEAR2:
   MOV   DAT,#00H
   LCALL   PRL1
   LCALL   PRR1
   DJNZ   R3,CLEAR2
   INC    R4
   CJNE   R4,#08H,CLEAR1
   RET

CLEARA:
   MOV   R4,#00H
CLEARA1:
   MOV   A,R4
   ORL   A,#0B8H
   MOV   COM,A
   LCALL   PRL0
   LCALL   PRR0
   MOV   COM,#40H
   LCALL   PRL0
   LCALL   PRR0
   MOV    R3,#40H
CLEARA2:
   MOV   DAT,#0FH
   LCALL   PRL1
   LCALL   PRR1
   DJNZ   R3,CLEARA2
   INC    R4
   CJNE   R4,#08H,CLEARA1
   RET

CLEARB:
   MOV   R4,#00H
CLEARB1:
   MOV   A,R4
   ORL   A,#0B8H
   MOV   COM,A
   LCALL   PRL0
   LCALL   PRR0
   MOV   COM,#40H
   LCALL   PRL0
   LCALL   PRR0
   MOV    R3,#16
   MOV    DAT,#00H
CLEARB2:
   MOV   A,DAT
   CPL   A
   MOV   DAT,A
   LCALL   PRL1
   LCALL   PRR1
   LCALL   PRL1
   LCALL   PRR1
   LCALL   PRL1
   LCALL   PRR1
   LCALL   PRL1
   LCALL   PRR1
   DJNZ   R3,CLEARB2
   INC    R4
   CJNE   R4,#08H,CLEARB1
   RET

PRL0:                              ;左区写指令
   CLR    CS2
   SETB   CS1
   CLR    PDI
   SETB   PWR
PRL01:
   MOV   P1,#0FFH
   SETB   PEE
   MOV   A,P1
   CLR    PEE
   JB   ACC.7,PRL01
   CLR    PWR
   MOV   P1,COM
   SETB   PEE
   CLR    PEE
   RET
PRL1:                           ;左区写数据
   CLR    CS2
   SETB   CS1
   CLR    PDI
   SETB   PWR
PRL11:
   MOV   P1,#0FFH
   SETB   PEE
   MOV   A,P1
   CLR    PEE
   JB   ACC.7,PRL11
   SETB   PDI
   CLR   PWR
   MOV   P1,DAT
   SETB   PEE
   CLR    PEE
   RET
PRR0:                            ;右区写指令
   SETB   CS2
   CLR    CS1
   CLR    PDI
   SETB   PWR
PRR01:
   MOV   P1,#0FFH
   SETB   PEE
   MOV   A,P1
   CLR    PEE
   JB   ACC.7,PRR01
   CLR    PWR
   MOV   P1,COM
   SETB   PEE
   CLR    PEE
   RET
PRR1:                              ;右区写数据
   SETB   CS2
   CLR    CS1
   CLR    PDI
   SETB   PWR
PRR11:
   MOV   P1,#0FFH
   SETB   PEE
   MOV   A,P1
   CLR    PEE
   JB   ACC.7,PRR11
   SETB   PDI
   CLR   PWR
   MOV   P1,DAT
   SETB   PEE
   CLR    PEE
   RET
   NOP

  

CHINTAB:
;--  文字:  是  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  080H,080H,080H,080H,0BEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0BEH,080H,080H,080H,000H
DB  000H,040H,020H,010H,00EH,010H,020H,03FH,044H,044H,044H,044H,044H,040H,040H,000H

;--  文字:  一  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,0C0H,080H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  种  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,012H,012H,0D2H,0FEH,051H,081H,0F0H,010H,010H,0FFH,010H,010H,0F0H,000H,000H
DB  008H,004H,003H,000H,0FFH,000H,000H,003H,001H,001H,0FFH,001H,001H,003H,000H,000H

;--  文字:  图  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0FEH,042H,042H,022H,01EH,0AAH,04AH,0AAH,09AH,00AH,002H,002H,0FEH,000H,000H
DB  000H,0FFH,042H,042H,041H,041H,048H,072H,054H,040H,041H,043H,041H,0FFH,000H,000H

;--  文字:  形  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,042H,042H,0FEH,042H,042H,0FEH,042H,042H,040H,010H,088H,0E4H,047H,002H,000H
DB  080H,040H,030H,00FH,000H,000H,07FH,000H,084H,042H,021H,010H,008H,00EH,004H,000H

;--  文字:  点  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,000H,0E0H,020H,020H,020H,03FH,024H,024H,024H,0F4H,024H,000H,000H,000H
DB  000H,040H,030H,007H,012H,062H,002H,00AH,012H,062H,002H,00FH,010H,060H,000H,000H

;--  文字:  阵  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  0FEH,002H,012H,02AH,0C6H,088H,0C8H,0B8H,08FH,0E8H,088H,088H,088H,088H,000H,000H
DB  0FFH,000H,002H,004H,003H,004H,004H,004H,004H,0FFH,004H,004H,004H,004H,004H,000H

;--  文字:  液  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  010H,061H,006H,0E0H,018H,084H,0E4H,01CH,084H,065H,0BEH,024H,0A4H,064H,004H,000H
DB  004H,004H,0FFH,000H,001H,000H,0FFH,041H,021H,012H,00CH,01BH,061H,0C0H,040H,000H

;--  文字:  晶  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,000H,000H,07EH,02AH,02AH,02AH,02AH,02AH,02AH,07EH,000H,000H,000H,000H
DB  000H,07FH,025H,025H,025H,025H,07FH,000H,000H,07FH,025H,025H,025H,025H,07FH,000H

;--  文字:  显  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,000H,03EH,02AH,0EAH,02AH,02AH,02AH,0EAH,02AH,03EH,000H,000H,000H,000H
DB  020H,021H,022H,02CH,020H,03FH,020H,020H,020H,03FH,028H,024H,023H,020H,020H,000H

;--  文字:  示  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,020H,020H,022H,022H,022H,022H,0E2H,022H,022H,022H,022H,022H,020H,020H,000H
DB  010H,008H,004H,003H,000H,040H,080H,07FH,000H,000H,001H,002H,00CH,018H,000H,000H

;--  文字:  器  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,040H,04FH,049H,049H,0C9H,0CFH,070H,0C0H,0CFH,049H,059H,069H,04FH,000H,000H
DB  002H,002H,07EH,045H,045H,044H,07CH,000H,07CH,044H,045H,045H,07EH,006H,002H,000H

;--  文字:  电  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000H,000H,000H
DB  000H,000H,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000H

;--  文字:  话  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,041H,04EH,0C4H,000H,020H,024H,024H,024H,024H,0FCH,022H,022H,022H,020H,000H
DB  000H,000H,000H,07FH,020H,010H,000H,07EH,022H,022H,023H,022H,022H,07EH,000H,000H


NUNTAB:
;--  文字:  0  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,00FH,010H,020H,020H,010H,00FH,000H

;--  文字:  1  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,010H,010H,0F8H,000H,000H,000H,000H,000H,020H,020H,03FH,020H,020H,000H,000H

;--  文字:  2  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,070H,008H,008H,008H,088H,070H,000H,000H,030H,028H,024H,022H,021H,030H,000H

;--  文字:  3  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,030H,008H,088H,088H,048H,030H,000H,000H,018H,020H,020H,020H,011H,00EH,000H

;--  文字:  4  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,0C0H,020H,010H,0F8H,000H,000H,000H,007H,004H,024H,024H,03FH,024H,000H

;--  文字:  5  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,0F8H,008H,088H,088H,008H,008H,000H,000H,019H,021H,020H,020H,011H,00EH,000H

;--  文字:  6  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,0E0H,010H,088H,088H,018H,000H,000H,000H,00FH,011H,020H,020H,011H,00EH,000H

;--  文字:  7  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,038H,008H,008H,0C8H,038H,008H,000H,000H,000H,000H,03FH,000H,000H,000H,000H

;--  文字:  8  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,070H,088H,008H,008H,088H,070H,000H,000H,01CH,022H,021H,021H,022H,01CH,000H

;--  文字:  9  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,031H,022H,022H,011H,00FH,000H

;--  文字:  :  --
;--  新宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,0C0H,0C0H,000H,000H,000H,000H,000H,000H,030H,030H,000H,000H,000H


   END














⌨️ 快捷键说明

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