C51编程:函数调用方式与单片机应用

需积分: 32 5 下载量 114 浏览量 更新于2024-08-17 收藏 372KB PPT 举报
"这篇资料主要介绍了单片机的C51编程语言,特别是关于函数的调用方式。C51是专为51系列单片机设计的一种C语言编译器,具有良好的可读性和高效的代码生成,适用于单片机系统编程。C51与标准ANSI C的主要差异包括特定的位类型、数据存储类型、函数限制以及库函数的适应性。在C51中,函数可以作为语句、表达式或参数使用,提供了灵活性。" 在C51编程中,调用函数有三种主要方式: 1. 函数作为语句:这种调用方式不使用函数的返回值,只执行函数内的操作。例如,`refresh_led( );` 这一行代码调用了一个名为`refresh_led`的函数,执行该函数定义的动作,可能是在单片机上更新LED的状态。 2. 函数作为表达式:函数的返回值可以在表达式中使用。例如,`int k; k=sum(a,b);` 在这里,`sum(a,b)` 被调用来计算两个变量`a`和`b`的和,结果被赋值给`k`。 3. 函数作为一个参数:函数调用可以作为另一个函数的参数。如 `k=sum(sum(a,b),c);` 这里,`sum(a,b)` 的结果被用作`sum`函数的第二个参数,实现了对两个结果的再次求和。 C51语言相比标准ANSI C,有其独特之处,例如增加了对单片机硬件特性的支持,如位操作类型,以及针对51系列单片机的数据存储类型。由于单片机资源有限,C51的函数使用上可能会限制嵌套层数,并且部分ANSI C库函数被修改或排除,以适应单片机的环境,例如`printf`和`scanf`在C51中更多地用于串行通信而非屏幕输出。 在开发C51程序时,通常需要理解单片机的硬件结构和特性,使用特定的库函数,并遵循C51的编程规范。例如,例4-1中的程序展示了如何通过`#include<reg51.h>`引入头文件,以便访问51系列单片机的寄存器,实现简单的输入输出控制。通过这种方式,开发者可以利用C51的强大功能来控制单片机的硬件资源,实现各种复杂的系统功能。