K9F5608A的MCS-51單片機驅(qū)動程序主要包括函數(shù)聲明管腳定義部分、命令操作函數(shù)以及數(shù)據(jù)輸出函數(shù)。
(1)函數(shù)聲明管腳定義部分主要完成程序所涉及的庫函數(shù)的聲明及有關(guān)引腳的定義,一般置于程序的開頭部分,代碼如下:
(2)命令操作函數(shù)NFCommand()。
NfCommand()函數(shù)實現(xiàn)向K9F5608發(fā)送操作命令,程序代碼如下:
(3)地址發(fā)送函數(shù)NfAddre()。
NfAddre()函數(shù)完成向K9F5608發(fā)送3字節(jié)地址數(shù)據(jù),程序代碼如下:
(4)頁讀函數(shù)。
頁讀函數(shù)實現(xiàn)對K9F5608數(shù)據(jù)的頁讀功能,主要包括ReadPageF()、ReadPage()和ReadPageS()等3種函數(shù),相關(guān)程序代碼如下:
(5)字節(jié)讀函數(shù)。
字節(jié)讀函數(shù)包括ReadByte()和ReaDSPare()兩種,其中函數(shù)ReadByte()實現(xiàn)只讀取一個字節(jié)功能,ReadSpare()完成保留字節(jié)的單字節(jié)讀功能。程序代碼如下:
(6)字節(jié)寫函數(shù)。
與字節(jié)讀函數(shù)對應(yīng),字節(jié)寫函數(shù)包括WirteByte()和WirteSpare()兩種,其中函數(shù)RWirteByte()實現(xiàn)只寫入一個字節(jié)功能,WirteSpare()完成保留字節(jié)的單字節(jié)寫功能。程序代碼如下:
(7)頁寫函數(shù)。
頁寫函數(shù)包括WirtePage()函數(shù)和WirtePageF()等兩個函數(shù),其中WirtePage()函數(shù)可連續(xù)讀寫256字節(jié)的數(shù)據(jù),WirtePageF()函數(shù)可連續(xù)讀512字節(jié)的數(shù)據(jù),具體的程序代碼如下:
(8)狀態(tài)讀函數(shù)ReadStatus()。
狀態(tài)讀函數(shù)ReadStatus()用于判斷操作是否正取,當IOO為0時,操作成功,為1時操作失敗,程序代碼如下:
(9)塊擦除函數(shù)EraseBLOCk()。
塊擦除函數(shù)EraseBlock()可實現(xiàn)數(shù)據(jù)塊的擦除功能,程序代碼如下:
(10)備份函數(shù)CopyBack()。
備份函數(shù)CopyBack()可完成數(shù)據(jù)的備份復(fù)制功能,程序代碼如下:
(11)ID號讀去函數(shù)intReadID()。
intReadID()函數(shù)可讀取NandFlash芯片的ID號,具體的程序代碼如下: