📄 eeprom.c
字号:
#include "msp430x14x.h"
#include "in430.h"
#include "sysdefine.h"
extern unsigned char flashvari_system[23];
extern void sys_timing(unsigned long delay_time);
void X24c64_Init(void)
{
P3DIR |= SDATA_2464;
P2OUT |= CLOCK_2464;
P3OUT |= SDATA_2464;
P2OUT &=~WPROT_2464;
}
void Start(void)
{
P3DIR |= SDATA_2464;
P3OUT |= SDATA_2464;
P2OUT |= CLOCK_2464;
P3OUT &=~SDATA_2464;
P2OUT &=~CLOCK_2464;
}
void Stop(void)
{
P3DIR |= SDATA_2464;
P3OUT &=~SDATA_2464;
P2OUT |= CLOCK_2464;
P3OUT |= SDATA_2464;
}
void Writex(unsigned char write_data)
{
unsigned char write_i,temp_data;
P3DIR |= SDATA_2464;
for(write_i=0;write_i<8;write_i++)
{
temp_data=write_data;
if(temp_data=(temp_data & 0x80) == 0x80)
{
P2OUT &=~CLOCK_2464;
P3OUT |= SDATA_2464;
P2OUT |= CLOCK_2464;
}
else
{
P2OUT &=~CLOCK_2464;
P3OUT &=~SDATA_2464;
P2OUT |= CLOCK_2464;
}
sys_timing(40);
write_data=write_data<<1;
}
P2OUT &=~CLOCK_2464;
P3OUT |= SDATA_2464;
}
unsigned char readx(void)
{
unsigned char i6,j6,k6=0;
P3DIR &=~SDATA_2464;
for(i6=0;i6<8;i6++)
{
P2OUT |= CLOCK_2464;
if((P3IN & SDATA_2464) == SDATA_2464)
{
j6=1;
}
else
{
j6=0;
}
k6=(k6<<1) | j6;
P2OUT &=~CLOCK_2464;
sys_timing(16);
}
P2OUT |= CLOCK_2464;
return(k6);
}
void Clock(void)
{
unsigned char i7=0;
P3DIR &=~SDATA_2464;
P2OUT |= CLOCK_2464;
while (((P3IN & SDATA_2464 ) == SDATA_2464) && (i7 < 255))
{
i7++;
}
P2OUT &=~CLOCK_2464;
}
unsigned char X24c64_Read(unsigned int address)
{
unsigned char read_number;
unsigned char temp2,temp3;
unsigned int temp1;
temp1=address;
temp3=(address >> 8) & 0xff;
temp2=temp1&0xff;
X24c64_Init();
Start();
Writex(0xa0);
Clock();
Writex(temp3);
Clock();
Writex(temp2);
Clock();
Start();
Writex(0xa1);
Clock();
read_number=readx();
Stop();
sys_timing(80);
return(read_number);
}
void X24c64_Write(unsigned int address, unsigned char write_number)
{
X24c64_Init();
Start();
Writex(0xa0);
Clock();
Writex(address/256);
Clock();
Writex(address%256);
Clock();
Writex(write_number);
Clock();
Stop();
sys_timing(1200);
}
void reb_system(void)
{
unsigned char i8;
for(i8=0;i8<23;i8++)
{
X24c64_Write(SYSDA_EPROM+i8,flashvari_system[i8]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -