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

📄 12864测架.asm

📁 12864LCD电子钟资料包_小赖提供(1)
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;OCM12864模块测试程序
D_I	EQU	P3.0				;Data or Instrument Select,H:写数据,L:写指令
R_W	EQU	P3.1				;Write or Read,H:read,L:write
E	EQU	P3.2				;读写使能
CS1	EQU	P3.3				;CS1=H,选择左半屏
CS2	EQU	P3.4				;CS2=H,选择右半屏
RESET	EQU	P3.5				;Lcm reset,低有效
	
DISP_X	EQU	30H
DISP_Y	EQU	31H
DISP_Z	EQU	32H
LONG	EQU	33H
WIDE	EQU	34H
DATA1_WR	EQU	35H
DATA2_WR	EQU	36H
COUNTER1	EQU	37H
COUNTER2	EQU	38H
COUNTER3	EQU	39H
;**********************************************
		ORG	0000H
		AJMP	MAIN
		ORG	0100H
MAIN:		MOV	SP,#5FH
		CLR	RESET
		NOP
		NOP
		NOP
		SETB	RESET
		MOV	DISP_Z,#0C0H
;**********************************************
LGS1:		SETB	CS1
		CLR	CS2
		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#40H
		MOV	WIDE,#02H
		MOV	DPTR,#HZ11
		LCALL	CHN_DISP
		MOV	DISP_X,#0BAH
		MOV	DPTR,#HZ21
		LCALL	CHN_DISP
		MOV	DISP_X,#0BCH
		MOV	DPTR,#HZ31
		LCALL	CHN_DISP
		MOV	DISP_X,#0BEH
		MOV	DPTR,#HZ41
		LCALL	CHN_DISP
		
		CLR	CS1
		SETB	CS2
		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#40H
		MOV	WIDE,#02H
		MOV	DPTR,#HZ12
		LCALL	CHN_DISP
		MOV	DISP_X,#0BAH
		MOV	DPTR,#HZ22
		LCALL	CHN_DISP
		MOV	DISP_X,#0BCH
		MOV	DPTR,#HZ32
		LCALL	CHN_DISP
		MOV	DISP_X,#0BEH
		MOV	DPTR,#HZ42
		LCALL	CHN_DISP
		
		LCALL	DELAY1
;----------------------------------------------
LGS2:		SETB	CS1
		SETB	CS2
		MOV	DATA1_WR,#0FFH
		MOV	DATA2_WR,#0FFH
		LCALL	WRLATTICE
		LCALL	DELAY1
;----------------------------------------------
LGS3:		SETB	CS1
		SETB	CS2
		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#20H
		MOV	WIDE,#04H
		MOV	DPTR,#GPTB1
		LCALL	CHN_DISP
		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#60H
		MOV	DPTR,#GPTB2
		LCALL	CHN_DISP
		
		MOV	DISP_X,#0BCH
		MOV	DISP_Y,#40H
		MOV	DPTR,#GPTB2
		LCALL	CHN_DISP
		MOV	DISP_X,#0BCH
		MOV	DISP_Y,#60H
		MOV	DPTR,#GPTB1
		LCALL	CHN_DISP
		
		LCALL	DELAY1
;----------------------------------------------
LGS4:		SETB	CS1
		SETB	CS2
		MOV	DATA1_WR,#0FFH
		MOV	DATA2_WR,#00H
		LCALL	WRLATTICE
		LCALL	DELAY1
;----------------------------------------------
LGS5:		MOV	DPTR,#COCK
		LCALL	PHO_DISP
		LCALL	DELAY1
;----------------------------------------------
LGS6:		SETB	CS1
		SETB	CS2
		MOV	DATA1_WR,#33H
		MOV	DATA2_WR,#33H
		LCALL	WRLATTICE
		LCALL	DELAY1
;----------------------------------------------
		LJMP	LGS1
;**********************************************
WRLATTICE:	MOV	COUNTER1,#08H		;写点阵
		MOV	DISP_X,#0B8H
		MOV	DISP_Z,#0C0H
		MOV	DISP_Y,#40H
		LCALL	DISP
LATTICE1:	LCALL	WR_ZB
		MOV	COUNTER2,#20H
LATTICE2:	MOV	A,DATA1_WR
		LCALL	WR_DATA
		MOV	A,DATA2_WR
		LCALL	WR_DATA
		DJNZ	COUNTER2,LATTICE2
		INC	DISP_X
		DJNZ	COUNTER1,LATTICE1
		RET
;----------------------------------------------
PHO_DISP:	MOV	COUNTER1,#08H		;全屏显示图形
		MOV	DISP_X,#0B8H
		MOV	DISP_Z,#0C0H
		MOV	DISP_Y,#40H
PHO_DISP1:	SETB	CS1
		CLR	CS2
		LCALL	DISP
		LCALL	WR_ZB
		MOV	COUNTER2,#40H
PHO_DISP11:	CLR	A
		MOVC	A,@A+DPTR
		LCALL	WR_DATA
		INC	DPTR
		DJNZ	COUNTER2,PHO_DISP11
PHO_DISP2:	CLR	CS1
		SETB	CS2
		LCALL	DISP
		LCALL	WR_ZB
		MOV	COUNTER2,#40H
PHO_DISP21:	CLR	A
		MOVC	A,@A+DPTR
		LCALL	WR_DATA
		INC	DPTR
		DJNZ	COUNTER2,PHO_DISP21
		INC	DISP_X
		DJNZ	COUNTER1,PHO_DISP1
		RET
;----------------------------------------------
CHN_DISP:	LCALL	DISP			;显示LONGxWIDE大小的图形
		MOV	COUNTER1,WIDE
CHN_DISP1:	LCALL	WR_ZB
		MOV	COUNTER2,LONG
CHN_DISP2:	CLR	A
		MOVC	A,@A+DPTR
		LCALL	WR_DATA
		INC	DPTR
		DJNZ	COUNTER2,CHN_DISP2
		INC	DISP_X
		DJNZ	COUNTER1,CHN_DISP1
		RET
;----------------------------------------------
WR_ZB:		MOV	A,DISP_X
		LCALL	WR_INT
		MOV	A,DISP_Z
		LCALL	WR_INT
		MOV	A,DISP_Y
		LCALL	WR_INT
		RET
;----------------------------------------------
DISP:		MOV	A,#3EH
		LCALL	WR_INT
		MOV	A,#3FH
		LCALL	WR_INT
		RET
;**********************************************
WR_INT:		LCALL	CHE_BUSY		;WRITE	INSTRUCTION
		CLR	D_I
		CLR	R_W
		MOV	P1,A
		NOP
		SETB	E
		NOP
		NOP
		CLR	E
		RET
;----------------------------------------------
WR_DATA:	LCALL	CHE_BUSY		;WRITE	DATA
		SETB	D_I
		CLR	R_W
		MOV	P1,A
		NOP
		SETB	E
		NOP

⌨️ 快捷键说明

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