考试月时间,只是简单介绍了知识,一些实验和重点之后应该会标注,实验的步骤已经说明了,在本专栏的“单片机_实操过程”里面
目录
4.2.1 C51的变量(根据给出的定义说明变量的四大要素)
定义一个变量的完整格式(变量具有4大要素):〔存储种类〕数据类型〔存储类型〕变量名;
-
4.1 C51的程序结构
-
4.1.1 C51语言概述
-
两种51单片机编程语言:汇编语言和C51语言
- 汇编语言
- 是一种面向机器的编程语言,能直接操作单片机的硬件系统,如存储器、I/O端口、定时/计数器等。
- 优点:指令效率高、执行速度快,在实时性要求较高的场合有着不可替代的作用。
- 缺点:汇编语言属于低级编程语言,程序可读性差,移植困难,而且编程时还必须具体组织、分配存储器资源和处理端口数据,因而编程工作量很大。
- 51单片机操作数的简记符
- C51语言
- 是为51单片机设计的一种高级编程语言,属于标准C语言的一个子集。
- 优点:具有可读性强,易于调试维护,编程工作量小的特点。由于允许直接访问物理地址,能直接对硬件进行操作,可实现汇编语言的部分功能,因而兼有高级和低级语言的特点,适用范围广。目前C51语言已成为51单片机程序开发的主流编程方法。
- 结构化语言,代码紧凑——效率可与汇编语言媲美(但仍不如)
- 接近真实语言,程序可读性强——易于调试、维护
- 库函数丰富,编程工作量小——产品开发周期短
- 机器级控制能力,功能很强——适合于嵌入式系统开发
- 与汇编指令无关,易于掌握——在单片机基础上上手快
- 缺点:执行效率不如汇编语言
- C51语言所编制的源程序不能直接被计算机识别,必须转换成可执行语言(或称目标代码)后才能执行。
- 先将高级语言源程序全部转换为目标代码,然后再执行的方式叫做编译型执行方式。
- C51采用编译型执行方式,产生的目标代码可以脱离C51编程环境独立执行,程序执行速度快,代码效率高。
- 将源程序边转换,边执行的方式叫做解释型执行方式。
- 先将高级语言源程序全部转换为目标代码,然后再执行的方式叫做编译型执行方式。
- C51 VS 标准C语言
- 相同之处:语法规则、程序结构、编程方法
- 不同之处:数据结构(第4章)、中断处理(第5章)、端口扩展(第8章)
- 汇编语言
-
创建C51程序:
- “新建工程文件”→“选择单片机”→“编辑源程序”→“添加源程序” →“修改工程配置”→“进行程序编译”→生成可执行文件”。
-
-
4.1.2 C51的程序结构
- C51程序的基本单位是函数,一个C51源程序至少包含一个主函数,也可以是一个主函数和若干个其他函数。
- 主函数是程序的入口;
- 主函数中的所有语句执行完毕,则程序结束。
- 举例:LED闪烁控制功能
- 程序
- C51
- 汇编语言
- C51程序的基本结构
- 程序
-
-
4.2 C51的数据结构
-
4.2.1 C51的变量(根据给出的定义说明变量的四大要素)
-
前言
- 在C语言编程中,数值可以发生改变的量称为变量。
- 变量的基本属性是变量名和变量值
- 在程序中定义变量,C51编译器就会给这个变量分配相应的存储单元,从而将变量名与存储单元的地址“捆绑”在一起,变量值就与存储单元的内容相对应(若存储单元中放置不同的内容,变量就会有不同的值)。
- 使用变量的过程,就是通过变量名找到相应的内存地址,进而对该存储单元进行数据读取的操作过程。
- 实际使用变量时要考虑的因素:
- 如果变量要对应更大的数值就需要将多个连续地址的存储单元串联起来以便增加位数,这就涉及到变量的数据类型问题。
- 51单片机有片内RAM和片外RAM两种数据存储器,这就涉及到变量的存储类型问题。
- 变量与存储单元永久“绑定” 会降低存储单元的利用率,临时分配存储单元的动态方案会降低变量使用的方便性,涉及到变量的存储种类问题。
-
定义一个变量的完整格式(变量具有4大要素):〔存储种类〕数据类型〔存储类型〕变量名;
- 〔存储种类〕
- 变量定义时还需考虑变量的“作用域”问题。
- 为提高变量存储效率,比较科学的做法应该是:
- ①对于仅有当前使用价值的变量,可以让它用完后“自动”释放占用的存储单元,以便编译器重新进行变量存储空间分配;——auto
- ②对于具有长期使用价值的变量,可以让它处于“静态”保护下,在程序运行期间都不释放存储单元;——static
- ③对于需要在多个程序或函数中传递数据的变量,可以让它只在一处进行定义,而在其它程序或函数中声明它的“外部”属性,从而实现该变量的数据共享;——extern
-
-