如果是访问flash之类的可擦写ROM可以当成是外部RAM使用,一般通过absacc.h
里的XBYTE[addr] 来定义外部地址的。
PS:如果是常量需要保存到ROM的指定地址,查看项目文件下的*.m51文件,里面有程序段及常数段的地址分配,修改code memory 下的BASE(起始地址、基地址)和LENGTH(长度、字节数)值,可以指定程序段或常量的ROM地址。
控制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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)