大家好,今天小编关注到一个比较有意思的话题,就是关于51单片机流水灯实验报告的问题,于是小编就整理了4个相关介绍51单片机流水灯实验报告的解答,让我们一起看看吧。
点亮单片机中任意一个流水灯亮灭的C语言程序该如何做呢?
点亮单片机中任意一个流水灯亮灭的C语言程序该如何做呢?
实现任意一个流水灯亮灭的程序非常好编程呀,这是入门级水准。
首先我们规划好硬件电路部分,在这里使用三个流水灯做简单讲解吧。单片机使用简单基础的51单片机。利用单片机P3.0~P3.2 三个I0口,假如外部电源给LED供电,IO口就输出低电平时(0),LED灯就会亮,IO口输出高电平,LED就会灭。假如是单片机IO口给led供电(如果使用P0口需要使用上拉电阻),IO口就输出低电平时(0),LED灯就会灭,IO口输出高电平,LED就会亮。
限流电阻阻值计算:
LED的工作电压:红黄为2V,绿蓝白为3.2~3.6V,电流都是18-20ma。下图是是单片机IO驱动的情况,P0口需要使用上拉电阻。假设LED额定电流是18mA。额定电源是3.2v那么限流电阻R2=(5V-3.2V)/18mA=100Ω。(图就是个大概,晶振回路和复位电路都没画)
实例解析:外部电源供电,电路连接简略图如下
程序设计思想:开始让P0保持高电平,三灯都是灭的。然后P0.0输出低电平,LED1亮,延时一段时间后,让P0.0输出高电平,P0.1输出低电平,LED1灭,LED2亮,再延时一段时间,让P0.1输出高电平,P0.2输出低电平,此时LED2灭,LED3亮,延时后让亮灭过程循环就可实现流水灯效果。
流水灯仿真实验:4个LED
程序编写后需要用KECIL C51软件生成HEX文件,用proteus可以仿真结果
程序:
#include <reg51.h> //头文件
#include<intrins.h>//头文件
#define uchar unsigned char
uchar j,temp;
void delay(unsigned int ms) //延时函数
{
uchar t;
while(ms--)
for(t=0;t<123;t++);
}
void main() //主函数
{
P1=0xff; //P1=11111111,对应串口灯全灭
delay(500);
temp=0xfe; // 0x11111110
for(j=0;j<4;j++) //此循环执行四次跳出
{
P1=temp; // P1=11111110, P1.0连接的LED灯亮
delay(500); // 延时
temp=_crol_(temp,1); //左移函数,依次是11111101,11111011,11110111
}
P1=0xff; 跳出循环,P1串口全部是高电平,LED都灭
while(1);
}
51单片机流水灯方向改变原理?
单片机流水灯控制原理就是将多个LED灯珠连接到不同的单片机输出端上,编程使单片机的这些输出端逐个的输出信号点亮LED,在设置好各个LED的通电的时间和通电间隔时间后,就可以看到这些LED灯珠的此起彼伏的亮起,如同流水一样。
单片机八个流水灯左右依次点亮?
1.首先,打开proteus,可以看到界面上方有"库",点开,在库里选择做实验需要的元件。
2.如图所示,我们做流水灯实验所需要的元件,就是红色方框里面的元件,一定都要添加进来,要不然实验就做不成功。
3.接着,我们按照电路原理图,排布好元件,连好线,最后的电路如图所示。
4.我们把实验代码插入单片机,然后点击界面左下角的开始按钮,就可以运行电路。
51单片机32个流水灯编程如何实现指定其中某一个灯亮,如何实现多种花样亮灯?
要51单片机控制32个流水灯,关键是要解决电路设计,只要能设计出电路来,编程实现控制指定其中某一个灯亮,并实现多种花样亮灯,就容易了。
如果只做32个流水灯,就用单片机的四个并行口,共32个IO引脚全部用上,正好控制32个流水灯。
如果引脚还有其他应用,可用四片锁存器,也可以控制32个流水灯了。
到此,以上就是小编对于51单片机流水灯实验报告的问题就介绍到这了,希望介绍关于51单片机流水灯实验报告的4点解答对大家有用。