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

📄 ht47r20a读写at24c01.asm

📁 这是一个holtek单片机HT47R20_A读写at24c01的子程页
💻 ASM
字号:
/*****************************************
mcu:HT47R20_A

*******************************************/
at24c01:								;eeprom读和写
write_page:
	mov		[v_R5],a
	call	start
	rla		[v_R5]
	clr		ACC.0
	call	shout
	mov		a,[v_calc_x]
	call	shout
	mov		a,[v_calc_x+1]
	call	shout
	mov		a,[v_calc_x+2]
	call	shout
	mov		a,[v_calc_x+3]
	call	shout
	call	stop
	ret
read_page:
	mov		[v_R5],a
	call	start
	rla		[v_R5]
	set		ACC.0
	call	shout
	call	shin
	mov		[v_calc_x],a
	call	ACK
	call	shin
	mov		[v_calc_x+1],a
	call	ACK
	call	shin
	mov		[v_calc_x+2],a
	call	ACK
	call	shin
	mov		[v_calc_x+3],a
	call	NAK
	call	stop
	ret
start:	
	mov		a,PA
	mov		[v_PA],a
	set		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a
	set		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a
	nop
	nop
	clr		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a
	nop
	nop
	clr		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a
	ret

stop:
	clr		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a					;clr	SDA						
	set		[v_PA].6
	mov		a,[v_PA]		
	mov		PA,a					;set	SCL
	set		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a					;set	SDA
	ret
shout:
	clr		[v_R11]
	mov		[v_R10],a
x03:
	rlc		[v_R10]					
	snz		C
	jmp		zero_in
	set		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a
	jmp		shout1
zero_in:
	clr		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a
shout1:	
	set		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a
	nop							
	nop
	nop
	nop
	clr		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a
	inc		[v_R11]
	snz		[v_R11].3		
	jmp		x03
	
	set		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a				;set	SDA
	
	set		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a				;set		SCL
	nop							; enforce SCL high
	nop							;
	nop							;					; get ACK bit
	mov		a,PA
	mov		[v_R11],a
	rlc		[v_R11]
	clr		[v_PA].6
	mov		a,[v_PA]						; drop ACK clock
	mov		PA,a
	ret
shin:
	set		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a
	clr		[v_R11]
	clr		[v_R1]
x04:	
	nop							; enforce SCL low and data setup
	nop							;
	set		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a				; raise clock
	
	nop				        	; enforce SCL high
	nop							;
	mov		a,PA
	mov		[v_R10],a
	rlc		[v_R10]
	rlc		[v_R1]
	clr		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a
	inc		[v_R11]
	snz		[v_R11].3		
	jmp		x04
	mov		a,[v_R1]
	ret
ACK:	
	clr		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a			; ACK bit
	set		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a
	clr		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a			; drop clock
	ret
NAK:
	set		[v_PA].7
	mov		a,[v_PA]
	mov		PA,a			; NAK bit		
	set		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a			; raise clock
	clr		[v_PA].6
	mov		a,[v_PA]
	mov		PA,a			; drop clock	
	ret



⌨️ 快捷键说明

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