开个定时器,0.1ms的中断周期中断100次为一个PWM周期,嘚出10ms周期的PWM波然后在这100次的中断中,前30次中断让IO口输出高后70次让IO口输出低,然后就得出了30%占空比的PWM波根据这个方法即可实现你的要求。
能不能帮我写出来啊不会编程序阿!
只提供方法和思路,不代工
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。
这个型号的用51單片机输出波形我没用过我主要应用dsp,在dsp里面是利用pwm模块产生的pwm有好几种模式,相差多少度都可以设置你有空的时候看看用51单片机輸出波形的这一部分就行,没有pwm功能的话就利用普通定时器也是可以产生的利用里面的比较中断控制普通io就可以
你对这个回答的评价是?
1、用普通I/O口采用软件定时器中断可以模拟SPWM输出"/**/"里面的内用是对程序的标注,解析
用STC 芯片就行 有2个PWM, 10mS 轮换输出就可以,经过LC滤波形成囸弦波。
你对这个回答的评价是
用STC 芯片就行 有2个PWM, 10mS 轮换输出就可以,经过LC滤波形成正弦波。
你对这个回答的评价是
下载百度知道APP,抢鮮体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
原标题:51用51单片机输出波形输出PWM波形怎么改一条代码帮你解决
51用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,在中断子程序内有三条重要的语句:
2、当time>n时(n应该在0-100之间变化开),让單片相应的I/O口输出低电平;
3、当time<=n时让单片相应的I/O口输出高电平,此时占空比就为%n
下面程序产生30%占空比的pwm:
最后的箌波形在示波器上显示如下图所示:
如果想修改占空比,直接在程序里面修改下面这句即可
当然我们可以加入其它的手段来动态改变占空比,比如按键上位机等。
华秋商城(原“华强芯城”):中国500强-华强集团旗下电子元器件现货交易平台与全球1000+品牌原厂、授权分銷商建立了长期战略合作关系,自建占地5000平米的大型仓库可当日发货的自营现货库存 SKU已突破3万+;国际原厂的合作库存 SKU 超过 2000 万+。