📄 eeprom.c
字号:
#include <iof1.h>
#include "eeprom.h"
//const uchar j[2]={10,1,};
unsigned char *erase;
//uint *eepromaddr;
void Init68hc11(void)
{//BPROT=0X00;//可以修改config,低4位为EEprom的保护
//CONFIG=0xBf;//高四位重新映像EEPROM
INIT=0X21;//寄存器,RAM空间映像,01为复位值
//TMSK2=0X00;//定时器分频,定时器屏蔽
//OPTION=0x10;//cop定时器溢出率
//SP=0X03FF;
//asm("LDS #0x03ff");//
CSCTL|=0x21;//64k
CSGSIZ|=0X40;
CSSTRH|=0x30;
}
/************************************/
void Delay(uchar n)
{uchar i,j,k;
for(i=0;i<n;i++)
{ for (j=0;j<200;j++)
{ for (k=0;k<10;k++)
{;
}
COPRST=0X55;
COPRST=0XAA;
}
}
}
/******************************************/
void EepromInit(void)
{
//OPTION|=0X40;//EEProm的时钟选择,低于1M时置Csel
//BPROT=0X00;//低4位置位时,禁止对一个区的EEprom进行编程
PPROG=0X00;//复位时:00
}
void EepromErase(uchar *addr)
{//erase=(volatile unsigned char*)(0xfe00);
erase=((volatile unsigned char*)(addr));
//for(i=((volatile unsigned char*)(addr));i<(volatile unsigned char*)(addr+number);i++)
//while(erase<(volatile unsigned char*)(0xf e00))
{PPROG=0X16;//擦除方式 块擦除
(*erase)=0xff;
PPROG=0X17;//打开编程电源
Delay(100);//延时10Ms
PPROG=0X00;//置为读出方式
}
}
/**********************/
void EepromBulkErase(void)
{uchar *i;
PPROG=0X06;//擦除方式
//i=((volatile unsigned char*)(0xfe00));
//i++;
//*i=0XFF;
EEPROMBASEADDRESS=0xdd;
PPROG=0X07;//打开编程电源
Delay(100);//延时10Ms
PPROG=0X00;//置为读出方式
/*#asm
ldab #0x06
stab $103b
stab $fe00
ldab #0x07
stab $103b
#endasm
Delay(100);
#asm
clr $103b
#endasm
*/
}
/*
******************写数据***************************
*/
void EepromByteWrite(uchar *aimaddr,uchar a)
{ //uchar *i;
//erase=(volatile unsigned char*)(aimaddr);
erase=(aimaddr);
PPROG=0X02;//允许锁存地址和数据
(*erase)=a;
PPROG=0X03;//加编程电压
Delay(20);//10ms
PPROG=0X00;//清除
}
/*************************************************/
void EepromWrite(uchar *aimaddr,uint number,uchar *source)
{ uchar i=0;
uchar *j;
j=(volatile unsigned char*)(aimaddr);
for(i=0;i<(number);i++) //写入数据EEprom
{PPROG=0X02;//允许锁存地址和数据
(*j)=(*source);
//EepromByteWrite(erase,*source);
source++;
j++;
PPROG=0X03;//加编程电压
/*PORTA|=0X08;
Delay(20);
PORTA&=0xf7;
Delay(20);*/
Delay(2);//10ms
PPROG=0X00;//清除
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -