基于MCS51单片机步进电机的控制系统设计与实现.docx
- 文档编号:14481372
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:40
- 大小:989.76KB
基于MCS51单片机步进电机的控制系统设计与实现.docx
《基于MCS51单片机步进电机的控制系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于MCS51单片机步进电机的控制系统设计与实现.docx(40页珍藏版)》请在冰点文库上搜索。
基于MCS51单片机步进电机的控制系统设计与实现
学校代码:
11509
学号:
1005073029
HefeiUniversity
毕业设计(论文)
BACHELORDISSERTATION
论文题目:
基于MCS51单片机步进电机的控制系统设计与实现
学位类别:
工学学士
学科专业:
10级自动化2班
作者姓名:
导师姓名:
完成时间:
2014年5月12日
基于MCS51单片机步进电机的控制系统设计与实现
中文摘要
步进电机最早出现在十九世纪初期,经过一段时期的发展步进电机被广泛应用在各个领域,因为其具有良好的控制作用。
所以对步进电机控系统进一步的探索有着更为深远的意义。
本设计是基于单片步进电机的控制系统,硬件设计采用STC89C52单片机为控制核心;选取ULN2003作为驱动器提供脉冲频率,驱动步进电机运转;通过键盘的加减速按钮、正反转按钮和停止按钮来控制步进电机的速度、方向和停止,最后通过测试传感器将这几个参数显示在12864液晶显示器上。
软件设计采用KEIL软件工具进行C语言编写,通过各个模块端口的定义,编写出了步进电机加减速控制和正反转的程序,最后通过各模块程序调试对硬件电路施行控制。
本设计以经济实用为原则,通过软硬件结合的设计,实现了对步进电机转动速度和方向的有效控制。
该系统具有控制性好,设计成本低等优点。
关键字:
STC89C52;步进电机;控制系统;测速传感器
SteppermotorcontrolsystemdesignandimplementationbasedonMCS51microcontroller
ABSTRACT
Thesteppingmotor wasinventedintheearly1800s,afteralongperiodofdevelopmentofthesteppermotoriswidelyusedinvariousfields,becauseithasgoodcontroleffect.Therefore,thestudyofthesteppermotorcontrolsystemhasaveryimportantsignificance.
Thisdesignissteppermotorcontrolsystembasedmicrocomputer,hardwaredesignusesSTC89C52microcontrollerasthecontrolcore;selectULN2003asdriverprovidespulsefrequencydrivesteppermotorrotation;throughaccelerationanddecelerationbuttonkeyboard,forwardandreversebuttonandstopbuttonstocontrolthesteppermotorspeed,directionandstops,ThentheseseveralparameterswasdisplayedontheLCDmonitor12864bythespeedsensor.SoftwaredesignusingKEILsoftwaretoolsforClanguage,definedeachmoduleport,andwriteasteppermotorcontrolaccelerationanddecelerationandreversingtheprocess.finallytocontrolthehardwarecircuitthroughdebugging.
Thedesignprincipleofeconomicalandpractical,throughcombinationofsoftwareandhardwaredesignedtoachievetheeffectivecontrolofthesteppermotorrotationspeedanddirection.Thesystemhasgoodcontrollabilityandlowcoat.
Keywords:
STC89C52;steppermotor;controlsystems;speedsensor
第一章绪论
本章简单的介绍了步进电机的发展史,步进电机在各个领域的应用。
论述了研究本课题的目的和意义,最后简要的叙述了本设计控制系统需要完成的几项任务。
1.1课题背景
在21世纪,电动机在我们社会中扮演着十分重要的角色,无论在工业、农业还是在我们日常生活中起着重要的作用。
步进电机是一种特殊的可以控制的电动机,在现代社会的额各个领域有着广泛的应用。
因为步进电机具有良好的控制作用,而且是当今机械电子工程的主要构件之一。
因此步进电机大量地使用在各类不同的自动化设备及控制装置等领域[]。
早期的步进电机大约出现在十九世纪三十年代左右,在通电的情况下,有一种能够自由旋转的电磁铁,就是我们所说的早期步进电机,其工作原理和现在的步进电机本质上是相同的[]。
到了上世纪初,由于出现大规模的战争,军工业和造船业等重工业的快速发展,步进电机的需求量被无线放大。
同时期的西方报纸和期刊先后刊登了大量步进电机在军工业和造船业上应用的文章,那是的文章已经详细的介绍了不进电机电的设计方法和计算等。
在后来的一段时期这些理论被用于实践指导步进电机的结构设计和批量的生产[]。
到了二十世纪八十年代后,步进电动机的控制方式开始变得更加多样化,主要原因是多用途模式的步进电机的产生。
在微电子个计算机技术高速发展的情况下,直接引起了对步进电机的使用数量成爆炸式增长,在各国家的军事领域和国民经济领域都有着广泛的应用。
步进电机实际上是一种将电脉冲转化为角位移的控制元件,它突出的优点是自身构造简单,具有快速的启动、停止和反转响应,运行安全可靠。
步进电机还有一些非常特殊的地方,它的步距值不会随着现场温度和电压的变化而改变,同时误差亦不会长时间积累,所以给实践的操作中带来了很大的方便[]。
步进电机大量使用在各类产品中,其中消费类产品包括打印机和照相机等;工业产品包括机器人、数字控制体系和纸带传送机构等。
因此对步进电机的详细研究具有十分重要的意义。
本文设计了一种以STC89C52单片机为核心元件的控制系统。
1.2课题研究的目的及意义
随着现代工业和农业的不断发展壮大,步进电机的使用量也成爆炸式增长。
以前的步进电机的控制精度和控制效果已无法达到当今社会生产力的要求,因此如何更好的发展和应用步进电机是非常值得思考的。
本课题的设计就是对步进电机进行控制,其本身就具有一些突出的优点是快速的起动、停止和反转响应;由于其采用开环控制,从而自身构造更加简易化并且成本低[]。
在微电子个计算机技术高速发展的情况下,步进电机也朝着小型化矩形化发展以适应当前各种设备的需要,所以本课题对于步进电机控制的研究具有十分重要的意义。
1.3系统设计的主要任务
设计的该控制系统应完成以下几项任务:
(1)步进电机的启动和停止控制;
(2)步进电机的加速和减速控制;
(3)步进电机的正反转控制;
(4)步进电机的转速动态显示在液晶显示器上。
第二章总体方案设计
2.1系统总体设计与分析
本设计是使用STC89C52为控制元件,设计出一种基于单片机步进电机的控制系统。
该控制系统通过自有的键盘模块来实现对步进电机的运转进行有效的控制,并且将步进电机的转速显示在液晶显示器上,转动方向以文字的形式显示在液晶显示器上。
下图是系统总体结构框图。
图1系统总体结构框图
2.2各模块功能说明
本设计控制系统有五个模块:
中央处理器模块、12864液晶显示模块、步进电机驱动模块、电源模块和键盘模块。
(1)中央处理器模块主要由振荡电路和复位电路构成。
振荡电路是给最小系统模块提供给频率,单片机的运行速度就是一该频率为基准的,频率高单片机运行速度快。
复位电路就是系统运行时在受到外部干扰,内部程序运行出错时,通过按下复位按钮可以让原程序重新开始运行,保证了单片机的正常启动[]。
(2)本设计的显示模块采用12864液晶器来动态显示步进电机的转动速度和方向。
(3)本世纪的进电机驱动模块选用驱动器ULN2003为步进电机提供电脉冲信号,进而驱动步进电机转动。
ULN2003的输入端与单片机的P1口相连。
(4)电源模块是通过整流桥将变压器降压过来的交流电压转化为直流5V供给其他四个模块。
(5)本设计的键盘模块包括了控制方向按钮键、加速按钮键、减速按钮键和启停按钮键,与单片机的P3口相连,通过这些键盘按钮可以对步进电机的转动状态进行有效的控制。
2.3本章小结
本章首先简单的说明了该设计的思想,在控制低成本,且能完成该设计的情况下,通过综合考虑用了以STC89C52单片机作为本设计系统的控制核心元件。
第三章控制系统硬件分析与设计
3.1.中央处理器模块
中央处理器系统就是用最少的电子元件搭建的单片机而且能够正常工作的系统,其最小系统包括了单片机,复位电路、振荡电路和外部扩展等部分组成。
中央处理器模块电路图如下:
图2中央处理器模块电路图
3.1.1单片机
(1)概述
单片机也就是微型处理器,世界上第一个位微处理器是因特尔公司研制出来的。
因特尔公司的8051单片机是当时最成功的微处理器。
基于这种单片机的操作系统在当代仍有使用。
[]
单片机的主要组成部分包括运算器、控制器寄存器和输入输出设备。
其中运算器的功能是执行各种算术的运算和逻辑比较;控制器的功能是指令的存取以及控制CPU与和输入输出设备的数据交换。
单片机相当于一个微型计算机,但是其没有计算机的外围设备[]。
单片机具有一些明显的有点,体积小、重量轻而且价格便宜,为学生的学习和研发人员提供了便利的条件。
另外在学习单片机之后我们能够很轻松的接受复杂的计算机原理和结构的知识。
单片机的出现首先应用在工业领域。
单片机在各个领域都有着广泛的应用,它的发展趋势是小型化和高度集中化。
8051是一款饱受好评的单片机,它生产出来之后就被大量使用。
这种单片机具有明显的优越性就是其体积小、简单可靠而且性能不错。
经过无数次的发展,2000年ARM退出了32位的高端单片机,但是其价格比较昂贵,没有8051性价比高。
因此8051单片机一直在广泛使用这。
在二十一世纪,单片机存在在各种电子器件产品中,最典型的我们周中使用的手机,电话,游戏机等,家庭的家用电器,笔记本电脑内部都有单片机。
我们日常出门的交通工具汽车上就包含了几十个单片机,有的大型重工业控制系统上单片机的应用数量更多。
单片机是世界上使用数量最多的处理器。
(2)单片机的选择
设计产品我们首先要考虑到经济性和可靠性,本设计采用STC89C52单片机足以满足我们设计的需要,其是一种单时钟的单片机,其拥有以下优点:
运算速度高、功耗低、抗干扰能力强等。
STC89C52的运算速度是早期8051的10倍左右。
STC89C52主要特性如下:
针对本系统,RAM和Flash容量足够大,有定时器中断功能能实现实时温度的采集,提供有EEPROM,可以设置掉电保护,是之前设置的温度不丢失,全双工的工作方式是的系统更加可靠。
[]
(3)引脚功能说明
图3单片机引脚功能图
VCC:
电源电压。
GND:
接地。
P0口(32脚~39脚):
通常被定义为数据/地址的低八位,适用于外部数据寄存器。
P0口通常作为一个输入端口,使用时要接上上拉电阻。
P1口(1脚~8脚):
是一个输入输出的端口,每个端口可以独立控制。
P2口(21脚~28脚):
具有P0和P1的基本功能既可以做输入输出端口也可以做外部数据寄存器,每个端口也可以独立控制。
P3口(10脚~17脚):
可以作为一个输入输出端口,也可以充当单片机的一个特殊功能端口。
下表是P3口个引脚功能说明如下[]:
表1.P3口引脚功能说明
端口
引脚
功能
P3.0
10
串行输入口
P3.1
11
串行输出口
P3.2
12
外部中断0
P3.3
13
外部中断1
P3.4
14
计数器0外部输入
P3.5
15
计数器1外部输出
P3.6
16
外部数据存储器写选通
P3.7
17
外部数据存储器读选通
3.1.2复位电路
复位电路:
其作用是把原有状态的电路初始化到一个确定的电路,单片机的复位端口接上适当的电阻和电容构成的电路就是所说的中央处理器系统的复位电路。
复位电路一般包括上电复位和按键复位,本设计采用的按键复位,通过一个独立按键来手动控制电路的复位。
复位电路图如下所示:
图4复位电路图
3.1.3振荡电路
振荡电路:
晶振是组成单片机系统的关键元件之一,晶振电路在单片机系统里存在着十分中重要的作用,晶振两端接在单片机的XTAL1和XTAL2引脚上。
单片机的晶振的实质作用是给中央处理器提供时钟电路,单片机工作运行的速度与晶振提供的频率有关。
本设计的晶振电路用了30pf的电容和12MH的晶体振荡器作为核心元件。
振荡电路图如下:
图5振荡电路图
3.2显示模块
本设计显示部分采用12864液晶显示器,通过各个端口的定义,在12864上动态的显示步进电机的速度和方向。
显示模块电路图如下:
图6显示电路模块图
(1)12864的基本特性
12864是128*64点阵型液晶模块的点阵数简称,因为要更人性化显示中文汉字,所以12864是最好的选择。
12864液晶显示器是一种内部含有简体中文字库的点阵图形液晶显示模块。
其内部设置了大量的点阵和ASCII字符集,可以完成数学、汉字和图形的显示。
其串口借口引脚信号表如下[]:
表2.12864串口接口管脚信号
引脚号
引脚名称
引脚功能
1
VSS
电源地
2
VDD
电源正
3
V0
对比度(亮度)调整
4
RS
低电平时,数据显示
高电平时,指令数据显示
5
R/W
高电平时,数据读
低电平时,数据写
6
E
使能信号
7-14
DB0-DB7
八位数据三态线
15
PSB
高电平时,并口方式
低电平时,串口方式
16
NC
空脚
17
/RESET
复位端,低电平有效
18
VR
LCD驱动电压输出端
3.3驱动模块
本系统设计的主要目的是为了有效的控制步进电机的转动速度个运转方向,所以我们要把单片机的电脉冲信号转化为能使步进电机转动的步距角,本设计中我采用了驱动器ULN2003作为脉冲信号的提供原。
驱动模块电路图如下所示:
图7驱动电路模块图
3.3.1步进电机
(1)步进电机的工作原理
通常电动机是由静止的转子和转动的转子组成,电动机的转子是一种永磁体,当有电流通过定子绕组时,定子起着接受电能产生旋转磁场的作用。
转子在该磁场的作用下旋转一个角度,从而让转子的磁场方向与定子的磁场方向保持一致。
同样,定子的磁场旋转一个角度,转子也会沿着该方向转动相同的角度。
每接收一个电脉冲信号,电动机就会转动一个固定角度。
脉冲数量越多电机旋转角度越大,脉冲频率越高电机转速越快,可以看出它们两辆成正比关系。
我们只需要改变绕组的通电顺序就能够改变电动机的转动方向。
因此控制电动机的转动实际上就是控制脉冲数量和频率。
[]
(2)步进电机的分类
步进电机根据结构的差异通常分为以下三类:
表3.步进电机分类
类别
反应式步进电机
永磁式步进电机
混合式步进电机
结构
有软磁材料组成定子绕组和转子
步进电机的转子用永磁材料制成
定子上有多相绕组、转子上采用永磁材料
力矩
小
大
大
步距角
小(1.2o)
大(7.5o或15o)
小
精度
差
差
好
动态性能
差
好
好
(3)步进电机的主要特点和特性
步进电机转动的前提是必须添加驱动,脉冲信号时唯一能驱动电机运转的驱动信号,也就是没有脉冲信号电机就不会运转。
当添加一个稳定的脉冲信号,其就会按照固定的角度转动,转动的速度与脉冲频率成正比。
能够瞬间启动和快速停止时步进电机的一个优越特性。
改变步进电机转动方向的一个简便方法就是改变脉冲顺序。
步进电机主要具有以下有点[]:
1、电机旋转的角度与脉冲数成正比;
2、最大的转矩出现在电机停止的位置上;
3、每一步的精度在3%~5%,而且误差不会长期积累,上一步的误差不会叠加到下一步,因而具有良好的位置精度;
4、电机具有快速的起停和反转响应;
5、步进电机没有电刷,运行可靠,因此电机自身的轴承寿命决定了电机的寿命;
6、因为没有反馈环节,故控制简单;
7、脉冲信号的频率决定了转速,故电机有较宽的调速范围。
但是,这种电机也有自身的缺点:
1、在控制不当的情况下容易产生共振;
2、很难获得较高的转动速度;
3、转矩较小;
4、在体积重量方面没有优势,能源利用率低;
5、过载运转时会破坏同步,高速转动时会产生振动和噪声。
(4)本设计采用了28BY-J48型进电机。
其参数如下[]:
表4.28BY-J48型进电机技术参数
电压V
项数
步距角度
减速比
定位转矩g.cm
5
4
5.625/64
1:
64
>=300
3.3.2ULN2003
ULN2003是一种晶体管阵列,它的明显特点是功能强大,而且成本不高,是各种电路的理想器件,应用范围非常广。
图8、图9是ULN2003的芯片引脚图和外形图:
图8ULN2003芯片引脚图
图9ULN2003外形图
3.4电源模块
下图是电源模块图,有两套电源电路,其中一个是备用电路。
如下图所示:
图10电源模块图
电源模块整流桥采用的是2W10整流桥,其是一种圆形直插式整流桥。
其最大平均工作电流2A,最大反向电压时1000V[]。
整流桥外形图如下:
图11整流桥外形图
3.5键盘模块
键盘模块主要是对步进电机的转动速度和转动方向进行有效的控制,该模块包含了加速按钮、减速按钮、正反转按钮和停止按钮。
控制不进电机电的转速只需要按下加速或者减速按钮;对步进电机的方向进行控制我们只需要按下正或反转按钮;停止按钮可以随时让步进电机停止转动。
键盘模块电路图如下所示:
图12键盘模块电路图
3.6本章小结
本章内容首先介绍了该控制系统的组成模块,并对各个模块硬件设计作了详细的说明。
另外,还对步进电机和单片机的原理等知识作了说明。
第四章控制系统软件分析与设计
综合总体设计方案和各模块硬件电路的考虑,该系统的软件设计思路:
第一步:
各模块初始化,对12864、驱动器进行设置为下一步接受信息做好准备。
第二步:
通过ULN2003产生的脉冲驱动电机转动,显示在12864上,在通过键盘扫描得到设定的信息;第三步:
通过键盘按钮里控制步进电机的运转情况,并显示在显示器上。
4.1主程序流程图
图13主程序流程图
主程序流程图:
首先是对各个模块进行初始化,包括12864,步进电机等。
然后通过按键扫描得出设定速度并进行显示。
然后读FLAG标志选择是正转还是反转,正转时,确定转速和圈数,然后调用12864显示程序显示。
然后返回按键扫描,构成循环。
4.212864显示程序流程图
图1412864显示程序流程图
12864显示程序流程图:
首先是初始化,针对显示屏进行设计,比如设定游标的移动方向,游标位置反白允许,设定CGRAM地址,并口或者工作模式等等。
第二步写指令,写入控制指令,选择写入12864的显示位置。
第三步,写入数据,可以写入单个字符也可以写入字符串,单个数据时要加入0X30,还可以写入图片内容,在写入时逐个写入,直到结束。
第四步,12864内部写计数器计数器为0时,显示结束,完成一次显示过程。
4.3正反转程序流程图
图15正反转程序流程图
正反转程序流程图:
首先是在主程序里面初始化定时器0,主要是开总中断,开外部中断0,设定边沿式触发中断。
然后设定一个正反转FLAG标志,判断当FLAG标志位’1’为时选择正转,反之,FLSF标志位位‘0’时选择反转。
该改变FALG标志的方法是选择外部中断。
具体是:
通过一个独立按键作为外部中断0的输入,当有按键按下时,边沿触发,然后申请中断,执行中断服务程序。
在中断服务程序里面首先按键去抖动程序,去抖动后对FLAG标志取反从而每按一次按键FLAG标志位改变一次,执行结束后返回主程序。
这样每按一次按键正反转改变一次实现正反转。
4.4加减速程序流程图
图16加减速程序流程图
加减速程序流程图:
通过两个独立按键实现,一个代表加速,一个代表减速。
首先设置按键对应单片机端口部分,然后检测是否有低电平,当检测到有低电平时,延时10ms去抖动,再次判断是否有低电平,仍然是低电平时判断按键是否释放,当按键释放时才执行下一部程序,针对本程序,当加按键按下后增加转速NUM值就可以加速,反之,减按键按下后减小NUM值从而减小速度。
4.5本章小结
本章简单的介绍了系统软件设计的思想,并且说明了主程序和各子程序的设计方法和思路,描绘出了各程序流程图。
第五章系统的测试与结果分析
5.1软件测试工具
KEIL是常用的开发软件,适应于包括大部分的单片机系统和部分嵌入式系统的开发。
它的突出特点是操作者可在初始化新建工程文件时将单片机的芯片资料库直接添加到开发环境中,这样使得用户软件编写变得更加便捷灵活。
工程文件一旦生成操作者就不再需要进行文件的初始化操作,而且可以直接将程序代码放进工程中。
如下图所示:
图17KEIL界面图
运用软件调试工具Debug可以很好的观察程序执行过程。
表示启动和停止调试模式;
表示打开和关闭项目窗口;
表示打开和关闭输出窗口;
表示设置程序断点等等可以帮助操作者进行程序的分析、差错以及时序的确定。
如下图所示:
图18Debug调试界面
5.2测试数据与分析
通过由测速传感器和最小系统构成的测试平台,检测步进电机转动的圈数和速度的误差。
该测试平台的实物图如下:
图19测试平台实物图
5.2.1圈数测试
首先在步进电机转动时开始计数,直到步进电机停止转动,记录电机转动了多少圈。
将记录的圈数与先前程序设置的圈数进行比较,下面是电机正转和反转时测试的圈数数据表:
表5正转时测试的圈数数据
测试次数
1
2
3
4
设定值(圈数)
40
60
80
100
实测值(圈数)
40
60
80
100
表6反转时的测试圈数数据
测试次数
1
2
3
4
设定值(圈数)
-40
-60
-80
-100
实测值(圈数)
40
60
80
100
测试结果说明步进电机在正常运转时,设定的圈数和实际测得的圈数相同。
进而说明转过的圈数没有误差。
5.2.2速度测试
电机转动时,通过测速传感器模块将步进电机的速度动态显示在显示器上,通过加减速键盘按钮来改变设定值,同时也改变了电机的实际转速。
然后将其实际转速与先前设定的速度进行比较,下面是电机正转和反转时测试的速度数据表:
表7电机正转时测试速度数据
测试次数
1
2
3
4
5
6
7
设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MCS51 单片机 步进 电机 控制系统 设计 实现