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

📄 i2c.asm

📁 SGT002电容触控IC操作汇编程序源码
💻 ASM
字号:
;**************************************************
;Subroutine: SGT002 I2C通讯子程序			  *
;Variable: [TEMP0]-R_ADDR, [TEMP1]-R_CON/R_DATA	  *
;Port: P10-INT, P11-DATA, P12-CLK		  *
;**************************************************
I2C_SGT002:
I2C_TRAN_SGT002:
	MOV	A,00000001B		;
	CTLW	P1C
	BST	P1,2			;CLK
	BST	P1,1			;D_DATA
	NOP
	BCLR	P1,1			;D_DATA
	BCLR	P1,2			;CLK
SGT002_SEND_0:
	SBZ	[TEMP0],0
	JMP	SGT002_SEND_HIGH_0
SGT002_SEND_LOW_0:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_1
SGT002_SEND_HIGH_0:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_1:		
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP

	SBZ	[TEMP0],1
	JMP	SGT002_SEND_HIGH_1
SGT002_SEND_LOW_1:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_2
SGT002_SEND_HIGH_1:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_2:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP0],2
	JMP	SGT002_SEND_HIGH_2
SGT002_SEND_LOW_2:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_3
SGT002_SEND_HIGH_2:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_3:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP

	SBZ	[TEMP1],0
	JMP	SGT002_SEND_HIGH_3
SGT002_SEND_LOW_3:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_4
SGT002_SEND_HIGH_3:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_4:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP

	SBZ	[TEMP1],1
	JMP	SGT002_SEND_HIGH_4
SGT002_SEND_LOW_4:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_5
SGT002_SEND_HIGH_4:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_5:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP1],2
	JMP	SGT002_SEND_HIGH_5
SGT002_SEND_LOW_5:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_6
SGT002_SEND_HIGH_5:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_6:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP

	SBZ	[TEMP1],3
	JMP	SGT002_SEND_HIGH_6
SGT002_SEND_LOW_6:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_7
SGT002_SEND_HIGH_6:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_7:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP1],4
	JMP	SGT002_SEND_HIGH_7
SGT002_SEND_LOW_7:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_8
SGT002_SEND_HIGH_7:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_8:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP1],5
	JMP	SGT002_SEND_HIGH_8
SGT002_SEND_LOW_8:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_9
SGT002_SEND_HIGH_8:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_9:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP1],6
	JMP	SGT002_SEND_HIGH_9
SGT002_SEND_LOW_9:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_A
SGT002_SEND_HIGH_9:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_A:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP1],7
	JMP	SGT002_SEND_HIGH_A
SGT002_SEND_LOW_A:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_SEND_B
SGT002_SEND_HIGH_A:
	BST	P1,1			;D_DATA
	NOP
SGT002_SEND_B:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP

SGT002_TRAN_END:
	MOV	A,00000110B
	BST	P1,2			;SET CLK
	BST	P1,1			;SET D_DATA 
	RET
	
	
;****************************************
;RECEIVING
;****************************************
I2C_REC_SGT002:
	MOV	A,00000001B		;
	CTLW	P1C
	BST	P1,2			;CLK
	BST	P1,1			;D_DATA
	NOP
	BCLR	P1,1			;D_DATA
	BCLR	P1,2			;CLK	

SGT002_RECING_0:
	SBZ	[TEMP0],0
	JMP	SGT002_REC_HIGH_0
SGT002_REC_LOW_0:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_REC_1
SGT002_REC_HIGH_0:
	BST	P1,1			;D_DATA
	NOP
SGT002_REC_1:		
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP

	SBZ	[TEMP0],1
	JMP	SGT002_REC_HIGH_1
SGT002_REC_LOW_1:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_REC_2
SGT002_REC_HIGH_1:
	BST	P1,1			;D_DATA
	NOP
SGT002_REC_2:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
	SBZ	[TEMP0],2
	JMP	SGT002_REC_HIGH_2
SGT002_REC_LOW_2:
	BCLR	P1,1			;D_DATA
	JMP	SGT002_REC_3
SGT002_REC_HIGH_2:
	BST	P1,1			;D_DATA
	NOP
SGT002_REC_3:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	
SGT002_I2C_RECING:
	MOV	A,00000011B		; SET D_DATA AS INPUT
	CTLW	P1C
	
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	NOP
	BST	[TEMP1],0	
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],0
SGT002_REC_4:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],1	
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],1
SGT002_REC_5:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],2
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],2
SGT002_REC_6:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],3
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],3
SGT002_REC_7:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],4
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],4
SGT002_REC_8:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],5
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],5
SGT002_REC_9:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],6
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],6
SGT002_REC_A:
	BST	P1,2			;CLK
	NOP
	BCLR	P1,2			;CLK
	NOP
	BST	[TEMP1],7
	SBNZ	P1,1			;D_DATA
	BCLR	[TEMP1],7
SGT002_REC_END:
	MOV	A,00000001B
	CTLW	P1C
	BST	P1,2
	BST	P1,1
	RET

⌨️ 快捷键说明

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