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

📄 8x15d测架(touch).asm

📁 OCMJ的代码 具体是关于金鹏电子的液晶屏的使用方法和介绍。
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;=============================================================
;OCMJ8X15D触摸屏中断程序
;当触摸事件发生时模块产生中断经INT脚输出信号触发MCU的外部中断0
;=============================================================
RS	EQU	P3.0					;L:存取缓存器,H:存取DDRAM
WRB	EQU	P3.1					;L有效
RDB	EQU	P3.6					;L有效
CS1	EQU	P3.3					;L有效
CS2	EQU	P3.4					;H有效(可直接上拉)
BUSY	EQU	P3.5
INT	EQU	P3.2					;接MCU的INT0
RST	EQU	P3.7					;L有效(可悬空)

EA_BIT		EQU	20H.0

REGNAME		EQU	30H
REGDATA		EQU	31H
REGDATA1	EQU	32H
LCM_X		EQU	33H
LCM_Y		EQU	34H
COUNT1		EQU	35H
COUNT2		EQU	36H
COUNT3		EQU	37H
LCM_DATA1	EQU	38H
LCM_DATA2	EQU	39H

TOUCH_XH	EQU	40H				;触摸屏地址X高2位
TOUCH_XL	EQU	41H				;触摸屏地址X低8位
TOUCH_XH1	EQU	42H				;触摸屏地址X高8位
TOUCH_XL1	EQU	43H				;触摸屏地址X低2位
TOUCH_YH	EQU	44H				;触摸屏地址Y高2位
TOUCH_YL	EQU	45H				;触摸屏地址Y低8位
TOUCH_YH1	EQU	46H				;触摸屏地址Y高8位
TOUCH_YL1	EQU	47H				;触摸屏地址Y低2位

HEX_H		EQU	48H
HEX_L		EQU	49H
;****************************************************
		ORG	0000H
		AJMP	MAIN
		ORG	0003H
		LJMP	INT_0
		ORG	0100H
MAIN:		NOP
		MOV	SP,#5FH
		LCALL	DELAY2				;延时240MS等待上电复位
		MOV	P3,#0FFH
		LCALL	LCM_INIT
		LCALL	LCM_CLR
;****************************************************
LGS1:		;MOV	REGNAME,#10H
;		MOV	REGDATA,#2BH
;		LCALL	REG_WRITE
		MOV	REGNAME,#00H
		MOV	REGDATA,#0CDH
		LCALL	REG_WRITE
		MOV	DPTR,#TAB1
		LCALL	CHRT_DISP
		LCALL	DELAY3
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS2:		MOV	REGNAME,#00H
		MOV	REGDATA,#0C5H
		LCALL	REG_WRITE
		MOV	LCM_DATA1,#0CCH
		MOV	LCM_DATA2,#0CCH
		LCALL	LAT_DISP
		LCALL	DELAY3

		MOV	LCM_DATA1,#33H
		MOV	LCM_DATA2,#33H
		LCALL	LAT_DISP
		LCALL	DELAY3
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS3:		MOV	REGNAME,#10H
		MOV	REGDATA,#3BH
		LCALL	REG_WRITE
		MOV	REGNAME,#00H
		MOV	REGDATA,#0CDH
		LCALL	REG_WRITE
		MOV	DPTR,#TAB2
		LCALL	CHRT_DISP
		LCALL	DELAY3
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS4:		MOV	REGNAME,#00H
		MOV	REGDATA,#0C5H
		LCALL	REG_WRITE
		MOV	LCM_DATA1,#0CCH
		MOV	LCM_DATA2,#33H
		LCALL	LAT_DISP
		LCALL	DELAY3
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS5:		MOV	DPTR,#TAB3
		LCALL	PHO_DISP
		LCALL	DELAY3
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS6:		LCALL	LCM_CLR

		MOV	REGNAME,#10H
		MOV	REGDATA,#2BH
		LCALL	REG_WRITE
		MOV	REGNAME,#00H
		MOV	REGDATA,#0CDH
		LCALL	REG_WRITE
		
		MOV	LCM_X,#00H
		MOV	LCM_Y,#00H
		MOV	DPTR,#TAB41
		MOV	COUNT1,#134
		LCALL	CHRT_DP

		MOV	REGNAME,#0A0H
		LCALL	REG_READ
		ORL	REGDATA1,#04H			;致能触摸中断
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE
		SETB	IT0
		SETB	EA
		SETB	EX0
		LCALL	DELAY3
		
		CLR	EA
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		LJMP	LGS1
;****************************************************
INT_0:		PUSH	ACC
		
		MOV	REGNAME,#0A0H
		LCALL	REG_READ
		JNB	ACC.6,INT_0_END

		MOV	REGNAME,#0A0H
		LCALL	REG_READ
		ANL	REGDATA1,#0FBH			;禁能触摸中断
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE

		LCALL	GET_TOUCH

INT_0_END:	MOV	REGNAME,#0A0H
		LCALL	REG_READ
		ORL	REGDATA1,#04H			;致能触摸中断
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE

		POP	ACC
		RETI
;****************************************************
GET_TOUCH:	MOV	REGNAME,#0C0H
		MOV	REGDATA,#0C0H			;TOUCH ON
		LCALL	REG_WRITE

		LCALL	DELAY1

		LCALL	TOUCH_TEST
		JNB	ACC.6,GET_TOUCH2
		SETB	EA_BIT

		MOV	REGNAME,#0C1H
GET_TOUCH1:	LCALL	REG_READ
		JNB	ACC.7,GET_TOUCH1

		LCALL	TOUCH_Y
		LCALL	TOUCH_X

		MOV	REGNAME,#10H
		LCALL	REG_READ
		ORL	REGDATA1,#10H
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE

		MOV	LCM_X,#0AH
		MOV	LCM_Y,#20H
		MOV	DPTR,#TAB43
		MOV	COUNT1,#10
		LCALL	CHRT_DP

		MOV	LCM_X,#0EH
		MOV	LCM_Y,#30H
		MOV	HEX_H,TOUCH_XH
		MOV	HEX_L,TOUCH_XL
		LCALL	TOUCH_DISP

		MOV	LCM_X,#0EH
		MOV	LCM_Y,#40H
		MOV	HEX_H,TOUCH_YH
		MOV	HEX_L,TOUCH_YL
		LCALL	TOUCH_DISP

		MOV	REGNAME,#10H
		LCALL	REG_READ
		ANL	REGDATA1,#0EFH
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE

		LCALL	DELAY2

GET_TOUCH2:	MOV	REGNAME,#0C0H
		MOV	REGDATA,#00H			;TOUCH OFF
		LCALL	REG_WRITE

		MOV	LCM_X,#0AH
		MOV	LCM_Y,#20H
		MOV	DPTR,#TAB42
		MOV	COUNT1,#10
		LCALL	CHRT_DP
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TOUCH_Y:	MOV	REGNAME,#0C0H
		LCALL	REG_READ

		ANL	REGDATA1,#0FCH
		ORL	REGDATA1,#0CH
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE

		LCALL	DELAY1

		MOV	REGNAME,#0C9H			;TPYR
		LCALL	REG_READ
		MOV	TOUCH_YH1,REGDATA1

		MOV	REGNAME,#0CAH			;TPZR
		LCALL	REG_READ
		RR	A
		RR	A
		ANL	A,#03H
		MOV	TOUCH_YL1,A

		MOV	A,TOUCH_YH1
		RL	A
		RL	A
		MOV	TOUCH_YH,A
		ANL	TOUCH_YH,#03H
		ANL	A,#0FCH
		ORL	A,TOUCH_YL1
		MOV	TOUCH_YL,A
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TOUCH_X:	MOV	REGNAME,#0C0H
		LCALL	REG_READ

		ANL	REGDATA1,#0F3H
		ORL	REGDATA1,#03H
		MOV	REGDATA,REGDATA1
		LCALL	REG_WRITE

		LCALL	DELAY1

		MOV	REGNAME,#0C8H			;TPXR
		LCALL	REG_READ
		MOV	TOUCH_XH1,REGDATA1

		MOV	REGNAME,#0CAH			;TPZR
		LCALL	REG_READ
		RL	A
		RL	A
		ANL	A,#03H
		MOV	TOUCH_XL1,A

⌨️ 快捷键说明

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