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

关键词: 应用 特点 单片机 Cygnal

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版