/*带参数的子程序返回例*/ #include<reg52.h> //头文件 #define uint unsigned int //宏定义,用uint来代替unsigned int sbit D1=P1^0; //定义位 void delay(uint); //定义带参数的子程序 void main() //主函数 { while(1) //While加1是大循环 { D1=0; //让D1为低电平,此时P1.0上的发光管亮 delay(100); //调用带参数的子程序 D1=1; //让D1为高电平,此时P1.0上的发光管不亮 delay(100); //调用带参数的子程序 } } void delay(uint z) //子程序函数体 { uint x,y; //定义一个变量X for(x=z;x>0;x--) //for循环,先执行X=Z,再判断X是否大于0,如果大于0就执行下一个for语句,执行完后再执行X-- for(y=1250;y>0;y--); //for循环,先执行Y=20,再判断y是否大于0,由于这条语句没有函数体所以直接执行y-- } /* for语句的运用方式: 标准格式为: for(表达式1;表达式2;表达式3) { 语句(内部可为空) } 先执行表达式1,然后执行表达式2(判断表达式2是否为0,如果为0就退出for语句,如果不是0就执行大括号中的语句)执行完后再执行 表达式3,然后再回头执行表达式2,这样返复下去一直到表达式2为0然后通出 */ /* while语句的运用方式: 标准格式为: while(表达式) { 语句(内部可为空) } 先判断表达式是否为0,如果是0就跳出while语句,如果不是0就执行大括号里的语句。 如果要让程序大循环可以这样写:while(1) 因为表达式永远是1,所以程序永远执行while大括号中的语句。 如果要让程序执行到哪一处停止可以这样写: while(1); */ |