51单片机怎样输出频率F=0.2-50HZ,占空比D=1-100%可调的PWM波形
最好用一个定时器,实在不行用两个定时器也可以;不要在网上瞎复制一个答案给我,写的代码主要部分标注一下;...
最好用一个定时器,实在不行用两个定时器也可以;不要在网上瞎复制一个答案给我,写的代码主要部分标注一下;
展开
展开全部
利用定时器。
uint PwmCnt = 0;
sbit PWN_OUT = P1^1;//可改动
uint PwmD = 50;//占空比 可调
uint PwmF = 500;//频率 可调 10 = 1HZ 500 =50HZ
uint PwmCnt = 0;//占空比计数值
uint FreCnt = 0;//频率分频值
void T0 interrupt 1
{
.....//赋值TO计数值 50us
if(++FreCnt>= (1000/PwmF))//通过改变PwmF 达到分频效果 改变输出频率
{
if(++PwmCnt>=100) PwmCnt=0; //再次分频100 占空比精度需要这样
if(PwmCnt<PwmD )//改变D值 可以改变引脚状态占用时间
{
PWN_OUT = 1;
}
else
{
PWN_OUT =0;
}
}
}
//思想是这样 我也没测过
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询