在程序设计过程中,要充分利用C51语言的预处理命令。对于一些常用的常数,如TRUE,FALSE,PI以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义"#Define"或集中起来放在一个头文件中进行定义,再采用文件包含命令"#Include"将其加入到程序中去。这样当需要修改某个参量时,只须修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都作修改,从而有利于文件的维护和更新。现举例说明如下:
例1 对于不同的单片机晶振,程序取不同的延时时间,而且可根据外界条件的变化修改延时时间的长短。对于这样的程序,可利用宏定义和条件编译来实现。程序如下:
#Define Flag 1
|
|
#Ifdef Flag==1
|
#Define Fosc 6M
|
|
Delay=10;
|
|
#Elif Flag = = 0
|
|
#Define Fosc 8M
|
|
Delay=12;
|
|
#Else
|
#Define Fosc 12M
|
|
Delay=20;
|
|
#Endif
|
|
Main()
|
|
{
|
|
For(I=0;I
|
|
}
|
这样源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的Delay值,完成不同的目的。