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

📄 12864.asm

📁 这个是128×64的液晶屏的读写程序
💻 ASM
字号:
/******************************************************************************
 Title:  演示程序15 -12864 LCM显示程序			                        *					*
  Name:   12864.asm                                                         	*
  Date:   2006-01-25                                                            	*
  Ver:    1.0                                                                  	*                                                *
  web:   http://www.CPLD-FPGA.NET                                               *

  现象:                                                                       	*
        128×64 点阵型LCD显示演示程序                                            *															*		
********************************************************************************/

        
;***************硬件端口定义***********
          RS       EQU   P2.0
          RW       EQU   P2.1
          E        EQU   P2.2
          CS1      EQU   P2.3
          CS2      EQU   P2.4
          RST      EQU   P2.5   
          COM      EQU   20H    ;指令数据寄存器
          DAT      EQU   21H    ;显示数据寄存器

;**********************************主程序入口地址 
        ORG     0000H  
        AJMP    STR  
        ORG     0003H           
     
;*********************************中断程序入口地址
STR:    
        AJMP    L0100
  
L0100:  CLR     RST
        NOP
        NOP
        SETB    RST
        
;********************************以上是软件复位
        MOV	SP,#60H
        MOV     IE,#81H            ;中断允许
        MOV     IP,#01H            ;优先中断
        MOV     TCON,#00H          ;电平中断
        MOV     COM,#3FH         ;显示开
        LCALL   S02A9            ;左半屏写指令子程序
        LCALL   S02C1            ;右半屏写指令子程序
;----------------------------------------------------------------------
        MOV     COM,#0C0H        ;第一行        
        LCALL   S02A9            ;左半屏写指令子程序
        LCALL   S02C1            ;右半屏写指令子程序
;----------------------------------------------------------------------
        MOV     COM,#0B8H       ;第一页        
        LCALL   S02A9           ;左半屏写指令子程序
        LCALL   S02C1           ;右半屏写指令子程序
;----------------------------------------------------------------------
        MOV     COM,#40H        ;第一列
        LCALL   S02A9           ;左半屏写指令子程序
        LCALL   S02C1           ;右半屏写指令子程序
;********************************************************以上是软件初始化
        MOV     B,#0AAH
        LCALL   XIHX            ;显示横线1
        LCALL   DELAY 
      ; MOV     B,#55H
       ; LCALL   XIHX    
       ; LCALL   DELAY           ;显示横线2
        MOV     B,#0FFH
        MOV     29H,#00H       
        LCALL   XISX    
        LCALL   DELAY            ;显示竖线1
       ; MOV     B,#00H
       ; MOV     29H,#0FFH
      ; LCALL   XISX    
       ; LCALL   DELAY            ;显示竖线2

        MOV     DPTR,#TAB1
        LCALL   LEFT
        MOV     DPTR,#TAB2
        LCALL   RIGHT       
        LCALL   DELAY             ;显示第一幅图片

        AJMP    L0100
;=======================================================以上是主程序
LEFT:   MOV     R1,#0B8H
_AB:     MOV     COM,R1          ;第一页        
        LCALL   S02A9           ;左半屏写指令子程序     
        MOV     COM,#40H        ;第一列
        LCALL   S02A9           ;左半屏写指令子程序      
        MOV     R0, #64 
S027B:  MOV     A,#00H
        MOVC    A,@A+DPTR               
        MOV     DAT,A        
        LCALL   S02B1           ;左半屏写数据子程序         
        INC     DPTR    
        DJNZ    R0,S027B
        INC     R1        
        CJNE    R1, #0C0H,_AB      
        RET
;======================================================以上是左半屏写数据子程序
RIGHT:  MOV     R1,#0B8H
ABC:    MOV     COM,R1          ;第一页        
        LCALL   S02C1           ;右半屏写指令子程序     
        MOV     COM,#40H        ;第一列
        LCALL   S02C1           ;右半屏写指令子程序      
        MOV     R0, #64 
S027D:  MOV     A,#00H
        MOVC    A,@A+DPTR               
        MOV     DAT,A        
        LCALL   S02B9           ;右半屏写数据子程序         
        INC     DPTR    
        DJNZ    R0,S027D
        INC     R1        
        CJNE    R1, #0C0H,ABC       
        RET

;*******************************************************以上是右半屏写数据子程序

XIHX:   MOV     R1,#0B8H       
BA:     MOV     COM,R1          ;第一页        
        LCALL   S02A9           ;左半屏写指令子程序
        LCALL   S02C1           ;右半屏写指令子程序
        MOV     COM,#40H        ;第一列
        LCALL   S02A9           ;左半屏写指令子程序 
        LCALL   S02C1           ;右半屏写指令子程序
        MOV     R0, #64 
W027B:  MOV     DAT,B        
        LCALL   S02B1           ;左半屏写数据子程序         
        LCALL   S02B9           ;右半屏写数据子程序    
        DJNZ    R0,W027B
        INC     R1        
        CJNE    R1, #0C0H,BA      
        RET 
;--------------------------------------------------------- 
XISX:   MOV     R1,#0B8H       
CA:     MOV     COM,R1          ;第一页        
        LCALL   S02A9           ;左半屏写指令子程序
        LCALL   S02C1           ;右半屏写指令子程序
        MOV     COM,#40H        ;第一列
        LCALL   S02A9           ;左半屏写指令子程序 
        LCALL   S02C1           ;右半屏写指令子程序
        MOV     R0, #32 
X027B:  MOV     DAT,B        
        LCALL   S02B1           ;左半屏写数据子程序         
        LCALL   S02B9           ;右半屏写数据子程序   
        MOV     DAT,29H
        LCALL   S02B1           ;左半屏写数据子程序         
        LCALL   S02B9           ;右半屏写数据子程序
        DJNZ    R0,X027B
        INC     R1        
        CJNE    R1, #0C0H,CA      
        RET  
;****************************************************以上是显示线条程序
S02A9:  SETB    CS1
        LCALL   S02C9
        CLR     CS1         ;左半屏写指令子程序
        RET   
  
S02B1:  SETB    CS1         ;左半屏写数据子程序        
        LCALL   S02E0  
        CLR     CS1     
        RET  

S02C1:  SETB    CS2         ;右半屏写指令子程序        
        LCALL   S02C9  
        CLR     CS2      
        RET    

S02B9:  SETB    CS2         ;右半屏写数据子程序       
        LCALL   S02E0    
        CLR     CS2
        RET     
;**************************************************** 

S02C9:  CLR     RS         
        SETB    RW        
S02C9A: MOV     P0,#0FFH
        SETB    E
        MOV     A, P0
        CLR     E
        JB      ACC.7,S02C9A
        CLR     RW
        MOV     P0,COM       
        SETB    E
        NOP
        CLR     E
        RET     
;*************************************************以上是写指令子程序
S02E0:  CLR     RS         
        SETB    RW        
S02E0A: MOV     P0,#0FFH
        SETB    E
        MOV     A, P0
        CLR     E
        JB      ACC.7,S02E0A
        SETB    RS
        CLR     RW
        MOV     P0,DAT      
        SETB    E
        NOP
        CLR     E
        RET      
          
;************************************************以上是写数据子程序

DELAY:  MOV     R5,#0BH            ;延时
D1:     MOV     R7,#0FFH
D2:     MOV     R6,#0FFH
D3:     DJNZ    R6,$
        DJNZ    R7,D2
        DJNZ    R5,D1
        RET     

 ;****************************************************************  
TAB1:
;--  调入菲戈幅图像左半屏:纵向取模下高位,数据排列:从左到右从上到下 
;--  宽度x高度=64x64 
        db       00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 80h, 20h, 0Ah
	db	 4Ah, 3Ch, 40h,0BEh, 00h, 54h, 00h, 24h, 42h,0A8h, 00h,0EEh, 00h, 42h, 06h, 48h
	db	 12h, 44h, 12h, 44h,0A8h, 02h, 20h, 04h, 22h,0C0h, 82h,0E4h,0C0h,0E0h,0C0h,0C0h
	db 	 0A0h,0C0h,0C0h, 80h,0A0h, 00h, 00h, 20h, 00h, 00h, 04h, 48h, 12h, 2Ch, 1Ah, 1Ch
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h, 00h
	db	 01h, 00h, 00h, 05h, 00h, 01h, 00h, 00h, 00h, 02h, 00h, 01h, 05h, 00h, 01h, 00h
	db	 01h, 04h, 00h, 02h, 28h, 01h,0A8h, 10h,0FEh,0FDh,0DFh, 1Fh, 3Fh, 7Fh, 0Fh, 8Bh
	db	 03h, 23h, 23h, 03h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 20h,0FDh
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 80h, 00h, 20h,0A0h,0E8h, 68h,0F4h,0F0h
	db	 0F8h,0F0h, 78h,0E0h,0D0h, 14h,0A0h, 20h, 43h, 11h, 20h, 71h, 74h, 76h, 7Ch, 9Ch
	db	 42h,0D4h, 21h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h,0FFh,0D2h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 00h, 80h, 00h,0C0h, 80h, 40h,0B8h,0F8h,0F8h,0BCh, 3Eh, 3Fh, 3Eh,0FFh,0FFh,0FFh
	db	 0FFh,0FFh,0FFh,0FEh,0FDh,0FCh,0F9h,0F9h,0FDh,0F9h,0FAh,0C1h, 0Ah, 9Ah,0F9h,0F3h
	db	 0E4h,0E0h,0E2h,0FCh,0FFh,0FFh, 7Fh,0DFh,0FCh,0C0h, 00h, 00h, 01h, 48h, 33h,0BFh
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 40h, 08h, 00h
	db	 02h, 01h, 03h, 01h, 01h, 04h,0A1h, 0Ah, 24h, 0Bh, 1Ah, 41h, 9Eh,0DFh, 97h,0A9h
	db	 5Eh, 53h,0F5h,0D7h, 7Fh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FCh,0FEh,0FFh,0FFh,0FFh
	db	 0FFh,0FFh, 3Fh,0BFh,0FFh, 0Fh, 07h, 0Eh, 00h, 08h, 00h, 00h, 00h, 00h,0C2h, 3Fh
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 20h, 00h, 00h, 00h, 00h, 00h, 12h, 00h, 00h, 02h,0C6h, 06h, 22h, 35h, 05h, 23h
	db	 23h, 2Ch, 33h, 66h,0D7h,0FFh,0F7h,0DFh,0FFh,0CFh,0EFh,0EFh,0FFh,0FFh,0FFh, 1Fh
	db	 0Fh, 8Ah, 20h, 00h, 44h, 8Ch, 04h, 00h, 00h, 00h, 00h, 80h, 00h, 40h, 12h, 44h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 40h, 40h
	db	 40h,0E0h, 40h, 40h, 40h,0E0h, 40h, 40h, 40h, 00h, 01h, 10h, 01h, 00h, 01h, 00h
	db	 0E0h, 00h, 00h,0A0h,0C3h,0BFh,0BFh, 07h, 3Fh, 3Fh, 3Fh, 1Fh, 05h, 02h, 00h, 00h
	db	 00h, 00h, 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 22h, 2Ah
	db	 2Ah, 2Ah,0FFh, 00h,0FFh, 2Ah, 2Ah, 2Ah, 22h, 00h, 00h, 00h, 81h, 81h, 41h, 41h
	db	 23h, 1Dh, 31h, 48h, 84h, 82h,0E0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h

TAB2:
;--  调入菲戈幅图像右半屏:纵向取模下高位,数据排列:从左到右从上到下 
;--  宽度x高度=64x64 
        db       76h,0BCh,0FCh,0EEh, 80h,0F6h,0F6h,0FEh,0FEh,0FFh, 80h,0FFh, 7Eh,0FFh, 81h, 3Eh
	db	 3Eh, 36h, 45h, 3Fh, 1Fh, 3Fh, 01h, 3Eh, 3Eh, 3Eh, 41h, 7Fh,0FFh, 7Fh,0FFh, 7Fh
	db	 7Fh, 3Fh, 1Fh, 3Fh, 1Fh, 9Fh, 3Fh, 9Fh, 1Fh, 3Fh, 5Fh, 1Fh, 7Fh, 7Fh,0FFh,0FFh
	db	 0FFh,0FFh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db  	 0A3h,0FEh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0BFh,0D3h, 41h, 02h, 01h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 20h, 00h, 20h, 00h
	db	 40h, 00h, 08h, 00h, 40h, 04h, 08h, 12h, 00h, 04h, 00h, 00h, 00h, 00h, 00h, 03h
	db	 0Fh, 7Fh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh, 0Dh, 24h, 00h, 00h, 80h,0A0h
	db	 40h,0E0h, 70h, 70h, 60h,0F8h,0F0h,0F0h,0F8h,0F0h,0F0h,0E0h,0F8h,0F0h, 68h, 00h
	db	 80h, 08h,0B0h,0B8h,0F0h,0F4h,0F0h,0FCh,0F9h,0F8h,0BAh,0F8h,0DCh,0B8h, 70h, 90h
	db	 20h, 4Bh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 3Fh, 3Fh, 7Fh, 7Fh,0FFh,0FFh,0FFh,0FFh, 5Fh, 00h, 00h, 01h, 00h, 05h, 02h, 05h
	db	 05h, 0Eh, 03h, 07h, 0Bh, 0Bh, 97h, 0Fh, 25h, 0Bh, 0Bh, 0Fh, 03h, 02h, 00h, 80h
	db	 00h, 14h, 00h, 01h, 0Bh, 0Bh, 1Dh, 1Bh,0E7h, 0Fh, 5Bh, 03h, 03h, 03h, 05h, 04h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 0E3h, 02h,0A6h, 60h,0F4h, 41h, 07h, 7Fh,0FDh, 50h,0C2h, 28h, 20h, 80h, 20h, 00h
	db	 80h, 00h, 80h, 00h, 00h, 00h, 04h, 00h,0A0h, 40h, 18h, 20h, 21h, 70h, 30h,0E0h
	db	 3Ah,0E0h, 39h,0E0h, 38h, 70h, 30h, 00h, 10h, 45h, 89h, 12h, 04h, 10h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 11h, 04h, 09h, 01h, 53h, 84h,0C0h, 88h, 61h,0D5h, 24h, 49h, 22h, 88h, 10h, 42h
	db	 00h, 00h, 24h, 00h, 00h, 00h, 00h, 44h,0A8h,0E0h,0C2h, 48h,0D1h, 64h, 60h, 64h
	db	 52h, 6Dh, 60h,0EBh,0B2h, 74h,0E4h, 60h,0CCh, 70h,0C0h, 82h, 08h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 01h, 03h, 04h, 05h, 10h, 05h, 50h, 80h, 14h, 01h
	db	 28h, 10h, 01h, 48h,0A0h, 00h,0A5h, 00h, 40h, 00h, 08h, 80h, 10h, 06h, 04h, 2Fh
	db	 8Eh, 1Fh, 2Eh,0CEh, 1Dh,0A6h, 16h, 0Ch, 22h, 48h,0B2h, 04h, 00h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
	db	 00h, 00h, 00h, 00h, 00h, 00h, 40h, 20h, 28h, 08h, 00h, 00h, 00h, 00h, 02h, 15h
	db	 22h, 04h, 2Ah, 18h, 22h, 5Ch, 52h, 2Ch, 52h, 38h, 64h, 52h, 7Ch, 61h, 3Ah, 6Ch
	db	 79h, 76h, 7Dh, 7Eh, 7Ch, 7Bh, 7Eh, 7Ah, 7Ah, 74h, 7Ch, 52h, 2Ch, 0Ah, 00h, 00h
	db	 00h, 1Eh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h

  END
	

⌨️ 快捷键说明

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