2-1-1 C语言程序(课件)-《单片机技术与应用》同步教学(电子工业版)
2024-07-11
|
20页
|
41人阅读
|
4人下载
普通
内容正文:
子任务2-1-1 C语言程序
一.任务目标
(1)掌握C语言的程序结构
(2)掌握C语言的语言特点
三. 相关知识
在1-2-1.c源程序中,第1、2行是对程序进行简要说明,包括程序名称和功能。“//”是单行注释符号,程序在编译时,不对这些注释内容做任何处理。
第3行是C语言程序的预处理部分,文件包含语句,表示把语句中指定文件全部内容复制到此处,与当前的源 程序文件链接成一个源文件。
1)C与C51
C语言具有良好的可读性、可移植性和基本的硬件操作能力。C51是以C语言为基础,在结构、定义及函数的表达式等方面两者相同,不同的是C51的寄存器、位操作、数据分区等表述应用方式。
单片机不能直接执行C51程序,执行前必须经过编译,形成相应的可执行代码,目前开发的编译器种类繁多,并非所有的C51编译器产生高效代码。
(1)C51编译器
KEIL编译器效率很高,它支持浮点和长整数、重入和递归,支持DOS和Window环境,但它不提供库源代码,只能产生混合代码,若使用单片模式,它是最好的选择。
(2)C51的特点
① C语言采用与人的思维更接近的关键字和操作函数。
② C语言提供了大量的标准库文件
③ C语言采用模块化编程思想
④ C语言可移植性好
⑤ 通用性好
⑥ 寄存器分配和寻址方式由编译器进行管理
2)C51程序的基本结构
(1)结构形式
(2)结构说明
函数是C语言程序的基本单位,一个C语言程序可包含多个不同功能的函数,但一个C语言程序中只能有一个且必须有一个名为main( )的主函数。主函数的位置可在其它功能函数的前面、之间或最后。当功能函数位于主函数的后面位置时,在主函数调用时,必须“先声明”。C语言程序总是从main( )主函数开始执行。主函数可通过直接书写语句或调用功能子函数来完成任务。功能子函数可以是C语言本身提供的库函数,也可以是用户自己编写的函数。
C51程序书写格式自由,一行内可以写几个语句,分号是C51语句的重要组成部分,每个语句和数据定义(函数除外)的最后必须有一个分号。可以用//在每一行进行注释,也可以用/*……*/对C51程序中的任何部分作注释。
(3)库函数与自定义函数
库函数是针对一些经常使用的算法,经前人开发、归纳、整理形成的通用功能子函数。Keil C51内部有数百个库函数,可供用户调用,调用Keil C51的库函数时只需要包含具有该函数说明的相应的头文件即可,如#include<REG51.H>。当使用不同类型的单片机时,可包含其相应的头文件。若无专门的头文件,则首先应包含典型的头文件,即REG51.H,其它的新增的功能符号直接用sfr语句定义其地址。
3)标识符与关键字
(1)标识符
标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。
(2)关键字
关键字是编程语言保留的特殊标识符,也称为保留字,它们具有固定名称和含义。在C语言的程序编写中,不允许标识符与关键字相同。
4)数据类型
数据类型决定其取值范围、占用存储器的大小及可参与哪种运算。
(1)C语言的基本数据类型有char、int、short、long、float、double等六种类型。C51不支持复杂的双精度浮点运算(double)。
(2)C51的float也与标准C一样符合IEEE-754标准,但float的使用和运算,需要调用数学库“math.h”函数的支持。
(3)C51变量中的存储模式与标准C语言中的变量的存储模式不相同。
(4)C51语言与标准C语言的输入输出处理不相同。
C51和标准C语言的区别如下:
隐式转换按以下优先级别(由低到高)自动进行:bit→char→int→long→float→signed→unsigned。
5)常量与变量及存储器类型
(1)常量
① 整型常量。
② 实型常量
③ 字符型常量。
④ 字符串常量。
⑤ 符号常量。
(2)变量
① 局部变量。
② 全局变量
(3)存储器类型
在使用一个变量或常量之前,必须先对该变量或常量进行定义,指出它的数据类型和存储器类型,以便编译系统为它们分配相应的存储单元。
变量的存储种类。变量的存储种类有4种,分别为:auto(自动)、extern(外部)、static(静态)、register(寄存器)。
(4)MCS-51单片机特殊功能寄存器变量的定义
① 使用关键字sfr定义
② 通过头文件访问SFR
③ SFR中位定义
① 使用关键字sfr定义
6)常用的运算符
(1)算术运算符
算术运算的操作符:+ (加法运算符)、- (减法运算符)* (乘法运算符)、/ (除法运算符)% (模运算或取余运算符)++为自增运算符- -为自减运算符。
(2)关系运算符
关系运算符主要用于比较操作数的大小关系。
包括:< (小于)、<= (小于等于)、> (大于)、>= (大于等于)、= = (等于)、!= (不等于)
(3)逻辑运算符
进行逻辑运算的操作符。包括:&& (逻辑与)、|| (逻辑或)、!(逻辑非)
逻辑运算的结果只有两个:“真”为1,“假”为0。
(4)位运算符
将两个操作数按二进制数展开,然后对应位进行逻辑运算。包括:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(位左移)、>>(位右移)。
(5)逗号运算符
逗号运算符可以将两个或多个表达式连接起来,称为逗号表达式。逗号表达式的一般形式为:表达式1,表达式2,表达式3,……,表达式n
(6)条件运算符
条件运算符要求有3个运算对象,用它可以将3个表达式连接构成一个条件表达式。条件表达式的一般形式为:表达式1?表达式2:表达式3
(7)赋值运算符
在C语言,最常见的赋值运算符为“=”利用赋值运算将一个变量与一个表达式连接起来的式子称为赋值表达式,在赋值表达式的后面加一个“;”便构成了语句。
7)数组与指针
(1)数组
① 一维数组
② 二维数组
③ 字符数组
④ 数组元素赋初值
⑤ 数组作为函数的参数
(2)指针
① 指针与地址
② 指针变量的引用
③ 数组指针与指向数组的指针变量
④ 指针变量的运算
Thank you!
$$
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。