51单片机输出PWM的最高频率和占空比
我想利用它来控制我的直流5V小台灯,想利用51单片机输出PWM来控制三极管的开与关,想知道51所能承受的PWM的最大频率,还有什么频率条件下台灯的亮度转换就肉眼看不出来的...
我想利用它来控制我的直流5V小台灯,想利用51单片机输出PWM来控制三极管的开与关,想知道51所能承受的PWM的最大频率,还有什么频率条件下台灯的亮度转换就肉眼看不出来的?
以及51能够输出的PWM的占空比的范围? 展开
以及51能够输出的PWM的占空比的范围? 展开
展开全部
51所能输出的PWM的最大频率 是由单片机的时钟周期决定的,
25Hz以上肉眼就基本看不出来了
占空比是可以0%~100%调整的,这个是由程序决定
#include <REGX52.H>
#define uchar unsigned char
#define uint unsigned int
sbit PWM_OUT=P3^0; //PWM输出
void DelayMS(uint ms)
{
uchar i,j;
for(j=ms;j>0;j--)
for(i=0;i<40;i++);
}
void main()
{
uint Val; 改变Val值可以改变占空比 0--100
while(1)
{
ADOE=0;
if(Val==0) //PWM 输出(占空比为0%)
{
PWM_OUT=0;
DelayMS(255);
continue;
}
if(Val==0xff) //PWM输出(占空比为 100%)
{
PWM_OUT=1;
DelayMS(255);
continue;
}
PWM_OUT=1;
DelayMS(Val);
PWM_OUT=0;
DelayMS(255-Val);
}
}
25Hz以上肉眼就基本看不出来了
占空比是可以0%~100%调整的,这个是由程序决定
#include <REGX52.H>
#define uchar unsigned char
#define uint unsigned int
sbit PWM_OUT=P3^0; //PWM输出
void DelayMS(uint ms)
{
uchar i,j;
for(j=ms;j>0;j--)
for(i=0;i<40;i++);
}
void main()
{
uint Val; 改变Val值可以改变占空比 0--100
while(1)
{
ADOE=0;
if(Val==0) //PWM 输出(占空比为0%)
{
PWM_OUT=0;
DelayMS(255);
continue;
}
if(Val==0xff) //PWM输出(占空比为 100%)
{
PWM_OUT=1;
DelayMS(255);
continue;
}
PWM_OUT=1;
DelayMS(Val);
PWM_OUT=0;
DelayMS(255-Val);
}
}
意法半导体(中国)投资有限公司
2021-01-14 广告
2021-01-14 广告
推荐STC的抗干扰很好。用9块钱的STC89C54RD+,16K的ROM,1K的RAM。我用过的,实现你的功能不成问题。如果环境恶劣,也可以选择工业级的STC89C54RD+,14块钱。而且这个单片机带AD,10位分辨率。可以用来接你的压力...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询