📄 stc读写涵数.txt
字号:
Twrite()
{ uint i = 0;
uint begin_addr = 0;
/* 擦除 要修改/写入 的扇区 */
begin_addr = (0x2000 & 0xfe00); /* 1111,1110,0000,0000; 取扇区地址 */
ISP_ADDRH = (uchar)(begin_addr >> 8);
ISP_ADDRL = 0x00;
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x03; /* 0000,0011 */
/* 打开 ISP,IAP 功能 */
EA = 0;
ISP_CONTR = ISP_CONTR & 0x18; /* 0001,1000 */
ISP_CONTR = ISP_CONTR | 0x01;
ISP_CONTR = ISP_CONTR | 0x80; /* 1000,0000 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
for(i = 0; i< 17; i++) /* 写一个字节 */
{
AAA: ISP_ADDRH = (uchar)(begin_addr >> 8);
ISP_ADDRL = (uchar)(begin_addr & 0x00ff);
ISP_DATA = SaveTime[i]/256;
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x02; /* 0000,0010 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
/* 读回来 */
ISP_DATA = 0x00;
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x01; /* 0000,0001 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
if(ISP_DATA != SaveTime[i]/256) /* 比较对错 */
goto AAA;
begin_addr++;
ISP_ADDRH = (uchar)(begin_addr >> 8);
ISP_ADDRL = (uchar)(begin_addr & 0x00ff);
ISP_DATA = SaveTime[i]%256;
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x02; /* 0000,0010 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
/* 读回来 */
ISP_DATA = 0x00;
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x01; /* 0000,0001 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
if(ISP_DATA != SaveTime[i]%256) /* 比较对错 */
{ begin_addr--;
goto AAA; }
begin_addr++;
}
ISP_CONTR = ISP_CONTR & 0x7f; /* 0111,1111 */
ISP_TRIG = 0x00;
EA = 1; /* 开中断 */
}
//**********************************/
Tread()
{ uint i = 0,TT;
uint begin_addr = 0;
/* 打开 ISP,IAP 功能 */
begin_addr = (0x2000 & 0xfe00);
EA = 0;
ISP_CONTR = ISP_CONTR & 0x18; /* 0001,1000 */
ISP_CONTR = ISP_CONTR | 0x01;
ISP_CONTR = ISP_CONTR | 0x80; /* 1000,0000 */
for(i = 0; i< 17; i++) /* 写一个字节 */
{
ISP_ADDRH = (uchar)(begin_addr >> 8);
ISP_ADDRL = (uchar)(begin_addr & 0x00ff);
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x01; /* 0000,0010 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
// SaveTime[i]=ISP_DATA;
TT=ISP_DATA;
_nop_();
ISP_DATA=0x00;
begin_addr++;
ISP_ADDRH = (uchar)(begin_addr >> 8);
ISP_ADDRL = (uchar)(begin_addr & 0x00ff);
ISP_CMD = ISP_CMD & 0xf8; /* 1111,1000 */
ISP_CMD = ISP_CMD | 0x01; /* 0000,0010 */
ISP_TRIG = 0x46; /* 触发ISP_IAP命令 */
ISP_TRIG = 0xb9; /* 触发ISP_IAP命令 */
_nop_();
// SaveTime[i]=ISP_DATA;
SaveTime[i]=TT*256+ISP_DATA;
_nop_();
ISP_DATA=0x00;
begin_addr++;
}
ISP_CONTR = ISP_CONTR & 0x7f; /* 0111,1111 */
ISP_TRIG = 0x00;
EA = 1; /* 开中断 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -