writeds1073.a51

来自「进行USB开发的外围设备固件程序」· A51 代码 · 共 92 行

A51
92
字号
NAME		writeDs1073
PUBLIC		WRITE_DS1073



OED                 DATA 0B5H
IOD                 DATA 0B0H


EZUSB		segment	code

		rseg	EZUSB		
WRITE_DS1073:
	;initialization
	;FD15 DRIVE MINUS PULSE FOR 500us
	CLR  IOD.7
	MOV R7,#250;
	LCALL Delay1us
	MOV R7,#249;
	LCALL Delay1us
	
	;OFF FD15 FOR 500US(DURING THIS TIME DS1073 WOULD DRIVE THIS LINE A MINUS PULSE
	ANL OED,#7FH
	MOV R7,#250;
	LCALL Delay1us
	MOV R7,#249;
	LCALL Delay1us
	NOP
	NOP
	NOP
	LCALL WriteMUXCommand
	
	MOV A,#00110110B
	LCALL WriteData
	RET
	
Delay1us:
;3*3(INC DPTR)+3(RET)=12*(4*1000/48)
	INC DPTR
	INC DPTR
	INC DPTR
	DJNZ R7,Delay1us
	RET

WriteMUXCommand:
	MOV ACC,#2
	MOV R5,#8;
AGAIN:
	CLR IOD.7
	ORL OED,#80H
	MOV R7,#2
	LCALL Delay1us
	JNB ACC.0,MUX1
	ANL OED,#7FH
MUX1:
	MOV R7,#62
	LCALL Delay1us
	
	ANL OED,#7FH
	MOV R7,#2
	LCALL Delay1us
	
	RR A
	DJNZ R5,AGAIN

	RET

WriteData:
	MOV R5,#9;
WD_AGAIN:
	CLR IOD.7
	ORL OED,#80H
	MOV R7,#2
	LCALL Delay1us
	
	;DATA BIT
	JNB ACC.0,WD_MUX1
	ANL OED,#7FH
WD_MUX1:
	MOV R7,#62
	LCALL Delay1us
	
	ANL OED,#7FH
	MOV R7,#2
	LCALL Delay1us
	
	RR A
	DJNZ R5,WD_AGAIN

	RET
end

⌨️ 快捷键说明

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