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

📄 lcd_tx.asm

📁 基于89s51的一通用平台
💻 ASM
字号:
;实验三、LCD 图形显示实验
;文件名称  LCD_TX.ASM
;显示无线发射的一幅画。  
;在第3行显示"WWW.LJD-2008.COM"

NAME  LCD_TX

$NOLIST
$INCLUDE(LJD_2008.INC)
$INCLUDE(LCD.INC)      
$LIST
;-----------------------------------------------------------------
;         ORG   0000H
          AJMP  BEGIN
;
;
          ORG   0040H
BEGIN: 
	   MOV	SP,#60H
	   CALL	INITIAL_GLCD ;调用初始化	 	         
QQ:      CALL 	DDISALL      ;调用点显示子程序
	   SJMP 	$
;==================================================================
       
DDISALL:  MOV   A,#34H; extension instruction, graphic display off
	    LCALL COMMAND_GLCD
          MOV DPTR,#TAB1	;画的上半部分的点
	    MOV 5AH,DPL
	    MOV 5BH,DPH
          MOV DPTR,#TAB2	;画的下半部分的点
          MOV 5CH,DPL
	    MOV 5DH,DPH		
          MOV Y,#0		;显示点的起始位置
DDISA1:   MOV X,#0
DDISA2:   MOV A,#0
          MOV DPL,5AH
	    MOV DPH,5BH 
	    MOVC A,@A+DPTR
	    MOV DATA1,A
	    INC DPTR
	    MOV A,#00H
	    MOVC A,@A+DPTR
          MOV DATA2,A 
	    INC DPTR
          MOV 5AH,DPL
	    MOV 5BH,DPH	
   	    LCALL WRXY
          INC   X
          MOV   A,X
          CJNE  A,#08,DDISA2
DDS:      MOV DPL,5CH
	    MOV DPH,5DH
          MOV A,#00H
	    MOVC A,@A+DPTR
	    MOV DATA1,A
	    INC DPTR
          MOV A,#00H
	    MOVC A,@A+DPTR
	    MOV DATA2,A
          INC DPTR
	    MOV 5CH,DPL
	    MOV 5DH,DPH
          LCALL WRXY
          INC X
          MOV A,X
          CJNE A,#16,DDS		
	    INC   Y
          MOV   A,Y
          CJNE  A,#32,DDISA1
          NOP
          MOV   A,#36H; extension instruction, graphic display on
	    CALL COMMAND_GLCD
          NOP
          RET
          NOP;---------------
;
;
WRXY:     NOP			;写 2个字节到XY  position
          MOV   A,Y
          ORL   A,#80H  	;  set Y address
	    LCALL COMMAND_GLCD
          MOV   A,X		;  set X address
          ORL   A,#80H
          LCALL COMMAND_GLCD
          NOP
          MOV   A,DATA1
          LCALL WRITE_GLCD
          MOV   A,DATA2
          LCALL WRITE_GLCD
          RET
          
;---------------------------------------------------------
;点阵式 LCD(128X64)模块显示实验
;以下是公共的程序:
;----------------------------------------------------------
;执行 LCD 初始化工作
INITIAL_GLCD:
        PUSH    ACC
        MOV     A,#30H          ;功能设定
        CALL    COMMAND_GLCD
        MOV     A,#30H          ;功能设定
        CALL    COMMAND_GLCD
        MOV     A,#30H          ;功能设定
        CALL    COMMAND_GLCD
        MOV     A,#06H          ;显示器控制:游标不显示;但是字会闪烁
        CALL    COMMAND_GLCD     
        MOV     A,#01H          ;清除显示器
        CALL    COMMAND_GLCD
        MOV     A,#0CH          ;进入模式设定
        CALL    COMMAND_GLCD
        POP     ACC
        RET
       
;---------------------------------------------------------------
;检查LCD 忙碌标志
CHKBUSY_GLCD:
        PUSH    DPH
	  PUSH    DPL
        PUSH    ACC
        MOV     DPTR,#R_B_GLCD
CHK$:   MOVX    A,@DPTR
        JB      ACC.7,CHK$	  ;判别是不是忙?
        POP     ACC
        POP     DPL 
	  POP     DPH
        RET
       
;---------------------------------------------------------------
;写命令到 GLCD
COMMAND_GLCD:
        PUSH    DPH 
	  PUSH    DPL
        CALL    CHKBUSY_GLCD   ;判别是不是忙?
        MOV     DPTR,#W_C_GLCD
        MOVX    @DPTR,A		 ;写入命令 	
        POP     DPL 
	  POP     DPH
        RET
        
;---------------------------------------------------------------
;写资料到 GLCD
WRITE_GLCD:
        PUSH    DPH
	  PUSH    DPL
        CALL    CHKBUSY_GLCD   ;判别是不是忙?
        MOV     DPTR,#W_D_GLCD ;写入数据
        MOVX    @DPTR,A
        POP     DPL 
	  POP     DPH
        RET
;--------------------------------------------------------------------
;清除 LCD 的显示幕
CLEAR_GLCD:
        PUSH    ACC
        MOV     A,#01H          ;清除显示器
        CALL    COMMAND_GLCD
        POP     ACC
        RET
;--------------------------------------------------------------------
;将 ACC 内容,以十六进制值显示
HEX_LCD:
        PUSH    DPH
        PUSH    DPL
        PUSH    ACC
	  PUSH    ACC
        SWAP    A               ;高低四位元交换
        ANL     A,#0FH          ;留下低四位元
        MOV     DPTR,#ASCII_CODE ;DPTR 指到 ASCII_CODE
        MOVC    A,@A+DPTR       ;取得 ASCII 码
        CALL    WRITE_GLCD     ;写到 LCD
        POP     ACC
        ANL     A,#0FH          ;留下低四位元
        MOVC    A,@A+DPTR       ;取得 ASCII 码
        CALL    WRITE_GLCD     ;写到 LCD
        POP     ACC
        POP     DPL
        POP     DPH 
        RET
ASCII_CODE:     DB     '0123456789ABCDEF'
;--------------------------------------------

 TAB1:DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,040H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,006H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,00CH,000H,000H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,018H,000H,000H,030H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,030H,008H,000H,060H,0C0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,030H,010H,000H,0C0H,060H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,060H,060H,001H,080H,060H,000H,000H,000H,000H,000H,003H,000H,000H,000H,000H
DB  000H,0E0H,0C0H,003H,000H,070H,000H,000H,000H,000H,000H,001H,000H,000H,000H,000H
DB  000H,0C0H,080H,007H,000H,070H,000H,000H,000H,0F0H,000H,021H,018H,000H,000H,000H
DB  001H,0C1H,082H,00EH,000H,078H,000H,000H,00FH,000H,000H,061H,008H,000H,000H,000H
DB  001H,083H,004H,00CH,000H,078H,000H,000H,003H,000H,000H,041H,000H,000H,000H,000H
DB  001H,083H,008H,01CH,000H,0FCH,000H,000H,003H,000H,000H,089H,0E0H,000H,000H,000H
DB  003H,002H,019H,080H,000H,0FCH,000H,000H,003H,078H,001H,01BH,080H,000H,000H,000H
DB  003H,006H,011H,09CH,000H,0FCH,000H,000H,007H,0C0H,003H,015H,098H,000H,000H,000H
DB  003H,004H,013H,000H,000H,0FCH,000H,000H,07BH,000H,003H,0E0H,0E0H,000H,000H,000H
DB  002H,004H,023H,090H,000H,0FCH,000H,000H,002H,080H,000H,043H,080H,000H,000H,000H
DB  006H,00CH,023H,0F0H,001H,0FCH,000H,000H,006H,080H,000H,080H,098H,000H,000H,000H
DB  006H,008H,021H,0E0H,001H,0FCH,000H,000H,004H,080H,001H,0F0H,050H,000H,000H,000H
DB  006H,008H,040H,0F0H,001H,0FCH,000H,000H,00CH,080H,081H,000H,060H,000H,000H,000H
DB  004H,008H,040H,070H,003H,0FCH,000H,000H,018H,080H,080H,008H,0E0H,000H,000H,000H
DB  004H,008H,040H,098H,003H,0FCH,000H,000H,030H,080H,080H,071H,020H,000H,000H,000H
DB  004H,008H,001H,088H,003H,0FCH,000H,000H,060H,0C1H,087H,086H,012H,000H,000H,000H
DB  004H,008H,001H,084H,007H,0F8H,000H,000H,080H,07FH,082H,000H,01AH,000H,000H,000H
DB  004H,000H,001H,080H,007H,0F8H,000H,000H,000H,000H,000H,000H,00EH,000H,000H,000H
DB  004H,000H,001H,000H,00FH,0F8H,000H,000H,000H,000H,000H,000H,002H,000H,000H,000H
TAB2:DB  000H,000H,003H,000H,00FH,0F2H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,003H,000H,01FH,0F3H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,003H,000H,01FH,0E3H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,003H,000H,03FH,0E7H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,003H,000H,03FH,0DFH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,002H,000H,07FH,085H,080H,000H,000H,01FH,000H,000H,000H,000H,000H,000H
DB  000H,000H,002H,000H,0FFH,004H,080H,000H,000H,063H,000H,030H,000H,000H,000H,000H
DB  000H,000H,000H,001H,0FEH,00CH,060H,000H,018H,004H,000H,018H,01CH,000H,000H,000H
DB  000H,000H,001H,003H,0FCH,003H,0E0H,000H,00CH,018H,000H,000H,0ECH,000H,000H,000H
DB  000H,000H,001H,007H,0F0H,01FH,0E0H,000H,000H,00BH,000H,001H,088H,000H,000H,000H
DB  000H,000H,000H,00FH,0C1H,0BFH,0F0H,000H,000H,0F5H,000H,000H,048H,000H,000H,000H
DB  000H,000H,000H,01EH,00FH,03FH,0F0H,000H,000H,091H,000H,030H,048H,000H,000H,000H
DB  000H,000H,000H,000H,01FH,07FH,0F0H,000H,03CH,09DH,001H,0F0H,048H,000H,000H,000H
DB  000H,000H,000H,000H,01FH,07FH,0F0H,000H,008H,091H,000H,033H,0E8H,000H,000H,000H
DB  000H,000H,000H,000H,03EH,07FH,0F0H,000H,010H,08DH,000H,020H,088H,000H,000H,000H
DB  000H,000H,000H,000H,03EH,0FFH,0F0H,000H,010H,090H,080H,020H,088H,000H,000H,000H
DB  000H,000H,000H,000H,03EH,0FFH,0F0H,000H,008H,090H,080H,024H,088H,000H,000H,000H
DB  000H,000H,000H,000H,01CH,0FFH,0F8H,000H,008H,083H,080H,038H,084H,040H,000H,000H
DB  000H,000H,000H,000H,00DH,0FFH,0C0H,000H,03CH,001H,000H,030H,086H,040H,000H,000H
DB  000H,000H,000H,000H,00DH,0FCH,000H,000H,043H,0C0H,000H,060H,083H,0C0H,000H,000H
DB  000H,000H,000H,000H,001H,0C0H,000H,000H,000H,03FH,0F0H,000H,080H,040H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,007H,0C0H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;以上您调入了一幅图象: 长度x宽度=128x64,  调整后为: 128x64
END
	  	  

⌨️ 快捷键说明

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