松翰单片机无极调光程序设计

松翰单片机无极调光程序设计,第1张

调占余蠢帆空比,具体可以参照51的。

#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%任意调节。

公牛无极灯设置一打开就是自然光方法就是上次关灯的状态是自然光就可以了。

长时间关闭打开和上次打开是一样的光,短时间关闭再次打开会变色。

无极冲吵调光袜闹:灯的亮度可以从0.5瓦到灯的最大瓦数可以随意调节,是渐变效果,没有档位限制,自由掌握,想要什么亮度就要什么亮度,光色从白光散好侍到暖光随意调节,可以随心所欲要自己舒适的颜色。

这个简单# include<reg51.h>

sbit K1 =P1^0 //增加键

sbit K2 =P1^1//减少键

sbit BEEP =P1^2//蜂鸣器

unsigned char PWM=0x12 /丛运则/赋渗棚初悄塌值


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12535774.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存