|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
拋轉(zhuǎn)引玉 SM5964 開發(fā)心得! |
| 作者:鵲橋老仙 欄目:單片機(jī) |
在網(wǎng)上,經(jīng)常有網(wǎng)友問我關(guān)于使用新茂單片機(jī)時(shí)的一些問題,為方便大家學(xué)習(xí),特此把<SM5964的三種程序示例>獻(xiàn)給大家! 1.使用看門狗的程序 示例 2.可反復(fù)進(jìn)入ISP的程序 示例 3.利用剩余的Falsh空間存儲(chǔ)數(shù)據(jù) 示例 關(guān)鍵提示:CODE的絕對(duì)定位,方法在code_at.c中 ------------------------------------------------------------- // 使用看門狗的程序 示例 ------------------------------------------------------------- void WDTC_DOG(void)//在8958A/5964上,看門狗都能正常工作。 { WDTKEY = 0x1e; WDTKEY = 0xe1;//set WDTC = 0xa7;//dog_data; //喂狗 // SCONF = 0x01; //關(guān)ALEI WDTKEY = 0xe1; WDTKEY = 0x1e;//ONLY read } void CLOSE_DOG(void)//關(guān)狗 { WDTKEY = 0x1e; WDTKEY = 0xe1;//set WDTC = 0x00;//dog_data; //喂狗 WDTKEY = 0xe1; WDTKEY = 0x1e;//ONLY read } ------------------------------------------------------------- // 可反復(fù)進(jìn)入ISP的程序 示例 ------------------------------------------------------------- //條件判斷,是否進(jìn)入ISP if(!P1_6 && !P1_7)//條件由自己任意發(fā)揮... { ISP_ok = 1;//進(jìn)入ISP 條件成立 } if(ISP_ok != 0)//TEST.html">TEST ISP { ISP_ok = 0; CLOSE_DOG();//關(guān)狗 BEEP = 0;//TEST DelayMs(100); BEEP = 1;//TEST GoToIsp(); } ------------------------------------------------------------- //利用剩余的Falsh空間存儲(chǔ)數(shù)據(jù) 示例 ------------------------------------------------------------- //FLASH頁擦除 ISPFAH = (uCHAR)(((uint)Nkey_a)>>8); ISPFAL = (uCHAR)Nkey_a; ISPFD = 0x55; ISPFD = 0xaa; ISPFD = 0x55; ISPC = 0x82;//start to Page erase (512 byte) //寫FLASH ISPFAH = (uCHAR)(((uint)Nkey_a)>>8); ISPFAL = (uCHAR)Nkey_a; for(i=0;i<6;i++)//連續(xù)寫6字節(jié) { ISPFD = data_buf[i]; ISPC = 0x80;//start to program ISPFAL ++; } DelayMs(200);//此延時(shí)是必須的! ------------------------------------------------------------- //CODE的絕對(duì)定位 方法 ------------------------------------------------------------- //不能這樣定義:unsigned CHAR code Nkey_a[6] _at_ 0x0E000; //而是在BL51 Locate 下的 Code Range 欄填入: ?CO?CODE_AT(0E000h) //菜單路徑: Project / Options fo Target 'Target1' / 網(wǎng)站上有 整個(gè)Keil工程文件rar, 歡迎前來下載:(www.shmcu.com) 上海單片機(jī)網(wǎng) |
| 2樓: | >>參與討論 |
| 作者: cxd731 于 2005/9/19 9:54:00 發(fā)布:
SM5964制作工藝太差,建議不要在惡劣環(huán)境下使用 |
|
| 3樓: | >>參與討論 |
| 作者: 阿土伯 于 2005/9/19 14:05:00 發(fā)布:
向樓主 致敬! |
|
| 4樓: | >>參與討論 |
| 作者: dizhu 于 2005/9/26 15:05:00 發(fā)布:
關(guān)于“利用剩余的Falsh空間存儲(chǔ)數(shù)據(jù)”的不同看法 前段時(shí)間我在利用SM5964做一個(gè)項(xiàng)目的時(shí)候,找到老仙曾經(jīng)發(fā)的一個(gè)“在SM5964單片機(jī)內(nèi)存儲(chǔ)數(shù)據(jù)”的帖子和老仙在這里發(fā)的“利用剩余的Falsh空間存儲(chǔ)數(shù)據(jù)”一樣,不過小弟照做時(shí)改寫FLASH.html">FLASH沒有成功;后來仔細(xì)研究了下數(shù)據(jù)手冊(cè),在寫FLASH那部分的前面修改了一下,如下: //寫FLASH ISPFAH = (uchar)(((uint)Nkey_a)>>8); ISPFAL = (uchar)Nkey_a; //自己加的部分 ISPFD = 0x55; ISPFD = 0xaa; ISPFD = 0x55; for(i=0;i<6;i++)//連續(xù)寫6字節(jié) { ISPFD = data_buf[i]; ISPC = 0x80;//start to program ISPFAL ++; } DelayMs(200);//此延時(shí)是必須的! 經(jīng)修改后的程序運(yùn)行成功,可以任意修改存在code中(即該程序里面,數(shù)組Nkey_a)的數(shù)據(jù)。 不知老仙是否同意我的看法。 |
|
| 5樓: | >>參與討論 |
| 作者: swaryer 于 2005/9/26 23:07:00 發(fā)布:
現(xiàn)在有新版的SM5964出來,版本為SM5964A 改進(jìn)了制造工藝,同時(shí)增強(qiáng)其功能 新版的Syncmos 的MCU版本為SM5964A |
|
| 6樓: | >>參與討論 |
| 作者: 鵲橋老仙 于 2005/9/28 9:51:00 發(fā)布:
加了此代碼更好,是應(yīng)該加.這樣可以實(shí)現(xiàn)擦-寫-寫 我當(dāng)時(shí)只需要完成擦-寫,擦-寫,實(shí)現(xiàn)了就沒仔細(xì)研究之.還是因該加上這三句代碼為好. |
|
| 7樓: | >>參與討論 |
| 作者: dizhu 于 2005/12/23 16:46:00 發(fā)布:
雖然過了這么久了,還是感謝老仙的幫助。 要不我的項(xiàng)目也不會(huì)這么快完成!在此感謝你。以后大家多討論討論,共同進(jìn)步! |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |