PWM这个功能在飞思卡尔、STM32等高档的单片机内部有专用的模块,用此类芯片实现PWM功能时只需要通过设置相应的寄存器就可实现周期和占空比的控制。但是如果要用51单片机的话,也是可以的,但是比较的麻烦。此时需要用到内部定时器来实现,可用两个定时器实现,也可以用一个定时器实现。
文档内容节选
1理论知识 PWM这个功能在飞思卡尔STM32等高档的单片机内部有专用的模块,用此类芯片实现PWM功能时只需要通过设置相应的寄存器就可实现周期和占空比的控制但是如果要用51单片机的话,也是可以的,但是比较的麻烦此时需要用到内部定时器来实现,可用两个定时器实现,也可以用一个定时器实现 用两个定时器的方法是用定时器T0来控制频率,定时器T1来控制占空比大致的的编程思路是这样的:T0定时器中断让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比 下面重点介绍用一个定时器的实现PWM的方法因为市面上的智能小车所采用的电机大多数为TT减速电机,通过反复的实验,此电机最佳的工作频率为1000HZ太高容易发生哨叫,太低电机容易发生抖动所以下面以周期为1ms1000HZ进行举例,要产生其它频率的PWM波,程序中只需作简单修改即可用一个定时器时如定时器T0首先你要确定PWM的周期T和占空比D,确定了这些以后,你可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是PWM的高......
猜您喜欢
评论