任务二 单片机控制LED 单向流水彩灯 (2)(课件)-《单片机技术及应用(第4版)》(高等教育出版社) 同步精品课堂
2025-08-19
|
25页
|
80人阅读
|
0人下载
精品
内容正文:
任务二 单片机控制LED 单向流水彩灯 (2)
单片机技术及应用
同步精品课堂
高等教育出版社第 4 版
1
了解单向流水彩灯电路的组成和原理
学会编写控制 LED 单向流水的程序
掌握程序下载和功能验证的方法
能够使用 Proteus 进行仿真调试
单向流水彩灯电路的原理图分析
程序编写思路和代码实现
理解程序中延时函数和流水效果的实现原理
解决仿真和实际电路中可能出现的问题
在电子制作中,LED 流水灯是一个经典且有趣的项目。通过单片机控制 LED 实现单向流水效果,能让我们深入了解单片机的编程和控制原理。
今天,我们就来学习如何制作一个单片机控制的 LED 单向流水彩灯。
任务实施--操作流程
操作流程
任务实施-电路原理图分析
电路原理图分析
本电路由单片机最小系统与 LED 灯控电路两部分组成,其中 LED 灯控电路由 8 个 LED 和 8 个 330Ω 的限流电阻组成
任务实施-电路原理图分析
电路搭接
将单片机最小系统板 P1 口与 LED 灯控电路板的控制口用杜邦线相连,电池盒为最小系统板及 LED 灯控电路供电
任务实施-编程 - 编程思路
(1)编程思路
分析电路可以看出当 P1 的某一位输出为低电平时,对应的发光二极管将会被点亮。因此最简单的一种流水效果的实现方法见下表,即从 P1 口依次输出一个 8 位二进制数,该数中只有 1 位为低电平,其余各位均为高电平。每输出一个 8 位二进制数,延时一段时间,控制流水显示的速度。
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 端口数据
O O O O O O O ● 11111110
O O O O O O ● O 11111101
O O O O O ● O O 11111011
O O O O ● O O O 11110111
O O O ● O O O O 11101111
O O ● O O O O O 11011111
O ● O O O O O O 10111111
● O O O O O O O 01111111
任务实施-编程 - 绘制程序流程图
(2)绘制程序流程图
①启动流程图绘图软件 Diagram Designer,设置图纸大小为 A4。
②从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。
任务实施-编程 - 绘制程序流程图
(2)绘制程序流程图
③在框图中输入文本。
④用指向线连接框图符号。
⑤按 Ctrl + S 组合键,保存该文件(文件名为 “流水灯.DDD”)。
任务实施-编程 - 编写程序
(3)编写程序(创建工程与选择型号)
① 启动 Keil uVision2,创建一个新工程文件(流水灯.uV2)。
② 单击目标选项按钮(Options for target),选择单片机型号为89S8252
任务实施-编程 - 编写程序
(3)编写程序(设置时钟与存储模式)
③ 设置时钟频率(12 MHz)、存储模式、是否使用片上 ROM
任务实施-编程 - 编写程序
(3)编写程序(设置输出文件夹与文件名)
④ 设置编译链接后生成的目标文件夹和将要生成的可执行文件名
任务实施-编程 - 编写程序
(3)编写程序(创建源文件与添加到工程)
⑤ 创建一个新的 C51 源程序文件(流水灯.c),将其加到该工程文件夹中。
//参考源程序:采用顺序程序结构实现从上向下流水的效果
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms);
void main(void){
while(1)
{
P1 = 0xfe;
delay(500);
P1 = 0xfd;
delay(500);
P1 = 0xfb;
delay(500);
P1 = 0xf7;
delay(500);
P1 = 0xef;
delay(500);
P1 = 0xdf;
delay(500);
P1 = 0xbf;
delay(500);
P1 = 0x7f;
delay(500);
}}
void delay(uint ms){
uchar i;
uint j;
for(j = 0; j < ms; j++)
for(i = 0; i < 125; i++)
;}
任务实施-编程 - 编写程序
(3)编写程序(编译生成可执行文件)
⑥ 编译该源程序,生成可执行文件(流水灯.HEX)。
仿真调试程序(启动软件与选择元件)
① 启动 Proteus 7.4 仿真软件。
② 在主面板中选择元件选择模式(Component Mode),单击元件选择按钮 “P”,从元件库中选择需要的元件:单片机芯片 1 个(AT89C51)、8 个发红光的发光二极管(LED - RED)和 8 个 330 Ω 的限流电阻(RES)
③ 根据电路原理图连接仿真电路,添加电源端(VCC),修改元件标号和标称值,仿真电路中复位、时钟电路可以省略。
仿真调试程序(启动软件与选择元件)
④ 双击芯片 AT89S52,在弹出的对话框中加载 HEX 文件,修改时钟频率为 12 MHz.
单击仿真按钮,观察仿真效果。
下载程序,验证功能
启动编程软件EasyPRO Programmer。
加载可执行文件(流水灯,HEX)。
单击“操作一键通”按钮,完成程序的下载。
将单片机插到最小系统板的ZIF插座上。
加电,观察其功能。
下载程序,验证功能
随堂检测1
单向流水彩灯电路中,LED 灯控电路由哪些部分组成?
答案:由 8 个 LED 和 8 个 330Ω 的限流电阻组成。
在编写程序时,延时函数的作用是什么?
答案:控制流水显示的速度,每输出一个 8 位二进制数,延时一段时间。
随堂检测2
在 Proteus 仿真中,需要选择哪些元件?
答案:单片机芯片 1 个(AT89C51)、8 个发红光的发光二极管(LED - RED)和 8 个 330 Ω 的限流电阻(RES)。
程序下载时,需要加载什么文件?
答案:可执行文件(流水灯.HEX)。
随堂检测3
说明在编程时设置单片机的步骤。
答案:
① 启动 Keil uVision2,创建一个新工程文件(流水灯.uV2)。
② 单击目标选项按钮(Options for target),选择单片机型号为 AT89S52。
③ 设置时钟频率(12 MHz). 存储模式. 是否使用片上 ROM。
④ 设置编译链接后生成的目标文件夹和将要生成的可执行文件名。
⑤ 创建一个新的 C51 源程序文件(流水灯.c),将其加到该工程文件夹中。
随堂检测4
阐述仿真调试程序的步骤。
答案:
① 启动 Proteus 7.4 仿真软件。
① 在主面板中选择元件选择模式 (Component Mode),单击元件选择按钮 “P”,从元件库中选择需要的元件:单片机芯片 1 个(AT89C51). 8 个发红光的发光二极管(LED - RED)和 8 个 330 Ω 的限流电阻(RES)。
② 根据电路原理图连接仿真电路,添加电源端(VCC),修改元件标号和标称值,仿真电路中复位. 时钟电路可以省略。
③ 双击芯片 AT89S52,在弹出的对话框中加载 HEX 文件,修改时钟频率为 12 MHz。
④ 单击仿真按钮,观察仿真效果。
1
分组讨论,讨论如何优化流水灯程序,使其流水效果更加多样化。分析在仿真和实际电路中可能出现的问题及解决方法。
1. 电路原理图分析
任务二 单片机控制LED 单向流水彩灯 (2)
2. 电路搭接
启动软件与选择元件
连接电路与加载文件
编程思路
绘制程序流程图
编写程序
3. 编程
4. 仿真调试程序
感谢观看
25
$$
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。