热门关键词:
位置:首页 > 机械文档

如何利用单片机模拟PWM

  • 该文件为doc格式
  • 文件大小:37KB
  • 浏览次数
  • 发布时间:2017-03-10
文件介绍:

本资料包含doc文件1个,下载需要20积分

如何利用单片机模拟PWM如何利用51单片机输出PWM波
1、理论知识
2、程序及分析
1、理论知识
PWM这个功能在飞思卡尔、STM32等高档的单片机内部有专用的拈,用此类芯片实现PWM功能时只需要通过设置相应的寄存器就可实现周期和占空比的控制。但是如果要用51单片机的话,也是可以的,但是比较的麻烦。此时需要用到内部定时器来实现,可用两个定时器实现,也可以用-个定时器实现。
用两个定时器的方法是用定时器T0来控制频率,定时器T1来控制占空比。大致的的编程思路是这样的:T0定时器中断让-个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比。
下面重点介绍用-个定时器的实现PWM的方法。因为市面上的智能小车所采用的电机大多数为TT减速电机,通过复杂的实验此电机最佳的工作频率为1000HZ(太高容易发生哨叫,太低电机容易发生抖动),所以下面以周期为1ms(1000HZ)进行举例,要产生其它频率的PWM波,程序中只需作简单修改即可。
用-个定时器时(如定时器T0),首先你要确定PWM的周期T和占空比D,确定了这些以后,你可以用定时器产生-个时间基准t,比如定时器溢出n次的时间是PWM的高电平的时间,则DTnt,类似的可以求出PWM低电平时间需要多少个时间基准n。
因为这里我们是产生周期为1ms(1000HZ)的PWM,所以可设置中断的时间基准为0.01ms,,然后中断100次即为1ms。在中断子程序内,可设置-个变量如time,在中断子程序内,有三条重要的语句:1、当time>100时,time清零(此语句保证频率为1000HZ),2、当time>n时(n应该在0-100之间变化开),让单片相应的I/O口输出高电平,当time

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败