要给单片机写程序 就要小小的懂一点语言(就懂一点点就够了)
C语言基础知识
(1)宏定义#define
格式:
#define新名称原内容
例如:
#define uchar unsigned char
注意这条语句后面没有分号,#define命令是用自编的字母组合(新名称)代替其后的所有内容,方便以后在程序中的应用。
#define uchar unsigned char一般在主程序前出现,程序中需要定义变量a时,就可以简化为"uchar a;",而没有必要写成"unsigned char a;"。
(2)for循环语句
格式:for(表达式1;表达式2;表达式3)
{
语句;(内部可以为空)
}
①运行步骤:
第一步:求解表达式1;
第二步:求解表达式2,若其值为真(非0即真),则执行for中的语句,然后求解表达式3;否则跳出for语句,不执行第3步。
重复步骤二。
②注意
三个表达式之间用分号隔开。三个表达式位置不能互换。
③举例说明
以下是一个简单的延时函数
unsigned int i;
for(i=2;i>0;i--);
第一步:执行i=2。
第二步:2>0,执行for中的语句,因为for中的语句为空,所以什么也不执行。
第三步:i--=i-1=2-1=1。
第四步:跳到第2步,1>0,执行for中的语句为空,所以什么也不执行。
第五步:1-1=0。
第六步:跳到第2步。0>0条件不成立。结束for语句。
以上就是一个时间很短的延时函数,让单片机什么也不执行,空耗时间。
如果需要一个时间较长的延时函数,采用嵌套(更多的for语句)方法。
unsigned int i,j;
for(i=1000;i>0;i--)//无分号
for(j=110;j>0;j--);//切记加上分号
以上是简化写法,延时函数写全如下:
unsigned int i,j;
for(i=1000;i>0;i--)
{
{
for(j=110;j>0;j--)
}
}