新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Cygnal 51單片機的特點與應用

        Cygnal 51單片機的特點與應用

        作者: 時間:2011-12-06 來源:網絡 收藏

        3.2軟件設計

        軟件設計有幾點需要注意:

        3.2.1如何從程序寫Flash

        (1)要點

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

        (2)擦除一個Flash頁

        在進行Flash寫或擦除之前,必須根據當前的系統時鐘設置FLSCL中的FLASCL位,在進行寫之前必須將PSWE置1。在進行Flash擦除之前,必須將PSWE和PSEE置1。

        一個Flash頁可以通過下述過程擦除:

        ①根據當前系統時鐘頻率值按C8051F000數據表的說明設置FLSCL(當使用缺省的2 MHz內部振蕩器時,FLSCL=0x86)。

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

        42.jpg

        ④如果不再進行擦除操作,將PSEE設置為‘0’。

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

        (3)寫一個Flash字節

        43.jpg

        (4)更新Flash 中的數據

        當保存一組配置信息時,經常需要在一組字節中單獨改變某個字節的數值。單獨更新某個字節(或字節子集)的一般過程如下:

        ①將Flash頁拷貝到一個臨時存儲區(RAM或一個已被擦除的‘臨時’Flash頁)。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 房山区| 扎囊县| 博兴县| 和政县| 喀喇| 平南县| 嘉善县| 汝城县| 金塔县| 清水河县| 巴彦淖尔市| 汾西县| 招远市| 儋州市| 古蔺县| 苏尼特右旗| 宝应县| 集安市| 和林格尔县| 云梦县| 赣榆县| 武清区| 阿拉尔市| 祁连县| 铜鼓县| 开原市| 台北市| 苍山县| 措美县| 秭归县| 广平县| 肥东县| 乌什县| 武平县| 攀枝花市| 兴安盟| 缙云县| 诏安县| 无棣县| 马山县| 若尔盖县|