前言:
目前各位老铁们对“单片机如何控制灯的亮灭”都比较关切,兄弟们都想要知道一些“单片机如何控制灯的亮灭”的相关资讯。那么小编同时在网络上收集了一些有关“单片机如何控制灯的亮灭””的相关知识,希望我们能喜欢,各位老铁们一起来学习一下吧!想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。作为单片机第一个小实验,实现任意一个流水灯亮灭这个工程可以很好的让我们认识单片机的作用。
首先我们先理清整个实验的思路,我们使用三个流水灯来做这个简单的实验。用的是51单片机。利用单片机P3.0~P3.2三个I0口,外部电源给LED供电,IO口就输出低电平时(0),LED灯就会亮,IO口输出高电平,LED就会灭。假如是单片机IO口给led供电(如果使用P0口需要使用上拉电阻),IO口就输出低电平时(0),LED灯就会灭,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输出低电平,LED1灭,LED2亮,经过一段时间后,让P0.1输出高电平,P0.2输出低电平,此时LED2灭,LED3亮,延时后让亮灭过程循环就形成了流水灯的效果。
程序:
#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加入。
标签: #单片机如何控制灯的亮灭