📄 eep.c
字号:
#include<math.h>
#include<stdio.h>
#include<reg52.h>
#include <intrins.h>
#define NOP5 _nop_();_nop_();_nop_();
#define uchar unsigned char
#define uint unsigned int
sfr AUXR = 0x8e;
sfr AUXR1 = 0xa2;
sfr P4 = 0xe8;
sfr XICON = 0xc0;
sfr IPH = 0xb7;
sfr WDT_CONTR = 0xe1;
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;
ISP_IAP_BYTE_READ=1;
ISP_IAP_BYTE_PROGRAM=2;
ISP_IAP_SECTOR_ERASE=3;
WAIT_TIME=1;
int xdata mmdata,nndata,i,EEPROM_DATA[5];
int xdata flash_addres_h,flash_addres_l,isp_command,isp_data; ///important
long xdata isp_add,temp,temp1,ISP_EEP_ADDRES,ISP_OUT_DATA,ISP_IN_DATA;
uchar EEPROM_READ(flash_addres) //读取数据
{ uchar read;
ISP_ADDRH=flash_addres>>8;
ISP_ADDRL=flash_addres;
EA=0;
ISP_CONTR=0x81 ;
ISP_CMD=0x01 ;
ISP_TRIG=0x46;
ISP_TRIG=0xb9 ;
NOP5;
read=ISP_DATA;
EA=1;
return(read);
}
void EEPROM_WRITE(flash_addres,isp_data) //写入数据
{
ISP_ADDRH=flash_addres>>8;
ISP_ADDRL=flash_addres;
ISP_DATA=isp_data;
EA=0;
ISP_CONTR=0x81 ;
ISP_CMD=0x02 ;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
EA=1;
}
void EEPROM_FORMAT(flash_addres) //擦除
{ISP_ADDRH=flash_addres>>8;
ISP_ADDRL=flash_addres;
EA=0;
ISP_CONTR=0x81 ;
ISP_CMD=0x03;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
EA=1;
}
void EEPROM_CONTROL()
{ ISP_EEP_ADDRES=0x8020;
EEPROM_DATA[0]=EEPROM_READ(ISP_EEP_ADDRES);
ISP_EEP_ADDRES++;
EEPROM_DATA[1]=EEPROM_READ(ISP_EEP_ADDRES);
SBUF=EEPROM_DATA[0];
while(TI==0);
TI=0;
i++;
SBUF=EEPROM_DATA[1];
while(TI==0);
TI=0;
i++;
ISP_OUT_DATA=EEPROM_DATA[0];
if(ISP_OUT_DATA<=0xff)
{ EEPROM_DATA[1]++;
if(EEPROM_DATA[1]==0xff)
{EEPROM_DATA[0]++;
EEPROM_DATA[1]=0;
}
ISP_EEP_ADDRES=0x8020;
//format data
EEPROM_FORMAT(ISP_EEP_ADDRES);
EEPROM_WRITE(ISP_EEP_ADDRES,EEPROM_DATA[0]);
ISP_EEP_ADDRES++ ;
EEPROM_FORMAT(ISP_EEP_ADDRES);
EEPROM_WRITE(ISP_EEP_ADDRES,EEPROM_DATA[1]);
}
}
main()
{ long xdata aa[9]={'-','0','7','8','9','6','c','b',0x0a};
int i,j,k;
int xdata record1[5]={0,0};
// int ii,jj,kk,bbc,cbb;
// long xdata old_data,new_data; //important
int xdata record[5]={0x0a,0x0b,0x0c,0x0d,0x0e};
TMOD=0X20;
TL1=0xff;TH1=0xff;
SCON=0x50;PCON=0x80;
TR1=1;
temp=0;
i=0x00;
ISP_EEP_ADDRES=0x8020;
EEPROM_FORMAT(ISP_EEP_ADDRES);
NOP5;
EEPROM_WRITE(ISP_EEP_ADDRES,0x0c);
k=EEPROM_READ(ISP_EEP_ADDRES);
SBUF=k;
while(TI==0);
TI=0;
i++;
ISP_EEP_ADDRES++;
EEPROM_FORMAT(ISP_EEP_ADDRES);
NOP5;
EEPROM_WRITE(ISP_EEP_ADDRES,0x0b);
k=EEPROM_READ(ISP_EEP_ADDRES);
SBUF=k;
while(TI==0);
TI=0;
i++;
// while(i==0)
{ EEPROM_CONTROL();
}
TMOD=0X20;
TL1=0xff;TH1=0xff;
SCON=0x50;PCON=0x80;
TR1=1;
// SBUF=0xf0;
// while(TI==0);
// TI=0;
while(1)
{
P2=1;
TMOD=0X20;
TL1=0xff;TH1=0xff;
SCON=0x50;PCON=0x80;
TR1=1;
i=0;
j=0;
// PCON=0X08;
while(RI==0);
k=SBUF;
RI=0;
if (k==0x0a)
{ while(i<9)
{ SBUF=aa[i];
while(TI==0);
TI=0;
i++;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -