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

📄 lcd1602.asm

📁 51单片机用汇编实例 包括ad
💻 ASM
字号:
;===============================================================
; 文件名称: LCD1602.ASM
; 功能描述:
;===============================================================
RSPIN	BIT  95H	;P1.5
RWPIN	BIT  96H	;P1.6
EPIN	BIT  97H	;P1.7

XPOS	DATA 30H
YPOS	DATA 31H

	ORG 0000H
	LJMP START

	ORG 0100H
START:	NOP
	CLR EPIN
	LCALL LCDINIT		; 调用初始化程序
ST1:	MOV A, #01H
	LCALL LCDWC
	MOV A, #02H
	LCALL LCDWC
	LCALL DISPLAY		; 调用显示子程序
	MOV R5, #0FFH		; 延时
ST2:	MOV R6, #0FFH
	LCALL DELAY
	DJNZ R5, ST2
	SJMP ST1

; 延时子程序
; 入口参数: R6(增加延时)
; 影响寄存器: R7
DELAY:	MOV R7, #10
DLAY1:	DJNZ R7, DLAY1
	DJNZ R6, DELAY
	RET

; 忙状态位判断
LCDWAITIDLE:
	PUSH ACC		; 保护累加器 A
	MOV P0, #0FFH
	CLR RSPIN
	SETB RWPIN
	SETB EPIN
LWT1:	MOV A, P0		; 读取忙标志BF
	JB ACC.7, LWT1		; BF 为1则等待
	CLR EPIN
	POP ACC
	RET

; 写指令子程序(不程序忙标志)
; 入口参数: A (命令字节)
LCDWCN:	CLR RSPIN
	CLR RWPIN
	MOV P0, A
	SETB EPIN
	NOP
	CLR EPIN
	RET

; 写指令子程序(查询忙标志)
; 入口参数: A (命令字节)
LCDWC:	LCALL LCDWAITIDLE	; 判断标志BF
	LCALL LCDWCN		; 写指令
	RET

; 写数据子程序(查询忙标志)
; 入口参数: A (数据字节)
LCDWD:	LCALL LCDWAITIDLE
	SETB RSPIN
	CLR RWPIN
	MOV P0, A		; 写数据
	SETB EPIN
	NOP
	CLR EPIN
	RET

; 指定显示坐标;
LCDPOS:	ANL XPOS, #3FH
	ANL YPOS, #03H
	MOV A, YPOS
	CJNE A, #00H, LPOS1
	MOV A, XPOS		;DDRAM地址设置 第1行
	ORL A, #80H
	LCALL LCDWC
	SJMP LPOS2
LPOS1:	CJNE A, #01H, LPOS2
	MOV A, XPOS		;DDRAM地址设置 第2行
	ADD A, #40H
	ORL A, #80H
        LCALL LCDWC
LPOS2:	RET

; LCD初始化子程序
LCDINIT:
	MOV R6, #150
	LCALL DELAY
	MOV A, #38H		; 总线8位, 两行显示, 5*7点阵字符体
	LCALL LCDWCN
	
	MOV R6, #50
	LCALL DELAY
	MOV A, #38H
	LCALL LCDWCN

	MOV R6, #50
	LCALL DELAY
	MOV A, #38H
	LCALL LCDWCN

	MOV A, #38H
	LCALL LCDWC
	MOV A, #08H		; 关闭显示, 光标消失, 闪烁禁止
	LCALL LCDWC
	MOV A, #01H		; 清屏
	LCALL LCDWC
	MOV A, #06H		; AC加1计数, 禁止滚动
	LCALL LCDWC
	MOV A, #0EH		; 开显示
	LCALL LCDWC
	RET
	
; LCD显示子程序
DISPLAY:
	MOV XPOS, #00H
DPLY1:	MOV YPOS, #00H
	LCALL LCDPOS		; 指定显示坐标
	MOV DPTR, #TAB1
	MOV A, XPOS
	MOVC A, @A+DPTR		; 指定显示数据
	LCALL LCDWD
	MOV YPOS, #01H
	LCALL LCDPOS		; 在第2行显示
	MOV DPTR, #TAB2
	MOV A, XPOS
	MOVC A, @A+DPTR
	LCALL LCDWD
	MOV R5, #060H		; 延时
DPLY3:	MOV R6, #0FFH
	LCALL DELAY
	DJNZ R5, DPLY3
	INC XPOS
	MOV A, XPOS
	CJNE A, #16, DPLY1
;	MOV XPOS, #16
DPLY2:	MOV A, #18H		; 设置移到方式
	LCALL LCDWC
	MOV YPOS, #00H
	LCALL LCDPOS
	MOV DPTR, #TAB1
	MOV A, XPOS
	MOVC A, @A+DPTR
	LCALL LCDWD
	MOV YPOS, #01H
	LCALL LCDPOS
	MOV DPTR, #TAB2
	MOV A, XPOS
	MOVC A, @A+DPTR
	LCALL LCDWD
	MOV R5, #060H
DPLY4:	MOV R6, #0FFH
	LCALL DELAY
	DJNZ R5, DPLY4
	INC XPOS
	MOV A, XPOS
	CJNE A, #30, DPLY2
	RET

; 表1:  TD-NMC+   Xi'an Tang Du Crop.
;	 T   D   -   N   M   C   +           X   i   '   a   n
TAB1: DB 54H,44H,2DH,4EH,4DH,43H,2BH,20H,20H,58H,69H,27H,61H,6EH,20H
      DB 54H,61H,6EH,67H,20H,44H,75H,20H,43H,72H,6FH,70H,2EH,20H,20H
;	 T   a   n   g       D   u       C   r   o   p   .

; 表2:  www.tangdu.com  029-88375025
;	 w   w   w   .   t   a   n   g   d   u   .   c   o   m
TAB2: DB 77H,77H,77H,2EH,74H,61H,6EH,67H,64H,75H,2EH,63H,6FH,6DH,20H
      DB 20H,30H,32H,39H,2DH,38H,38H,33H,37H,35H,30H,32H,35H,20H,20H
;	     0   2   9   -   8   8   3   7   5   0   2   5

	END

⌨️ 快捷键说明

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