4 程序设计
在此给出写操作部分程序,读操作和擦除操作均可参考文中流程图来编程,值得注意的是其它具体写地址操作应仔细阅读
K9F1G08U0M芯片资料。
#include
#define CLE BIT3
#define ALE BIT3
#define WE BIT6
#define CE BIT4
#define RE BIT5
#define RB BIT7
void ReadFlash(); //读FLASH子程序
void WriteFlash(); //写FLASH子程序
void inituart(void); //初始化异步串行通信
void Write10h(); //写控制字10h子程序
void WriteCommand(); //写命令字写地址
void ClrFlash(); //擦除FLASH子程序
unsigned int k,i,a
void main ()
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 &= ~XT2OFF;
do
{
IFG1 &= ~OFIFG;
for (iq0=0x05; iq0>0; iq0--);
} //检验晶振是否起振
while ((IFG1 & OFIFG)!= 0);
BCSCTL2 = SELM_2 + SELS + DIVS0;
//SMCLK选择2分频后的4M
While(k<0xFC00) //页数<64512时执行
{
WriteCommand(); //调用写控制字写地址子程序
While(i<2048) //字节数<2048时执行循环
{
WriteFlash(); //调用写数据子程序,
32个字节
i=i+32; //字节数+32
}
i=0; //一页写完后,字节数置0
Write10h(); //调用写10h子程序
while(!(P2IN & RB)); //等待RB信号变高
k++; //页数+1
}
k=0; //页数置0
LPM4; //全部写完后,MSP430进入低功耗模式4
5 结束语
MSP430系列单片机具有实时处理能力强、运行速度快、性价比高等特点。本文介绍了FLASH K9F1G08U0M在由MSP430F149组成的嵌入式系统中的应用,实验表明: 整个系统简单可靠、功能完善、运行稳定,具有实用价值。本文作者创新点:实现了MSP430单片机和NAND Flash两种低功耗芯片在嵌入式系统中的应用,完成了对FLASH的写操作、读操作及擦除操作,达到了系统的微体积和低功耗特性。