AT89s52单片机如何通过PWM调节负载直流电流值?PWM信号不能通过软件只能通过硬件产生?

来源:百度知道 编辑:UC知道 时间:2024/06/20 00:13:03
我希望用AT89S52做一个小系统,其中一个功能需要用到PWM控制直流电流值,我知道at89s52不带PWM功能,而由于实际情况的限制,不能利用软件产生PWM信号。最理想的情况是能够利用单片机间歇性的改变PWM信号从而改变负载(一个小型电磁铁)的电流值,而大部分时间做其他的工作,要求在这段时间里负载电流值能够保持不变,直到下一次变流操作。我对PWM技术目前还没有深入的了解,但估计应该可以用单片机+PWM控制芯片来实现,但具体怎么做还不清楚,恳请高人指点,推荐一些好的PWM芯片,以及它们与单片机如何连接,如何通过单片机实现控制?

补充说明:这个功能要求并不高,单片机通过PWM调节直流电流的效果是通过别的途径进行反馈的,所以PWM这一模块可以认为是开环控制,负载真正的电流值并不要求严格遵循单片机输出的预期信号,只对上限(实际电流能够大于一定值)和下限(完全断电)有一点要求,中间只要做到正相关和一一对应即可,也不要求线性。

还是用单片机(无论是硬件还是软件)直接输出PWM信号比较合理;如果PWM的频率要求不高的话采用定时中断的方式是比较容易实现的,也不太占用CUP的时间;
如果要加外部PWM模块的话,单片机要控制外部模块的PWM占空比也是挺讨厌的,要DA输出或PWM输出滤波产生可变模拟信号控制外部PWM(还是要PWM);

非要用外部PWM的话:1、可以考虑采用像3-8译码、模拟开关、74164等这样的芯片,输出接不同的电阻网络产生可变的模拟量控制;

换一个单片机吧,带PWM输出的,只需改内存值就可以了
如果你一定要用S52,那你再弄一个单片机专门产生PWM得了;简单也明了

估计楼主也不太想换一种单片机,S52可以用软件的方式产生PWM波的,而且调节占空比也很方便。具体方法利用定时器,并在中断函数中进行计数,计数到不同的次数控制相应的引脚进行翻转,即可输出相应的pwm波。这只是一个方法,楼主可以按这种思路研究一下,我以前做过智能小车,利用51单片机产生的pwm同时控制舵机和直流电机,用的就是这种方法。

推荐用STC4052来做,内部带PWM发生器,程序跟AT一样

还是用定时吧!