📄 新建 文本文档.txt
字号:
24C256心片的读写程序
scl equ p1.6
sda equ p1.7
org 0h
sjmp main
org 30h
main:
;;;;;;;;;;;;;;;;;
;写开始位 ;
;;;;;;;;;;;;;;;;;
lcall start
;;;;;;;;;;;;;;;;;
;写设备起始地址 ;
;;;;;;;;;;;;;;;;;
mov a,#0a4h
mov r3,#08h
a1: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,a1
setb sda
lcall delay
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
clr sda
lcall delay
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;;
;送 A15-A8地址 ;
;;;;;;;;;;;;;;;;;
mov a,#00h
mov r3,#08h
a2: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,a2
setb sda
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;;
;送 A15-A8地址 ;
;;;;;;;;;;;;;;;;;
mov a,#00h
mov r3,#08h
a3: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,a3
setb sda
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;
;送8位数据 ;
;;;;;;;;;;;;;;;;
mov a,#05h
mov r3,#08h
a4: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,a4
setb sda
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;;
;写停止位 ;
;;;;;;;;;;;;;;;;;
clr sda
lcall delay
setb scl
lcall delay
setb sda
lcall delay
; ;;;;;;;;;;;;;;;
;开始写 ;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;写设备地址 ;
;;;;;;;;;;;;;;;;;
mov a,#0a4h
mov r3,#08h
b1: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,b1
setb sda
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;;
;送 A15-A8地址 ;
;;;;;;;;;;;;;;;;;
mov a,#00h
mov r3,#08h
b2: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,b2
setb sda
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;;
;送 A15-A8地址 ;
;;;;;;;;;;;;;;;;;
mov a,#00h
mov r3,#08h
b3: rlc a
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
djnz r3,b3
setb sda
;;;;;;;;;;;;;;;;;
;读发送信号 ;
;;;;;;;;;;;;;;;;;
setb scl
lcall delay
clr scl
lcall delay
cpl p1.1
;;;;;;;;;;;;;;;;;
;读8位地址 ;
;;;;;;;;;;;;;;;;;
mov r3,#08h
read: setb scl
lcall delay
mov sda,c
rlc a
;mov r6,a
clr scl
lcall delay
djnz r3,read
setb sda
mov r4,a
;;;;;;;;;;;;;;;;;
;写发送信号 ;
;;;;;;;;;;;;;;;;;
mov sda,c
setb scl
lcall delay
clr scl
lcall delay
;;;;;;;;;;;;;;;;;
;写停止位 ;
;;;;;;;;;;;;;;;;;
lcall stop
sjmp $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 起始信号 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start: clr scl
setb sda
lcall delay
setb scl
lcall delay
clr sda
lcall delay
clr scl
ret
;;;;*********************;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 停止信号 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
stop: clr scl
clr sda
lcall delay
setb scl
lcall delay
setb sda
lcall delay
ret
delay: mov r2,#0c7h
n2: mov r1,#07h
n1: djnz r1,n1
djnz r2,n2
nop
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -