佛山科学技术学院课程设计
摘要
本文主要设计一个基于单片机的直流电机 PWM 控制系统。
PWM 控制提高了调速 范围,提高了调速精度,改善了快速性能、
功率和功率因数。系统在设计中被控对象采用 5V 的直流电机,
以 MCS-51 单片机为控制核心,采用 LCD12864 液晶作为显示元
件,进行软硬件的设计。硬件电路由 protel 设计制作,主要设
计了液晶显示电路、键盘控制电路、复位电路、测速电路和驱动
电路。软件设计在 Keil 开发平台用 C 语言编写,程序采用模块
化设计方案,包括液初始化程序、晶显示程序、键盘控制程序。
本系统 PWM 控制直流电机采用调压调速的方法,整体设计包
括软件和硬件两个部 分。通过利用单片机产生 PWM 控制信号控
制直流电机,详细介绍脉宽调制 ( PWM) 控 制原理,直流电机的
工作原理和数学模型以及用 H 型桥电路基本原理设计的驱动电
路。 通过硬件电路的模拟情况,说明系统运行正常,各个功能模
块实现是可行的,控制精度 比较高,能够满足系统的基本要求。
关键词: 单片机;PWM;直流电机;L298N;
1
佛山科学技术学院课程设计
目录
一、 设计任务 .......................................... 4
二、 设计方案 .......................................... 4
1、 任务分析 ....................................... 4
2、 方案设计 ....................................... 5
3、 方案流程图 ..................................... 5
三、 系统硬件设计 ...................................... 6
1、 STC12 最小系统 .................................. 6
(1) STC12C5A60S2 芯片 ......................... 6
(2) 系统时钟电路 ............................. 10
(3) 复位电路 ................................. 10
(4) 最小系统原理图 ........................... 11
2、 电机模块 ...................................... 11
3、 L298N 模块 ..................................... 12
4、 测速模块 ...................................... 14
5、 测压模块 ...................................... 15
6、 液晶模块 ...................................... 16
7、 按键模块 ...................................... 18
8、 灯光信号模块 .................................. 19
四、 系统软件设计 ..................................... 20
1、 软件流程图 .................................... 20
2、 PWM 程序设计 ................................... 21
3、 测压程序设计 .................................. 21
4、 测速程序设计 .................................. 22
(1)1S 定时程序 ............................... 22
(2) 光电开关信号采样程序 ..................... 22
(3) 电机速度计算程序 ......................... 22
5、 液晶驱动程序设计 .............................. 23
6、 菜单程序设计 .................................. 24
7、 按键程序设计 .................................. 26
8、 电机反电动势系数计算程序 ...................... 27
9、 电机力矩系数计算程序 .......................... 28
10、 逼近算法控制程序 ............................. 28
11、 比例控制程序 ................................. 28
12、 PID 控制程序 .................................. 29
五、直流调速系统动态数学模型的建立 .................... 31
六、调速数据 .......................................... 35
2
佛山科学技术学院课程设计
1、 比例调速数据 .................................. 35
2、 PID 调速数据 ................................... 36
3、 逼近算法调速数据 .............................. 36
4、 反电动势系数和电机力矩系数数据 ................ 37
七、心得体会 .......................................... 37
参考文献 .............................................. 39
附录一 硬件原理图 .................................... 40
附录二 硬件 PCB 图 .................................... 41
附录三 程序清单 ...................................... 42
3
佛山科学技术学院课程设计
一、设计任务
本课题设计主要的目的是为了能够准确及时的控制直流电动
机的正转、反转、停止、加速和减速功能可以准确调节控制直流
电机的转速。同时,本设计可以自动测量计算直流电机的反电动
势系数以及马达的力矩系数。直流电机的转速控制分别采用三种
可选择的调速方案:逼近算法调速、比例控制调速和 PID 控制调
速。本系统采取了菜单式选择界面,方便了使用者对系统各项功
能的使用与选择,同时加入了大量图片设计和动画效果,使人机
交流界面更加人性化。
二、设计方案
1、任务分析
本设计要求中央控制芯片具有定时计数的功能,一定的程序
存储空间,还要有足够的 IO 外接端口。由于本设计以 LCD12864
作为人机交流的显示界面,所以要求中央控制芯片具有一定的电
流驱动能力。LCD、电机控制信号、LED 指示灯、独立按钮,电压
采集这些都需要占用大量 IO 接口,所以要求中央控制芯片要有足
够多的外部接口以满足需要。本设计将采用菜单界面设计方面,
涉及大量图片和文字,所以要求控制芯片要有足够大的内存空间。
大量变量标志将实现各项菜单的切换,所以要求控制芯片要有足
够的 RAM 空间来存储临时变量。
本设计要求能准确控制电机的转向以及转速,所以要求电机的
控制芯片就有较强的调速控制功能以及转向控制功能。
本设计要求所采用的的直流电机转速具有一定的可调空间以
及足够的灵敏度。
4
佛山科学技术学院课程设计
本设计涉及直流电机转速的采集,电机输出电压的测量,所以
要求本系统具有测量电机转速和采集电压的功能。
2、方案设计
由于 STC12c5a60s2 单片机具有 1280B 的 RAM,60KROM,P0-P4
数量众多的 IO 口,高达 20MA 的电流驱动能力和 1T 的运行速度,
具有片上 PWM 模块和 ADC 模块,满足本课题的设计要求,所以本
设计采用 STC12c5a60s2 芯片作为中央主控芯片。
带 41 线码盘测速码盘日本三美直流电机转速可调范围宽,响
应迅速,并且带有对射式光电开关测速模块,只需接上相应的信
号放大电路就可以被单片机所识别。所以本系统采用了带 41 线码
盘测速码盘日本三美直流电机。
本系统采用了 LCD12864 作为人机交流界面,满足了控制项目
多,控制信息多,显示信息完整等要求。
3、方案流程图
5
佛山科学技术学院课程设计
显示模块
按键模块
单
片
机
测速模块
L298N 模块
测压模块
电
机
三、系统硬件设计
1、STC12 最小系统
(1)STC12C5A60S2 芯片
STC12C5A60S2 不但和 8051 指令、管脚完全兼容,
而且速度快 8-12 倍。内部集成 MAX810 专用复位电路,2
路 PWM,8 路高速 10 位 A/D 转换(250K/S),针对电机控
制,强干扰场合,其片内的具有大容量程序存储器 60K
FLASH ROM,用户可以用电的方式瞬间擦除、改写。STC
系列单片机支持串口程序烧写,对开发设备的要求很
低,开发时间也大大缩短。以下是 STC12C5A60S2 的功
能:
1.增强型 8051
CPU,1T,单时钟/机器周期,指
令 代 码 完 全 兼 容 传 统 8051 ; 2. 工 作 电 压 :
STC12C5A60S2 系列工作电压:5.5V-3.3V(5V 单片机)
6
佛山科学技术学院课程设计
STC12LE5A60S2 系列工作电压:3.6V-2.2V(3V 单片
机);
3.工作频率范围:0
-
35MHz,相当于普通 8051
的 0~420MHz;
4. 用 户 应 用 程 序 空 间
8K
/16K
/
20K
/
32K
/
40K
/
48K/
52K
/
60K
/
62K 字节;
5.片上集成 1280 字节 RAM;
6.通用 I/O 口(36/40/44 个),复位后为:准双向
口/弱上拉(普通 8051 传统 I/O 口),可设置成四种模
式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,
开漏,每个 I/O 口驱动能力均可达到 20mA,但整个芯
片最大不要超过 55Ma;
7.
ISP(在系统可编程)/IAP(在应用可编程),
无需专用编程器,无需专用仿真器
可通过串口
(P3.0/P3.1)直接下载用户程序,数秒即可完成一
片;
8.有 EEPROM 功能(STC12C5A62S2/AD/PWM 无内部
EEPROM);
9. 看门狗;
10.内部集成 MAX810 专用复位电路(外部晶体 12M
以下时,复位脚可直接 1K 电阻到地);
11.外部掉电检测电路:在 P4.6 口有一个低压门槛
比较器,5V 单片机为 1.32V,误差为+/-5%,3.3V 单片
机为 1.30V,误差为+/-3%;
7
佛山科学技术学院课程设计
12.时钟源:外部高精度晶体/时钟,内部 R/C 振
荡器(温漂为+/-5%到+/-10%以内)
1 用户在下载用户
程序时,可选择是使用内部 R/C 振荡器还是外部晶体/
时钟,常温下内部 R/C 振荡器频率为:5.0V 单片机为:
11MHz~15.5MHz,3.3V 单片机为:8MHz~12MHz,精
度要求不高时,可选择使用内部时钟,但因为有制造
误差和温漂,以实际测试为准;
13.共 4 个 16 位定时器
两个与传统 8051 兼
容的定时器/计数器,16 位定时器 T0 和 T1,没有定时
器 2,但有独立波特率发生器
做串行通讯的波
特率发生器
再加上 2 路 PCA 模块可再实现 2 个
16 位定时器;
14.
2 个时钟输出口,可由 T0 的溢出在 P3.4/T0
输出时钟,可由 T1 的溢出在 P3.5/T1 输出时钟;
15.外部中断 I/O 口 7 路,传统的下降沿中断或低
电 平 触 发 中 断 , 并 新 增 支 持 上 升 沿 中 断 的 PCA 模
块 , Power
Down 模 式 可 由 外 部 中 断 唤 醒 ,
INT0/P3.2,INT1/P3.3,T0/P3.4,
T1/P3.5,
RxD/P3.
0,CCP0/P1.3( 也 可 通 过 寄 存 器 设 置 到
P4.2
),
CCP1/P1.4
( 也 可 通 过 寄 存 器 设 置 到
P4.3);
16.
PWM(2 路)/PCA(可编程计数器阵列,2 路)
——也可用来当 2 路 D/A 使用
——也可用来再实现 2 个定时器
——也可用来再实现 2 个外部中断(上升沿中断/
8