首页 理论教育 单片机控制技术:C51语言程序结构

单片机控制技术:C51语言程序结构

时间:2023-11-24 理论教育 版权反馈
【摘要】:下面结合单元2的项目程序介绍C51语言程序结构。因此,函数是C51程序的基本单位。C51语言规定,同一个字母由于大小写的不同可以代表两个不同的变量,如scon和SCON在C51语言程序中会被认为是两个完全不同的变量,这也是C51语言的一个特点。

单片机控制技术:C51语言程序结构

1.C51语言程序结构及特点

单片机C51语言兼备高级语言与低级语言的优点,语法结构和标准C语言基本一致,语言简洁,便于学习。该语言运行于单片机平台,支持的微处理器种类繁多,可移植性好。对于兼容的51系列单片机,只要将一个硬件型号下的程序稍加修改,甚至不加改变,就可移植到另一个不同型号的单片机中运行。采用C51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可增强可读性与可移植性。下面结合单元2的项目程序介绍C51语言程序结构。

通过以上的例子,我们可以看到:

·C51程序是由函数构成的。一个C51源程序至少包含一个函数(main函数),也可以包含一个main函数和若干个其他函数。因此,函数是C51程序的基本单位。

·一个函数由两部分组成:函数的说明部分和函数体。

(1)函数的说明部分,包括函数名、函数类型、函数属性、函数的参数名、参数的类型。

(2)函数体,即函数说明部分下面的一对大括号{……}中的内容。函数体一般包括变量定义和执行部分,执行部分由若干语句组成。

·一个C51程序总是从main函数开始执行,而不管这个main函数是处在程序的什么位置。

·C51程序书写自由,可以一行写几个语句,也可以几行写一个语句,但建议采用比较严格的书写方式。(www.xing528.com)

·每个语句和数据定义的最后必须加分号。

·可以用“/**/”的形式注释,keil C也支持C++风格的“//”形式注释。

C51源程序文件的扩展名为“.c”,如time.c、EX1_2.c等。可以看出,C51程序与普通C语言程序结构基本相同,本例程序使用了预处理命令#include,它告诉编译器在编译时将头文件reg51.h读入后一起编译。

C51编译库提供了十分丰富的库函数,库函数scanf()和printf()用来实现变量的输入和输出。C语言本身没有输入/输出功能,输入/输出需要通过函数调用来实现。需要注意的是,C51提供的输入/输出库函数是通过51单片机串行口来实现的,因此,在调用库函数scanf()和printf()之前,必须对51单片机的串行口进行初始化

C51语言规定,同一个字母由于大小写的不同可以代表两个不同的变量,如scon和SCON在C51语言程序中会被认为是两个完全不同的变量,这也是C51语言的一个特点。一般的习惯是在普通情况下采用小写字母,对于一些具有特殊意义的变量或常数采用大写字母,如51单片机特殊功能寄存器SCON、TMOD、TCON和TH1等均采用了大写字母。

2.关于头文件reg51.h说明

在C51程序中,第一条语句通常都是#include<reg51.h>,意思是将“reg51.h”的头文件加载进程序中。“reg51.h”是一些编译软件自带的51系列单片机特殊功能寄存器声明文件,这个头文件中包含了对P0~P3 I/O口、中断系统等几乎内部所有特殊功能寄存器的声明,其文件名“reg51.h”中的“reg”就是英文“register”(寄存器)的缩写。对特殊功能寄存器进行声明后,编写程序时就不需要使用难以记忆的寄存器地址来对寄存器进行操作了,每个寄存器都被声明了特定的人类容易记忆的名字,编程更加方便。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈