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

📄 93lc46b_zwx.asm

📁 基于松翰单片机SN8P2612的93LC46B存储器的读写程序
💻 ASM
字号:
	chip	sn8p2612
//{{SONIX_CODE_OPTION
	.Code_Option	LVD		LVD_L		; 2.0V Reset
	.Code_Option	Reset_Pin	P15
	.Code_Option	Watch_Dog	Disable
	.Code_Option	High_Clk	IHRC_16M	; Internal 16M RC Oscillator
	.Code_Option	Fcpu		Fosc/8
	.Code_Option	Security	Enable
	.Code_Option	Noise_Filter	Disable
//}}SONIX_CODE_OPTION

	data1		equ	00h
	data2		equ	01h
	data3		equ	02h
	data4		equ	03h

	w_data1		equ	04h
	W_data2		equ	05h
	W_data3		equ	06h
	w_data4		equ	07h

	read_counter	equ	08h
	write_counter	equ	09h
	a_c		equ	10h

	address		equ	11h

	cs           	equ   p1.3       ; out
	sk           	equ   p1.2       ; out
	di           	equ   p1.1       ; out
	do           	equ   p1.0       ; in

		org	0000h
		jmp	main
		org	0010h
main:

		mov	a,#0ffh   ;P1口上拉
		b0mov	p1ur,a
		mov	a,#0feh    ;P1.0为输入,其他为输出
		b0mov	p1m,a
		b0bclr	cs

		nop
		mov	a,#12h
		b0mov	w_data1,a
		mov	a,#34h
		b0mov	w_data2,a
		mov	a,#56h
		b0mov	w_data3,a
		mov	a,#78h
		b0mov	w_data4,a

		nop
		call	write

		nop
		call	read
		nop
		jmp	$

;---------------------------------------------------------------------
;读93lc46b程序

read:
		mov	a,#10001001b
		b0mov	address,a
		mov	a,#08h
		mov	a_c,a
read_start:
		nop
		b0bset	cs
		nop
		nop
		nop
		b0bset	di
		nop
		call	clk
		nop
read_address:
		nop
		rlcm	address
		b0bts1	fc
		jmp	read_di0
read_di1:
		nop
		b0bset	di
		call	clk
		jmp	read_a_next

read_di0:		
		nop
		b0bclr	di
		call	clk
read_a_next:
		decms	a_c
		jmp	read_address
re_data0:	
		nop	
		mov	a,#20h
		mov	read_counter,a
re_data:
		nop
		call	clk
		b0bts1	do
		jmp	re_data_0
re_data_1:
		nop
		b0bset	fc
		jmp	rece_data
re_data_0:
		nop
		b0bclr	fc
rece_data:
		rlcm	data1
		rlcm	data2
		rlcm	data3
		rlcm	data4
		decms	read_counter
		jmp	re_data
read_ok:
		nop
		b0bclr	cs
		nop
		ret
;--------------------------------------------------------

write:
		nop                   ;檫写使能ewen
		b0bset	cs
		nop
		b0bset	di
		call	clk  ;1
		nop
		b0bclr	di
		call	clk  ;0
		call	clk  ;0
		nop
		b0bset	di
		call	clk  ;1
		call	clk  ;1

		call	clk  ;x
		call	clk  ;x
		call	clk  ;x
		call	clk  ;x
		b0bclr	di
		nop
		b0bclr	cs


		nop
		mov	a,#08h
		b0mov	a_c,a

		mov	a,#01001001b
		b0mov	address,a

		nop
		b0bset	cs
		nop
		nop
		nop
		b0bset	di
		call	clk

		nop
write_address:		
		nop
		rlcm	address
		b0bts1	fc
		jmp	write_a_0
write_a_1:
		nop
		b0bset	di
		call	clk
		jmp	write_a_next
write_a_0:
		nop
		b0bclr	di
		call	clk
write_a_next:
		decms	a_c
		jmp	write_address
write_a_ok:

		nop
		mov	a,#10h
		mov	write_counter,a
write_data:
		nop
		rlcm	w_data1
		rlcm	w_data2
		b0bts1	fc
		jmp	write_d_0
write_d_1:
		nop
		b0bset	di
		call	clk
		jmp	write_d_next
write_d_0:
		nop
		b0bclr	di
		call	clk
write_d_next:
		nop
		decms	write_counter
		jmp	write_data
write_d_ok:
		nop
		nop
		b0bclr	cs
		nop
		nop
		nop
		nop
		b0bset	cs
		nop
		
		b0bts1	do
		jmp	$-2
		
		b0bclr	cs

		nop
		ret	
		
		
clk:
		nop
		b0bclr	sk
		nop
		nop
		b0bset	sk
		nop
		ret	
			

⌨️ 快捷键说明

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