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

📄 4924_wr_an.asm

📁 HT49 MCU系列微控制器读写HT24系列应用范例
💻 ASM
字号:
; file name: 	4924_WR.asm
; 作	者:		盛扬半导体(上海)有限公司软件部
; 目	的:		用HT49系列单片机控制24系列eeprom
; 注	意:		在mask_option中,PA0~PA3须选择NMOS有上拉电阻

include ht49r30a-1.inc

;----------------------------
;equ定义区间
scl			equ		pa.3		;时钟信号引脚定义
sda			equ		pa.1		;串行数据引脚定义
read_out		equ		[70h]		;写暂存器
write_in		equ		[71h]		;读暂存器
word_address		equ		[72h]		
data_8			equ		[73h]
;----------------------------

;----------------------------
;宏定义
;延迟宏,延迟100微秒
d_1		macro
	local	label
	mov		a,64h
	mov		delay,a
label:
	sdz		delay
	jmp		label
endm
;---------------------------

;---------------------------
;数据区
e2prom		.section	'data'
	delay		db		?
;----------------------------

;----------------------------
;代码段
eepromc  .section 'code'
	org		00h
	jmp		start
start:
	mov		a,055h				;设写入值为055H
	mov		write_in,a
	mov		a,14h				;写入14H为要操作的eeprom的地址
	mov		word_address,a
random_write_cycle:
	set		sda
d_1
	set		scl
	d_1		
	clr		sda				;起始信号
           		
	clr		scl
	set		sda				;1
	d_1		
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0
	set		scl
	d_1		
           		
	clr		scl
	set		sda				;1
	d_1		
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0
	set		scl
	d_1		

	clr		scl
	clr		sda				;a2,a1,a0=0
	set		scl
	d_1		
           		
	clr		scl
	set		scl
	d_1		
           		
	clr		scl
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0 write mode
	set		scl
	d_1		
           		
	clr		scl
	set		sda				;1 for ack, 设为输入口,接收应答信号
	d_1		
	set		scl				;read_modify_write
	d_1		
	   		
skch:      		
	sz 		sda				;应答信号
	jmp		skch
	clr		scl
	mov		a,08h	
	mov		data_8,a			;一个字节八位
write_address_in:
	clr		sda
	sz		word_address.7
	set		sda
	d_1		
	set		scl
	d_1		
           		
	clr         	scl
	rl           	word_address
	sdz        	data_8
	jmp       	write_address_in
	set         	sda
	d_1
	set         	scl
	d_1

wdow:
	sz		sda
	jmp		wdow
	clr		scl
	mov		a,08h
	mov		data_8,a
write_data_in:
	clr		sda
	sz		write_in.7
	set		sda
	d_1		
	set		scl
	d_1		
           		
	clr		scl
	rl		write_in
	sdz		data_8
	jmp		write_data_in
           		
	clr		sda
	set		scl
	d_1		
	clr		scl
	set		scl
	d_1		
	set		sda				;停止信号
	d_1		
	clr		scl
;-----------读
read_random_1:
	set		sda
	d_1		
	set		scl
	d_1		
	clr		sda				;开始信号
           		
	clr		scl
	set		sda				;1
	d_1		
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0
	set		scl
	d_1		
           		
	clr		scl
	set		sda				;1
	d_1		
           		
	set		scl
	d_1

	clr		scl
	clr		sda				;0
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;a2,a1,a0=0,0,0
	set		scl
	d_1		

	clr		scl
	set		scl
	d_1		
           		
	clr		scl
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0 write mode
	set		scl
	d_1		
           		
	clr		scl
	set		sda		 		;for ack
	d_1		
	set		scl
	d_1		
flel:      		
	sz		sda
	jmp		read_random_1
	clr		scl
	mov		a,08h
	mov		data_8,a
read_address_in:
	clr		sda
	sz		word_address.7
	set		sda
	d_1		
	set		scl
	d_1		
	clr		scl
	rl		word_address
	sdz		data_8
	jmp		read_address_in
           		
	set		sda				;for ack
	d_1		
	set		scl
	d_1		
           		
skco:
	sz		sda
	jmp		skco
	clr		scl
restart:
	set		sda
	d_1		
	set		scl
	d_1		
	clr		sda				;起始信号
           		
	clr		scl
	set		sda				;1
	d_1		
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0
	set		scl
	d_1		
           		
	clr		scl
	set		sda				;1
	d_1		
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;0
	set		scl
	d_1		
           		
	clr		scl
	clr		sda				;a2,a1,a0=0
	set		scl
	d_1

	clr		scl
	set		scl
	d_1		
           		
	clr		scl
	set		scl
	d_1		
           		
	clr		scl
	set		sda				;1 read mode 
	d_1		
	set		scl
	d_1		
														
	clr		scl
	set		sda				;for ack
	d_1
	set		scl
	d_1
ewfp:
	sz		sda
	jmp		ewfp
	mov		a,08h
	mov		data_8,a
flow_out:  		
	clr		scl
	set		sda				;设定为输入口
	d_1		
	clr		read_out.7
	sz		sda
	set		read_out.7
	d_1		
	set		scl
	d_1		
	rl		read_out
	sdz		data_8
	jmp		flow_out
           		
	clr		scl
	clr		sda
	set		scl
	d_1		
	set		sda				;停止信号
	d_1		
           		
	mov		a,055h				;将读出数据与55H比较
	xor		a,read_out
	snz		z
	jmp		fail_out
	jmp		ok_end
           		
fail_out:  		
	jmp		$				;操作失败
ok_end:    		
	jmp		$				;操作成功
	
;HT49R30A-1通过

⌨️ 快捷键说明

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