• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

stc12c5a60s2的硬件pwm程序

#include "STC12C5A60S2.h"
#define uint unsigned int
#define uchar unsigned char
sbit addPWM = P0^7;//通过两个口低电平来加减来变化pwm
sbit cutPWM = P0^6;
void delay(uchar ms);
void init_PWM();
void PWM0_change(uchar type,uchar change);
void PWM0_set(uchar empty);
void delay(uchar ms)
{
	uint i;
	while(ms--)
	{
		for(i=0;i<850;i++);
	}
}
void init_PWM()
{
	CCON = 0x00;
	CH = 0;
	CL = 0;
	CMOD =0x02;
	PWM0_set(0X00);
	PCA_PWM0=0x00;
	CCAPM0=0X42;//8位PWM无中断
	 CR=1; 
}
void PWM0_set(uchar empty)
{
  CCAP0L=empty;
	CCAP0H=empty;
}
void PWM0_change(uchar type,uchar change)
{
	if(type==0)
	{
		if(CCAP0L<0xE6)
		{
			CCAP0L+=change;
			CCAP0H+=change;
		}
	}
	else
	{
		if(CCAP0L>0X19)  //>10% 
		CCAP0L-=change;
		CCAP0H-=change;
	}
}

void main()
{
	init_PWM();
	while(1);
	{
		if(addPWM==0)
		{
			delay(500);
			while(addPWM==0);
			PWM0_change(1,0X0C);
    }
			if(cutPWM==0)
			{
				delay(500);
				while(cutPWM==0);
				PWM0_change(0,0X0C);
			}
		}
	}

全部回复(3)
正序查看
倒序查看
2016-05-17 16:17
通过按键不反应,不知是怎么回事
0
回复
2016-05-18 10:08
@lihui710884923
通过按键不反应,不知是怎么回事

帮顶帮顶~~~


扫一下二维码,工作人员邀你进电源网官方微信群(技术我们是闲侃的,闲侃我们是认真的)

0
回复
2016-05-25 21:51
去看一下这个帖子,http://www.dianyuan.com/bbs/1514239.html  里面有按键PWM调光
0
回复