如何设计电路图控制220v台灯的渐变
答案:1 悬赏:40 手机版
解决时间 2021-02-22 18:37
- 提问者网友:骑士
- 2021-02-22 12:12
如何设计电路图控制220v台灯的渐变
最佳答案
- 五星知识达人网友:平生事
- 2021-02-22 12:49
这个灯光渐变用数字电路控制的话,可以通过PWM波来实现,将占空比由小到大渐变,可以是灯光强度由弱变强,反之则可以由强变弱。
具体实现可以用定时器来做,比如:
#include
#define uchar unsigned char
#define uint unsigned int
uint zhouqi,pwmh;
uchar mode;
sbit keyup=P1^0;
sbit keydn=P1^1;
sbit pwm=P1^7;
void t0isr() interrupt 1
{
TH0=(65536-pwmh)/256;
TL0=(65536-pwmh)%256;
pwm=~pwm;
pwmh=zhouqi-pwmh;
switch(mode)
{
case 0:pwmh++;if(pwmh>zhouqi)pwmh=zhouqi;break;//模式1,渐亮
case 1:if(pwmh>0)pwmh--;break; //模式2,渐暗
default:break;
}
}
main()
{
zhouqi=10000;
pwmh=100;
TMOD=0x01;
TH0=(65536-pwmh)/256;
TL0=(65536-pwmh)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(keyup==0){mode=0;while(keyup==0);}
if(keydn==0){mode=1;while(keydn==0);}
}
}
具体实现可以用定时器来做,比如:
#include
#define uchar unsigned char
#define uint unsigned int
uint zhouqi,pwmh;
uchar mode;
sbit keyup=P1^0;
sbit keydn=P1^1;
sbit pwm=P1^7;
void t0isr() interrupt 1
{
TH0=(65536-pwmh)/256;
TL0=(65536-pwmh)%256;
pwm=~pwm;
pwmh=zhouqi-pwmh;
switch(mode)
{
case 0:pwmh++;if(pwmh>zhouqi)pwmh=zhouqi;break;//模式1,渐亮
case 1:if(pwmh>0)pwmh--;break; //模式2,渐暗
default:break;
}
}
main()
{
zhouqi=10000;
pwmh=100;
TMOD=0x01;
TH0=(65536-pwmh)/256;
TL0=(65536-pwmh)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(keyup==0){mode=0;while(keyup==0);}
if(keydn==0){mode=1;while(keydn==0);}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯