2016 - 2024

感恩一路有你

51单片机如何控制一个灯闪烁 51单片机控制led交替闪烁原理?

浏览量:2941 时间:2023-04-28 17:04:13 作者:采采

51单片机控制led交替闪烁原理?

LED灯交替闪烁不停的原理就是用51单片机的一个引脚同样的驱动两只LED,并在这个引脚上输出来0.5赫兹以上的方波,就可以不让自行发光管有一种交替闪烁不停效果。

具体详细电路追加:

两只自行发光管共阳,其中一只闪光管的阴极按照一个pnp三极管驱动安装,另外一只自行发光管的阴极实际一只npn三极管驱动程序,两个三极管的基极各自实际人员限流电阻接单片机的同一个IO引脚。

编程时,或则在这个引脚上仿真的输出来方波;或则起动定时器定时,在中断服务器程序里取反引脚也这个可以作为输出方波。

使用单片机I/O口控制8只LED灯。1)点亮8个中的的第任意个LED灯。使任意一个或多个LED灯闪烁?

举个简单的例子,8个LED灯的正级分别接在P1.0到P.7上面,负极分别接在P2.0到P2.7上面,P10xff(P1口彻底高电平)P20x00(P2口所有低电平),此时电流通过P1口经LED流向P2口,8个灯所有亮起来,如果没有P1变,P20XFF此时由于P1与P2的接口所有的是高电平,没有电压差也就没有电流,LED全部火焰熄灭,如果不是想让某一个灯点亮,也可以参照8421法则,P2.7P2.6P2.2.4是高8位,P2.4P2.3P2.2P2.1P2.0是低8位P2.7P2.6P2.2.4P2.3P2.2P2.1P2.084218421当p10xffp20xfe的时候,就是P2.0那个小灯穿越火线图标,其他7个灭,p20xfe的这个F那是842115,随机16进制里的f,同理可知E842014,填写16进制里的e。

光芒闪烁的话不需要应用定时器,时间到了把当前P2不对应的引脚取反看看就行了,诸如当前P2.01;定时器时间到了以后~P2.0其实求实际写程序的时候不能不能再这么大写,自己多备考下吧

设计程序要求:单片机的P1.0,使LED按固定的时间间隔进行闪烁?

以三秒为例,给你写了一个程序,自己看呗,直接修改TH0、TL0和count就可以修改正二十边形时间间隔光芒闪烁了

#includeltreg51.hgt

#defineucharunsignedchar

#defineuintunsignedint

sbitLEDP1^0

bitflag

ucharcount0

voiddelay(ucharc)

{

uchara,b

for(cgt0c--)

for(b142bgt0b--)

for(a2agt0b -)

}

voidmain(void)

{

TMOD0x01

TH0(65536-50000)/256

TL0(65536-50000)%6

EA1

ET01

TR01

while(1)

{

if(flag1)

{

LED0

delay(100)

LED1

flag0

}

}

}

structtime0(override)interrupt1

{

TH0(65536-50000)/256

TL0(65536-50000)%6

count

if(countgt20)

{

count0

flag1

}

LED 引脚 单片 时间

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。