我的程序怎么读写不了24c02

以下是我的24C02的读写部分,下载到AT89c52上运行到jc处死循环,24C02不知道怎么不反应,我真不知道什么问题了,求教sdabitp3.7;;;;;;;;;;;... 以下是我的24C02的读写部分,下载到AT89c52上运行到jc 处死循环,24C02不知道怎么不反应,我真不知道什么问题了,求教
sda bit p3.7 ;;;;;;;;;;;;;;晶振12M
scl bit p3.6
;;;;;;;;;;;初始化;;;;;;;;;;;;

mov 70h,#1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;开始写
mainwr: lcall start
mov r7,#0a0h
lcall send
mov r7,#01h ;要写入的地址
lcall send
;要发送的地址
wrloop: mov a,70h
mov r7,a
inc r0
lcall send
lcall stop
;发送完毕,
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;开始读

mainrt: lcall start
mov r7,#0a0h
lcall send
mov r7,#01h ;;;;;;;;;;;;;;;;;;;要读的地址
lcall send
lcall start
mov r7,#0a1h
lcall send
reloop: lcall read
mov 31h,r7 ;---------读取出的数据存放的位置
lcall stop
;;;;;;;;读完返回数据存放在31H

read: mov r6,#08h
readlop1: setb sda
setb scl
lcall d5u
mov c,sda
rlc a
clr scl
djnz r6,readlop1
mov r7,a
sack: clr sda
setb scl
lcall d5u
clr scl
setb sda
ret
stop: clr sda
setb scl
lcall d5u
setb sda
lcall d5u
clr sda
clr scl
ret
send: mov r6,#08h
mov a,r7
sendlop1: rlc a
mov sda,c
setb scl
lcall d5u
clr scl
djnz r6,sendlop1
cack: setb sda
setb scl
lcall d5u
sendlop2: mov c,sda
jc sendlop2
clr scl
ret
start: setb sda
setb scl
lcall d5u
clr sda
lcall d5u
clr scl
ret
d5u: nop
nop
nop
nop
nop
ret
init: mov 70h,#0c0h
mov 71h,#0f9h
mov 72h,#0a4h
ret
展开
 我来答
linkasp
2011-11-21
知道答主
回答量:28
采纳率:0%
帮助的人:27.4万
展开全部
http://zhidao.baidu.com/question/300576487.html
汇编不会!
我只会C语言!!
追问
请问,怎么解决sp加多次后程序飞的问题,我的程序用JB跳转后工作后用jmp返回到主程序,再执行到jb,SP又加了一次,循环多次了SP加大了,程序就飞了,我是新手不要见怪。谢谢,另外我24C02我已经搞好了,按照书上写了下,修改了下,同时可以写8个字节,读8个字节、搞这个我感觉比上炕还费劲。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式