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

📄 lcd.txt

📁 基于51C
💻 TXT
字号:
COM EQU 20H	;命令存储单元
DAT EQU 21H	;数据存储单元
CW_ADR EQU 0000H	;写命令地址
CR_ADR EQU 0001H	;读命令地址
DW_ADR EQU 0002H	;写数据地址
DR_ADR EQU 0003H	;读数据地址
;**********************************************
	ORG 0000H
	LJMP BEGIN
	ORG 0100H
BEGIN:	MOV SP,#70H
	MOV PSW,#00H	
	LCALL LCDINT

MLOP:	LCALL DISPLY1
	LCALL DISPLY2
	LCALL DISPLY3
	LCALL DISPLY4
        LCALL TIME
	SJMP  MLOP

;*********各行显示子程序********************
DISPLY1:MOV COM,#80H	;LCD第一行字符的DDRAM首地址
	LCALL WC	;送DDRAM地址,AC指向显示第一行的第一个字符
	MOV DPTR,#DATA1	;取要显示的第一行字符的首地址
	MOV R6,#0	;每行字符的当前位置
	MOV R7,#16	;R7作字符计数器
	LCALL WRN
	RET
DISPLY2:MOV COM,#90H	;LCD第二行字符的DDRAM首地址
	LCALL WC	;送DDRAM地址,AC指向显示第二行的第二个字符
	MOV DPTR,#DATA2	;取要显示的第二行字符的首地址
	MOV R6,#0	;每行字符的当前位置
	MOV R7,#16	;R7作字符计数器
	LCALL WRN
	RET
DISPLY3:MOV COM,#88H	;LCD第三行字符的DDRAM首地址
	LCALL WC	;送DDRAM地址,AC指向显示第三行的第三个字符
	MOV DPTR,#DATA3	;取要显示的第三行字符的首地址
	MOV R6,#0	;每行字符的当前位置
        MOV R7,#16	;R7作字符计数器
	LCALL WRN
	RET
DISPLY4:MOV COM,#98H	;LCD第四行字符的DDRAM首地
	LCALL WC	;送DDRAM地址,AC指向显示第四行的第四个字符
	MOV DPTR,#DATA4	;取要显示的第四行字符的首地址
	MOV R6,#0	;每行字符的当前位置
	MOV R7,#16	;R7作字符计数器
	LCALL WRN
	RET
	
	
;*********************初始化程序*********************
	
LCDINT:	MOV COM,#30H
	MOV R7,#2
LOOP:	LCALL WC
	LCALL DELAY
	DJNZ R7,LOOP	;写两次30h命令,软件复位
	LCALL DELAY
	MOV COM,#0FH	;设置开显示,光标显示,闪烁
	LCALL WC
	LCALL DELAY
	MOV COM,#01H	;清屏
	LCALL WC
	LCALL DELAY
	MOV COM,#06H	;设置AC加1计数,画面不动
	LCALL  WC
	RET
;*********************写控制指令子程序******************
WC:     PUSH DPH
	PUSH DPL
	PUSH ACC
	ACALL BUSY
	MOV DPTR,#CW_ADR
	MOV A,COM       ;写命令COM
	MOVX @DPTR,A    ;RS=0,R/W=0写命令
	POP ACC
	POP DPL
	POP DPH
	RET

;********************写一位字符数据子程序****************
WD:     PUSH DPH
	PUSH DPL
	PUSH ACC
	ACALL BUSY
	MOV DPTR,#DW_ADR
	MOV A,DAT       ;写命令DAT
	MOVX @DPTR,A    ;RS=1,R/W=0写命令
	POP ACC
	POP DPL
	POP DPH
	RET
;******************显示子程序*****************************
WRN:	MOV A,R6
	MOVC A,@A+DPTR
	INC R6
	MOV DAT,A
	LCALL WD
 	DJNZ R7,WRN
	RET
;*********************判忙子程序*************************
BUSY:	PUSH DPH
	PUSH DPL
	PUSH ACC
	MOV DPTR,#CR_ADR
BF:	MOVX A,@DPTR
	JB ACC.7,BF
	POP ACC
	POP DPL
	POP DPH
	RET
;********************延时子程序***********************
DELAY:  MOV R0,#08H
DLY0:	MOV R1,#0C8H
DLY1:	DJNZ R1,DLY1
	DJNZ R0,DLY0
	RET
;******************1S延时子程序************************     
TIME:MOV R2,#5
  M1:MOV R1,#200
  M2:MOV R0,#248
  M3:DJNZ R0,M3
     DJNZ R1,M2
     DJNZ R2,M1
     RET        
;**********************汉字表**************************
DATA1:DB'    北京时间    '
DATA2:DB'  自动化工学院  '
DATA3:DB'    李教授      '
DATA4:DB'    林教授        '
	END                                                  

⌨️ 快捷键说明

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