导航:首页 > 操作系统 > 单片机单按键输出两路呼吸灯

单片机单按键输出两路呼吸灯

发布时间:2022-09-23 17:58:24

A. 求一个89c52单片机的光控呼吸灯程序 ,就是边呼吸边移动的,相当于呼吸与流水灯结合,两个按键能加减速度

直接用按钮触发外部中断的,一个加速,一个减速。

用的光敏电阻和继电器做的光电开关。

电路我用proteus 8画和仿真的。你参考吧。

#include <reg52.h>

#define uint unsigned int

void delay(uint time);

void flicker(uint led);//呼吸灯

void init();

uint t1=80;//闪烁频率

uint light=0;

sbit k1=P3^2;

sbit k2=P3^3;

sbit led1=P1^6;

sbit led2=P1^7;

void main()

{

uint led1=0xFE,led2=0xFD,led3=0xFB;

init();

while(1)

{

flicker(led1);

flicker(led2);

flicker(led3);

}

}

void init()

{

IT0=0;

IT1=0;

EX0=1;

EX1=1;

EA=1;

}

void delay(uint t)//延时程序

{

uint i,j;

for(i=t;i>0;i--)

for(j=110;j>0;j--);

}

void flicker(uint led)//呼吸灯 flag==1逐渐变亮 flag==0逐渐变暗

{

uint flag=1;

while(1)

{

P1=led;

delay(light);

P1=0xFF;

delay(t1-light);

if(flag==1)

light++;

else

light--;

if(light==t1 && flag==1)

flag=0;

else if(light==0 && flag==0)

break;

}

}

void click1()interrupt 0 //加速

{

delay(10);

if(k1==0)

{

while(k1==0);

if(t1-1>light)

t1--;

else

{

t1--;

light=t1-1;

}

}

}

void click2()interrupt 2 //减速

{

delay(10);

if(k2==0)

{

while(k2==0);

if(t1<80)

t1++;

}

}

B. msp430单片机通过长短按键控制呼吸灯程序求解

我也在学msp430,也想编个长短按的程序,你能帮你的程序发给我参考参啊,谢了
[email protected]

C. 如何利用单片机设计出呼吸灯

#include<reg52.h> //包含头文件,一般情况不需要改动,
sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号
void Delay(unsigned int t); //函数声明

void main (void)
{

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

while (1) //主循环
{
LED0=1;
Delay(60000); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{//PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次

LED0=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
LED0=1; //熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1

}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){//与逐渐变亮相反的过程

LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);

}
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}

D. 单片机式的呼吸灯控制方法

我们通常会在各类器件上看到形形色色的指示灯,它们都分别代表着不尽相同各项功能的运行情况。而由灯发出的指示光要比其他方法传递信息更直接更明显,也更加的经济。而现在呼吸灯这项技术已经应用于各个方面,甚至包括智能机的应用,而其比较多样的呼吸方法在传递相关信息上也是方便至极,那么今天我们就来看看呼吸灯的控制问题。

灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。


应用

广泛应用于手机之上,并成为各大品牌新款手机的卖点之一。如果你的手机里面有未处理的通知,比如说未接来电,未查收的短信等等,呼吸灯就会由暗到亮的变化,像呼吸一样那么有节奏,起到一个通知提醒的作用。

电子爱好者可通过简单的电路来实现呼吸灯的效果。


为何很多手机都取消了呼吸灯

回答之前,小编想先纠正一个问题,并不是智能机都取消了呼吸灯,很多设备还是具备这一功能的,只不过能够将这一功能发挥到极致的手机,确实是少之又少。安卓设备其实多数都是有LED灯的,不过原生安卓系统本身没有提供一个可以统一控制的通知中心,而是要每个应用自己决定显示通知的方式,这方式包括声音、震动、LED灯及其颜色,再加上不同手机的灯或多或少都有些不同,这样就造成了有的应用不支持LED灯有的应用却错误地触发了LED灯。

久而久之,在我的日常使用中,LED灯通常会给人一种十分不可靠的感觉,实际表现在我们该点亮屏幕的时候还是会点亮屏幕,不该点亮屏幕的时候,看到LED灯错误的亮起,也要去点亮屏幕去处理,就这样,一个听起来很好的功能反倒变得有些鸡肋甚至是惹人讨厌。到了安卓4.4以后,感觉系统在LED灯控制方面更为混乱,一些常驻通知栏的图标甚至也会触发LED灯,导致用户体验极差。

而有些如CM一类的第三方ROM会提供系统级的分应用LED灯设置,不过在实际使用中的表现也不够完美。所以虽然LED呼吸灯本来是一个很好的设计,但是安卓系统却没有做好,于是有些厂商索性就取消了LED灯,或者取消了LED灯的呼吸功能。

另外,可能有些人会问,为何苹果手机也没有呼吸灯,这又是个老生常谈的问题了,苹果不具备的东西很多,很多时候我们都不知道为什么,不采用呼吸灯,可能是因为技术,也可能是因为专利,苹果同安卓不同,其并非开源系统,很多时候,苹果都会来规范用户的使用习惯,不设置呼吸灯,或许只是因为苹果觉得用户不需要它吧。至于这位网友在问题中提到的触控反馈,这个其实不需要小编多说了,貌似目前大部分手机都有触控反馈吧,只需要在设置中调出来就好。

呼吸灯的作用

呼吸灯是一个提气的设计,它让手机不再是一块只会亮屏的板砖。因为不是所有的消息通知都需要处理,也不是所有的消息通知都会马上处理。对于手机来讲,亮屏铃声震动属于强通知,这包括一些软件提供的来电闪光功能,呼吸灯则属于弱通知,不是所有人都会定期去查看手机的,多数情况下在办公室我们都只是把手机放在桌上,偶尔去下洗手间也不会带着,这中间如果有消息,我们回来瞟一眼就知道了,呼吸灯作为弱通知的作用,提醒的意义大于通知。



先说呼吸灯,这个本质上是LED的亮度控制。

一般是用PWM方式控制LED亮度,PWM的输出按照一定的规律变化,就可以做出呼吸灯的效果。

再说30个LED的控制,如果要简单点做,30个LED可以串起来串一个电阻,接高点的电源电压,30个LED用同一个信号控制,当然,亮度也是同步变化的。如果要复杂,那就出30个信号分别控制30个LED串30个电阻,具体看你的追求的效果吧。


呼吸灯的程序,如果有硬件的PWM模块,是很简单的,按一定的规律让PWM的输出变化就可以。

像这样输出10%亮度,持续200ms,输出20%亮度,持续200ms,输出30%亮度,持续200ms。

如果没有硬件PWM模块,可以用软件来模拟,比如,输出10%亮度,持续200ms这两件事合在一起作,变成输出高电平10us,输出低电平90us,循环2000次。


两种方法

方法1:1000个左右的灯,需要10根地址线选通,51的IO管脚应该是没有问题。剩下的就是要用大量的译码器,把二进制信息转换为管脚信息。

估计你仅仅是控制亮和灭,如果是这样选通也就可以进行明暗的控制,否则输出的信息也要加进去,就是说需要加驱动电路。

方法2:用移位电路,比如HC595,在51中地址做为串行信号发出,转换为对应的地址线,然后在连接译码器,这样,51的管脚比较节省,但,编程的难度稍大。


那么上述就是呼吸灯相关控制的方法和技巧,我们讲,呼吸灯控制在硬件圈是一个很普通的项目,而所采用的单片机控制也是硬件里最基础的,相信很多人在研习过后都能够掌握,而即便不必要掌握这个情况,熟悉相关的原理情况也可以让其在遇见故障的时候能够迅速找到方法来排除,那么今天呼吸灯控制的问题就给大家介绍到这里。

E. 51单片机控制的 呼吸灯

并联的、全部同时亮、同时灭?

那不需要很特别的,电阻、三极管、LED,基本够了。
单片机IO控制三极管、三极管再控制LED

F. 如何让一个按键控制两路电路

点触开关是脉冲输入,你按下线路接通,手松开线路又断了,可是为什么你手松了,小灯还亮?是因为你按键时,脉冲信号已被转化电平信号存入单片机,使得单片机连接小灯的I/O口保持高/低电平。如果你不想用单片机也可以,但是你必须用到触发器,用最简单的D触发器,让反相输出接到输入端,时钟端接开关,只要给时钟一个跳变信号,两输出端的高低电平就会调换一次位置。如果两输出端分别接发光二极管和地就可以了

G. 怎么用一个独立按键控制流水灯和呼吸灯转换

单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR ARR ARR AORl A,#0F0HMOV P1,ASJMP START可以检测单个按键,也可以同时检测多个按键过程:开始--读P1口数据到A--A中的数据右移4次--A中的内容和F0H相或--A中的数据送到P1口--回到开始

H. 单片机一个接口怎么控制两个LED灯!

如果使用编码方式,单片机的IO分成两路,一路直接接LED,另一路先通过一个非门再接LED,这样IO口输出0或者1时只点亮其中一个LED,即实现了控制。
如果你还想要其他控制方式,那就是用串口的TXD发出数据了,这时要另一个单片机的RXD接收,然后可以控制多个LED。

I. 用51单片机编程,做一个呼吸灯,用按键来控制灯的开关

急的话提交到21ic项目平台,有专业人才承接项目
project.21ic.com/member

J. 怎么实现让51单片机一边执行呼吸灯,一边数码管动态显示,最好还要有按键控制周期,请问这些程序该如何

所谓的呼吸灯,是类似于流水灯吧,每点亮一次或流动一次是需要延时的,而数码管的动态显示也要调用一个显示子程序吗,调用一次显示子程序也是需要时间,就对调用显示子程序的次数计数,当计到n次后的时间,就是呼吸灯点亮一次的时间的话,就点亮一次好了。这个计数值n取多少合适,就得通过实际测试了。不妨先设个值,如40,然后实际运行程序,看这个时间合适不,不合适,再增加或减小这个数,这样,总会找一个适合的数了。
这个数找到后,其实改变这个数就是改变呼吸灯变化的速度,因此,在程序中需要改变呼吸灯变化的速度时,就通过按键来改变这个数n就可以实现了。
你这不过才是两个任务,如果单片机就只能完成一个任务,那还叫单片机吗?其实,能完成多少任务,就取决于你写的程序。写什么程序就完成什么任务。

阅读全文

与单片机单按键输出两路呼吸灯相关的资料

热点内容
磁力计校正算法 浏览:491
解压缩后变小了 浏览:957
智友文件夹 浏览:81
android操作系统开发的操作系统 浏览:478
原神手机怎么改b站服务器 浏览:296
桩基箍筋加密区高度规范 浏览:91
手机樱花动漫app怎么用 浏览:382
php科学计数法转换 浏览:642
sip认证算法 浏览:785
androidapp卡顿原因 浏览:905
25编程器电路 浏览:849
安卓九是什么东西 浏览:939
隐藏nodejs命令行窗口 浏览:62
人体与写生素描pdf 浏览:883
java集合性能 浏览:143
单片机三线通信 浏览:209
昆山ug编程培训学费 浏览:628
黄色app怎么盈利的 浏览:957
怎么修改linux密码 浏览:703
国家发展中心app长什么样子 浏览:242