导航:首页 > 操作系统 > 单片机控制led灯阵原理

单片机控制led灯阵原理

发布时间:2022-08-30 03:40:13

A. PWM输出控制LED的亮暗程度原理

pwm控制led灯亮度原理:

旋转电阻就是可调电阻,单片机不能直接得到电阻量。所以得将电阻的变化转换为模拟信号或数字信号,可搭建一个简单的分压电路。单片机转换成数字量,通过程序判断后,调节PWM参数,进使LED亮度变化。

PWM是一种对模拟信号进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。

PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。

电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。

而应用到led灯具的控制上就要根据led在电压与电流变化时的具体情况,进行控制了。

其中的“宽度”,就是脉冲的高电平的时间。PWM信号调节LED亮度时,信号频率是不变的,改变的是脉冲的高电平的时间,即LED的导通时间。这种信号调节亮度相当于调节LED的平均电流,所以电流会变化。

(1)单片机控制led灯阵原理扩展阅读:

把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。

可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。

模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。9V电池就是一种模拟器件,因为它的输出电压并不精确地等于9V,而是随时间发生变化,并可取任何实数值。

与此类似,从电池吸收的电流也不限定在一组可能的取值范围之内。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在{0V,5V}这一集合中取值。

B. 89C52单片机控制LED灯显示的原理是什么

89C52一般有四组共32个IO口,每一个IO口均可以程序控制其输出电平为高(1)或低(0),在LED的正极接VCC,负极接89C52的IO口,通过控制IO口的输出为低电平(0V),则VCC经LED与89C52的IO形成电流回路,LED点亮。

C. 要求用51单片机控制8个LED亮灭的原理图+程序+解说

本来以为这个程序很简单的,没想到写了快三个小时。哎学艺不精啊。贴出来给你研究吧。我不想做过多的解释了,我是按我理解的你出的题目做的,可能和你的本意不是很一样,
1、依次亮,依次灭:从一个灯亮到全亮,再到全灭,每次改变一个灯亮灭
2、奇偶号灯间隔亮灭:隔一个灯亮一个灯亮灯时间为1s,没有灯全灭的时候
3、依次闪烁、切换时间为3秒,闪烁时间为2秒,我理解的是,没三秒钟有一个灯在闪烁,其中有一秒钟是灭灯状态
程序中使用了P1口与8个发光二极管相连,具体电路图你网络一下吧,还有使用了一个按键,该按键与P3.7相连,低电平为按下状态。
程序如下:
#include <reg52.h>
#include <intrins.h>

/*变量声明:
i、j、k都是记录计时器溢出次数的变量,
stat是记录当前显示状态的变量,由按键key控制
temp是状态2中保护P1口状态的变量*/

unsigned char i=0,j=0,k=0,stat=0,temp;
bit flag=1; //状态1处于灭灯还是亮灯状态的变量,1为依次亮灯,0为依次亮灯
sbit key=P3^7; //按键控制
void init(); //初始化函数
void delay(unsigned int N); //延时函数
void keyscan(); //键盘扫描函数

void main()
{
init();

while (1)
{
switch (stat)
{
case 0: //0方案
if(i==20&&flag)
{
i=0;
P1=P1<<1; //依次亮灯
temp=P1;
if(temp==0)
{
flag=0;
}
}
if(i==20&&!flag)
{
i=0;
if(P1==0xff)
{
flag=1;
P1=0xfe;
}
if(!flag)
{
P1=P1<<1; //依次灭灯
temp=P1;

P1=temp+1;
}

}
break;
case 1: //2方案
if(i==20)
{
i=0;
P1=~P1; //去反后亮灯状态为灭灯,P1初值取0x55或0xaa,奇偶交替亮灯
}
break;
case 2: //3方案
if(j==60)
{
P1=temp;
P1=_crol_(P1,1);
temp=P1; //保护P1口亮灯状态
k=0;
j=0;
}

//闪烁部分,应该可以优化
if(k<5)
{
P1=0xff;
}
else if(k>=5&&k<10)
{
P1=temp;
}
else if(k>=10&&k<15)
{
P1=0xff;
}
else if(k>=15&&k<20)
{
P1=temp;
}
else if(k>=20&&k<25)
{
P1=0xff;
}
else if(k>=30&&k<35)
{
P1=temp;
}
else if(k>=35&&k<40)
{
P1=0xff;
}
//-----------------------------------
break;
}
keyscan();
}
}

void init()
{
TH0=0x3c; //定时器赋初值定时时间50ms
TL0=0xB0;
TMOD=0x01; //设置定时器工作方式为方式1
EA=1; //开总中断
ET0=1; //开中断允许位
TR0=1; //定时器计数

P1=0xfe; //这里假设led灯与P1口相连并且
//低电平有效

}
void delay(unsigned int N)
{
int i,j;
for (i=0;i<N;i++);
for (j=0;j<110;j++);
}
void keyscan()
{
if(!key)
{
delay(10); //消抖
if(!key); //确认有键按下
stat++;
if(stat==3)
{
stat=0;
}

//右键按下复位
i=0;
j=0;
k=0;
TH0=0x3c;
TL0=0xB0;
switch (stat)
{
case 0:
P1=0xfe;
flag=1;
stat=0;
break;
case 1:
P1=0x55;
break;
case 2:
P1=0xfe;
temp=P1;
break;
}
//-----------------------------------
while(!key) //此循环中的函数和主函数中的显示函数是同一个
//用于长按键的显示,可以去掉,去掉长按键不会正常显示,松开按键后正常
{
switch (stat)
{
case 0:
if(i==20&&flag)
{
i=0;
P1=P1<<1;
temp=P1;
if(temp==0)
{
flag=0;
}
}
if(i==20&&!flag)
{
i=0;
if(P1==0xff)
{
flag=1;
P1=0xfe;
}
if(!flag)
{
P1=P1<<1;
temp=P1;

P1=temp+1;
}

}
break;
case 1:
if(i==20)
{
i=0;
P1=~P1;
}
break;
case 2:
if(j==60)
{
P1=temp;
P1=_crol_(P1,1);
temp=P1;
k=0;
j=0;
}

if(k<5)
{
P1=0xff;
}
else if(k>=5&&k<10)
{
P1=temp;
}
else if(k>=10&&k<15)
{
P1=0xff;
}
else if(k>=15&&k<20)
{
P1=temp;
}
else if(k>=20&&k<25)
{
P1=0xff;
}
else if(k>=30&&k<35)
{
P1=temp;
}
else if(k>=35&&k<40)
{
P1=0xff;
}
break;
}
}
}
}

void timer0() interrupt 1
{
TH0=0x3c;
TL0=0xB0; //溢出后重新赋初值
//定时器中断时间为50ms
i++; //20次中断时间为1s
j++; //40次中断时间为2s
k++; //60次中断时间为3s
}

有什么不懂的可以网络Hi我

D. 单片机led灯亮的原理

给 LED 合适的电压,它就发光了。
发光原理,不懂的。

E. 51单片机流水灯原理

单片机流水灯控制原理就是将多个LED灯珠连接到不同的单片机输出端上,编程使单片机的这些输出端逐个的输出信号点亮LED,在设置好各个LED的通电时间和通电间隔时间后,就可以看到这些LED灯珠此起彼伏的亮起,如同流水一样.

F. 单片机呼吸灯的原理还是不太明白,谁能用通俗的语言给我讲一下

呼吸灯就是灯的亮度按照一定的规律逐渐从灭到亮再到灭。
单片机可以控制LED灯的亮度,简单的一般是用PWM控制。
单片机控制LED灯的亮度按照一定的规律进行变化,从灭到亮再到灭,这就是呼吸灯。

G. 单片机led工作原理

单片机通过输出高电平和低电平的控制来达到让LED发光或者熄灭,其原理是单片机内部有CPU存储器和进行一系列的运算!

H. 用51单片机,怎么来控制1000个左右的LED灯呢

方法1:1000个左右的灯,需要10根地址线选通,51的IO管脚应该是没有问题。剩下的就是要用大量的译码器,把二进制信息转换为管脚信息。
估计你仅仅是控制亮和灭,如果是这样选通也就可以进行明暗的控制,否则输出的信息也要加进去,就是说需要加驱动电路。
方法2:用移位电路,比如HC595,在51中地址做为串行信号发出,转换为对应的地址线,然后在连接译码器,这样,51的管脚比较节省,但,编程的难度稍大。
你可以参考一下键盘译码器的电路,控制16个和控制1000个的原理是一样的。

I. 单片机一个按键控制一个led的原理是什么

LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,
LED灯(6张)晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理

J. 单片机如何控制矩阵型LED灯的亮灭。

这个你要看原理图。流水灯的控制是通过单片机p口接上595芯片来驱动,软件实现移位实现流水灯现象
具体的步骤:
1:画出你的原理图,最小系统,外加led,595芯片
2:些软件程序,通过keil编译并下载到你的单片机
3:观测效果
具体的程序根据你的原理图
可以参考《吴鉴鹰单片机项目实战精讲》里面关于摇摇棒的设计

阅读全文

与单片机控制led灯阵原理相关的资料

热点内容
丢失微信app怎么找 浏览:248
php能写前端吗 浏览:3
服务器如何更改raid模式 浏览:82
方舟服务器怎么导出来 浏览:606
手机显示服务器异常什么鬼 浏览:377
新闻服务器的网址是什么 浏览:665
程序员年底招人 浏览:311
广发app怎么查房贷 浏览:858
安卓手机怎么下薯仔 浏览:919
只有一个app显示网络异常怎么回事 浏览:988
解压玩具是水宝宝 浏览:817
压缩机保护怎么解决 浏览:944
单片机简易电子时钟 浏览:402
pdf影印版 浏览:689
单片机的中断技术 浏览:626
表格加密才能打开 浏览:39
多态可以提高编译可靠性吗 浏览:599
拼好魔方的app怎么下载 浏览:503
江苏金税盘测试服务器地址是什么 浏览:607
螺杆式压缩冷凝机组 浏览:299