步进电机串口控制系统.docx
《步进电机串口控制系统.docx》由会员分享,可在线阅读,更多相关《步进电机串口控制系统.docx(15页珍藏版)》请在冰豆网上搜索。
![步进电机串口控制系统.docx](https://file1.bdocx.com/fileroot1/2023-5/20/5417dd87-ae8c-401d-a0a1-c6f514e337ba/5417dd87-ae8c-401d-a0a1-c6f514e337ba1.gif)
步进电机串口控制系统
编号:
桂林电子科技大学信息科技学院
实训设计(论文)说明书
题目:
步进电机串口控制系统
系别:
机电工程系
专业:
机械电子工程
学生姓名:
石健
学号:
1
指导教师:
题目类型:
理论研究实验研究工程设计工程技术研究软件开发应用研究
2014年12月4日
摘要
本设计是采用AT89C52单片机对步进电机的控制,通过I/0口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机;同时,用上位机软件来对电机的状态进行控制,并在上位机软件上将步进电机的状态显示出来。
系统由硬件设计和软件设计两部分组成。
其中,硬件设计包括AT89C52单片机的最小系统、电源模版、步进实现。
软件设计包括上位机软件控制、步进电机脉冲以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转速速度的控制,并将步进电机的转速速度动态显示在上位机软件上度进行实时监控显示。
软件采用在Keil软件环境下编辑的C语言。
本系统具有智能性、实用性及可靠性的特点。
关键词:
AT89S52;ULN2003;上位机;步进电机
Abstract
ThisdesignistheuseofAT89C52microcontrollertocontrolthesteppermotor,temporalsidethroughtheI/0portoutputwaveasthecontrolsignalofthesteppingmotorandthesignalthroughULN2003chiptodrivethesteppermotor;atthesametime,withthehostcomputersoftwaretothestatusofmotorcontrol,andmotorinthePCsoftwarewillstepstatedisplayout.
Thesystemdesignconsistsofhardwaredesignandsoftwareoftwoparts.Amongthem,theminimumsystem,powertemplate,steppermotordrivehardwaredesignincludesAT89C52microcontroller(DarlingtondriverULN2003)atotalof3functionmoduledesign,andrealizetheorganiccombinationandeachmoduleonthecircuitboard.Softwaredesignincludingcontrolprogramofuppercomputersoftwarecontrol,steppermotorpulseandthespeedsignalacquisitionmodule,andultimatelytoachievethecontrolofsteppermotorrotationdirectionandspeed,andthespeedofsteppingmotorindynamicdisplayofPCsoftware,thespeedforreal-timemonitoringdisplay.ThesoftwareadoptstheeditorintheKeilsoftwareenvironmentofClanguage.Thecharacteristicsofthissystemisintelligent,practicalandreliable.
Keywords:
AT89S52;ULN2003;Thehostcomputer;Steppermotor
引言················································································1
1控制要求与总设计方案······················································1
1.1步进电机控制要求······························································1
1.2总体设计思路··································································1
1.3总体设计方案··································································1
2系硬件设计及外围器件介绍·················································2
2.1单片机AT89S52介绍···························································2
2.1.1主要性能·····································································3
2.1.2功能特性描述·································································3
2.2高压大电流达林顿晶体管阵列ULN2003介绍·····································5
2.2.1概述与特点···································································5
2.3RS-232串行总线接口介绍·······················································
6
2.3.1概述与特点···································································6
2.3.2概RS-232的引脚作用·························································6
3软硬件调试及分析···························································8
3.1软件调试·······································································8
3.2硬件调试·······································································8
4结论··········································································9
谢辞············································································10
参考文献·········································································11
引言
当今社会,电动机在工农业生产、人们日常生活中起着十分重要的作用。
步进电机是最常见的一种控制电机,在各领域中得到广泛应用。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,其优会长期积累的特点,给实际的应用带来了很大的方便。
它广泛用于消费类产品(打印机、照相机、雕刻机)、工业控制(数控机床、工业机器人)、医疗器械等机电产品中。
研究步进电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。
控制核心采用C51芯片,它以其独特的低成本,小体积广受欢迎,当然其易编程也是不可多得的优点为此,本文设计了一个单片机控制步进电机的控制系统,可以实现对步进电机转动速度和转动方向的高效控制。
1控制要求和总体设计方案
1.1步进电机控制要求
(1)可通过电脑上位机软件控制电机的各姿态,如如启动、停止、正反转等;
(2)可通过电脑上位机软件控制电机的旋转角度;
(3)电脑上位机可实时显示电机转动角度、方向、速度等信息。
1.2总体设计思路
本次设计的步进电机串口控制系统主要由AT89C52单片机的最小系统、电源模版、步进电机驱动(达林顿驱动器ULN2003)模块组成,并将个模块在电路板上有机结合起来。
系统中主要利用AT89S52控制单片机的转的圈数以及控制电机的启动、停止、正传、反转和运行距离的控制。
1.3总体设计方案
整个系统的构成是由两部分组成。
系统主要由单片机最小系统、电源模块和步进电机驱动模块组成。
总体规划流程如下图1-1所示,首先根据课题的要求,需要实现的功能是单片机控制步进电机。
根据设计出来的电路图编写程序流程图,编写程序并使用keil软件调试好程序,再在protel上做个仿真,仿真成功之后才开始选购器材,接下来是焊接电路板,将写好的程序通过烧写器写入到单片机中,最后接上电机完成整个制作过程。
图1-1总体设计流程
2硬件设计及外围器件介绍
单片机采用功能较强的型号AT89S51,显示模块采用来两位BCD-7段锁存译码驱动器,驱动模快采用高压大电流达林顿阵列ULN2003放大驱动步进电机。
电源模块采用下载口来得到稳定的工作电压。
2.1单片机AT89S52介绍
2.1.1主要性能
●与MCS-51单片机产品兼容
●4K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~24KHz
●三级加密程序存储器
●32个可编程I/O口线
●两个16位定时器/计数器
●6个中断源
●可编程串行通道
●低功耗空闲和掉电模式
●片内振荡器和时钟电路
2.1.2功能特性描述
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
VCC:
电源正极
GND:
接地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示。
在flash编程和校验时,P3口也接收一些控制信号。
引脚号第二功能
P3.0RXD(串行输入)
P3.1TXD(串行输出)
P3.2INT0(外部中断0)
P3.3INT0(外部中断0)
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器写选通)
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
图2-1AT89S52的引脚图
2.2高压大电流达林顿晶体管阵列ULN2003介绍
2.2.1概述与特点
ULN2003A是高耐压、大电流达林顿陈列,其引脚图如图2-2所示,内部结构图如图2-3所示,实物图如图2-4所示。
ULN2003A的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003A工作电压高,工作电流大,灌电流可达500mA,并能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
达林顿对管还可并联使用以达到更高的输出电流能力。
ULN2003A的输出结构是集电极开路的,所以要在输出端接一个上拉电阻,在输入低电平的时候输出才是高电平。
在驱动负载的时候,电流是由电源通过负载灌入ULN2003的。
图2-2ULN2003的引脚图
图2-3ULN2003的内部结构图
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003工作电压高,工作电流大,灌电流可达500mA,并能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
达林顿对管还可并联使用以达到更高的输出电流能力。
ULN2003的输出结构是集电极开路的,所以要在输出端接一个上拉电阻,在输入低电平的时候输出才是高电平。
在驱动负载的时候,电流是由电源通过负载灌入ULN2003A的。
图2-4ULN2003A的实物图
2.3RS-232串行总线接口介绍
2.3.1概述与特点
目前RS-232是PC机是通信工业中应用最广泛的一种串行接口,11111被定义为一种在低速率串行通信中增加通信距离的单端标准。
111111采取不平衡传输方式,即所谓单端通信。
典型的11111信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V之间,负电平在-5V~-15V之间。
当无数据传输时,线上为TTL,从开始传输到结束,线上电平从TTL电平到11111111电平在返回TTL电平,接收器典型的工作电平在+3V~+12V与-3V~-12V。
1111111是为了点对点通信二设计的,其驱动器负载为3~7kΩ。
由于11111发送电平与接受电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传输距离最大约为15米,最高速率为20kb/s。
所以适合本地设备之间的通信。
2.3.2RS-232的引脚作用
RS-232的引脚作用如下所示
1:
DCD:
载波检测。
主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。
2:
RXD:
此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示灯在闪烁,说明RXD引脚上有数据进入。
3:
TXD:
此引脚将计算机的数据发送给外部设备;在你使用Modem时,你会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。
4:
DTR:
数据终端就绪;当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。
5:
GND:
信号地;此位不做过多解释。
6:
DSR:
数据设备就绪;此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。
7:
RTS:
请求发送;此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。
8:
CTS:
清除发送;此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。
9:
RI:
Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定
2.3.3RMAX232原理
MAX232芯片是专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚DNG、16脚VCC(+5v)。
图2-5是RS-232接口与MAX232连接的应用电路图。
图2-5RS-232微机转TTL电平接口电路图
3软硬件调试及分析
3.1软件调试
通过上位机软件调试,可以直观的观察出结果。
利用KeiluVision2将程序编写好,
并将程序导入到isis仿真软件中进行仿真模拟,然后将程序烧录到AT89S52单片机中。
将元器件全部焊接完毕之后就可以利用上位机软件控制步进电机的转速及转角,并且对其进行实物调试。
3.2硬件调试
(1)调试步骤
1、按照电气原理图进行接线,核对地址,逐点进行,确保正确无误。
2、检查模拟量输入输出。
检查输入输出模块是否正确,工作是否正常。
必要时,用标准仪器检查输入输出的精度。
3、利用上位机软件对步进电机进行控制,并将结果与实训要求相对比,看结果是否与实训要求一致。
4结论
经过这几个星期的的努力,在老师和同学的帮助下做完了这次实训设计工作。
在这次实训的过程中,虽然遇到很多难题,但是在我和同学的相互探讨下终于一一克服了。
通过这次的实训设计,我能运用已学的知识解决我在设计中遇到的问题,使自己的动手能力和思考问题的能力得到了很大的提高。
在做设计的过程中我查阅了很多的资料,并认真的阅读这些与我的设计相关的资料,从而我的专业涵养得到了提高,知识的储备量也有所增加。
整个设计通过了软件和硬件上的调试、仿真。
我想这对于自己以后的学习和工作都会有很大的帮助的。
在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
通过这次设计我也发现自己的很多不足之处。
在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应用软件还不够熟练,我希望自己的这些不足之处能在今后的工作和学习中得到改善。
而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样。
在实训设计的过程中,我遇到了很多困难,有的是通过上网自己查找资料来解决问题的,有的是通过同学老师的帮助解决问题的,这是我明白团队合作的重要性。
也是我懂得有问题不可怕,只要自己有耐心肯定会解决的。
谢辞
经过这段时间的实训,在自己反复修改程序及查找资料的情况下最终顺利地完成了本次实训设计。
在设计的过程中得到了莫容老师的帮助和指导,从而使得我在遇到困难时能够找到解决问题的方法,同时在设计过程中少走了许多弯路。
在此我对廖晓梅老师表示最衷心的感