📄 eeprom.c
字号:
/*** BeginHeader */
#ifndef __EEPROM_C
#define __EEPROM_C
#include "includes.h"
#include "eeprom.h"
sbit cs_93 = P3^7;
sbit sk_93 = P2^7;
sbit di_93 = P2^6;
sbit do_93 = P2^5;
void delay(uint num)
{
while(num != 0)
num -= 1;
}
void send(uint dat, int num)
{
int i;
dat = dat << (16 - num);
for (i = 0; i < num; i++) {
if ((dat & 0x8000) == 0)
di_93 = 0;
else
di_93 = 1;
sk_93 = 1;
_nop_(); _nop_();
_nop_(); _nop_();
sk_93 = 0;
dat = dat << 1;
}
}
uchar read(uint address)
{
uchar temp;
int i;
di_93 = 0;
cs_93 = 0;
sk_93 = 0;
delay(5);
cs_93 = 1;
send((0x0c00 | address), 12);
temp = 0;
for (i = 0; i < 8; i++) {
temp = temp << 1;
sk_93 = 1;
sk_93 = 0;
if (do_93)
temp = temp | 0x01;
}
cs_93 = 0;
return temp;
}
uchar write(uint addr, uchar dat)
{
uchar temp;
uint i;
di_93 = 0;
cs_93 = 0;
sk_93 = 0;
delay(5);
cs_93 = 1;
send(0x0980, 12);
cs_93 = 0;
delay(5);
cs_93 = 1;
send((0x0a00 | addr), 12);
send(dat, 8);
cs_93 = 0;
cs_93 = 1;
temp = 1;
i = 50000;
while (!do_93) {
i--;
if (i == 0) {
temp = 0;
break;
}
}
cs_93 = 0;
delay(5);
cs_93 = 1;
send(0x0800, 12);
cs_93 = 0;
return temp;
}
void DelayMs(uchar t)
{
uchar j;
while (t--) {
for (j=0;j<125;j++);
}
}
#endif // __EEPROM_C
/*** EndHeader */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -