#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sfr ISP_DATA=0xe2;
sfr ISP_ADDRH=0xe3;
sfr ISP_ADDRL=0xe4;
sfr ISP_CMD=0xe5;
sfr ISP_TRIG=0xe6;
sfr ISP_CONTR=0xe7;
uchar k;
void iap_disable() //防止误触发;
{
ISP_CONTR=0x00;
ISP_CMD=0x00;
ISP_TRIG=0x00;
}
uchar byte_read(uchar add) //读字节;
{
ISP_CONTR=0x81;
ISP_CMD=0x01;
ISP_ADDRH=0x28;
ISP_ADDRL=add;
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();
k=ISP_DATA;
EA=1;
iap_disable();
return(k);
}
void byte_program(uchar add,uchar num) //写字节;
{
ISP_CONTR=0x81;
ISP_CMD=0x02;
ISP_ADDRH=0x28;
ISP_ADDRL=add;
ISP_DATA=num;
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
EA=1;
iap_disable();
}
void sector_erase() //檫除扇区;
{
ISP_CONTR=0x81;
ISP_CMD=0x03;
ISP_ADDRH=0x28;
ISP_ADDRL=0x00;
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();
EA=1;
iap_disable();
}
void main()
{
uchar a=0,b=0,d=2;
uint c;
TH0=0;
TL0=0;
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
a=0;
while(1)
{
a++;
d++;
sector_erase();
byte_program(0x00,a);
byte_program(0x01,d);
c=byte_read(0x00)*256+byte_read(0x01);
}
}
|