FLASH K9F1G08U0M在MSP430F149嵌入式系統(tǒng)中的應(yīng)用
4 程序設(shè)計(jì)
在此給出寫操作部分程序,讀操作和擦除操作均可參考文中流程圖來編程,值得注意的是其它具體寫地址操作應(yīng)仔細(xì)閱讀
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--);
} //檢驗(yàn)晶振是否起振
while ((IFG1 OFIFG)!= 0);
BCSCTL2 = SELM_2 + SELS + DIVS0;
//SMCLK選擇2分頻后的4M
While(k0xFC00) //頁數(shù)64512時(shí)執(zhí)行
{
WriteCommand(); //調(diào)用寫控制字寫地址子程序
While(i2048) //字節(jié)數(shù)2048時(shí)執(zhí)行循環(huán)
{
WriteFlash(); //調(diào)用寫數(shù)據(jù)子程序,
32個(gè)字節(jié)
i=i+32; //字節(jié)數(shù)+32
}
i=0; //一頁寫完后,字節(jié)數(shù)置0
Write10h(); //調(diào)用寫10h子程序
while(!(P2IN RB)); //等待RB信號(hào)變高
k++; //頁數(shù)+1
}
k=0; //頁數(shù)置0
LPM4; //全部寫完后,MSP430進(jìn)入低功耗模式4
5 結(jié)束語
MSP430系列單片機(jī)具有實(shí)時(shí)處理能力強(qiáng)、運(yùn)行速度快、性價(jià)比高等特點(diǎn)。本文介紹了FLASH K9F1G08U0M在由MSP430F149組成的嵌入式系統(tǒng)中的應(yīng)用,實(shí)驗(yàn)表明: 整個(gè)系統(tǒng)簡(jiǎn)單可靠、功能完善、運(yùn)行穩(wěn)定,具有實(shí)用價(jià)值。本文作者創(chuàng)新點(diǎn):實(shí)現(xiàn)了MSP430單片機(jī)和NAND Flash兩種低功耗芯片在嵌入式系統(tǒng)中的應(yīng)用,完成了對(duì)FLASH的寫操作、讀操作及擦除操作,達(dá)到了系統(tǒng)的微體積和低功耗特性。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論