#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
uchar timer0_tick,ZKB=1//timer0_tick计数,ZKB占空比
uchar i=0,n=0,temp=0
code seven_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}//1,2,3, 4, 5, 6, 7, 8, 9
code scan[2]={0xfd,0xfe}
uchar counter[2]={0,0}
sbit AN1=P3^2//调整个位
sbit AN2=P3^3//调整十位
sbit AN3=P3^4//启动按键
sbit AN4=P3^5//确认按键
void delay(uint z)//软件延时函数
{
uint x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
static void timer0_isr(void) interrupt 1 using 0 //中断函数
{
TR0=0
TL0=0xf6
TH0=0xff
TR0=1
if (ZKB>99) ZKB=1
if (ZKB<1) ZKB=99
counter[0]=ZKB%10
counter[1]=ZKB/10
n++
if(n==100)
{
n=0
i++
if(i==2) i=0
P0=seven_seg[counter[i]]
P2=scan[i]
}
timer0_tick++
if(timer0_tick++==100)
{
timer0_tick=0
}
if(AN2==0)
{
delay(100)
if(AN2==0)
{
temp=1
counter[0]++
if(counter[0]==10)
{
counter[0]=0
}
}
}
if(AN1==0)
{
delay(100)
if(AN1==0)
{
temp=1
counter[1]++
if(counter[1]==10)
{
counter[1]=0
}
}
}
ZKB=counter[0]+counter[1]*10
if(AN4==0)
{
delay(5)
if(AN4==0)
temp=0
}
if(temp==1)
P3_7=0// P3_7为脉冲输出引脚
else
{
if (timer0_tick<=ZKB) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
{
P3_7=1
}
else
{
P3_7=0
}
}
}
static void timer0_initialize(void)//中断初始化
{
EA=0
timer0_tick=0
TR0=0
TMOD=0x01
TL0=0xf6
TH0=0xff
PT0=0
ET0=1
TR0=1
EA=1
}
void main(void)
{
STAR: delay(100)
if(AN3!=0) goto STAR//按键3启动脉冲
timer0_initialize()
while(1)
}
//按按键3启动脉冲器,初始设置占空比为1%,按键1调整十位,
//按键2调整个位,一旦调整,输出为0,必须按确认键确认,
//输出正确脉冲.可以占空比1-99%任意调节。
传统的灯具都是只有一个亮度级别或者几个亮度级别,需要通过开关控制灯的亮度,设定的级别不同,亮度是不同的。
无极调光灯具,用户可根据不同环境需要选择适合的亮度输出,也能设置非常低的低亮以达到超长的连续使用时间。无极调光使用体验和用眼健康相对要好,是照明行业发展的趋势之一。
扩展资料:
无极调光的优点
1、寿命。相对到传统的光源的灯具 ,无极调光的灯具可以根据光线的强弱及用户的需求将其调到合适的亮度,无极调光可以减少机械调光对灯的损失,再一个可以在极低亮度下运行,可有效提升寿命。
2、用户外体验。无级调光调色的LED灯具具有良好的体验,可以根据不同需求进行亮度和色温的调节。比如冬季可以选择暖光,夏季可以选择冷光,睡前可以调暗灯光,学习或清洁时可以将灯光调到最亮等。
3、价格。无级调光的成本现在比传统灯具要高,但随着后续成本的降低及寿命的提高,产品价格会逐渐降低。
参考资料来源:百度百科-无极调光
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)