background image

基于单片机 AT89S52 的直流电机 PWM 调速控制系统

分通过外接 12V 电源驱动。这样不仅增加了各系统模块之间的隔离度,也
使驱动电流得到了大大的增强。

在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。

脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差
脉冲频率低则反之。经实验发现,当电动机转动平稳,但加负载后,速度
下降明显,低速时甚至会停转;脉冲频率在 10Hz 以下,电动机转动有明
显跳动现象。而具体采用的频率可根据个别电动机性能在此范围内调节。通
过 P10 输入高电平信号,P11 输入低电平,电机正转;通过 P10 输入低
电平信号,P11 输入高电平,电机反转;P10、P11 同时为高电平或低电
平时,电机不转。通过对信号占空比的调整来对电机转速进行调节。

2、系统的软件设计

 本系统编程部分工作采用 KELI-C51 语言完成,采用模块化的设计方

法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键
识别和功能、PWM 脉宽控制和数码管显示等部分的设计。
单片机资源分配如下表:

P0

显示模块接口

键盘中断

P1

键盘模块接口

P1.0/P1.1

PWM 电 机 驱 动 接

系统时钟

① PWM 脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延

时程序函数如下:

/*****************延时函数*************************/
delays()
{

uchar i;
for(i=5000;i>0;i--);

}

②键盘中断处理子程序:采用中断方式,按下键,完成延时去抖动、键码

识别、按键功能执行。

要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否

松开该按键时,每进行一次增加/减少一定的占空比。

③显示子程序:利用数组方式定义显示缓存区,缓存区有 8 位,分别存放

各个数码管要显示的值。

④定时中断处理程序:采用定时方式 1,因为单片机使用 12M 晶振,可产

生最高约为 65.5ms 的延时。对定时器置初值 B1E0H 可定时 20ms,即系统
时钟精度可达 0.02s。当 20ms 定时时间到,定时器溢出则响应该定时中断处
理程序,完成对定时器的再次赋值,并对全局变量 time 加 1,这样,通过变
量 time 可计算出系统的运行时间。

3、软件设计中的特点:
对于电机的启停,在 PWM 控制上使用渐变的脉宽调整,即开启后由停止匀加速到默

认速度,停止则由于当前速度逐渐降至零。这样有利于保护电机。键盘处理上采用中断方

第 3

  

页 共 14 页