摘要:介绍一种新型pwm输出的方式。它是用89c51作为主控部分,用8254-2可编程定时器/计数器来实现1hz~3khz步进式pwm的输出;具有分辨率高、反应速度快及占用cpu时间少的优点。
关键词:8254-2 89c51 脉宽调制(pwm) 分辨率
方式3、16位二进计数, 送上次计算出来的这次所需要的计数值给8254-2,将10 4送入32h、33h中作为除法运算中的被除数,而30h、31h的内容作为除法运算中的除数,调用除法运算子程序将所得的商送入32h、33h,余数放在35h、36h中。比较余数是否大于除数的一半,若大于除数的一半则所得的商加1,否则商不变放在32h、33h中。假设程序指令所占用的时间为x/200(其中x为中断程序中单指令周期的个数),将32h、33h中的内容减去x/200,即为下次所要送入8254-2的计数值,放在35h、36h中,返回中断;若大于20,则门控为p2.3,选中8254-2,选择计数器1、方式3,送上次计算出来的这次所需的计数值给8254-2,将10 5送入32h、33h、34h中作为除法运算中的被除数,而30h、31h中的内容作为除法运算中的除数,调用除法运算子程序,将所得的商送入32h、33h中,余数放在35h、36h中。比较余数是否大于除数的一半,若大于除的一半则所得的商加1,否则商不变。假设程序指令所占用的时间为x/20,将32h、33h中的内容减去x/20即为下次所要送入8254-2的计数值,放在35h、36h中,返回中断,若大于200,则门控为p2.4,选中8254-2,选择计数器2、方式3、二进制计数,送上次计算出来的这次所需的计数值给8254-2,将10 7送入32h、33h、34h中作为除法运算中的被除数,而30h、31h中的内容作为除法运算中的除数,调用除法运算子程序,将所得的商送入32h、33h中,余数放在35h、36h.比较余数是否大于除数的一半,若大于除数的一半则所得的商加1,否则商不变入在32h、33h中。假设程序指令令所占用的时间为x*5,将32h、33h中的内容减去5x,即为下次所要送入8254-2的计数值,放在35h、36h中,返回中断。