电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

如何利用51单片机输出PWM波VIP免费

如何利用51单片机输出PWM波_第1页
1/12
如何利用51单片机输出PWM波_第2页
2/12
如何利用51单片机输出PWM波_第3页
3/12
如何利用 51 单片机输出 PWM波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的高电平的时间, 则 D*T=n*t ,类似的可以求出PWM低电平时间需要多少个时间基准 n' 。因为这里我们是产生周期为1ms(1000HZ)的 PWM,所以可 设置中断的时间间隔为0.01ms, ,然后中断 100 次即为 1ms。在中断子程序内,可设置一个变量如time,在中断子程序内, 有三条重要的语句 :1 、当 time>=100 时,time 清零 ( 此语句保证频率为 1000HZ),2、当 time>n 时(n 应该在 0- 100 之间变化开 ) ,让单片相应的I/O 口输出高电平 ,当 time#define uint unsigned int#define uchar unsigned charsbit PWM1=P2^0;// ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

如何利用51单片机输出PWM波

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部