小弟初识松翰单片机,现用sn8p2711,编写了一个PWM调光的程序。

小弟初识松翰单片机,现用sn8p2711,编写了一个PWM调光的程序。,第1张

TC0C是定时器自身计数用的当然不能赋值,如果想调整占空比只有对TC0R赋值。规格书上写得很清楚:

PWM 信号输出到 PWM0OUT ( P54 引脚), TC0OUT 和 ALOAD0 标志位控制 PWM 输出的阶数( 256 、 64 、 32

和 16 )。 8 位计数器 TC0C 计数过程中不断与 TC0R 相比较,当 TC0C 计数到两者相等时, PWM 输出低电平,当 TC0C

再次从零开始计数时, PWM 被强制输出高电平。 PWM0 输出占空比 = TC0R/ 计数量程 (计数量程 = 256 、 64 、 32 或 16 ) 。

参考寄存器保持输入 00H 可使 PWM 的输出长时间维持在低电平,通过修改 TC0R 可改变 PWM 输出占空比。

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

#include<regx51h>

#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=z;x>0;x--)

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

}

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

首先,你需要将Leaf2安装在你的房间的开关上。然后,你需要登录Leaf2的应用,打开“自动调光”功能。点击“设置”,然后输入你想要的调光程序的详细信息,包括你想要调光的时间,以及你想要的颜色温度等信息。一旦你设置好了,Leaf2就会自动按照你设定的调光程序改变灯光亮度和颜色温度。

以上就是关于小弟初识松翰单片机,现用sn8p2711,编写了一个PWM调光的程序。全部的内容,包括:小弟初识松翰单片机,现用sn8p2711,编写了一个PWM调光的程序。、松翰单片机无极调光程序设计、leaf2如何设置自动调光等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9839506.html

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

发表评论

登录后才能评论

评论列表(0条)

保存