51开发板下载程序时要擦出24c02里的数据吗
这个是不需要的,你的程序没有下到那里去
具体哪一款51开发板?
是需要擦除的!
网上的擦除程序,单个c02
程序:
SCL BIT P2.0
SDA BIT P2.1
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
LCALL START ;启动
MOV A,#0A0H ;写指令1010 0000b
LCALL ENTER ;写入‘写指令’
MOV A,#20H ;选择数据存放单元
LCALL ENTER ;写入地址
LCALL START ;再次开启
MOV A,#0A1H ;读指令1010 0001b
LCALL ENTER ;写入‘读指令’
;========写入一个字节数据========;
MOV R2,#8
RBYTE:CLR SCL
NOP
NOP
SETB SCL ;上升沿读出数据 ,注意下降沿不能读出
NOP
NOP
MOV C,SDA ;将数据线数据送给c移位输出
RLC A ;从高位到低位输出
DJNZ R2,RBYTE ;读出一个字节
CLR SCL ;上升沿发出非应答信号
NOP
NOP
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
CLR SCL ;箝住总线,准备发送数据
LCALL STOP
MOV P3,A
LJMP MAIN
START: CLR SCL ;时钟脚为0时,将数据写入
NOP
NOP
SETB SDA ;把数据1送入,为了产生下降沿
NOP
NOP
SETB SCL ;将时钟脚置1,启动
NOP
NOP
CLR SDA
NOP
NOP
NOP
CLR SCL ;箝住总线,准备发送数据。
RET
STOP: CLR SCL
NOP
NOP
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
SETB SDA
NOP
NOP
CLR SCL
NOP
RET
;======写入“写指令”=====;
ENTER: MOV R2,#08 ;一个字节8位数据
XIERU: CLR SCL ;置0,为了产生上升沿写入数据
NOP
RLC A ;数据由高到低移位
MOV SDA,C ;输出至数据线
NOP
NOP
SETB SCL
NOP
NOP
DJNZ R2,XIERU
;=====写应答,检测SDA状态=====;
CLR SCL
NOP
NOP
SETB SCL ;应答
NOP
NOP
JB SDA,$ ;检测数据线是否为1,=0表示擦写完毕
NOP
CLR SCL ;可继续接受数据位
RET
END
这是两个IC呀
下载程序和24C0x没关系的。你可以选择擦除或者不擦除。
烧写器会自动插除的!
我是来学习的
如果你是为了保存现有的数据,那么就要擦除,不然你程序运行的时候显示的数据会不正确,如果你是在获得数据以后保存到固定位置,那就没什么事了!不过还是建议你擦除数据。
比如密码锁,你把数据保存到了24c里边,你不写个密码进去,那么你怎么能更改啊!
不需要,因为后来的程序不会读前一个程序里的数据。