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

📄 1602logo.asm

📁 1602的调试程序
💻 ASM
字号:
;///////////////////////////////////////////
;....本程序实现液晶1602循环显示信息功能.
;....能够读取字符表中的英文字母及字符,字符表以$结束,作为语句结束标志。
;....一行显示不完,会自动换行
;///////////////////////////////////////////
	RS 	EQU P2.0 
	RW 	EQU P2.1 
	E  	EQU P2.2
	BGLIGHT	EQU	P2.6 		;背景灯光控制
	SJ 	EQU P0
	
	org	00h
	ajmp 	main
	org 	030h
main:
	mov 	sp,#60h
	mov 	dptr,#tableMline	;第一行表头位置 
	LCALL	INIT1602
	mov	30h,#00h
	mov	R1,#0			;数据指针

main1:
	LCALL	init1602
	MOV 	SJ,#02H			;显示清屏                                  
	ACALL 	ENABLE			;写指令01H__________ 
		;
	MOV 	SJ,#80H			;第一行显示第一个字符的位置            
	ACALL 	ENABLE			;调用写指令
	;
	call 	writerow1		;调用第一行写子程序                    
	mov 	SJ,#0c0h		;第二行位置                            
	call 	enable			;调用写指令                            
                   
	call 	writerow2		;调用第二行写子程序

	Ljmp main1			;返回主程序不断的循环                  

ENABLE:					;写命令时序(参照1602LCD使用说明书)
	CLR 	RS
	CLR 	RW 
	CLR 	E 
	ACALL 	DELAY 
	SETB 	E 
RET

writerow1:				;写字符串
a1:	mov 	a,r1			;把R1的值送到ACC                              
	movc 	a,@a+dptr		;查表取将显示的数据并把要显示的数送入ACC
	CJNE	A,#36,NE1		;是否等于'$',若等于则不再往下读取。
	LJMP	MAIN
NE1:      
	call 	writeChar		;调用写程序写入单个字节                       
	inc 	r1			;将数据指针加一
	inc	30h
	CJNE	R1,#0,NEXT1
	INC	DPH 
NEXT1:	mov	a,r1
	mov	b,#20h
	div	ab 
	xch	a,b                       
	cjne 	A,#10h,a1		;R1的内容加到16后就返回到a1处                  
ret          

writerow2:				;写字符串
B1:	mov 	a,r1			;把R1的值送到ACC                              
	movc 	a,@a+dptr		;查表取将显示的数据并把要显示的数送入ACC 
	CJNE	A,#36,NE2
	LJMP	MAIN
NE2:     
	call 	writeChar		;调用写程序写入单个字节                       
	inc 	r1			;将数据指针加一 
	inc	30h
	CJNE	R1,#0,NEXT2
	INC	DPH
NEXT2:	mov	a,r1
	mov	b,#20h
	div	ab    
	xch	a,b                    
	cjne 	A,#0h,B1		;R1的内容加到16后就返回到a1处                  
ret                             ;
                                                                              
writeChar:				;写单个字符                                                                             
	mov 	SJ,a			;写数据到显示端口                            
	setb 	rs			;写数据时序(请参照1602LCD使用说明书)         
	clr 	rw                          
	clr 	e
	call 	delay
	setb 	e
ret 

delay:
	mov 	r7,#255
d1:	mov 	r6,#255
d2:	djnz 	r6,d2
	djnz 	r7,d1
ret


INIT1602:
	lcall 	delay			;延时一段时间
	CLR	BGLIGHT      		;开背光@@@     
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H                         
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H                         
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H 
	                        
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H                         
	MOV 	SJ,#08H			;显示关闭                                  
	ACALL 	ENABLE			;写指令08H_________                       
	MOV 	SJ,#01H			;显示清屏                                  
	ACALL 	ENABLE			;写指令01H__________                         
	MOV 	SJ,#06H			;写指令06H----显示光标移动设置
	;                                 
	ACALL 	ENABLE			;                         
	MOV 	SJ,#0cH			;写指令0CH----显示开及光标设置                                  
	ACALL 	ENABLE			;                         
	RET
Ready1602:
	lcall 	delay			;延时一段时间
	CLR	BGLIGHT      		;开背光@@@     
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H                         
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H                         
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE 			;写指令38H 
	clr	rs
	setb	rw
	setb	e
loop:	mov	a,sj
	jb	acc.7,loop                       
	MOV 	SJ,#38H			;                                  
	ACALL 	ENABLE			;写指令38H                         
	MOV 	SJ,#08H			;显示关闭                                  
	ACALL 	ENABLE			;写指令08H_________                       
	MOV 	SJ,#01H			;显示清屏                                  
	ACALL 	ENABLE			;写指令01H__________                         
	MOV 	SJ,#06H			;写指令06H----显示光标移动设置
	;                                 
	ACALL 	ENABLE			;                         
	MOV 	SJ,#0cH			;写指令0CH----显示开及光标设置                                  
	ACALL 	ENABLE			;                         
RET
	 
	
tableMline: 
	db "I Love You Yiduo! Do you love me? I can't help but to hold you tight.$";
	
END


⌨️ 快捷键说明

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