单片机c语言延迟函数中函数的参数分为什么和什么

51单片机的中断函数_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机的中断函数
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢查看: 1946|回复: 0
单片机用数组名作为函数的参数进行传递实验
是用51hei单片机开发板 电路图详见:&&的数码管部分, 用2个74hc573 锁存,p0口作为数据口 ,p3.6和p3.7分别是段和位的锁存端口.P2口上面是按键#include&reg52.h&
#define uchar unsigned char
#define uint unsigned int
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit D=P3^6;
sbit V=P3^7;
uchar ACT[4]={0xfe,0xfd,0xfb,0xf7};
//===============
void sum(uint *q,uint n)
{
uint i,s;
uint *t;
t=q;
for(i=0;i&n;i++)s=s+*(t+i);
t=q+10;
*t=s;
}
//==========
void delay(uint k)
{
uint i,j;
for(i=0;i&k;i++){
for(j=0;j&121;j++)
{;}}
}
//===============
void main(void)
{
uint a[11]={0,1,2,3,4,5,6,7,8,9,0};
uint *pt,len=10;
pt=a;
sum(a,len);
while(1)
{
D=1;P0=SEG7[a[10]/1000];D=0;P0=0V=1;P0=ACT[0];V=0;delay(5);
D=1;P0=SEG7[(a[10]/100)%10];D=0;P0=0V=1;P0=ACT[1];V=0;delay(5);
D=1;P0=SEG7[(a[10]/10)%10];D=0;P0=0V=1;P0=ACT[2];V=0;delay(5);
D=1;P0=SEG7[a[10]%10];D=0;P0=0V=1;P0=ACT[3];V=0;delay(5);
& &}
}复制代码
Powered by数组作为函数参数
本文所属图书&>&
本书全面详细地讲述了单片机的原理、编程指南及应用案例,其中51系列单片机的编程部分是本书的重点。全书分为5篇共38章。首先介绍51系列单片机的开发概述及单片机的基本结构,接着介绍单片机的汇编程序设计语言,...&&
数组可以作为函数的参数使用,进行数据传送。在C51语言中,数组作为函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。下面分别进行讲解。
1.数组元素作为函数实参
数组元素作为函数实参是指在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。其中数组元素就是下标变量,与普通变量是完全相同的。下面举例讲解数组元素作为函数实参在程序设计中的应用。这里自定义一个函数fun,用于判别一个整数数组中各元素的值,若是奇数,则输出该值,否则不输出。程序代码示例如下:
#include &stdio.h&&&&&&&&&&&&&&&&&&&&&&&&&& //头文件
void fun(int a)&&&&&&&&&&&&&&&&&&&&&&&&&&&& //定义函数
if(a%2==1)&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& //判断是否为奇数
&&& printf(&%d\n&,a);&&&&&&&&&&&&&&&&&&&&&&&&&& //如果是,则输出
void main()&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& //主函数
int num[5]={1,2,3,4,5};&&&&&&&&&&&&&&&&&&&& //定义并初始化数组
for(i=0;i&5;i++)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //循环调用函数
&&& fun(num[i]);
该程序可以在Keil &Vision3编译环境中执行,运行的结果如下:
在本程序中,首先定义一个无返回值函数fun,并说明其形参a为整型变量。在函数体中,根据a值输出相应的结果。在main函数中,首先初始化一个整型数组,然后用一个for语句循环fun函数,即把数组元素num[i]的值传送给形参a,供fun函数使用。
2.数组名作为函数参数
数组名作为函数参数是指在发生函数调用时,把作为实参的数组名传送给形参,实现单向的值传送。
在普通变量或数组元素作为函数参数时,形参变量和实参变量是由编译分配的两个不同的内存单元。在函数调用时发生的值传送是把实参变量的值赋予形参变量;而在用数组名作为函数参数时,不是把实参数组的每一个元素的值都赋予形参数组的各个元素,只是将实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
下面举例讲解数组名作为函数参数的应用,定义一个数组a中存放了一个学生5门课程的成绩,求平均成绩。程序示例如下:
#include &stdio.h&&&&&&&&&&&&&&&&&& &&& &&& //头文件
int sum(int num[5])&&&&&&&&&&&&&&&&&&&& &&& //定义函数,用于求和
int sum=0;
for(i=0;i&5;i++)
&&& sum=sum+num[i];
void main()&&&&&&&&&&&&&&&&&&&& &&&&&&& &&& //主函数
int num[5]={1,2,3,4,5};&&&&&&&&&&&& &&& &&& //定义并初始化数组
sum1=sum(num);&&&&&&&&&&&&&&&&&&&&& &&&&&&& //调用函数
printf(&the sum of num is %d\n&,sum1);&&&&& &&& //输出结果
该程序可以在Keil &Vision3编译环境中执行,运行的结果如下:
the sum of num is 15
本例中,首先定义了一个整型函数sum,有一个形参为整型数组num,长度为5。在函数sum中,把各元素值相加求和,并将结果返回给主函数。主函数中首先初始化一个数组num用于存放一个学生5门课程的成绩,然后以num作为实参调用sum函数,函数返回值保存在sum1中,最后输出sum1值。
注意:用数组元素作为实参时,只要数组类型和函数的形参变量的类型一致,并不要求函数的形参也是下标变量;而用数组名作为函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时,就会发生错误。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书单片机课程设计代码和参数_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机课程设计代码和参数
&&单片机课程设计
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩20页未读,
定制HR最喜欢的简历
你可能喜欢STC单片机C语言程序设计 第14章 STC单片机C语言函数_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
STC单片机C语言程序设计 第14章 STC单片机C语言函数
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩114页未读,
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 单片机延时函数 的文章

 

随机推荐