?? 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 + -