内容正文:
任务一 单片机控制LED 闪烁(1)
单片机技术及应用
同步精品课堂
高等教育出版社第 4 版
1
掌握 C51 的标识符规则
理解 C51 的常量与变量的概念和类型
学会绘制程序流程图
能够使用相关工具和材料完成单片机控制LED 闪烁的项目
C51 标识符的规则
C51 常用数据类型的特点和使用
理解不同数据类型在单片机中的应用差异
准确绘制符合规则的程序流程图
在电子控制领域,单片机控制 LED 闪烁是一个基础且有趣的项目。要实现这个项目,我们需要掌握 C51 编程的一些基础知识,如标识符、数据类型、常量与变量等,同时学会绘制程序流程图来规划我们的程序逻辑。
今天,就让我们一起开启单片机控制 LED 闪烁的学习之旅。
任务一 单片机控制LED 闪烁 - 知识准备
C51 的标识符
1. 所有标识符必须由一个字母 (a~z,A~Z) 或下划线 “_” 开头。
2. 标识符的其他部分可以用字母、下划线或数字 (0~9) 组成。
3. 大小写字母表示不同意义,即代表不同的标识符。
4. 标识符只有前 32 个字符有效。
5. 标识符不能使用关键字。
所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。
任务一 单片机控制LED 闪烁 - 知识准备
C51 正确的标识符示例:
smart
_decision
key_board
FLOAT
C51 不正确的标识符示例:
5smart
bomb?
key.board
float
任务一 单片机控制LED 闪烁 - 知识准备
C51 的数据类型
在 C 语言中,每个变量在使用之前必须定义其数据类型。
整型 (int)、浮点型 (float)、字符型 (char)、指针型 (*)、无值型 (void) 以及结构体 (struct) 和联合体 (union)。
C51 是针对 8051 系列单片机的 C 语言扩展,其数据类型在标准 C 的基础上进行了优化,以适应单片机的硬件特性(如 8 位架构、有限的内存资源等)。
C51 有以下几种数据类型:
任务一 单片机控制LED 闪烁 - 知识准备
数据类型关键特性
硬件适配:针对 8051 的 8 位架构设计,节省 RAM/ROM 资源
位操作支持:bit/sbit 直接操作单个二进制位,适合硬件控制
特殊寄存器访问:sfr/sfr16 直接映射单片机硬件寄存器
效率优先:优先使用 unsigned char 等短类型,减少内存占用
使用建议
避免滥用 long 和浮点型(占用资源多)
区分 bit(普通位变量)与 sbit(硬件位寻址)
注意 int 默认为 16 位(与标准 C 不同)
任务一 单片机控制LED 闪烁 - 知识准备
C51 的数据类型
类型名称 类型符 长度 /bit 数值范围
位型 bit 1 0,1
无符号字符型 unsigned char 8(1B) 0~255
有符号字符型 char 8(1B) -128~+127
无符号整型 unsigned int 16(2B) 0~65535
有符号整型 int 16(2B) -32768~+32767
无符号短整型 unsigned short 16(2B) 0~65535
有符号短整型 short 16(2B) -32768~+32767
无符号长整型 unsigned long 32(4B) 0~4294967295
有符号长整型 long 32(4B) -2147483648~+2147483647
浮点型 float 32(4B) ±1.176E - 38~±3.40E + 38 (6 位数字)
双精度浮点型 double 64(8B) ±1.176E - 38~±3.40E + 38 (10 位数字)
任务一 单片机控制LED 闪烁 - 知识准备
C51 的数据类型(使用注意事项)
实际使用这些数据类型时,应尽量避免使用有符号的数据类型,因为单片机处理无符号数更容易一些,生成的指令代码更简洁。
尽量避免使用浮点数据类型,因为使用浮点数时,C 编译器需要调用库函数,程序会变得庞杂,运算速度会变慢。
常用的数据类型有 bit 和 unsigned char,这两种数据类型可以直接支持机器指令,运算速度最快。
拓展内容
数据类型优化技巧
在实际项目中,除了避免使用有符号和浮点数据类型外,还可以根据具体需求对数据类型进行进一步优化。例如,当只需要表示 0 - 10 的整数时,可以使用无符号字符型,这样既能节省存储空间,又能提高运算速度。
程序流程图的高级应用
程序流程图不仅可以用于规划程序逻辑,还可以用于项目的整体架构设计和团队协作沟通。通过绘制详细的流程图,可以让团队成员更好地理解项目的整体结构和各个模块之间的关系。
任务一 单片机控制LED 闪烁 - 知识准备
C51 的数据类型(简化缩写形式)
在编程时,为了书写方便,经常使用简化的缩写形式来定义变量的数据类型。其方法是在源程序开头使用宏定义语句 #define。
#define uchar unsigned char
#define uint unsigned int
uchar x,y;
uint a;
任务一 单片机控制LED 闪烁 - 知识准备
C51 的常量与变量 - 常量
程序运行中,其值不能改变的量称为常量。
十进制数:直接书写,如 12、 - 12。
八进制数:在数值前面加 “0” 表示是八进制数,如 012 表示十进制数 10。
十六进制数:在数值前面加 “0x” 表示是十六进制数,如 0x0e 表示十进制数 14。
1. 整型常量:
任务一 单片机控制LED 闪烁 - 知识准备
C51 的常量与变量 - 变量
在程序运行中,其值可以改变的量称为变量。每个变量都有一个变量名,在内存中占据一定的存储空间,并在该内存单元中存放该变量的值。
1.位变量 (bit):变量的类型是位,位变量的值为 0 或 1。
2.字符型变量 (char):字符型变量的长度为 1 个字节 (1B),即 8 位。这是最适合 51 单片机的变量,因为 51 单片机每次可以处理 8 位数据。无符号变量的数值范围为 0~255,有符号变量为 - 127~+128。
任务一 单片机控制LED 闪烁 - 知识准备
C51 的常量与变量 - 变量
在程序运行中,其值可以改变的量称为变量。每个变量都有一个变量名,在内存中占据一定的存储空间,并在该内存单元中存放该变量的值。
3.整型变量:整型变量分为短整型 (int 或 short) 和长整型 (long) 变量两种,其中短整型变量的长度为 2 个字节 (16 位),长整型的长度为 4 个字节 (32 位)。
4.浮点型变量:浮点型变量分为单精度 (float) 和双精度 (double) 变量两种,单精度变量长度为 4 个字节 (32 位),双精度变量长度为 8 个字节 (64 位),在 51 单片机中应该尽量避免使用浮点型变量。
任务一 单片机控制LED 闪烁 - 知识准备
程序流程图的画法(常用符号)
任务一 单片机控制LED 闪烁 - 知识准备
程序流程图的画法(定义与特点)
程序流程图是一种用规定的符号、指向线及文字说明来准确表示算法的图形,具有直观、形象的特点,能清楚地展现算法的逻辑结构。
绘制程序流程图的规则:
1.使用标准的流程图符号绘制。
2.流程图一般按从上到下、从左到右的方向画。
3.除判断框外,大多数程序流程图的符号只有一个进入点和一个退出点,而判断框是具有超过一个退出点的唯一符号。
任务一 单片机控制LED 闪烁 - 任务准备
工具及材料准备:
工作准备:
用单片机控制LED闪烁
任务需求
1.软件:Protel DXP 2004、Proteus 7.4、Keil uVision2、EasyPRO Programmer、流程图绘制软件。
2.硬件:计算机1台、编程器1台、最小系统电路板1块、LED 灯控电路板1块、杜邦线1条、电池盒1个。
穿好工作服,戴好防静电手环,穿绝缘胶鞋。
清洁工作台面,清理工作区域,工具、仪器仪表摆放整齐有序。
C51 标识符规则确保编程规范。
掌握 C51 数据类型特点及使用注意,优先用 bit 和 unsigned char。
理解常量与变量概念及类型,合理定义和使用。
学会绘制程序流程图,遵循绘制规则规划程序逻辑。
准备好工具与材料,做好工作准备开启项目实践。
任务一 单片机控制LED 闪烁 - 总结知识要点
总结知识要点
随堂检测 1
以下哪个是正确的 C51 标识符?( )
A. 2apple B. apple? C. _apple D. float
答案:C
解析:标识符必须由字母或下划线开头,不能使用关键字,A 选项以数字开头,B 选项包含非法字符,D 选项是关键字,所以选 C。
在 51 单片机编程中,哪种数据类型运算速度最快?( )
A. float
B. int
C. bit
D. double
答案:C
解析:常用的数据类型 bit 和 unsigned char 可以直接支持机器指令,运算速度最快,float 和 double 是浮点型数据,处理速度慢,int 相对 bit 速度也较慢,所以选 C。
随堂检测 2
以下哪个是十六进制整型常量的正确表示?( )
A. 012 B. 12 C. 0x0e D.23.14
答案:C
解析:十六进制数在数值前面加 “0x” 表示,A 选项是八进制,B 选项是十进制,D 选项是实型常量,所以选 C。
绘制程序流程图时,判断框的特点是( )
A. 只有一个进入点和一个退出点
B. 有超过一个退出点
C. 没有进入点
D. 没有退出点
答案:B
解析:除判断框外,大多数程序流程图的符号只有一个进入点和一个退出点,而判断框是具有超过一个退出点的唯一符号,所以选 B。
随堂检测 3
说明 C51 程序的结构组成。
答案:
包含头文件:如 #include "reg51.h" ,包含相关的头文件。
预编译:通常将一些数据类型的关键字进行更名操作,方便书写。
变量定义:定义程序中使用的变量,如位变量等。
函数声明:函数要遵循先声明. 后调用的原则。
main () 函数:程序执行总是从主函数开始,每个 C 语言程序有且只有一个主函数,在主函数中可调用其他函数。
其他函数:如延时函数等,每个函数完成相对独立的功能。
语句结束标志:C 语言语句必须以 “;” 作为结束符。
程序注释:有 “/……/”(可注释多行)和 “//”(只能注释一行)两种注释方式。
1
分组讨论,讨论在单片机编程中,如何根据实际需求选择合适的数据类型。分析程序流程图在项目开发中的重要性。
1. 认识C51
任务一 单片机控制LED 闪烁(1)
2. 程序流程图的画法
常用符号
定义与特点
绘制规则
C51 的标识符
C51 的数据类型
C51 的常量与变量
3. 单片机控制LED 单向流水彩灯任务准备
感谢观看
25
$$