STC89C52单片机输出PWM控制电机,又要用8个数码管动态显示,怎样才能按下按键实现电机步进0.3转/分和0.1。

仅用单片机程序实现不借助于硬件。交流下方法

说到底还是时间分配的问题。
我不知道你的PWM频率是多少?
肯定的是PWM和数码管扫描都是要载中断中处理的。
我建议:一个PWM周期,扫描一位数码管,在装入时间长的那个电平处理。这样50HZX8=400HZ以上的PWM频率就可以了。
至于按键检测,可以放在主循环。当然也可以放在数码管扫描程序中。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-03
先编写0.3转/分钟 的中断子程序,按键执行中断程序,就转入0.3的程序了。
8个数码管动态显示:采用74138作为3-8译码器,进行位选,p0口输入显示数据。p1.0-1.2作为位选输入信号就可以了。追问

PWM我就用中断频率高的T1完成,再中断的话数码管就会闪的不成样子了,0.3要用多大的频率,在那频率中要用多大的分格才能输出这个0.3的精度(电机的转速在30~800之间)

相似回答