51单片机能不能把LED灯做成呼吸灯,要怎么延迟,需要多少延迟··

小弟是新手,还请大神帮助·

第1个回答  2012-07-17
#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊>
/*-------------------------IO口定义----------------------------*/
sbit d0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号

void Delay(unsigned int t); //函数声明
/*------------------------------------------------主函数------------------------------------------------*/
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;//定义周期并赋值
char y = 1;
while (y--) //主循环
{
d0=1;
Delay(20); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{//PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次

d0=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
d0=0;//熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1
}
d0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
{//与逐渐变亮相反的过程
d0=0;
Delay(PWM_LOW);
d0=1;
Delay(CYCLE-PWM_LOW);
}//主循环中添加其他需要一直工作的程序
}
}
/*----------延时函数,含有输入参数unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535---------------*/
void Delay(unsigned int t)
{
while(--t);
}
第2个回答  推荐于2016-02-22
用代PWM 的单片机,用个循环就行,
while(1)
{
num++;//把这个数赋值给PWM的计数器
.......
delay();呼吸时间长短调整这个延时函数
}本回答被提问者和网友采纳
第3个回答  2012-06-15
能,用PWM占空比来做,51上的资源做几组都行。
第4个回答  2012-06-15
用DA造价可太高了.用Pwm价格便宜,电路简单.估算频率须在千赫兹,51可能胜任略显吃力.
第5个回答  2012-06-15
亮度也要控制,要有DA控制

求单片机大神帮忙设计一个电路,51单片机制作led呼吸灯的
proteus仿真按理来说是不可能达得到效果的,因为这种仿真得有非常快的处理速度。我刚动手试了下和自己的想法相同,LED只会间断的闪烁。我是用AVR单片机,用51也是一样的。我这个程序也在实物试过效果很好。演示定时器1的快速PWM输出@利用快速PWM输出控制LED的亮度变化,达到呼吸灯的效果*\/ include<iom8...

51单片机设计呼吸灯
delay(5000); \/\/延时保持熄灭状态5000个时间单位,使现象更明显 for(i=0;i<200;i++) \/\/for循环,实现LED由暗逐渐变亮 { P0=0x00; \/\/点亮8位发光二极管 delay(i); \/\/延时保持熄灭状态i个时间单位 P0=0xff; \/\/熄灭8位发光二极管 delay(200-i); \/\/延时保持点亮状态200...

单片机制作呼吸灯的C语言程序怎样编写
LED0=1;Delay(150000); \/\/特意加延时,可以看到熄灭的过程 for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ LED0=0;Delay(PWM_LOW);LED0=1;Delay(CYCLE-PWM_LOW);} for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ LED0=0;Delay(PWM_LOW);LED0=1;Delay(CYCLE-PWM_LOW);} } } void ...

51单片机两个定时器中断写了个呼吸灯程序,怎么调试出来是小灯闪烁程序...
主程序中可不断改变b的值,先由大到 小 再由小到大,就是呼吸灯了 如延时200ms改变一次b的值 则呼吸周期大约是8秒

单片机做LED呼吸灯,用多少HZ最合适
人呼吸的频率,周期3秒到6秒,每分钟10到20次

单片机式的呼吸灯控制方法
方法2:用移位电路,比如HC595,在51中地址做为串行信号发出,转换为对应的地址线,然后在连接译码器,这样,51的管脚比较节省,但,编程的难度稍大。那么上述就是呼吸灯相关控制的方法和技巧,我们讲,呼吸灯控制在硬件圈是一个很普通的项目,而所采用的单片机控制也是硬件里最基础的,相信很多人在研习...

led灯能直接连接51单片机吗?
准确的说是不允许。单片机应只考虑开和关两种逻辑状态。这种LED灯是不是能接单片机的问题属于驱动能力问题。如果每次设计都要去考虑单片机管脚可以承受或者输出的电流,或者计算单片机可以带多大的负载,那你的设计工作的复杂性就会成倍的放大同时可靠性也会降低很多。也许你使用的LED需要极小的电流就可以驱动...

怎么让51单片机LED一亮一灭间隔1秒钟
并延时1秒钟。接着,我们将P1口设置为全灭状态,并再次延时1秒钟。这样,LED灯就会一亮一灭间隔1秒。需要注意的是,上述代码中的延时时间可以根据实际情况进行调整,以获得更精确的间隔时间。此外,如果使用的是STM32系列单片机,还需要在初始化代码中配置GPIO口为输出模式。

谁帮忙把这个51单片机模仿PWM呼吸灯的主函数程序注释下,很乱
2;for (i=0; i<6; i++){ LED_ALL = ~TEMP;if (KEY == 0) goto l1;Delay(1000);TEMP <<= 1;} TEMP >>= 2;for (i=1; i<6; i++){ LED_ALL = ~TEMP;if (KEY == 0) goto l1;Delay(1000);TEMP >>= 1;} } \/\/TYPE } } 这样看舒服多了,不明白地方提出来 ...

51单片机用汇编语言如何编写LED灯逐渐变亮在逐渐变暗啊
如果要控制电灯泡的话,频率不用太高,50hz可以了。关键是要做隔离,用光电隔离加双向可控硅来控制。呵呵,声明两点:1 源程序网上应该有的,或者自己买本书就什么也有了。2 不鼓励直接给别人源程序,给你思路再动手就应该很好弄了,总看别人的,不自己思考永远都是别人的。http:\/\/www.programsalon....

相似回答