8.6.2 C51的变量初始化文件

变量初始化文件用于对源程序中声明的变量进行初始化赋值。在KeilµVision3集成开发环境中,主要的变量初始化文件为INIT.A51。此外,对于不使用外部XDATA存储器的RTX-51 TINY实时操作系统,还提供了INIT_TNY.A51变量初始化文件。

变量初始化文件的目标代码已经驻留在KeilµVision3的编译器的运行库内。当用户的C51源程序中包含有初始值的外部变量和静态变量时,连接定位器BL51将会自动将该变量初始化文件代码加入到C51源程序的前面,对已确定初始化的外部变量和静态变量进行赋值。如果需要对变量初始化文件进行修改,可以将其添加到用户自己的项目文件中,修改完毕后重新对项目进行编译即可。

变量初始化文件INIT.A51包含一个看门狗定时器的宏定义WATCHDOG。如果程序使用了看门狗定时器,并且对变量初始化处理所需的时间比看门狗定时器的刷新时间要长。此时宏定义WATCHDOG中必须包含看门狗刷新时间的代码。

例如,对于AT89S52单片机,如果系统使用了看门狗定时器,则可在变量初始化文件INIT.A51开始处加入以下语句。


T3 EQU 0FFH//看门狗定时器的地址

PCON EQU 087H//特殊功能寄存器PCON的地址

WATCH_TNTV EQU 156//设置监视间隔为200ms


将WATCHDOG宏定义修改为如下形式。


WATCHDOG MACRO

ORL PCON,#10H//将PCON.4置位

MOV T3,#WATCH_TNTV//写入时间间隔

ENDM


然后,将修改后的变量初始化文件添加到项目中,重新进行编译即可。

除了INIT.A51文件和INIT_TNY.A51文件外,还有一些用于特殊系列单片机的变量初始化文件,如INIT751.A51、INIT_MX.A51等,其用法和INIT.A51文件类似,这里不再具体介绍。