📄 93lc46b_zwx.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 + -