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

📄 zy886a.asm

📁 功能:ZY886A液晶显示模块显示控制。启动程序即进入正常显示状态(循环显示一系列数字0~F)。 说明:将跳线器题J6、J19、J20分别短接到LCM_/WR、LCM_DAT、LCM_/CS端。
💻 ASM
字号:
; FILE:ZY886A.ASM
; 功能:ZY886A液晶显示模块显示控制。启动程序即进入正常显示状态(循环显示一系列数字0~F)。
; 说明:将跳线器题J6、J19、J20分别短接到LCM_/WR、LCM_DAT、LCM_/CS端。
;       通过跳线器J8、J9选择高频晶振6MHZ。
;       在DP-932下载实验仪上,通过JP2与ZY886A液晶模块进行连接。

$NOMOD51
$INCLUDE (REG932.INC)

;定义显示数据计数变量
DCONT		DATA	23H			;用于显示位的计数

;***********************************************************************                        
;                      程序开始
;***********************************************************************
		ORG	0000H      
		AJMP	RESET

		ORG	0080H
RESET:		MOV	P0M1,#00H
		MOV	P0M2,#00H
		MOV	P1M1,#00H
		MOV	P1M2,#00H
		MOV	DIVM,#1			
		MOV	SP,#56H			;设堆栈指针
		MOV	DCONT,#0		;显示数据计数器初化
MAIN:		;LCD工作方式设定
		ACALL	INTI1621
		MOV	LCDCOMMAND,#TONE4K 	;设置音频输出频率为4KHZ
		ACALL	SEND1621COM 	        ;由U1输出音频信号
    
		;进入正常显示状态
		ACALL	RUNOK
	
		;进入全显示状态
		;ACALL	RUNALL

		;进入掉电模式
		;ACALL   RUNDOWN

		SJMP	MAIN

;RUNOK    
;从0到F循环显示LCD数位
RUNOK:  
		ACALL	LOADDAT			;装载数据
		CLR	C
		MOV	A,#9
		SUBB	A,DCONT			;判断DCONT是否大于9,大于9则打开蜂鸣器
		JNC	RUNOK_L1
		MOV	LCDCOMMAND,#TONEON
		ACALL	SEND1621COM
RUNOK_L1:
		ACALL	BRUSHLCD
		ACALL	DELAY_1S
		MOV	LCDCOMMAND,#TONEOFF	;关闭蜂鸣器
		ACALL	SEND1621COM
		ACALL	DELAY_1S		;延时
	    
		INC	DCONT			;计数器加1
		CLR	C
		MOV	A,#10H			;若DCONT的值大于10H,则复位为0
		SUBB	A,DCONT
		JNC	RUNOK_L2
		MOV	DCONT,#0
		ACALL   INTI1621		;重新设置1621
		MOV	LCDCOMMAND,#TONE4K	;设置音频输出频率为4KHZ
		ACALL	SEND1621COM
    
RUNOK_L2:	SJMP    RUNOK		

    
;数据装载程序
;将计数数据进行字模转换后放入显示缓冲区,包括状态字段。   
LOADDAT:
		MOV	R0,#DISBUFFER		;指定显示地址为SEG0开始
		MOV	R1,DCONT    
		MOV	R7,#16   	 		
LOAD_L1:	MOV	A,R1				
		MOV	DPTR,#LCDDATA
		MOVC	A,@A+DPTR		;字模转换
		ORL	A,#10H
		MOV	@R0,A			;将数据写显示缓冲区
		INC	R0			;缓冲区的下一个地址
		DJNZ	R7,LOAD_L1
	       	RET
	
	
;RUNALL
;全显示输出,调试用
RUNALL:
		MOV	R7,#16
		MOV	R0,#DISBUFFER
RUNALL_L1:
		MOV	@R0,#0FFH		;装入数据0FFH
		INC	R0
		DJNZ	R7,RUNALL_L1
   
		ACALL	BRUSHLCD		;刷新LCD显示
        	SJMP    $	


;RUNDOWN
;掉电方式,调试用
RUNDOWN:
		ACALL	HT1621DOWN		;进入掉电状态
		SJMP    $


        
; 软件延时子程序
DELAY_1S:
		PUSH	07H
		PUSH	06H
		PUSH	05H

		MOV	R7,#5
DELAY_L1:	MOV	R6,#0
DELAY_L2:	MOV	R5,#0
		DJNZ	R5,$
		DJNZ	R6,DELAY_L2
		DJNZ	R7,DELAY_L1

		POP	05H
		POP	06H
		POP	07H
		RET

;========================================================
;表格区
;供用户转换使用,此处以ZY886A型LCD数字显示表(0-F)为例。
LCDDATA:
DB  0EBH,60H,0C7H,0E5H,6CH,0ADH,0AFH,0E0H,0EFH,0EDH,0EEH,2FH,8BH,67H,8FH,8EH,00H,00H	
;=========================================================

;包含HT1621操作软件包
$INCLUDE(D1621.INC)			;包含头文件,头文件内已定义SPI接口,显示缓冲区,
					;及各操作变量
END

⌨️ 快捷键说明

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