您好,欢迎访问三七文档
PWM简介:PWM为脉宽调试波,其在本设计中主要用来调节电机转速,从而实现对小车行驶速度的灵活把握。PWM波可以通过多种方法得到,基于本设计中的主控芯片是MCS-51单片机,所以,通过定时器编程产生PWM波。考虑到小车的灵活控制和调速的方便,程序采用两个定时器产生两路独立的占空比可调的PWM波,即PWM_1(由T0产生)和PWM_2(由T1产生)。其设计思想如下:52单片的定时器T0和T1是具有独立定时功能的,而定时器产生定时溢出时会产生定时中断,此时,程序进入定时中断服务子程序。在中断服务子程序中除了做装入定时初值的工作外,还可以设计一些与定时器相关的操作,这里要介绍的PWM波就是在这个过程当中编程产生的。我们可以假设某一正整型变量PWM_ZHANKONG(它在产生PWM_1波时为PWM_1_ZHANKONG,在产生PWM_2波时为PWM_2_ZHANKONG)用来调节所产生的PWM波的占空比的大小,再假设某一正整型变量PWM_COUNTER(它在产生PWM_1波时为PWM_1_COUNTER,在产生PWM_2波时为PWM_2_COUNTER),该变量在0到PWM_COUNTER_MAX(本程序中设为200)之间变化,当程序每进入一次定时中断服务子程序,就使PWM_COUNTER自加一次,且当PWM_COUNTER等于PWM_COUNTER_MAX时,使PWM_COUNTER从0重新进行计数,依次往复。现我们以PWM_1的产生过程为例进行说明,PWM_2的产生相同。当PWM_1_COUNTER小于等于PWM_1_ZHANKONG时使PWM_1=0;当PWM_1_COUNTER大于PWM_1_ZHANKONG时使PWM_1=1,这样,PWM_1重复地出现“0”、“1”变化,就产生了PWM波。需要说明的是,PWM_1_ZHANKONG是可以通过编程在0到PWM_COUNTER_MAX之间自由浮动的,这样就实现了占空比的灵活变化,体现在小车控制上就是对车速的灵活掌控。现将PWM_1的PWM波产生及占空比调节程序流程图给出:开始定时器T0初始化程序对PWM_1_ZHANKONG调节PWM_1_COUNTERPWM_COUNTER_MAXYNPWM_1_COUNTER++PWM_1_COUNTER-=PWM_COUNTER_MAXPWM_1_COUNTERPWM_1_ZHANKONGYNPWM_1=1PWM_1=0给T0装入初值
本文标题:PWM波产生模块
链接地址:https://www.777doc.com/doc-5362935 .html