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

📄 11-28b.asm

📁 详细介绍了C语言开发DSP嵌入式系统
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;OCM12864模块测试程序**************************
;完成时间2008.11.28
;制作人:hdzhangx
;**********************************************
D_I	EQU	P2.0				;Data or Instrument Select,H:写数据,L:写指令
R_W	EQU	P2.1				;Write or Read,H:read,L:write
E	EQU	P2.7				;读写使能
CS1	EQU	P2.2				;CS1=H,选择左半屏
CS2	EQU	P2.3
				                ;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,#0BbH
		;MOV	DPTR,#HZ21
		;LCALL	CHN_DISP
		;MOV	DISP_X,#0BdH
		;MOV	DPTR,#HZ31
		;LCALL	CHN_DISP
		;MOV	DISP_X,#0BfH
		;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,#0BbH
		;MOV	DPTR,#HZ22
		;LCALL	CHN_DISP
		;MOV	DISP_X,#0BdH
		;MOV	DPTR,#HZ32
		;LCALL	CHN_DISP
		;MOV	DISP_X,#0BfH
		;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
;----------------------------------------------
		sjmp $                    ;循环显示六幅画面
;**********************************************
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	P0,A
		NOP
		SETB	E
		NOP
		NOP
		CLR	E
		RET
;----------------------------------------------
WR_DATA:	LCALL	CHE_BUSY		;WRITE	DATA
		SETB	D_I
		CLR	R_W
		MOV	P0,A
		NOP
		SETB	E
		NOP
		NOP
		CLR	E
		RET
;----------------------------------------------
CHE_BUSY:	CLR	D_I			;CHECK	STATIU
		SETB	R_W
		ANL	p0,#0B0H
		ORL	p0,#80H
		NOP
		SETB	E
		JB	p0.7,$
		JB	p0.4,$
		CLR	E
		RET
;**********************************************
DELAY1:		MOV	COUNTER1,#0FH
DEL11:		MOV	COUNTER2,#0FFH
DEL12:		MOV	COUNTER3,#0FFH
DEL13:		DJNZ	COUNTER3,DEL13
		DJNZ	COUNTER2,DEL12
		DJNZ	COUNTER1,DEL11
		RET
DELAY2:		MOV	COUNTER1,#04H
DEL21:		MOV	COUNTER2,#23H
DEL22:		DJNZ	COUNTER2,DEL22
		DJNZ	COUNTER1,DEL21
		RET
;**********************************************
HZ11:
;--  调入了一幅图像:E:\金.bmp  --    兰
;--  宽度x高度=64x16  --
;DB  040H,040H,020H,020H,050H,048H,044H,0C3H,044H,048H,050H,050H,020H,060H,020H,000H
;DB  000H,0FEH,012H,0FEH,000H,0FEH,012H,0FEH,000H,0FCH,00EH,035H,044H,07CH,000H,000H
;DB  010H,012H,092H,072H,0FEH,051H,091H,000H,022H,0CCH,000H,000H,0FFH,000H,000H,000H
;DB  008H,008H,088H,0FFH,048H,028H,000H,0C8H,048H,048H,07FH,048H,0C8H,048H,008H,000H
;DB  040H,040H,042H,042H,04AH,072H,042H,07FH,042H,062H,05AH,042H,042H,040H,040H,000H
;DB  020H,01FH,021H,07FH,020H,01FH,041H,07FH,008H,009H,009H,029H,049H,021H,01FH,000H
;DB  004H,002H,001H,000H,0FFH,000H,004H,004H,004H,002H,002H,002H,0FFH,001H,001H,000H
;DB  001H,041H,080H,07FH,000H,040H,040H,020H,013H,00CH,00CH,012H,021H,060H,020H,000H

;--兰州交 ****************************************************************************
;**************************************************************************************
db   000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
db   000h,020h,020h,022h,024h,028h,020h,020h,030h,028h,027h,022h,020h,020h,000h,000h,000h,0E0h,000h,000h,0FFh,020h,0C0h,000h

⌨️ 快捷键说明

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