51单片机是可以输出pwm的,比较的麻烦。此时需要用到内部定时器来实现,可用两个定时器实现,也可以用一个定时器实现。
用两个定时器的方法是用定时器t0来控制频率,定时器t1来控制占空比。大致的的编程思路是这样的:t0定时器中断让一个i0口输出高电平,在这个定时器t0的中断当中起动定时器t1,而这个t1是让io口输出低电平,这样改变定时器t0的初值就可以改变频率,改变定时器t1的初值就可以改变占空比。
下面重点介绍用一个定时器的实现pwm的方法。以周期为1ms(1khz)为例,要产生其它频率的pwm波,程序中只需作简单修改即可。用一个定时器时(如定时器t0),首先要确定pwm的周期t和占空比d,确定了这些以后,就可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是pwm的高电平的时间,则d*t=n*t,类似的可以求出pwm低电平时间需要多少个时间基准n。
因为这里我们是产生周期为1ms(1khz)的pwm,所以可设置中断的时间基准为0.01ms,,然后中断100次即为1ms。在中断子程序内,可设置一个变量如time,在中断子程序内,有三条重要的语句:
1、当time>=100时,time清零(此语句保证频率为1khz);
2、当time>n时(n应该在0-100之间变化开),让单片相应的i/o口输出低电平;
3、当time=100)//1khz
time=0;
if(time<=30)//占空比%30,可改
pwm=1;
elsepwm=0;
}
最后的到波形,在示波器上显示如下图所示:
如果想修改占空比,直接在程序里面修改下面这句即可。
if(time<=30)//占空比%30,可改占空比
多个RS485设备如何实现防水连接
什么是负载均衡(Load Balance)
航空插头防水检测的案例
15W USB Type-C充电器MAX14748
MIT发明了一种方法,几乎可以制造任何形状的纳米级三维物体
如何基于51单片机利用定时器的实现PWM的方法详细概述
江苏新能源发电数据中心建成投用
要求更高的智能家居电源模块
什么是语音芯片?作用是什么?
概伦电子半导体电特性测试解决方案即将亮相SEMICON China
并行计算平台和NVIDIA编程模型CUDA的更简单介绍
苹果这款笔记本被禁止带上飞机!
国外疫情扩散 谷歌或推出带有广告的免费电影
近年来DRL领域的发展脉络梳理
华为手机鸿蒙系统有什么功能?
三星为何再推新款Tizen系统手机?
《暗黑破坏神:不朽》携手天玑旗舰运用可变速率渲染(VRS)技术为玩家带来极致体验
泰国洪水硬盘危机已过 苹果受影响微乎其微
魅族魅蓝6和红米4X哪个值得买?
国产食品安全检测仪品牌推荐之食品卫生安全详细讲解