龙空技术网

单片机中控制任意一个流水灯亮灭,该怎样编程

小火单片机编程 165

前言:

目前各位老铁们对“单片机如何控制灯的亮灭”都比较关切,兄弟们都想要知道一些“单片机如何控制灯的亮灭”的相关资讯。那么小编同时在网络上收集了一些有关“单片机如何控制灯的亮灭””的相关知识,希望我们能喜欢,各位老铁们一起来学习一下吧!

想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。作为单片机第一个小实验,实现任意一个流水灯亮灭这个工程可以很好的让我们认识单片机的作用。

首先我们先理清整个实验的思路我们使用三个流水灯这个简单实验用的是51单片机。利用单片P3.0~P3.2I0口,外部电源LED供电IO口就输出低电平时0LED灯就会亮IO口输出高电平LED就会灭。假如是单片IOled供电(如果使P0口需要使用上拉电阻,IO口就输出低电平时0LED灯就会灭IO口输出高电平LED就会亮。

\\\插播一条:

自己在今年整理一套单片机单片机相关论800余篇

论文制作思维导图

原理+源代+开题报++外文资料

想要的同学私信找我。

限流电阻阻值计算:

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输出低电平LED1LED2亮,经过一段时间P0.1输出高电平P0.2输出低电平,此LED2LED3亮,延时后让亮灭过程循环就形成了流水灯效果。

程序:

#include //头文件

#include//头文件

#define uchar unsigned char

uchar j,temp;

void delay(unsigned int ms) //延时函数

{

uchar t;

while(ms--)

for(t=0;t

}

void main() //主函数

{

P1=0xff; //P1=11111111,对应串口灯全灭

delay(500);

temp=0xfe; // 0x11111110

for(j=0;j/此循环执行四次跳出

{

P1=temp; // P1=11111110, P1.0连接LED灯亮

delay(500); //延时

temp=_crol_(temp,1); //左移函数,依次11111101,11111011,11110111

}

P1=0xff;跳出循环P1串口全部是高电平LED都灭

wh

本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回我要入,与我们一起成长,喜欢的可以点个赞关注我们!【文章福利】:小编整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!~点击绿色通讯软件搜airuimcu加入。

标签: #单片机如何控制灯的亮灭