1 / 12
文档名称:

第七讲 延时子函数.ppt

格式:ppt   大小:1,170KB   页数:12页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第七讲 延时子函数.ppt

上传人:相惜 2021/8/19 文件大小:1.14 MB

下载得到文件列表

第七讲 延时子函数.ppt

相关文档

文档介绍

文档介绍:延时子函数
1
精选版课件ppt
引入:通过前几次课的学****我们已经知道了控制LED闪烁程序设计,同时,也能对闪烁的快慢进行适当的调节。但,如果需要较为准确的延时,程序应该怎么编写呢?
能不能将这一部分模块化,直接调用?
2
精选版课件ppt
子函数的编写与调用
利用for语句实现延时
3
精选版课件ppt
一、利用for语句实现延时(重难点)
1、延时程序(空转)
for(a=1000;a>0;a--)
{
for(b=125;b>0;b--)
{
}
}
“for(b=125;b>0;b--)”将会被执行1000*125=125000次,所需时间约等于1000ms,即1s。
我们可以在b不变的情况下,改变a的值,得到需要的时间

2s=2000*125 (a=2000)
=500*125 (a=500)
会被执行多少次?
4
精选版课件ppt
for(a=1000;a>0;a--)
{
for(b=125;b>0;b--)
{
}
}
*此处变量a,b,x需提前给出数据类型;注意这两条语句名尾的标点符号
红色框内即为延时模块,延时时间由x决定。当x=1000,延时1s,x=500时,。
for(a=1000;a>0;a--)
{
for(b=125;b>0;b--);
}
for(a=1000;a>0;a--)
for(b=125;b>0;b--);
2、程序化简:
for(a=x;a>0;a--)
for(b=125;b>0;b--);
5
精选版课件ppt
二、子函数
1、作用:将部分程序段模块化,防止重复编写,使用时直接调用。如不使用子函数并不一定影响程序执行,但整个主函数将非常臃肿。比如:
void main()
{
while(1)
{
P1=0x00;
for(a=1000;a>0;a--)
for(b=125;b>0;b--);
P1=0xff;
for(a=1000;a>0;a--)
for(b=125;b>0;b--);
}
}
重复书写!!
6
精选版课件ppt
2、子函数的基本结构
void 名称(定义变量) //无变量时为空//
{
程序语句;
……
}
void yanshi(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=125;b>0;b--);
}
7
精选版课件ppt
3、子函数的调用
格式:子函数名称(常量/变量);
yanshi(1000);
for(a=1000;a>0;a--)
for(b=125;b>0;b--);
m=1000;
yanshi(m);
for(a=1000;a>0;a--)
for(b=125;b>0;b--);
等同于执行
等同于执行
延时1s
延时1s
8
精选版课件ppt
4、子函数使用规则
1)不是每个C语言程序都必须要有子函数。
2)子函数必须预先声明。
格式为:void 子函数名(数据类型);
3)子函数不能自动运行,必须被调用后才能被执行。
4)主函数可以调用子函数,子函数也可以调用子函数,但子函数不能调用主函数。
5)子函数通常取易记不与系统冲突的名字。要注意区分大小写。
9
精选版课件ppt
三、八只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;i>0;i--)
for(j=125;j>0;j--);
}
声明部分
死循环
主函数
子函数
包含
调用
完成亮灭交替
完成延时
预备工作
P1=~P1;