教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

用单片机实现对SST39VF040的操作(3)

来源:网络收集 时间:2026-02-03
导读: Address7_0=0xaa; Address15_8=0x2a; Delay10us(); Sst39vf040_We=0; DataOut=0x55; Delay10us(); Sst39vf040_We=1; Address7_0=0x55; Address15_8=0x55; Delay10us(); Sst39vf040_We=0; DataOut=0x80; Delay10us()

Address7_0=0xaa; Address15_8=0x2a; Delay10us(); Sst39vf040_We=0; DataOut=0x55; Delay10us(); Sst39vf040_We=1; Address7_0=0x55; Address15_8=0x55; Delay10us(); Sst39vf040_We=0; DataOut=0x80; Delay10us(); Sst39vf040_We=1; Delay10us(); Sst39vf040_We=0; DataOut=0xaa; Delay10us(); Sst39vf040_We=1; Address7_0=0xaa; Address15_8=0x2a; Delay10us(); Sst39vf040_We=0; DataOut=0x55; Delay10us(); Sst39vf040_We=1; Address7_0=0x55; Address15_8=0x55; Delay10us(); Sst39vf040_We=0; DataOut=0x10; Delay10us(); Sst39vf040_We=1;

while(!Wait_Data_Pulling()); }

//检测FLASH编程,擦除操作过程中是否完成的函数,完成后返回值1 uchar Wait_Data_Pulling(void) {

uchar outdata; Sst39vf040_Ce=1; Sst39vf040_We=1; Sst39vf040_Oe=1; Delay10us(); Sst39vf040_Ce=0; Sst39vf040_Oe=0; Delay10us(); DataOut=0xff; outdata=DataOut; Sst39vf040_Ce=1; Sst39vf040_Oe=1; if((outdata&0x80)==0x80) else }

//字节编程函数,入口参数:( byte_address:Ams~A0 = A18~A0 ,待写的数据:byte_data ), void We_Byte_Program(ulong byte_address,uchar byte_data) {

ulong temp_address; Sst39vf040_Ce=1; Sst39vf040_Oe=0; Sst39vf040_We=1; Address7_0=0x55; Address15_8=0x55; Address16=0; Address17=0; Address18=0; Sst39vf040_Ce=0; Sst39vf040_Oe=1; Sst39vf040_We=0; DataOut=0xaa; Delay10us(); Sst39vf040_We=1; Address7_0=0xaa; Address15_8=0x2a; Delay10us();

return 0; return 1;

Sst39vf040_We=0; DataOut=0x55; Delay10us(); Sst39vf040_We=1; Address7_0=0x55; Address15_8=0x55; Delay10us(); Sst39vf040_We=0; DataOut=0xa0; Delay10us(); Sst39vf040_We=1; temp_address=byte_address;

Address7_0=temp_address&0x0000ff; temp_address=byte_address;

Address15_8=(temp_address&0x00ff00)>>8; temp_address=byte_address; if((temp_address&0x010000)!=0)

else

Address16=0; Address16=1;

temp_address=byte_address; if((temp_address&0x020000)!=0)

else

Address17=0; Address17=1;

temp_address=byte_address; if((temp_address&0x040000)!=0)

else

Address18=0; Address18=1;

Delay10us(); Sst39vf040_We=0; DataOut=byte_data; Delay10us(); Sst39vf040_We=1;

while(!Wait_Data_Pulling()); }

//字节读函数 入口参数:待读的字节地址byte_address,返回参数值:读出的数据

uchar Byte_Read(ulong byte_address) {

ulong temp_address; uchar temp_data;

temp_address=byte_address; Sst39vf040_Ce=1; Sst39vf040_Oe=1; Sst39vf040_We=1;

Address7_0=temp_address&0x000000ff; temp_address=byte_address;

Address15_8=(temp_address&0x0000ff00)>>8; temp_address=byte_address;

if((temp_address&0x00010000)!=0)

Address16=1;

else }

以上给出了读写SST39VF040的C51源程式,其他几个型号的FLASH读写都可以调用这些函数,只要改变入口参数即可,读者可以灵活应用。

Address16=0;

temp_address=byte_address; if((temp_address&0x00020000)!=0) else

Address17=0; Address17=1;

temp_address=byte_address; if((temp_address&0x00040000)!=0) else

Address18=0; Address18=1;

Delay10us(); Sst39vf040_Ce=0; Sst39vf040_Oe=0; Delay10us(); DataOut=0xff; temp_data=DataOut; Sst39vf040_Ce=1; Sst39vf040_Oe=1; return temp_data;

…… 此处隐藏:340字,全部文档内容请下载后查看。喜欢就下载吧 ……
用单片机实现对SST39VF040的操作(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412181.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)