基于P89C51RD2 IAP功能的数据存取与软件升级

[09-12 17:48:49]   来源:http://www.88dzw.com  单片机学习   阅读:8814

文章摘要: 由于整个软件经汇编后大约20KB,因此,将地址为0000H~7FFFH的32KB内存空间作为程序空间,则可以仪器的升级预留足够的空间;而将8000H~0FFFFH的32KB闪存空间留作数据存储空间。由图1可以看出,从8000H~0FFFFH的32KB闪存空间由BLOCK3和BLOCK4两块组成,每一块为16KB,足可以存储10天的数据量。在实际操作中,将BLOCK3和BLOCK4轮流使用,当10天的数据量存满其中一块时,通过程序跳转到另一块中,在使用前先将该块擦除。这样BLOCK3和BLOCK4每过20天便分别被擦除和重写1次。对有关地址定义如下:ADDR_L EQU 30H ;被编程

基于P89C51RD2 IAP功能的数据存取与软件升级,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

由于整个软件经汇编后大约20KB,因此,将地址为0000H~7FFFH的32KB内存空间作为程序空间,则可以仪器的升级预留足够的空间;而将8000H~0FFFFH的32KB闪存空间留作数据存储空间。由图1可以看出,从8000H~0FFFFH的32KB闪存空间由BLOCK3和BLOCK4两块组成,每一块为16KB,足可以存储10天的数据量。在实际操作中,将BLOCK3和BLOCK4轮流使用,当10天的数据量存满其中一块时,通过程序跳转到另一块中,在使用前先将该块擦除。这样BLOCK3和BLOCK4每过20天便分别被擦除和重写1次。对有关地址定义如下:

ADDR_L EQU 30H ;被编程数据的低8位地址

ADDR_L EQU 31H ;被编程数据的高8位地址

DATA_TEMP EQU 32H ;被编程数据

ADDR_L,ADDR_H和DATA_TEMP的具体地址可以根据用户程序的实际情况进行定义;AUXR1,PGM_MTP的定义同前。有关子程序为:

擦除BL0CK3

ERSBLOCK3: ;BLOCK3擦除

MOV AUXR1,#20H ;AUXR1的位ENBOOT=1,寻址到固件

MOV R0,#11 ;晶振为11.0592MHz,取11

MOV R1,#01H ;R1=01H,块擦除

MOV DPTR,#8000H ;擦除BLOCK3

LCALL PGM_MTP ;调用,无返回参数

RET

擦除BL0CK4

EPSBLOCK4: ;BLOCK4擦除

MOV AUXR1,#20 ;AUXR1的位ENBOOT=1,寻址到固件

MOV R0,#11 ;晶振为11.0592MHz,取11

MOV R1,#01H ;RI=01H,块擦除

MOV DPTR,#0C000H ;擦除BLOCK4

LCALL PGM_MTP ;调用,无返回参数

RET

字节编程

WRDATA:

MOV AUXR1,#20H ;AUXR1的位ENBOOT=1,寻址到固件

MOV R0,#11 ;晶振为11.0592MHz,取11

MOV R1,#02H ;R1=02H,字节编程功能

MOV DPH,ADDR_H ;高8位地址

MOV DPL,ADDR_L ;低8位地址

MOV A,DATA_TEMP ;被编程数据

LCALL PGM_MTP ;调用,返回参数ACC=0,调用成功,非0调用失败

RET

读闪存字节内容

RDDATA:

MOV AUXR1,#20H ;AUXR1的位ENBOOT=1,寻址到固件

MOV R0,#11 ;晶振为11.0592MHz,取11

MOV R1,#03H ;R1=03H,读闪存字节内容

MOV DPL,ADDR_L ;低8位地址

MOV DPH,ADDR_H ;高8位地址

LCALL PGM_TEMP ;调用,返回参数ACC中为读出字节内容

RET

将上述4个子程序结合实际情况灵活运用,便可以实现数据的有效存储,而且这些数据在掉电后是不丢失的,完全达到系统要求。

4.2 IAP功能应用于仪器升级

利用P89C51RD2固有的ISP功能,在所设计的仪器中增加1个拨码开关,便可以实现智能仪器的软件升级。对操作人员的要不高,原理简单易行。具体方法请见参考文献4。

文献4所讨论的ISP功能与远程升级,实质上是在复位过程中,用相应的硬件控制使程序指针跳转到Boot ROM空间的0FC00H处。整个过程由ISP程序模块来控制,而用户程序由于是被升级程序,故完全失去了控制权,编程完毕,需要人工复位并使指针切换到用户程序空间中方可使新程序起作用。这给智能仪器升级带来了麻烦,如果巧妙地利用P89C51RD2的IAP功能,则可以使仪器升级变得更加简单。

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行