下载此文档

第七讲 延时子函数.ppt


文档分类:高等教育 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
延时子函数
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;

第七讲 延时子函数 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人相惜
  • 文件大小1.14 MB
  • 时间2021-08-19
最近更新