任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂

2025-08-19
| 25页
| 86人阅读
| 0人下载
精品

内容正文:

任务二 单片机控制LED 单向流水彩灯 (3) 单片机技术及应用 同步精品课堂 高等教育出版社第 4 版 1 掌握改变彩灯流水速度和方向的方法 学会使用不同方法优化控制 LED 单向流水的程序 理解循环移位函数、循环程序结构和位操作与选择程序结构在流水灯程序中的应用 三种优化程序方法的编程思路 绘制优化程序对应的流程图 灵活运用不同方法优化程序以实现特定功能 理解位操作和选择程序结构实现流水效果的原理 在之前我们已经学会了单片机控制 LED 单向流水彩灯的基本实现方法,现在我们来进一步探讨如何改变彩灯的流水速度和方向,以及思考程序是否可以优化。 通过学习不同的优化方法,能让我们的程序更加简洁高效,下面就让我们一起开始学习吧。 方法 1 —— 用头文件中的循环移位函数优化程序 C51 内置头文件 INTRINS.H 中的函数_crol_可以完成循环左移操作(向左移动 1 位,最高位数据移至最低位处),因此可以更简洁地完成流水显示操作。如图所示。 编程思路 方法 1 —— 用头文件中的循环移位函数优化程序 ① 启动流程图绘图软件 Diagram Designer,设置图纸大小为 A4。 ② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。 (1)绘制流程图 方法 1 —— 用头文件中的循环移位函数优化程序 ③ 在框图中输入文本。 ④ 用指向线连接框图符号。 ⑤ 保存该程序流程图(文件名为 “循环左移函数实现的流水灯.DDD”)。 (1)绘制流程图 方法 2 —— 用 for 循环程序结构优化程序 用位操作和循环程序结构实现流水显示效果。用 for 语句控制移位的次数,移完 8 次后重新赋值。 编程思路 在硬件层面(如 LED 灯组、数码管等),通常用一个字节(8 位)的二进制数据表示 8 个显示单元的状态,每位对应一个单元的亮灭(1 为亮,0 为灭)。流水效果本质是让这个 "亮位" 按固定方向依次移动,形成动态流动的视觉体验。 方法 2 —— 用 for 循环程序结构优化程序 for 语句可以使程序按指定的次数重复执行一个语句组。 for 语句 for 语句的其格式如下 for (初始化表达式; 条件表达式; 更新表达式) { 循环体代码; } C/C++: # 遍历序列(列表、字符串等) for 变量 in 序列: 循环体代码(缩进表示) Python: 方法 2 —— 用 for 循环程序结构优化程序 for 语句 首先在初始化表达式中设置循环变量的初始值,然后求解条件表达式的值,如果其值为 “真”,则执行 for 后面的语句;如果为 “假”,则跳过 for 循环语句;如果条件表达式为 “真”,则在执行完指定的语句组之后,执行增量表达式。 for 语句的执行过程如图所示: 方法 2 —— 用 for 循环程序结构优化程序 while 语句 while 语句的格式如下: while (条件表达式) { 循环体代码; [可选:修改条件的语句;] } C/C++: while 条件表达式: 循环体代码(需缩进) [可选:修改条件的语句] Python: 方法 2 —— 用 for 循环程序结构优化程序 while 语句 首先判断条件表达式是否为 “真”,若为 “真”,则执行循环体中的语句组;否则,跳出循环体,执行后面的操作。 while 语句的执行过程如图所示: 方法 2 —— 用 for 循环程序结构优化程序 ① 启动流程图绘图软件 Diagram Designer,设置图纸大小为 A4。 ② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。 (1)绘制流程图 方法 2 —— 用 for 循环程序结构优化程序 ③ 在框图中输入文本。 ④ 用指向线连接框图符号。 ⑤ 保存该程序流程图(文件名为 “循环左移函数实现的流水灯.DDD”)。 (1)绘制流程图 方法 3—— 位操作和选择程序结构实现 编程思路 ① P1 口输出一个 8 位二进制数 11111110,将 LED1 点亮。 ② 延时一段时间,使用位操作中的左移命令左移 1 位(高位溢出,低位补 0) 方法 3—— 位操作和选择程序结构实现 编程思路 ③ 使用或运算将最低位置 1,然后继续进行延时和位运算操作,如图所示。 ④ 延时结束后,使用 if 语句判断 P1 口数据是否为 01111111(即最高位是否为低电平),如果为 01111111 说明已经完成了 7 次移位操作,此时将 P1 口数据重置为 11111110(最低位为低电平)。 方法 3—— 位操作和选择程序结构实现 ① 启动流程图绘图软件 Diagram Designer,设置图纸大小为 A4。 ② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。 (1)绘制流程图 方法 3—— 位操作和选择程序结构实现 ③ 在框图中输入文本。 ④ 用指向线连接框图符号。 (1)绘制流程图 随堂检测1 C51 内置头文件 INTRINS.H 中的_crol_函数有什么作用? 答案:可以完成循环左移操作,向左移动 1 位,最高位数据移至最低位处,可用于更简洁地完成流水显示操作。 for 语句的执行过程是怎样的? 答案:首先在初始化表达式中设置循环变量的初始值,然后求解条件表达式的值,如果其值为 “真”,则执行 for 后面的语句;如果为 “假”,则跳过 for 循环语句;如果条件表达式为 “真”,则在执行完指定的语句组之后,执行增量表达式。 随堂检测2 在方法 3 中,使用位操作左移后为什么要进行或运算? 答案:使用或运算将最低位置 1,以便继续进行后续的延时和位运算操作,实现流水显示效果。 while 语句的执行过程是怎样的? 答案:首先判断条件表达式是否为 “真”,若为 “真”,则执行循环体中的语句组;否则,跳出循环体,执行后面的操作。 随堂检测3 阐述使用位操作和选择程序结构实现流水显示的具体操作流程。 答案: ① P1 口输出一个 8 位二进制数 11111110,将 LED1 点亮。 ② 延时一段时间,使用位操作中的左移命令左移 1 位(高位溢出,低位补 0)。 ③ 使用或运算将最低位置 1,然后继续进行延时和位运算操作。 ④ 延时结束后,使用 if 语句判断 P1 口数据是否为 01111111(即最高位是否为低电平),如果为 01111111 说明已经完成了 7 次移位操作,此时将 P1 口数据重置为 11111110(最低位为低电平)。 ⑤ 循环执行上述操作。 随堂检测3 说明 for 语句的执行过程。 答案:for 语句的执行过程如下:首先在初始化表达式中设置循环变量的初始值,然后求解条件表达式的值,如果其值为 “真”,则执行 for 后面的语句;如果为 “假”,则跳过 for 循环语句;如果条件表达式为 “真”,则在执行完指定的语句组之后,执行增量表达式。 1 分组讨论,讨论三种优化方法各自的优缺点和适用场景。思考如何进一步优化程序以实现更多样化的流水效果。 1. 方法 1—— 用头文件中的循环移位函数优化程序 任务二 单片机控制LED 单向流水彩灯 (3) 2. 方法 2—— 用 for 循环程序结构优化程序 编程思路 绘制流程图 3. 方法 3—— 位操作和选择程序结构实现 编程思路 知识准备——for 语句 绘制流程图 编程思路 绘制流程图 感谢观看 25 $$

资源预览图

任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
1
任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
2
任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
3
任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
4
任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
5
任务二 单片机控制LED 单向流水彩灯 (3)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。