合泰单片机 C语言读写片内EEPROM怎么不行呢?求高手指点!!!

Python021

合泰单片机 C语言读写片内EEPROM怎么不行呢?求高手指点!!!,第1张

控制EEPROM存取的EEC寄存器是位于bank1地址的40H处,所以必须做bank的切换并搭配MP1的间接寻址才能正确地进行位状态的设置。

程序参考:

unsigned short Read()

{

unsinged short Backup

_mp1=0x40

Backup=_bp bp=1

RDEN=1RD=1

while(RD)

_iar1=0

_bp=Backup

return _edd

}

void Write(unsinged short a)

{

unsinged short Backup

_eed=a

_mp1=0x40

Backup=_bp bp=1

WREN=1WR=1

while(WR)

_iar1=0

_bp=Backup

}

#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

sbit Waveout1=P1^0

sbit CF=P3^2//调节频率

int num,a,f

int Timer0_H,Timer0_L

void Init()

{

num=0

a=1000

f=2

Waveout1=0

TMOD=0x02

TH0=(uint)(256-(1000/(2*f)))

TL0=(uint)(256-(1000/(2*f)))

ET0=1

EA=1

TR0=1

}

void main()

{

Init()

while(1)

{

if(CF==0)

{

f++

TH0=(int)(256-(1000/(2*f)))

TL0=(int)(256-(1000/(2*f)))

while(CF==0)

}

if(num==a)

{

num=0

Waveout1=~Waveout1

}

}

}

void Timer0()interrupt 1

{

num++

}