红、黄、绿三组LED灯循环闪亮,变化规律是:红-红绿-绿-黄绿-黄-黄红-全亮-红...,如此循环,产生“流水”般的效果; 指标要求: 流水的速度由快到慢,再由慢到快。 彩灯白天不亮,晚间自动亮。proteus设计过程
时间: 2023-08-31 21:35:31 浏览: 180
基于嵌入式与单片机的流水灯proteus设计实现
### 回答1:
1. 首先在Proteus中创建一个新的电路图;
2. 从库中选择LED灯和555定时器,将它们拖入电路图中;
3. 连接电路:将定时器的引脚连接到LED灯的引脚上,使其能够循环闪烁;
4. 设计555定时器的参数:根据要求将555定时器的参数设置为可变的,可以通过旋转电位器来改变流水灯的速度;
5. 添加光敏电阻:将光敏电阻添加到电路中,使得彩灯只在晚上自动亮起;
6. 调试电路:通过模拟器对电路进行调试,查看流水灯的效果是否符合要求。
注意事项:
1. 555定时器的参数设置需要根据实际情况进行调整,调整好之后可以将其锁定;
2. 光敏电阻需要放置在可以接收到光线的位置,以便在晚上自动亮起。
### 回答2:
在Proteus中设计红、黄、绿三组LED灯循环闪亮,并实现流水效果。假设Proteus中有一个主时钟信号clk,频率为1Hz,即1s脉冲一次。
首先,我们需要通过编程语言C来实现流水的速度由快到慢再到快的变化规律。以下是一个示例的C代码:
```c
#include<reg51.h>
#define LED P2 // 灯接在51的P2口
sbit R1 = P2^0; // 红灯的R引脚
sbit G1 = P2^1; // 红灯的G引脚
sbit Y1 = P2^2; // 红灯的Y引脚
sbit R2 = P2^3; // 黄灯的R引脚
sbit G2 = P2^4; // 黄灯的G引脚
sbit Y2 = P2^5; // 黄灯的Y引脚
sbit R3 = P2^6; // 绿灯的R引脚
sbit G3 = P2^7; // 绿灯的G引脚
void delay(unsigned int xms)
{
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 110; j > 0; j--);
}
void main()
{
LED = 0x00; // 先将P2口的LED灭掉
while(1)
{
R1 = 1; G1 = 0; Y1 = 0; R2 = 0; G2 = 0; Y2 = 1; R3 = 0; G3 = 1; // 红灯亮,绿灯亮,黄灯不亮
delay(500); // 延时0.5s
R1 = 1; G1 = 1; Y1 = 0; R2 = 0; G2 = 0; Y2 = 1; R3 = 0; G3 = 1; // 红灯亮,绿灯不亮,黄灯不亮
delay(500);
R1 = 0; G1 = 1; Y1 = 1; R2 = 0; G2 = 1; Y2 = 0; R3 = 0; G3 = 1; // 红灯不亮,绿灯亮,黄灯亮
delay(500);
R1 = 0; G1 = 1; Y1 = 0; R2 = 1; G2 = 1; Y2 = 0; R3 = 0; G3 = 1; // 红灯不亮,绿灯亮,黄灯不亮
delay(500);
R1 = 0; G1 = 0; Y1 = 1; R2 = 1; G2 = 0; Y2 = 0; R3 = 1; G3 = 1; // 红灯不亮,绿灯不亮,黄灯亮
delay(500);
R1 = 1; G1 = 0; Y1 = 0; R2 = 1; G2 = 0; Y2 = 0; R3 = 1; G3 = 1; // 红灯亮,绿灯不亮,黄灯不亮
delay(500);
LED = 0xFF; // 全部灯亮
delay(500);
R1 = 1; G1 = 0; Y1 = 0; R2 = 1; G2 = 0; Y2 = 0; R3 = 0; G3 = 0; // 只有红灯亮
delay(500);
}
}
```
以上代码实现了红、黄、绿三组LED灯按照指定的变化规律循环闪亮,并通过延时函数控制流水的速度由快到慢再到快。
接下来,在Proteus中进行仿真和验证。首先,在Proteus中创建一个新的工程,添加一个8051单片机和三个LED灯,将P2口与LED连接。将编写的C代码导入到工程中,进行编译。然后,添加一个适当的时钟信号clk,频率为1Hz。最后,点击运行按钮进行仿真。
在仿真过程中,可以观察LED灯的亮灭情况和流水效果。确保LED灯按照规定的变化规律闪亮,并且流水的速度由快到慢再到快。
需要注意的是,由于彩灯需要在晚间自动亮起,因此可以通过在代码中添加一个时间判断条件,只有在晚上才让LED灯进行循环闪亮。
### 回答3:
首先,我们需要创建一个红、黄、绿三组LED灯的循环闪亮的电路。在Proteus软件中,我们可以使用LED灯和按键来模拟这个电路。
首先,在Proteus软件的工具栏中选择"Components Mode",然后选择左边的"Virtual"选项卡,再选择右边的"LED"选项。将显示的LED灯拖放到电路图中。
接下来,我们需要设置按键来控制LED灯的循环闪亮。在Proteus软件的工具栏中选择"Components Mode",然后选择左边的"Virtual"选项卡,再选择右边的"Switches"选项。将显示的按键拖放到电路图中。
然后,我们需要将LED灯和按键连接起来。在Proteus软件的工具栏中选择"Connect Mode",然后选择左边的"Netlist"选项卡。点击左边的"Pin"按钮,然后点击一个LED灯的引脚,再点击一个按键的引脚,将它们连接起来。重复这个步骤,将所有LED灯和按键都连接起来。
接下来,我们需要设置LED灯的循环闪亮的变化规律。在Proteus软件的工具栏中选择"Edit Mode",然后选择左边的"Properties"选项卡。选择一个LED灯,然后设置它的亮灭时间,按照红-红绿-绿-黄绿-黄-黄红的变化规律设置LED灯的亮灭时间。
最后,我们需要设置彩灯白天不亮,晚间自动亮。在Proteus软件的工具栏中选择"Edit Mode",然后选择左边的"Properties"选项卡。选择所有LED灯,然后设置它们的亮灭时间,白天不亮,晚间自动亮。
完成上述步骤后,我们可以点击Proteus软件的仿真按钮,开始仿真这个电路。根据指标要求,我们可以通过调整LED灯的亮灭时间来控制流水的速度由快到慢,再由慢到快。
以上就是使用Proteus软件设计红、黄、绿三组LED灯循环闪亮的流水灯的过程。在仿真结果中,我们可以看到LED灯按照红-红绿-绿-黄绿-黄-黄红的变化规律闪亮,产生流水般的效果。
阅读全文