单 片 机
课
设计题目:直流电机调速系统 学院: 专业: 班级:
姓名:
学号: 同组人员:
程 设 计
机电汽车工程学院
测控技术与仪器
任务要求:本设计一MCS-51系列单片机为核心,采用常用电子器件设计,一个启动开关一个停止开关,一个正向开关,一个反向开关,八位拨码开关负责设置占空比进行脉冲宽度调制,可实现电动机的正转、反转、刹车、滑行,四种状态,并可根据占空比调节转速。
目录
一、直流电动机调速原理·························1
1.1 直流电动机的工作原理··················1 1.2 PWM波的产生原理·······················2
二、系统的总体设计·····························3
2.1 总体设计······························3 2.2 硬件设计及各模块电路实现··············3 2.3 软件设计······························11 附录:(1)系统整体实现仿真图
(2)PWM
波形图
第一章 直流电动机调速原理
1.1直流电动的原理
1.工作原理:电磁力定律
载流导体在磁场中将会受到力的作用,若磁场与载流导体互相垂直,作用在导体上的电磁力大小为: f = B·l·i 力的方向用左手定则确定
(图1.1 载流导体在磁场中受力)
2电动机工作过程分析:直流电动机的工作原理图。
(1)构成: 图中 N和 S是一对静止的磁极,用以产生磁场,其磁感应强度沿圆周为正弦分布。
励磁绕组—— 容量较小的发电机是用永久磁铁做磁极的。容量较大的发电机的磁场是由直流电流通过绕在磁极铁心上的绕组产生的。用来形成N极和S极的绕组称为励磁绕组,励磁绕组中的电流称为励磁电流If。
在N极和 S极之间,有一个能绕轴旋转的圆柱形铁心,其上紧绕着一个线圈称为电枢绕组(图中只画出一匝线圈),电枢绕组中的电流称为电枢电流Ia。 电枢绕组两端分别接在两个相互绝缘而和绕组同轴旋转的半圆形铜片——换向片上,组成一个换向器。换向器上压着固定不动的炭质电刷。
1
(图1.2 直流电动机的工作原理图)
(2)工作过程:
电枢绕组通过电刷接到直流电源上,绕组的旋转轴与机械负载相联。电流从电刷 A流入电枢绕组,从电刷B流出。电枢电流Ia与磁场相互作用产生电磁力F,其方向可用左手定则判定。这一对电磁力所形成的电磁转矩T,使电动机电枢逆时针方向旋转。
当电枢转到上图b所示位置时,ab边转到了S极下,cd边转到了N极下。这时线圈电磁转矩的方向发生了改变,但由于换向器随同一起旋转,使得电刷 A总是接触 N极下的导线,而电刷B总是接触S极下的导线,故电流流动方向发生改变,电磁转矩方向不变。
由于电刷的换向作用,故可以直接控制改变电枢电压,来改变电枢电流,进而控制改变电枢受电磁力的大小,从而控制改变速度,实现电动机的调速。
1.2 PWM波的产生原理
(1)PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在很多方面,比如:电机调速、温度控制、压力控制等等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开的电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。正因为如此,PWM又被称为“开关驱动装置”。PWM波形如图所示:
PWM波形图
设电机始终接通电路时,电机转速最大为Vmax,设占空比为:
Dt1T
则电机的平均转速为
VaVmax*D
其中Va指的是电机的平均速度,Vmax是指电机在全通电时最大速度,D指的
2
是占空比。
由上面的公式可见,当改变占空比D时,就可以得到不同电机平均速度Va,从而达到调速的目的。
第二章 系统总体设计
2.1 总体设计
本设计中包括硬件电路的设计和系统程序的设计。其硬件电路的设计主要包括单片机的选择、按键电路的选择与设计、时钟电路的选择与设计、复位电路的选择与设计、直流电机驱动电路设计等。系统程序的设计包括系统程序设计思路、系统资源的分配、汇编程序的设计等。
主控制器选用89C51单片机,速度控制开关选用一般开关,四个按键均采用触点式按键,直流电机驱动芯片选用L298N芯片。
系统结构图如下图
电动机 L298N实现 电动机功率驱动 单片机(读取速度控制、开关、正转反转信号,向驱动芯片输出控制信号) 八位拨码开关(控制电动机速度) 开关(控制电动机正转、反转、制动滑行) (图2.1 系统结构图)
2.2 硬件设计及各模块的电路实现
2.2.1单片机的选择
本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了89C51。
89C51是MCS-51系列单片机中的一个子系列,是一族高性能兼容型单片机。其内部资源分配和性能如下;8位CPU;寻址能力2X64K;4KB的内部ROM和128B
3
内部RAM;四个8位I/O接口电路;一个串行全双工异步接口;五个中断源和两个中断优先级;采用CMOS工艺电流小,低功耗。
80C51各引脚主要功能简介: (1)Vss(20脚):接地 (2)VCC(40脚): 主电源+5V
(3)XTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚):接外部晶体的另一端。在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。 (4) RST(9脚): 单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)
(5)PSEN(29脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
(6)ALE/PROG(30脚):地址锁存允许/编程线。51系列单片机为了减少外部引脚的数量,采用了地址/数据总线复用技术,ALE信号为振荡器频率的1/6,在访问片外存储器时,ALE信号输出的脉冲下降沿用于锁存p0口输出的低八位地址线,与p2口结合形成16位地址总线;在不访问外部存储器时,该引脚仍以不变的频率周期性的输出脉冲信号,可以用作对外输出的时钟或定时的目的。但要注意在访问外部数据存储器期间,将跳空一个ALE脉冲,此时不宜作为时钟输出。 (7)EA/VPP(31脚):当EA端输入高电平时,CPU从片内程序存储器地址0000单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。 (8)输入/输出引脚:
4
1)P0.0—P0.7 (39脚—32脚) 2)P1.0—P1.7 (01脚—08脚) 3)P2.0—P2.7 (26脚—21脚) 4)P3.0—P3.7 (10脚—17脚)
(图2.2 单片机引脚图)
(图2.3 单片机内部功能图)
2.2.2 时钟电路的选择与设计
单片机的时钟信号用来提供单片机内各种微操作的时间基准,80C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,80C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用
5
频率低于12MHz的方波信号。
时钟发生器把振荡频率两分频,产生一个两相时钟信号P1和P2供单片机使用。P1在每一个状态S的前半部分有效,P2在每个状态的后半部分有效。本设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。本设计系统的时钟电路如图2.6所示。只要按照图2.6所示电路进行设计连接就能使系统可靠起振并能稳定运行。图中,电容器C1 、C2起稳定振荡频率、快速起振的作用,电容值一般为5~33pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小为30pF的电容和12MHz的晶振。
(a)原理图 (b)电路连接图
(图2.4 内部振荡电路)
2.2.3 复位电路的选择与设计
关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。 上电复位要求接通电源后,自动实现复位操作。89C51单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),
6
以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。
上述一系列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。典型复位电路如图2.7(a)所示,其中的阻容值是原始手册中提供的。在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号。
由于标准89C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现。
标准89C51不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图2.7(a)所示。其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。如图2.8所示。因此,在图2.7(a)的基础上,上电复位延时电路还可以精简为图2.7(b)所示的简化电路(其中电容C的容量也相应减小了)。
图2.5上电复位延时电路 图2.6复位引脚RST内部电路
在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。否则,在断电后C还没有充分放电的情况
7
下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。因此,在图2.7(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图2.7(c)所示的改进电路。也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。二极管D只有在单片机断电的瞬间(即VCC趋近于0 V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。
手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。
VCCC3R4200Ω22uFS4R51KΩ接RSET
(a)原理图 (b)电路连接图
图2.7单片机复位电路
本设计采用上电且开关复位电路,如图2.7所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=10~30μF,R=100Ω~1KΩ,本设计采用的电容值为22μF的电容和电阻为1K的电阻。
2.2.4 控制速度开关模块设计
(图2.8 速度控制开关与单片机接口电路)
8
电路如图所示,可实现稳定的高低电平输入单片机,从而控制单片机输出的PWM波的占空比。
2.2.5 正反转控制电路模块设计
(图2.9 正反转控制电路)
正反转的输入基于单片机内部程序逻辑设计(后有详述),当有按键按下时,与门电路控制INT0产生中断,程序扫描确定按键具体位置,从而产生相应的控制信号。
74ls09芯片简介
四2输入与门(OC),09为集电集开路输出的四组2输入端与门(正逻辑)。
(图2.10 74ls09逻辑图)
9
2.2.6 电机驱动电路模块设计
L298双H桥直流电机驱动板可以驱动两台直流电动机,使能端ENA、ENB为高电平时有效,若要对直流电动机进行PWM调速,需要设置IN1、IN2,确定电动机的转动方向,然后对使能端输出PWM脉冲,即可实现调速,控制方式及直流电机状态如下表所示:
(图2.11 L298N逻辑图)
(图2.12 L298N内部逻辑图)
L298 引脚符号及功能:
SENSA、SENSB:分别为两个H桥的电流反 馈脚,不用时可以直接接地
10
ENA 、ENB:使能端,输入PWM信号 IN1、IN2、IN3、IN4:输入端,TTL逻辑 电平信号
OUT1、OUT2、OUT3、OUT4:输出端, 与对应输入端同逻辑
VCC:逻辑控制电源,4.5~7V GND: 接地
VSS :电机驱动电源,最小值需比输入的低 电平电压高
(图2.13 L298N与单片机接口电路图)
2.3 软件设计
2.3.1 软件的系统设计思想
结合电路,程序设计框图如图2.14所示。
2.3.2 系统资源分配
名称 P0.0-P0.7 P2.0-P2.3 外部中断INT0
P2.0 P2.1/P2.2
功能描述 PWM控制开关输入 电机控制开关输入 电机控制开关有输入指示 PWM波输出 控制电机驱动芯片输出
11
正转按下 控制正转 电平 产生矩形 波
开始 初始化 开中断 等待跳转 外部中断零中断 定时中断零中断 反转按下 停止按下 读PWM波控制开关 控制反转电平 产生矩形波 控制停止电平 将数据输入R0 (图2.14 程序逻辑框图)
2.3.3主程序设计
ORG 0000H LJMP MAIN
ORG 0003H ;判断中断状态 LJMP INT00
ORG 000BH ;判断定时器0中断状态
12
LJMP IT00
MAIN: MOV SP,#60H ;初始指定一个堆栈地址 MOV TMOD,#01H ;确定定时中断方式 MOV TH0,#0FFH ;置初值 MOV TL0,#0FFH
CLR P1.0 ;初始化 CLR P1.1 CLR P1.2
CLR IT0 ;低电平触发 CLR C SETB EA SETB EX0 SETB ET0 SETB TR0 SJMP $ INT00:CLR EX0
MOV P2,#0FFH MOV A,P2
JNB ACC.0,SC1 JNB ACC.1,ZZ1 JNB ACC.2,FZ1 JNB ACC.3,TZ1 SETB EX0 RETI
SC1:LCALL TTS LCALL TTS JNB ACC.0,SC RETI
SC:SETB P1.1 SETB P1.2 LCALL TTS LCALL TTS LCALL TTS SETB EX0 RETI
ZZ1:LCALL TTS LCALL TTS JNB ACC.1,ZZ RETI
ZZ:SETB P1.1 CLR P1.2 LCALL TTS LCALL TTS LCALL TTS
;清零标志位 ;开总开关
;开外部中断开关 ;开定时中断开关 ;定时中断开启 ;等待中断 ;读P2口状态 ;跳转到刹车子程序 ;跳转到正转子程序 ;跳转到反转子程序 ;跳转到停止子程序 ;软件延时去抖 ;控制L298刹车 ;软件延时去抖 ;控制L298正转13
SETB EX0 RETI
FZ1:LCALL TTS ;软件延时去抖 LCALL TTS JNB ACC.2,FZ RETI
FZ:CLR P1.1 ;控制电动机反转 SETB P1.2 LCALL TTS LCALL TTS LCALL TTS SETB EX0 RETI
TZ1:LCALL TTS LCALL TTS JNB ACC.3,TZ RETI
TZ:CLR P1.1 CLR P1.2 LCALL TTS LCALL TTS LCALL TTS SETB EX0 RETI
IT00: MOV P0,#0FFH MOV A,P0
MOV R0,A CPL P1.0 JB P1.0,Y1 MOV TH0,R0 RETI
Y1:MOV A,P0 MOV R0,A MOV A,#0FFH SUBB A,R0 MOV TH0,A RETI
TTS: MOV R3,#0E0H TT1S: MOV R4,#30H TT0S: DJNZ R4,TT0S DJNZ R3,TT1S RET END
;软件延时去抖 ;控制电动机停止 ;扫描P0口控制PWM波开关状态 ;将P0口状态放入R0 ;控制PWM波程序 ;延时子程序 14
15
16
因篇幅问题不能全部显示,请点此查看更多更全内容