标题:
求一个纯硬件呼吸灯的思路?
[打印本页]
作者:
金玉之食
时间:
2024-5-30 10:31
标题:
求一个纯硬件呼吸灯的思路?
想做点小玩意玩玩,突然就想到了呼吸灯,又想到了能不能纯硬件实现呼吸灯。各位大佬有没有思路?555定时器之类的
作者:
yzwzfyz
时间:
2024-5-30 13:54
不复杂:双稳,周期斜坡电流,驱动LED。
作者:
Y_G_G
时间:
2024-5-30 14:30
运放输出三角波,后面加一个电压跟随器,输出加个电阻串联就可以了
不管是理论上还是实际上,这都是一个相对简单的电路的,我实际上也做过这个小电路
但是,意义何在?
作者:
zhuls
时间:
2024-5-30 15:10
百度一下关键字:“LM358呼吸灯电路”,有你想要的。
作者:
STC庄伟
时间:
2024-5-30 16:23
#include "reg51.h"
#include "intrins.h"
#define CYCLE 0x1000
sfr P_SW2 = 0xba;
sfr PWMSET = 0xF1;
sfr PWMCFG01 = 0xF6;
sfr PWMCFG23 = 0xF7;
sfr PWMCFG45 = 0xFE;
#define PWM0C (*(unsigned int volatile xdata *)0xFF00)
#define PWM0CH (*(unsigned char volatile xdata *)0xFF00)
#define PWM0CL (*(unsigned char volatile xdata *)0xFF01)
#define PWM0CKS (*(unsigned char volatile xdata *)0xFF02)
#define PWM0TADC (*(unsigned int volatile xdata *)0xFF03)
#define PWM0TADCH (*(unsigned char volatile xdata *)0xFF03)
#define PWM0TADCL (*(unsigned char volatile xdata *)0xFF04)
#define PWM0IF (*(unsigned char volatile xdata *)0xFF05)
#define PWM0FDCR (*(unsigned char volatile xdata *)0xFF06)
#define PWM00T1 (*(unsigned int volatile xdata *)0xFF10)
#define PWM00T1H (*(unsigned char volatile xdata *)0xFF10)
#define PWM00T1L (*(unsigned char volatile xdata *)0xFF11)
#define PWM00T2H (*(unsigned char volatile xdata *)0xFF12)
#define PWM00T2 (*(unsigned int volatile xdata *)0xFF12)
#define PWM00T2L (*(unsigned char volatile xdata *)0xFF13)
#define PWM00CR (*(unsigned char volatile xdata *)0xFF14)
#define PWM00HLD (*(unsigned char volatile xdata *)0xFF15)
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;
void PWM0_Isr() interrupt 22
{
static bit dir = 1;
static int val = 0;
if (PWMCFG01 & 0x08)
{
PWMCFG01 &= ~0x08; //清中断标志
if (dir)
{
val++;
if (val >= CYCLE) dir = 0;
}
else
{
val--;
if (val <= 1) dir = 1;
}
_push_(P_SW2);
P_SW2 |= 0x80;
PWM00T2 = val;
_pop_(P_SW2);
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
PWMSET = 0x01; //使能PWM0模块(必须先使能模块后面的设置才有效)
P_SW2 = 0x80;
PWM0CKS = 0x00; // PWM0时钟为系统时钟
PWM0C = CYCLE; //设置PWM0周期
PWM00T1= 0x0000;
PWM00T2= 0x0001;
PWM00CR= 0x80; //使能PWM00输出
P_SW2 = 0x00;
PWMCFG01 = 0x05; //启动PWM0模块并使能PWM0中断
EA = 1;
while (1);
}
作者:
hi等你
时间:
2024-5-31 14:58
楼主的想法无意义,这本来是在软件系统中比较优越的设计,例如,菜单设定栏可以用呼吸灯
效果表示当前选定,编程时钟调整分钟的时候,让分钟字体产生呼吸效果,其他字体常亮。楼主
仅仅让一盏灯实现硬件呼吸效果,怎么用,如何用,显摆都没技术含量
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1