《第七讲延时子函数PPT优秀课件》由会员分享,可在线阅读,更多相关《第七讲延时子函数PPT优秀课件(12页珍藏版)》请在金锄头文库上搜索。
1、延时子函数1 引入:通过前几次课的学习,我们已经知道了控制LED闪烁程序设计,同时,也能对闪烁的快慢进行适当的调节。但,如果需要较为准确的延时,程序应该怎么编写呢? 能不能将这一部分模块化,直接调用?2子函数的编写与调用子函数的编写与调用利用利用forfor语句实现延时语句实现延时3一、利用for语句实现延时(重难点)1、延时程序(空转)for(a=1000;a0;a-) for(b=125;b0;b-) “for(b=125;b0;b-)”将会被执行1000*125=125000次,所需时间约等于1000ms,即1s。我们可以在b不变的情况下,改变a的值,得到需要的时间 2s=2000*12
2、5 (a=2000) 0.5s=500*125 (a=500)会被执行多少次?4for(a=1000;a0;a-) for(b=125;b0;b-) *此处变量a,b,x需提前给出数据类型;注意这两条语句名尾的标点符号 红色框内即为延时模块,延时时间由x决定。当x=1000,延时1s,x=500时,延时0.5s。for(a=1000;a0;a-) for(b=125;b0;b-);for(a=1000;a0;a-)for(b=125;b0;b-);2、程序化简:for(a=x;a0;a-)for(b=125;b0;b-);5二、子函数1、作用:将部分程序段模块化,防止重复编写,使用时直接调用。
3、如不使用子函数并不一定影响程序执行,但整个主函数将非常臃肿。比如:void main() while(1) P1=0x00; for(a=1000;a0;a-) for(b=125;b0;b-); P1=0xff; for(a=1000;a0;a-) for(b=125;b0;b-); 重复书写!62、子函数的基本结构 void 名称(定义变量) /无变量时为空/ 程序语句; void yanshi(uint x) uint a,b; for(a=x;a0;a-) for(b=125;b0;b-); 73、子函数的调用 格式:子函数名称(常量/变量);yanshi(1000); for(a=1
4、000;a0;a-) for(b=125;b0;b-);m=1000;yanshi(m); for(a=1000;a0;a-) for(b=125;b0;b-);等同于执行等同于执行延时1s延时1s84、子函数使用规则、子函数使用规则1)不是每个)不是每个C语言程序都必须要有子函数。语言程序都必须要有子函数。2)子函数必须预先声明。)子函数必须预先声明。格式为:格式为:void 子函数名(数据类型);子函数名(数据类型);3)子函数不能自动运行,必须被调用后才能)子函数不能自动运行,必须被调用后才能被执行。被执行。4)主函数可以调用子函数,子函数也可以调)主函数可以调用子函数,子函数也可以调用
5、子函数,但子函数不能调用主函数。用子函数,但子函数不能调用主函数。5)子函数通常取易记不与系统冲突的名字。)子函数通常取易记不与系统冲突的名字。要注意区分大小写。要注意区分大小写。9三、八只LED闪烁完整程序#include /导入头文件/#define uint unsigned int /宏定义/ void yanshi(uint); /声明子函数/void main() while(1) P1=0x00; yanshi(1000); /灯亮1s/ P1=0xff; yanshi(1000); /灯灭1s/ void yanshi(uint x) uint i,j; for(i=x;i0;
6、i-) for(j=125;j0;j-); 声明部分声明部分死循环死循环主函数主函数子函数子函数包含调用完成亮灭交替完成延时预备工作 P1=P1; yanshi(1000); 10 我们已经学习了灯的闪烁及时间的准确设置,如果希望八只LED从左往右或从右往左轮流点亮(逐一点亮),程序应该怎么写呢?111、如果让接在、如果让接在P1口的八只口的八只LED同时闪烁,同时闪烁,亮一秒钟灭两秒钟。程序应该怎么设计亮一秒钟灭两秒钟。程序应该怎么设计?2、子函数命名时为小写、子函数命名时为小写, 调用时为大写,调用时为大写,程序程序 (能(能/不能)正常执行。不能)正常执行。3、子函数使用规则有哪些?、子函数使用规则有哪些? 12