<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STC單片機內部FLASH讀寫(xiě)程序

STC單片機內部FLASH讀寫(xiě)程序

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò ) 收藏
//#i nclude "STC89C51.h"

//#i nclude

本文引用地址:http://dyxdggzs.com/article/201611/320127.htm


#define ERROR 0
#define OK 1


#define WAIT_TIME0x00//mcu clock 40mhz
//#define WAIT_TIME0x01//mcu clock 20mhz
//#define WAIT_TIME0x02//mcu clock 10mhz
//#define WAIT_TIME0x03//mcu clock 5mhz



#define HOUR0x8000
#define MINUTE0x8001



void ISP_EN(void)
{
EA=0;// 關(guān)中斷
ISP_CONTR=ISP_CONTR & 0x18; // 0001,1000
ISP_CONTR=ISP_CONTR | WAIT_TIME;
ISP_CONTR=ISP_CONTR | 0x80; // 1000,0000
}


void ISP_DI(void)
{
ISP_CONTR=ISP_CONTR & 0x7f;// 0111,1111
ISP_TRIG=0x00;
EA= 1; // 開(kāi)中斷
}


unsigned char Byte_read(unsigned int byte_addr)
{
ISP_ADDRH=(unsigned char)(byte_addr >> 8);
ISP_ADDRL=(unsigned char)(byte_addr & 0x00ff);

ISP_CMD=ISP_CMD&0xf8; // 1111,1000
ISP_CMD=ISP_CMD|0x01; // 0000,0001 字節讀數據存儲區

ISP_EN();

ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();

ISP_DI();
return (ISP_DATA);
}


void Sector_erase(unsigned int Sector_addr)
{
unsigned char addre;
addre=(unsigned char)(Sector_addr >> 8); // 1111,1110,0000,0000; 取扇區地址
ISP_ADDRH =addre&0xfe;
ISP_ADDRL=0x00;

ISP_CMD=ISP_CMD&0xf8;// 1111,1000
ISP_CMD=ISP_CMD|0x03;// 0000,0011 扇區擦除數據存儲區

ISP_EN();

ISP_TRIG=0x46; // 觸發(fā)ISP_IAP命令
ISP_TRIG=0xb9; // 觸發(fā)ISP_IAP命令
_nop_();

ISP_DI();
}


void Byte_program(unsigned int byte_addr, unsigned char DataBuf)
{
ISP_ADDRH=(unsigned char)(byte_addr >> 8);
ISP_ADDRL=(unsigned char)(byte_addr & 0x00ff);

ISP_CMD=ISP_CMD&0xf8; // 1111,1000
ISP_CMD=ISP_CMD|0x02;// 0000,0010 字節編程數據存儲區
ISP_DATA=DataBuf;

ISP_EN();

ISP_TRIG=0x46; // 觸發(fā)ISP_IAP命令
ISP_TRIG=0xb9; // 觸發(fā)ISP_IAP命令
_nop_();

ISP_DI();
}


unsigned char ByteProgramVerify(unsigned int byte_addr, unsigned char DataBuf)
{
ISP_ADDRH=(unsigned char)(byte_addr >> 8);
ISP_ADDRL=(unsigned char)(byte_addr & 0x00ff);

ISP_CMD=ISP_CMD&0xf8; // 1111,1000
ISP_CMD=ISP_CMD|0x02;// 0000,0010 字節編程數據存儲區
ISP_DATA=DataBuf;

ISP_EN();

ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();

ISP_DATA=0x00;

ISP_CMD=ISP_CMD&0xf8; // 1111,1000
ISP_CMD=ISP_CMD|0x01; // 0000,0001

ISP_TRIG=0x46; // 觸發(fā)ISP_IAP命令
ISP_TRIG=0xb9; // 觸發(fā)ISP_IAP命令
_nop_();

ISP_DI();

if(ISP_DATA==DataBuf)returnOK;
elsereturnERROR;
}



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>