单片机制作呼吸灯的C语言程序怎样编写

单片机制作呼吸灯的C语言程序怎样编写,第1张

#include<reg51.h>

sbit LED0=P0^0

sbit wei=P1^1

sbit duan=P1^0

sbit lcden=P1^7

sbit dianzhen=P1^3

sbit leden=P1^2

void Delay(unsigned int t)

void main (void)

{

unsigned int CYCLE=600,PWM_LOW=0//定义周期并赋值

lcden=0

P0=0x00

dianzhen=0

P0=0xff

wei=0

duan=0

while (1) //主循环

{

LED0=1

Delay(150000)//特意加延时,可以看到熄灭的过程

for(PWM_LOW=1PWM_LOW<CYCLEPWM_LOW++)

{

LED0=0

Delay(PWM_LOW)

LED0=1

Delay(CYCLE-PWM_LOW)

}

for(PWM_LOW=CYCLE-1PWM_LOW>0PWM_LOW--)

{

LED0=0

Delay(PWM_LOW)

LED0=1

Delay(CYCLE-PWM_LOW)

}

}

}

void Delay(unsigned int t)

{

while(t--)

}

你可以了解一下ws2812,这个会好很多。

想过这种程序,但因为没什么卵用就给我忘了。

pwm要挺高频率才行,不然会闪,试过3灯的rgb,原理上差不多,但是直接程序死循环都难受,不是很流畅,你也可以参考一下。。。

#include "reg52.h"

#include "intrins.h"

sbit r=P1^0

sbit g=P1^1

sbit b=P1^2

void Delay200ms()

void play(char rz1,char gz1,char bz1,int t)

void Delay10us()

//占空比从0到100变化

void main(void)

{

while(1)

{char rz=0,gz=0,bz=0

char x=0,y=0,z=0

r=1

g=1

b=1

Delay200ms() //接线验证,rgb依次亮起

r=0

Delay200ms()

r=1

g=0

Delay200ms()

g=1

b=0

Delay200ms()

b=1

Delay200ms()

for(x=5x>=0x--) //彩色连续变化

{rz=100gz=0bz=0

play(rz,gz,bz,1)

for(gz=0gz<=100gz++)

play(rz,gz,bz,1)

for(rz=100rz>=0rz--)

play(rz,gz,bz,1)

for(bz=0bz<=100bz++)

play(rz,gz,bz,1)

for(gz=100gz>=0gz--)

play(rz,gz,bz,1)

for(rz=0rz<=100rz++)

play(rz,gz,bz,1)

for(bz=100bz>=0bz--)

play(rz,gz,bz,1)

}

}

}

//显示色彩程序,pwm,显示某占空比颜色时间t

void play(char rz1,char gz1,char bz1,int t)

{

char i=rz1,j=gz1,k=bz1,yt

for(t=t*4t>=0--t)

{

i=rz1j=gz1k=bz1

for(yt=100yt>=0yt--)

{

if(i>0)

r=0

else

r=1

if(j>0)

g=0

else

g=1

if(k>0)

b=0

else

b=1

--i

--j

--k

Delay10us()

}

}

r=1g=1b=1

}

//延时程序组

void Delay200ms() //@12.000MHz

{

unsigned char i, j, k

_nop_()

_nop_()

i = 10

j = 31

k = 147

do

{

do

{

while (--k)

} while (--j)

} while (--i)

}

void Delay10us() //@12.000MHz

{

unsigned char i

_nop_()

_nop_()

i = 27

while (--i)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7805549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存