|
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
K9F1208 |
作者:lbzzyh 欄目:技術交流 |
有人有K9F1208的程序例程嗎? 謝謝! |
2樓: | >>參與討論 |
作者: lbzzyh 于 2006/8/22 14:22:00 發(fā)布:
能給個例程嗎? 我想學習一下"新"知識. |
3樓: | >>參與討論 |
作者: lbzzyh 于 2006/8/22 14:23:00 發(fā)布:
不要笑話我落后啊 |
4樓: | >>參與討論 |
作者: gfs0521 于 2006/8/22 15:12:00 發(fā)布:
貼上來了 /******************************************************************** 本程序大部分功能調(diào)試通過,沒有調(diào)試或沒有通過已在功能模塊里說明 注: 本程序只供學習使用,未經(jīng)作者允許,不能用于其它任何用途 //模 塊 名:單片機控制K9F5608的讀寫程序 //創(chuàng) 建 者:電子伙伴 日期:2006-4-10 15:47 //修 改 者: 日期: //功能描述: //其他說明:50MHZ晶振,雙倍數(shù)振蕩頻率 單指令周期為0.12us //芯片型號: STC89C58RD //配 置: //版 本:V1.0 ********************************************************************/ unsigned CHAR ReadByte(unsigned int blockadd,unsigned CHAR pageadd); unsigned CHAR ReadSpare(unsigned int blockadd,unsigned CHAR pageadd); unsigned CHAR ReadStatus(void); unsigned int ReadID(void); void BadBlockScan(void); void CopyBack(unsigned int blockaddh_s,blockaddh_e); void EraseBlock(unsigned int blockadd); void NfAddre(unsigned int blockadd,unsigned CHAR pageadd); void NfCommand(unsigned CHAR Com); void ReadPage(unsigned int blockadd,unsigned CHAR pageadd); void ReadPageS(unsigned int blockadd,unsigned CHAR SELECT,pageadd); void WirteByte(unsigned int blockadd,unsigned CHAR pageadd,unsigned CHAR buf); void WirtePage(unsigned int blockadd,unsigned CHAR pageadd); void WirtePageF(unsigned int blockadd); void WirteSpare(unsigned int blockadd,unsigned CHAR pageadd,unsigned CHAR buf); /*============================================================================= //參 數(shù): unsigned CHAR Com //函數(shù)功能: 向K9F5608操作命令 =============================================================================*/ void NfCommand(unsigned CHAR Com) { NF_CLE=1; NF_WE=0; P1=Com; _nop_(); NF_WE=1; NF_CLE=0; P1=0xff; } /*============================================================================= //參 數(shù): unsigned int bolckadd 2nd 3th的地址 (Row地址) unsigned CHAR pageadd 1st的地址 (Column地址) //函數(shù)功能: 向K9F5608送地址 =============================================================================*/ void NfAddre(unsigned int blockadd,unsigned CHAR pageadd) { NF_ALE=1; NF_WE=0; P1=pageadd; _nop_(); NF_WE=1; //送地址第一個字節(jié) NF_WE=0; P1=blockadd&0xff; _nop_(); NF_WE=1; //送地址第二個字節(jié) NF_WE=0; P1=blockadd/256; _nop_(); NF_WE=1; //送地址第三個字節(jié) NF_ALE=0; P1=0xff; } /*============================================================================= //參 數(shù): unsigned int blockaddh 2nd 3th的地址 (Row地址) //函數(shù)功能: 頁讀 PAGE READ OPERATION 可連續(xù)讀512個字節(jié) =============================================================================*/ void ReadPageF(unsigned int blockadd) { unsigned int i; NF_RE=1;NF_CE=0;NF_CLE=0;NF_ALE=0;NF_WE=1;NF_WP=1; NfCommand(0); //送 讀命令 NfAddre(blockadd,0); //送開始字節(jié) NF_RB=1;while(!NF_RB); //Data Transfer from Cell to Register max 10us i=0; P1=0xff; do { NF_RE=0; DataArray[i]=P1; NF_RE=1; i++; } while(i<512); //第1 頁數(shù)據(jù)傳送數(shù)據(jù)完成 NF_CE=1; } /*============================================================================= //參 數(shù): unsigned int blockaddh 2nd 3th的地址 (Row地址) unsigned CHAR pageadd 1st的地址 (Column地址) //函數(shù)功能: 頁讀 PAGE READ OPERATION 可連續(xù)寫256個字節(jié) =============================================================================*/ void ReadPage(unsigned int blockadd,unsigned CHAR pageadd) { unsigned CHAR i; NF_RE=1;NF_CE=0;NF_CLE=0;NF_ALE=0;NF_WE=1;NF_WP=1; NfCommand(0); //送 讀命令 NfAddre(blockadd,pageadd); //送開始字節(jié)地址 NF_RB=1;while(!NF_RB); //Data Transfer from Cell to Register max 10us i=0; P1=0xff; do { NF_RE=0; DataArray[i]=P1; NF_RE=1; i++; } while(i); //頁數(shù)據(jù)傳送數(shù)據(jù)完成 NF_CE=1; } /*============================================================================= //參 數(shù): unsigned int blockaddh 2nd 3th的地址 (Row地址) unsigned CHAR pageadd 1st的地址 (Column地址) //函數(shù)功能: 頁讀 PAGE READ OPERATION 可連續(xù)寫512個字節(jié) //___沒有調(diào)試 =============================================================================*/ void ReadPageS(unsigned int blockadd,unsigned CHAR pageadd,SELECT) { NF_RE=1;NF_CE=0;NF_CLE=0;NF_ALE=0;NF_WE=1;NF_WP=1; NfCommand(SELECT); //送讀命令 NfAddre(blockadd,pageadd); //送開始字節(jié) NF_RB=1;while(!NF_RB); //Data Transfer from Cell to Register max 10us DataPtr+=pageadd; do { NF_RE=0; pageadd++; *DataPtr=P1; DataPtr++; NF_RE=1; } while(pageadd<256); //頁數(shù)據(jù)傳送數(shù)據(jù)完成 NF_CE=1; } /*============================================================================= //參 數(shù): unsigned int blockaddh 2nd 3th的地址 (Row地址) unsigned CHAR pageadd 1st的地址 (Column地址) //函數(shù)功能: BYTE READ OPERATION 只讀取一個字節(jié) =============================================================================*/ unsigned CHAR ReadByte(unsigned int blockadd,unsigned CHAR pageadd) { unsigned CHAR i; NF_RE=1;NF_CE=0;NF_CLE=0;NF_ALE=0;NF_WE=1;NF_WP=1; NfCommand(0); //送 讀命令 NfAddre(blockadd,pageadd); //送開始字節(jié) NF_RB=1;while(!NF_RB); //Data Transfer from Cell to Register max 10us NF_RE=0; P1=0xff; i=P1; NF_RE=1; NF_CE=1; return(i); } /*======= |
5樓: | >>參與討論 |
作者: LBZZYH 于 2006/8/23 12:33:00 發(fā)布:
GANXIE |
6樓: | >>參與討論 |
作者: LBZZYH 于 2006/8/23 12:34:00 發(fā)布:
謝謝gfs0521 |
|
|
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號 |