Cygnal 51单片机的特点与应用
6字符×2行):采用由HD44780构成的液晶显示模块。
输入电路由测量变压器、精密检波电路构成:电压互感器和电流互感器将被测电压和电流变换至精密检波电路所能接受的信号,然后经精密检波电路传送给8051F000的A/D。
输出控制电路由P1口输出控制信号,控制8路固态继电器的接通和短开。
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。
④如果不再进行擦除操作,将PSEE设置为‘0’。
擦除每个页需要10~20 ms的时间。注意CPU内核在Flash擦除过程中停止工作,但外设(像ADC,UART,SMBus和定时器)仍然工作。在擦除过程中产生的任何中断都将被挂起,直到该过程结束。在写一个Flash字节期间CPU的工作情况与此相同。
(3)写一个Flash字节
(4)更新Flash 中的数据
当保存一组配置信息时,经常需要在一组字节中单独改变某个字节的数值。单独更新某个字节(或字节子集)的一般过程如下:
①将Flash页拷贝到一个临时存储区(RAM或一个已被擦除的‘临时’Flash页)。
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- SHARC引领第四代通用DSP高端应用潮流(09-27)
- 在应用可编程测控网络设计(03-15)
- 基于dsPIC33F系列单片机的应用程序升级方法(04-03)
- 采用混合时钟模式提高Linux时钟精度的方法(05-10)
- MSP430低功耗原理及其在海温测量中的应用(06-06)