单片微机原理与应用 教学课件 罗印升 素材包 第10章 C51程序设计基础与开发环境.pdf
文本预览下载声明
第10章 C51程序设计基础与开发环境
10.1 单片机的C语言概述
10.2 C51的数据类型
10.3 C51的运算符、表达式和规则
10.4 C51流程控制语句
10.5 C51的数组和结构
10.6 C51的指针与函数
10.7 Keil C51开发环境与程序调试
10.8 Proteus6.9与Keil C51的联合调试
10.1 单片机的C语言概述
1) C51系列头文件集中体现了各系列芯片的不同功能。
2) C51比ANSI C 多一种“位”类型。
3) 数据存储类型有很大的区别。
4) 在函数的使用上,由于51系列单片机系统的资源有限,它的编译系统不允
许过多的程序嵌套。
5) C51与标准ANSI C 的库函数的区别。
10.1.1 C51程序开发流程
10.1.2 C51程序结构
10.1.1 C51程序开发流程
1) 一般情况下,每个语句占用一行。
2) 不同结构层次的语句,从不同的起始位置开始,即在同一结构层次中的语
句,缩进同样的字数。
3) 表示结构层次的大括号,通常写在该结构语句第一字母的下方,与结构化
语句对齐,并占用一行。
图10-1 C51程序开发流程
10.1.2 C51程序结构
1. 不带参数的宏定义
2. 文件包含
3. Keil
4. 条件编译命令
5. C51源程序的结构
1. 不带参数的宏定义
不带参数的宏定义的格式为:#define 宏符号名
常量表达式
宏符号名一般采用大写形式。
例如:
#define PI 3.14 ∥用宏符号名PI代替定
点数3.14
2. 文件包含
文件包含的含义是在一个程序文件中包含其他
文件的内容。用文件包含命令可以实现文件包
含功能。文件包含命令的格式为
#include 文件名 或 #include 文件名
例如,在文件file1.c 中:
#include file2.c
3. Keil C51头文件
若程序中用到Keil C51头文件中的内容,则必须用#include实现包含。Keil C51
常用的头文件有:
absacc.h——包含允许直接访问5l系列单片机不同存储区的宏定义。
assert.h——文件定义assert宏,可以用来建立程序的测试条件。
ctyp.h——字符转换和分类程序。
intrins.h——文件包含指示编译器产生嵌入固有代码的程序的原型。
math.h——数学函数。
3. Keil C51头文件
reg51.h——定义51系列单片机的特殊功能寄存器。
reg52.h——定义52增强型单片机的特殊功能寄存器。
setjmp.h——定义jmp—buf类型和setjmp、longjmp程序的原型。
stdarg.h——可变长度参数列表程序。
stdlib.h——存储区分配程序。
stdio.h——一般输入/输出函数。
string.h——字符串操作程序、缓冲区操作程序。
在编译预处理时,对#include命令进行文件包含处理。实际上就是将文件file2.
c 中的全部内容复制插入到#include “file2.c”的命令处。
4. 条件编译命令
条件编译命令提供一种在编译过程中根据所求
条件的值有选择地包含不同代码的手段,实现
对程序源代码的各部分有选择地进行编译。
#if语句中包含一个常量表达式,若该表达式的
求值结果不等于0时,则执行其后的各行,直到
遇到#endif 、#elif或#else语句为止(预处理elif相
当于else if)。在#if语句中可以使用一个特殊的表
达式define(标识符):当标识符已经定义时,其
值为1;否则,其值为0 。
5. C51源程序的结构
1) C51语言是由函数构成的。
2) 一个C51程序总是从main 函数开始执行的,而不论main 函数在整个程序中
的位置如何。
3) 任何编程语言都支持注释语句。
(1) “文件包含”处理
(2) 符号P1—0 表示P1.0 引脚
(3) main() 称为“主函数”
10.2 C51的数据类型
10.2.1 C51的标识符与关键字
10.2.2 C51的数据类型与存储类型
10.2.3 51系列单片机硬件结构的C51定义
10.2.1 C51的标识符与关键字
1. 标识符
2. 关键字
1. 标识符
1) 所有标识符必须由一个字母(a~z ,A~Z
显示全部