新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Cygnal 51單片機(jī)的特點(diǎn)與應(yīng)用

        Cygnal 51單片機(jī)的特點(diǎn)與應(yīng)用

        作者: 時(shí)間:2011-12-06 來源:網(wǎng)絡(luò) 收藏

        3.2軟件設(shè)計(jì)

        軟件設(shè)計(jì)有幾點(diǎn)需要注意:

        3.2.1如何從程序?qū)慒lash

        (1)要點(diǎn)

        在線編程允許將Flash像E2PROM一樣用于非易失性信息的存儲(chǔ),用MOVC指令讀取(MOVC a,@A+DPTR),用MOVX指令寫入(MOVX @A+DPTR, a)。Flash 是按一系列512 k的頁組織的,另外還有一個(gè)128 k的頁,該頁位于Flash的頂部,起始地址為0x8000 。由于寫操作只能寫入0, 因此在寫一個(gè)Flash字節(jié)之前,包含該字節(jié)的頁必須首先被擦除(使該頁中的所有位都為1),該字節(jié)必須被初始化為0xFF,一個(gè)Flash 擦除操作將一頁內(nèi)的所有字節(jié)初始化為0xFF。含有讀鎖定字節(jié)和寫/擦除鎖定字節(jié)的Flash 頁不能由用戶軟件擦除(但是,該頁可以由用戶軟件寫入),該頁只能通過JTAG 接口擦除。

        (2)擦除一個(gè)Flash頁

        在進(jìn)行Flash寫或擦除之前,必須根據(jù)當(dāng)前的系統(tǒng)時(shí)鐘設(shè)置FLSCL中的FLASCL位,在進(jìn)行寫之前必須將PSWE置1。在進(jìn)行Flash擦除之前,必須將PSWE和PSEE置1。

        一個(gè)Flash頁可以通過下述過程擦除:

        ①根據(jù)當(dāng)前系統(tǒng)時(shí)鐘頻率值按C8051F000數(shù)據(jù)表的說明設(shè)置FLSCL(當(dāng)使用缺省的2 MHz內(nèi)部振蕩器時(shí),FLSCL=0x86)。

        ②通過向PSCTL寫入03 H使PSWE和PSEE置1。

        42.jpg

        ④如果不再進(jìn)行擦除操作,將PSEE設(shè)置為‘0’。

        擦除每個(gè)頁需要10~20 ms的時(shí)間。注意CPU內(nèi)核在Flash擦除過程中停止工作,但外設(shè)(像ADC,UART,SMBus和定時(shí)器)仍然工作。在擦除過程中產(chǎn)生的任何中斷都將被掛起,直到該過程結(jié)束。在寫一個(gè)Flash字節(jié)期間CPU的工作情況與此相同。

        (3)寫一個(gè)Flash字節(jié)

        43.jpg

        (4)更新Flash 中的數(shù)據(jù)

        當(dāng)保存一組配置信息時(shí),經(jīng)常需要在一組字節(jié)中單獨(dú)改變某個(gè)字節(jié)的數(shù)值。單獨(dú)更新某個(gè)字節(jié)(或字節(jié)子集)的一般過程如下:

        ①將Flash頁拷貝到一個(gè)臨時(shí)存儲(chǔ)區(qū)(RAM或一個(gè)已被擦除的‘臨時(shí)’Flash頁)。


        上一頁 1 2 3 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 东乌珠穆沁旗| 周口市| 甘德县| 多伦县| 分宜县| 同德县| 北京市| 新邵县| 宝山区| 乐陵市| 囊谦县| 嘉黎县| 留坝县| 彰化县| 通化县| 临朐县| 敦化市| 涡阳县| 亳州市| 哈巴河县| 增城市| 莱芜市| 定南县| 肃南| 兴安县| 漳平市| 蛟河市| 墨玉县| 婺源县| 甘谷县| 保德县| 淅川县| 和平区| 麻城市| 任丘市| 衡南县| 石阡县| 宜兰市| 渭源县| 邯郸市| 清徐县|