PIC12F617 关于内部FLASH的操作
时间:11-18
来源:互联网
点击:
根据PIC12F617单片机的datasheet,已经写清楚关于FLASH的操作时序,我们只需要进行一系列的配置和读写时序操作即可。
void flash_write(unsigned short addr,unsigned int value) //写FLASH函数
{
unsigned char i;
for(i=0;i<4;i++)
{
PMADRL=(((addr)&0xfc)|i); //低地址时序操作,需要连续四次的写入缓冲操作,当执行到第四次时,
//硬件会自动擦除相应FLASH然后写入
PMADRH=((addr)>>8);
PMDATH=((value)>>8);
PMDATL=((value)&0xff);
WREN=1;
GIE = 0; //关中断
PMCON2 = 0x55;
PMCON2 = 0xaa; //固定操作
WR=1;
NOP();
NOP();
WREN=0;
GIE = 1; //开中断
}
}
unsigned int flash_read(unsigned short addr) //读FALSH函数
{
unsigned int val;
PMADRL=(addr)&0xff;
PMADRH=(addr)>>8;
//WREN=0;
GIE = 0; //关中断
PMCON1 |= 0x80;
RD=1;
NOP();
NOP();
val = ((PMDATH < 8) | PMDATL);
GIE = 1; //开中断
return val;
}
PIC12F617内部FLAS 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)