- 2022-09-27 发布 |
- 37.5 KB |
- 62页



申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
基于单片机的单轴运动控制器的设计
南京工程学院康尼学院本科毕业设计(论文)题目:单轴运动控制器设计专业:自动化(数控技术)班级:K数控092学号:学生姓名:指导教师:高级工程师起迄日期:2013.2~2013.6设计地点:微机原理与应用实验中心\nGraduationDesign(Thesis)TheDesignoftheUniaxialMotionControllerBySupervisedbySeniorEngineerSchoolofConniecollegeNanjingInstituteofTechnologyJune,2013\n摘要随着现代科技的发展,单轴运动控制已广泛应用于日常生活之中,在各行各业都有着极其重要的应用。本文描述了基于AT89S52的单轴运动控制器设计与实现过程。通过单片机连接步进电机驱动器,控制步进电机的进行,并通过数码管显示器显示出来。工作时,通过键盘输入给定速度,加速度或位移值,从而控制步进电机按指定的速度,加速度和位移值进给。单轴运动控制系统的设计包括硬件设计和软件设计两大部分,根据具体情况,硬件设计包括以下模块:主控电路,键盘输入模块,脉冲发生模块,数码管显示模块,复位电路,isp下载电路,电源电路等。软件设计则主要包括主控程序设计,键盘显示程序设计,控制参数的输入与计算,电机控制程序设计等。键词:单片机;步进电机;单轴运动IV南京工程学院自动化学院本科毕业设计(论文)IV\n南京工程学院自动化学院本科毕业设计(论文)ABSTRACTWiththedevelopmentofmoderntechnology,single-axismotioncontrolhasbeenwidelyusedindailylife,inallwalksoflifehaveaveryimportantapplication.ThispaperdescribestheAT89S52basedonthesingle-axismotioncontrollerdesignandimplementationprocess.Throughthemicrocontrollerconnectedsteppermotordriver,steppermotorcontrolfor,andthroughthedigitaldisplayappears.Work,throughthekeyboardinputgivenspeed,accelerationordisplacement,soastocontrolasteppermotortothespecifiedspeed,accelerationordisplacementfeed.Single-axismotioncontrolsystemdesignincludeshardwaredesignandsoftwaredesigntwoparts,dependingonthecircumstances,thehardwaredesignincludesthefollowingmodules:themaincontrolcircuit,keyboardinputmodule,pulsegeneratormodule,LEDdisplaymodule,resetcircuit,ispdownloadcircuit,powersupplycircuit.Softwaredesignmainlycomprisesamaincontrolprogramdesign,thekeyboarddisplayprogramdesignedtocontroltheparametersoftheinputandcalculation,motorcontrolprogramdesign.Keywords:microcomputer;Steppingmotor;UniaxialmotionIV\n南京工程学院自动化学院本科毕业设计(论文)目录第一章绪论................................................................................................11.1引言11.1.1设计背景及意义11.1.2设计任务与要求21.1.3发展现状及前景21.2本文结构3第二章系统方案提出与设计42.1系统功能概述42.2总体方案设计4第三章系统硬件电路设计.........................................................................53.1单片机系统模块.......................................................................................53.1.1AT89S52特点及特性53.1.2管脚及功能说明.........................................................................................63.1.3单片机最小系统83.2键盘输入模块...............................................................................................93.2.1键盘设计方案及论述..................................................................................93.2.2独立键盘测................................................................................................103.2.3键盘连接原理图........................................................................................113.3数码管显示模块...........................................................................................123.3.174HC595芯片介绍...................................................................................123.3.2数码管显示连接电路................................................................................153.4串行通信模块................................................................................................163.4.1串行通信原理...........................................................................................163.4.2MAX232芯片介绍...................................................................................173.4.3RS-232接口介绍......................................................................................183.4.4串行接口原理图.......................................................................................193.5在线下载模块…............................................................................................203.6电机控制模块...............................................................................................213.6.1ULN2803特点及特性...............................................................................213.6.2电机驱动模块电路图...............................................................................2256\n南京工程学院自动化学院本科毕业设计(论文)3.7电源电路模块.............................................................................................223.7.1LM7805特点...........................................................................................223.7.2电源电路原理图......................................................................................23第四章系统软件设计.........................................................................................244.1系统软件设计概述........................................................................................244.2Keil开发软件介绍.........................................................................................244.3系统主控程序流程图....................................................................................254.4键盘控制流程图............................................................................................264.5步进电机控制流程图....................................................................................27第五章步进电机与驱动器的控制...............................................................305.1步进电机选型.............................................................................................305.2步进电机的控制方法....................................................................................305.3驱动器选型...................................................................................................32第六章结论........................................................................................................366.1论文总结.....................................................................................................366.2感想.............................................................................................................366.3致谢...............................................................................................................38参考文献.................................................................................................................39附录A硬件设计原理图与PCB图..........................................................................40附录B软件程序清单.............................................................................................4656\n南京工程学院自动化学院本科毕业设计(论文)第一章绪论 1.1引言单轴运动控制器,成本低,性能好,参数设计灵活,方便,能在不同位移、速度、加速度下实现步进电机精确、快速、有效的定位控制,有一定市场应用价值。目前单轴运动控制器在自动流水生产线、小型钻孔设备等生产设备上得到了较好的应用。可实现自动化操作,本设计具有很大的实用价值。1.1.1设计背景与意义自20世纪80年代初期,通用运动控制器已经开始在国外多个行业应用,尤其是在微电子行业的应用更加广泛。当时运动控制器在我国的应用规模和应用范围很小,国内也没有厂商开发通用的运动控制器产品。目前,国内的运动控制器生产厂商提供的产品大一致可以分为3类:第一类是以单片机或微处理器作为核心的运动控制器,这类运动控制器运行速度较慢,精度不高,成本相对较低。在一些只需要低速运动控制和对轨迹要求不高的轮廓控制场合应用。第二类是以专用芯片(AsIc)作为核心处理器的运动控制器,这种控制器结构比较简单,但是大多数只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供高速连续插补,也没有前赡功能(Looka}lead),特别是对于大量的小线段连续加工的场合,如模具雕铣加工,就不能使用这类控制器。第三类是基于Pc总线的以DsP和FPGA作为核心处理器的开放式运动控制器。这类开放式运动控制器以DsP芯片作为运动控制器的核心处理器,以PC机作为信息处理平台,运动控制器以插卡形式嵌入PC机,即“Pc+运动控制器”的模式。这样将Pc机的信息处理能力和开放式的特点与运动控制器的运动轨迹控制能力有机地结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确、通用性好的特点。这类运动控制器充分利用了DsP的高速数据处理功能和FPGA的超强逻辑处理能力,便于设计出功能完善、性能优越的运动控制系统。56\n南京工程学院自动化学院本科毕业设计(论文)步进电机是开环伺服系统的执行元件,它将脉冲信号转换成直线或角位移,具有较好的控制性能,其启动、停车、反转及其它任何运行方式的改变都可在少数脉冲内完成,且可获得较高的控制精度,因此在经济型数控机床及自动化设备中得到了广泛的应用。目前,步进电机的控制方法是多种多样的,有传统方式的,也有采用PLC控制的,而单片机是介于工控计算机和可编程控制器之间的一种新型控制器,它控制功能强,灵活性和适应性好,成本低廉,正逐渐成为步进电机的主要控制装置,使电机的控制方式由模拟控制逐渐让位于以单片机为核心的数字控制。本文具体讨论了由单片机实现的步进电机的单轴运动控制问题,并结合实例给出实现的方法。1.1.2设计任务与要求本设计是基于AT89S52的单轴运动控制.通过单片机连接步进电机驱动器来控制步进电机并通过数码管显示器显示出来。工作时,通过选择开关,选定工作方式,键盘输入给定速度,加速度或位置值,从而控制外设进行电机控制调节。设计内容包括单片机测控系统电路原理设计,电路板设计,单片机测控软件设计、软硬件调试等。单轴运动控制系统的设计包括硬件设计和软件设计两大部分,根据具体情况,硬件设计包括以下模块:主控电路,键盘输入模块,脉冲发生模块,数码管显示模块,复位电路,isp下载电路,电源电路等。软件设计则主要分为以下几个部分:包括主控程序设计,键盘显示程序设计,控制参数的输入与计算,电机控制程序设计等。1.1.3发展现状及前景由于运动控制器的应用范围越来越广泛,为了适应新的情况、特定环境和对象,不断会有新的运动规划、多轴插补和控制滤波算法出现。从我国的经济发展的情况来看,通用运动控制器的应用市场仅仅是刚刚启动。与美国和欧洲发达国家相比,我国在运动控制器技术开发上政府的投入很少,在该领域没有形成统一的产品标准。高等院校的教育还没有跟上,没有培养出一大批能够开发和应用运动控制器的人才,使得运动控制器的应用工作受阻,售后技术支持难度加大。从欧美品牌的功能最完善、最强大;日本和国产的大多数伺服驱动器是执行一个放大器的功能,即称作“ServoAmplifier”,作运动控制时需要接收上位运动控制器发送的脉冲列或者模拟量信号。而欧美伺服驱动器的位置控制接口一般可以由网络通讯给定,具有强大的独立运动控制的能力,并且具有完备的逻辑控制功能,所以它们往往能够脱离上位运动控制器而独立驱动,这也是造成欧美伺服驱动器价格比日系、国产昂贵的一个原因.国内的一些伺服驱动器也提供单轴运动控制的功能,例如广州数控的DA98B驱动器,它可以让用户自行编辑单轴运动程序,并按照程序做单轴循环运行及输入、输出信号的处理。伺服驱动器通过解释程序段中用户编辑的运动指令,将其转换为相应的位置指令、速度指令和相应的IO点处理[10]。但实际上伺服驱动器只实现了类似PLC顺序控制的逻辑功能,并不带有轨迹规划的性质,因而其应用范围也受到很大的限制,与国外的产品存在一定的差距。[1][2][3]56\n南京工程学院自动化学院本科毕业设计(论文)1.2本文的结构本文以单轴运动控制器的设计项目作为应用背景,对步进电机控制及单片机控制显示、输入输出等方面进行了研究。全文共分为六章,各章的主要内容如下:第一章扼要地介绍了单轴运动控制器的概念、特点与相关研究背景;第二章研究了整个单轴运动控制功能及其设计方案;第三章对系统的各个功能模块的硬件设计进行了研究,分为主控电路模块,键盘输入模块,脉冲发生模块,数码管显示模块,复位电路模块,isp下载电路模块,电源电路模块等。给出了各模块的工作原理、元件选取及硬件连接原理图。第四章则是根据系统各模块进行软件设计,给出主程序,键盘控制程序,步进电机控制程序等,并绘制系统软件流程图,编写程序。此外还介绍了Keil开发软件的相关内容。第五章对步进电机与驱动器的控制进行了分析。第六章总结了全文的研究工作,给出存在的问题和进一步研究的方向。56\n南京工程学院自动化学院本科毕业设计(论文)第二章系统方案提出与设计2.1系统功能概述本设计以AT89S52为核心,用一片AT89S52单片机控制系统工作。虽然步进电机已经配备了驱动器,但如果直接将单片机端口和驱动器控制接口相连接,端口电压将被拉到0V,因此仅靠单片机端口仍旧不能驱动驱动器,必须在单片机系统中增设驱动装置。本文采用的是专用驱动器,驱动作为高度工业产品,具有可靠性高、驱动能力强、适用性好的特点,而且使用方便。控制系统主要由单片机、键盘、显示、驱动等4个模块组成,其中PC上位机用于编写及烧录程序。控制器通过相应的IO接口,将控制指令发送至驱动电路,可以控制步进电机的运行,完成系统的单轴控制。2.2总体方案设计控制系统可实现以下功能:1、控制步进电机的启动和停止、运行方向、运行速度;2、显示步进电机的运行状态、方向、转速;3、通过软件实现细分控制4、2个硬件限位点(正反向限位);5、简单的键盘操作及上位机编程两种方式;6、坐标参数支持相对坐标和绝对坐标综上要求,系统硬件电路框图如图所示。电源单片机步进电机驱动器步进电机按键输入电路数码管显示电路图2.1单轴运动控制器结构图56\n南京工程学院自动化学院本科毕业设计(论文)第三章系统硬件电路设计3.1单片机系统模块3.1.1AT89S52特点及特性AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在线可编程Flash存储器,使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在线可编程,亦适于常规编程器。在一个芯片上,拥有灵巧的8位CPU和在线可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8K字节的Flash,256字节的RAM,32位I/O口,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件,可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作;掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。[4]AT89S52的主要特性是:l与MCS-51单片机产品兼容l8K字节在系统可编程Flash存储器l1000次擦写周期l全静态操作:0Hz~33Hzl三级加密程序存储器l32个可编程I/O口线l三个16位定时器/计数器l八个中断源l全双工UART串行通道l低功耗空闲和掉电模式l掉电后中断可唤醒l看门狗定时器l双数据指针l掉电标识符56\n南京工程学院自动化学院本科毕业设计(论文)3.1.2管脚功能说明AT89S52引脚如图3.1所示图3.1AT89S52引脚结构图VCC:电源GND:接地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用,在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节,在程序校验时,输出指令字节。程序校验时,P0口需要外部上拉电阻。表3.1P1口第二功能P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”56\n南京工程学院自动化学院本科毕业设计(论文)时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3.1所示。在flash编程和校验时,P1口接收低8位地址字节。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口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.2所示。在flash编程和校验时,P3口也接收一些控制信号。表3.2P3口第二功能RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE56\n南京工程学院自动化学院本科毕业设计(论文)以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,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也接收12V的VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.1.3单片机最小系统单片机最小系统,或者称为单片机最小应用系统,是指用最少的元件组成的,使单片机可以工作的系统。对于51单片机来说,最小系统能够运行的必要条件是:电源,晶振和复位电路。在单片机系统里,晶振全称叫做晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振所提供的时钟频率之上的。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。晶振运用一种能把电能和机械能相互转化的晶体,使其在共振的状态下工作,以提供稳定,精确的单频振荡。[5]晶振与单片机的XTAL1和XTAL2引脚构成的振荡电路中会产生谐波,会降低电路的时钟振荡器的稳定性,为了电路的稳定性起见,在晶振的两引脚处接入两个10pf-50pf的瓷片电容接地来削减谐波对电路的稳定性的影响。本系统采用AT89S52单片机,晶振为11.0592MHz,接入两片30pf的电容。XTAL1与XTAL2端分别于单片机的XTAL1、XTAL2相接。晶振电路如图3.2所示。56\n南京工程学院自动化学院本科毕业设计(论文)图3.2晶振电路系统采用按键手动复位方式,相对来讲,这种复位方式更加方便,更加人性化,不必要切断电源即可对系统进行复位。复位电路如图3.3所示图3.3复位电路复位时高电平有效,而电容具有两端的电压不能突变的特性,所以刚开机的时候因为VCC上有5V电压,因为电容两端电压不能突变的特性,RST引脚的电压也被拉到5V,但是因为RST脚又通过电阻R下拉,电阻两端有电压差,电容缓慢通过电阻对地放电,电压慢慢降低最后变成低电平,完成复位。当需要手动复位时,则只需按下复位键,RET引脚就会置为高电平,进行复位。3.2键盘输入模块3.2.1键盘设计方案论述键盘非为编码键盘和非编码键盘。键盘上闭合键的识别用专门的编码器实现,并产生键值的位编码键盘;而靠软件编程来识别的键盘成为非编码键盘,在单片机的系统中,非编码键盘用的较多,非编码键盘又分为独立键盘和矩阵键盘。56\n南京工程学院自动化学院本科毕业设计(论文)独立键盘,是每个按键的电路是独立的,每一个I/O口上只接一个按键,按键的另一端接电源或接地。按键较多时,独立键盘占用I/O口较多,则可采用矩阵键盘,以4*4的为例,将16个按键排成4行4列,每一行将每个按键的一端连接在一起构成行线,每一列将每个按键的另一端连接在一起构成列线,这样便一共有4行4列共8根线,将这8根线连接到单片机的I/O口上,通过程序扫描键盘就可检测到16个键。矩阵键盘的扫描原理是:先确定是否有键按下,再判断所按下键的行列位置。具体的分,有逐点扫描法、逐行扫描法、全局扫描法等。考虑到本设计有串行通信和键盘输入两种工作方式,需要键盘输入温度设定值,可配数码管合显示,采用数值增减的方式,所需的键盘数不多,所以采用独立键盘。3.2.2独立键盘检测独立键盘实际上就是一组按键,键的按下与释放是通过机械触点的闭合与断开实现的,弹性按键按下时闭合,松手后自动断开。独立键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下,如把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断地检测该I/O口是否变为低电平,当按键闭合时,既相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平,则说明按键被按下,然后执行相应指令。但在键盘按下时,存在键盘抖动的问题,是当键盘在未按到按下的临界区产生的电平不稳定现象,如图3.4所示。图3.4按键电压变化抖动时间的长短和按键的机械特性有关,一般为5~10ms,手动按下键再立即释放,这个动作中,稳定的时间不会超过20ms,单片机在检测键盘是否按下时都要加上去抖动操作,有专门的去抖动电路和芯片,但一般可以用软件延时的方法达到去抖动的效果。按键检测流程图如图3.5所示。56\n南京工程学院自动化学院本科毕业设计(论文)图3.5按键检测流程图3.2.3键盘连接原理图P00~P07分别接K0~K7。P20~P27分别接K8~K16。k0键是调节电机方向,上电DIR默认为0,表示反向(D2灯灭),为K0按下第一次DIR=1表示正向(D2灯亮),再次按下K0,DIR=0;K1按下时会有一个50HZ,占空比为50%的脉冲方波信号从PULS端口(D1亮)输出,可以测试电机用;K8是反向限位,即在电机在DIR=0时运动,一旦K8按下,电机立刻停止;K9是正向限位,即在电机在DIR=1时运动,一旦K9按下,电机立刻停止;K12是启动按钮,即按下该按键,电机就按照设定的速度,加速度,脉冲运转,默认设置是V=1000HZ,A=5000HZ/S*S,PULS=1000个。键盘连接原理图如图3.6所示56\n南京工程学院自动化学院本科毕业设计(论文)图3.6键盘连接原理图3.3数码管显示模块3.3.174HC595芯片介绍74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断状态,三态。特点:8位串行输入8位串行或并行输出存储状态寄存器,三种状态输出寄存器可以直接清除100MHz的移位频率输出能力并行输出,总线驱动串行输出;标准:中等规模集成电路应用串行到并行的数据转换Remotecontrolholdingregister.描述595是告诉的硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。56\n南京工程学院自动化学院本科毕业设计(论文)移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。CPD决定动态的能耗,PD=CPD×VCC×f1+∑(CL×VCC2×f0)F1=输入频率,CL=输出电容f0=输出频率(MHz)Vcc=电源电压引脚说明符号引脚描述内部结构结合引脚说明就能很快理解595的工作情况74HC595引脚图,引脚图如图3.7图3.774HC595引脚图74595的数据端:QA--QH:八位并行输出端,可以直接控制数码管的8个段。QH':级联输出端。我将它接下一个595的SI端。SI:串行数据输入端。74595的控制端说明:SRCLR(10脚):低点平时将移位寄存器的数据清零。通常我将它接Vcc。SRCK(11脚):上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级)RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。(通常我将RCK置为低电平,)当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。G(13脚):高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。56\n南京工程学院自动化学院本科毕业设计(论文)表3.374HC595引脚功能表管脚编号管脚名管脚定义功能1、2、3、4、5、6、7、15QA—QH三态输出管脚8GND电源地9SQH串行数据输出管脚10SCLR移位寄存器清零端11SCK数据输入时钟线12RCK输出存储器锁存时钟线13OE输出使能14SI数据线15VCC电源端1)74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。2)74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。与164只有数据清零端相比,595还多有输出端时能/禁止控制端,可以使输出为高阻态。3)595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,在正常使用时SCLR为高电平,G为低电平。从SER每输入一位数据,串行输595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,如下面的真值表,在正常使用时SCLR为高电平,G为低电平。从SER每输入一位数据,串行输入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。74HC595时序图如下图3.856\n南京工程学院自动化学院本科毕业设计(论文)图3.874HC595时序图3.3.2数码管显示连接电路根据设计要求和数码管控制方式,该系统共8位共阳数码管,数码管的驱动采用两片74HC595级联驱动,其中第一片驱动段选,第二片位选,具体显示的数字需要预先编码,然后传输上去才可显示。74HC595是一款串入并出的芯片,可以大大节省IO的使用,如果采用级联模式,就是把上一个芯片的数据输出”Q7”连接在下一个芯片的DS端,SCK,RCK,CLR,OE等控制管脚全部对应连接在一起,串行数据在DS端在SCK的上升沿传输进去,一个上升沿右移一位,一个芯片可容载8位数据,驱动数码管需要16位数据。所以要先把8位位选数据传输到第二片,再把8位段选数据传输到第一片,传输完成后,需要一个RCK的上升沿才可以把位移寄存器的数据存到数据端口,位选和段选的编码采用数组形式。数码管连接电路图如图3.9所示56\n南京工程学院自动化学院本科毕业设计(论文)图3.9数码管显示电路3.4串行通信模块3.4.1串行通信原理串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号地线和若干控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕,如图3.11所示。56\n南京工程学院自动化学院本科毕业设计(论文)发送设备接收设备D0D78位顺次发送图3.10串行通信方式串行通信的必要过程是:发送时,要把并行数据变成串行数据发送到线路上去,接收时,要把串行信号再变成并行数据,这样才能被计算机及其他设备处理。串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。串行通信有两种方式:异步串行通信和同步串行通信。异步串行通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。异步通信以字符(构成的帧)为单位进行传输,字符与字符之间的间隙是任意的,但每个字符中的各位是以固定的时间传送的,每一帧字符信息由4个部分组成:起始位、数据位、奇偶校验位和停止位。异步通信不要求收发双方时钟严格的一致,实现容易,设备开销较小,但每个字符要附加2~3位,用于起止位、校验位和停止位,各帧之间还有间隔,因此传输效率不高。同步通信是要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,既保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过外同步和自同步两种方法实现。串行通信有三种制式,分别为单工、半双工和全双工。单工指数据传输仅能沿一个方向,不能实现反向传输;而半双工是指数据传输可以沿两个方向,但需要分时进行;全双工则是数据可以同时进行双向传输。[6]3.4.2MAX232芯片介绍由于单片机和RS232的电平标准不一样,单片机的电平标准为TTL电平:+5V表示1,0V表示0;而RS232的电平标准为:+3~+15V表示1,-15V~-3V表示0。所以单片机与PC进行串行通信就应该在单片机与上位机给出的RS232接口之间通过电平转换电路实现TTL电平与RS232电平之间的转换。MAX232芯片是MAXIM公司生产的包含两路接收器和驱动器的IC芯片,引脚结构图如图3.12所示。56\n南京工程学院自动化学院本科毕业设计(论文)图3.11MAX232芯片引脚结构图它的内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232输出电平所需的+10V电压。所以,采用芯片接口的串行通信系统只需单一的+5V电源就可以了。其主要特点有:l单5V电源工作lLinBiCMOSTM工艺技术l两个驱动器及两个接收器l±30V输入电平l低电源电流:典型值是8mAl符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28lESD保护大于MIL-STD-883标准的2000V3.4.3RS-232接口介绍RS-232接口就是串口,电脑机箱后方的9芯插座,旁边一般有"|O|O|"样标识。其9个引脚的信号内容见表3.3。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准,全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”,该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容及信号电平加以规定,实际上RS-232-C的25条引线中有许多是很少使用的,在计算机通讯中一般只使用3-9条引线,本设计中所用的就是9条引脚的借口,即DB9。而在通信过程中只有两个脚参与通信。2脚:计算机的输入RXD3脚:计算机的输出TXD56\n南京工程学院自动化学院本科毕业设计(论文)5脚:接地表3.4RS-2329个引脚的信号通过2、3脚就可以实现全双工的串行异步通信,而对于单片机而言,单片机的P3口有两个复用接口P3.0(RXD)和P3.1(TXD),这是单片机进行串行通信的收发口,对应连接到电脑的TDX、RDX上。PC串口与单片机串口连接方式如图3.12所示。串口设备交叉连接DB9插座电平转换DB9插座PC机图3.12串口连接方式3.4.4串行口连接原理图串行口连接原理图如图3.13所示。56\n南京工程学院自动化学院本科毕业设计(论文)图3.13串行通信原理图C1、C2、C4、C5及V+、V-是电源变换电路部分,电容采用0.1uF的非极性瓷片电容;T1IN、T2IN可直接连接TTL/COMS电平的51单片机串行发送端TXD,R1OUT、R2OUT可直接连接TTL/COMS电平的51单片机串行接收端RXD,T1OUT、T2OUT可直接连接PC机的RS-232串口的接收端RXD,R1IN、R2IN可直接连接PC机的RS-232串口的发送端TXD。从MAX232芯片两路发送、接收中任选一路作为接口,其发送、接收引脚要对应,T2IN连接单片机发送端TXD,PC机的RS-232接收端RXD一定要连接T2OUT,R2OUT连接单片机串行接收端RXD,PC机的RS-232发送端TXD一定要连接R2IN。其数据传输过程为:MAX232的T2IN引脚接单片机TXD端P3.1,TTL电平从单片机的TXD端发出,经过MAX232转换为RS-232电平后,从MAX232的T2OUT引脚发出,再连接到实验板上串口的第3脚,再交叉串口线后,连接至PC机串口座的第2脚RXD端,至此计算机接收到数据。PC机发送数据时,从PC机串口座的第3脚TXD端发出,再逆向流向单片机的RXD端P3.0接收数据。3.5在线下载模块ISP(In-SystemProgramming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。AT89S52单片机可以通过I/O口P1.5、P1.6、P1.7进行在线下载编程。原理图如图3.14所示。56\n南京工程学院自动化学院本科毕业设计(论文)图3.14在线下载原理图MOSI:输出,AVRISP到目标芯片的指令或数据;MISO:输入,目标芯片到AVRISP的数据;SCK:输出,由AVRISP控制的串行时钟;RET:输出,由AVRISP控制的复位。3.6电机驱动模块3.6.1ULN2803特点及特性ULN28038个NPN达林顿晶体管,连接在阵列非常适合逻辑接口电平数字电路(例如TTL,CMOS或PMOS上/NMOS)和较高的电流/电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载,广泛的使用范围:计算机,工业和消费应用。所有设备功能由集电极输出和钳位二极管瞬态抑制。该ULN2803是专为符合标准TTL,而制造ULN2804适合6至15V的高级别CMOS或PMOS上。该电路为反向输出型,即输入低电平压,输出端才能导通工作。图3.15引脚图1-8引脚:输入端11-18引脚:输出端9引脚:地端10引脚:电源+图3.15ULN2803引脚图56\n南京工程学院自动化学院本科毕业设计(论文)图3.16ULN2803内部电路图图3.17ULN2804内部电路图3.6.2电机控制模块电路图为了能输出稳定的驱动电流,采用8路达林顿ULN2803芯片,可以很方便实现晶体管集电极开路输出,UNL2803是类似NPN三极管,一共8路,高电平导通,低电平截止,脉冲管脚高电平可以导通对应的UNL2803其中一路。外接功率器件时必须有5V的电压经过负载再接入UNL2803的输出管脚,这是集电极开路的特点,由于外部驱动器的内部是5V光耦,所以可以很方便驱动。电机驱动模块电路图见图3.18图3.18电机控制模块电路图3.7电源电路模块3.7.1LM7805特点用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的lm78或lm79后面的数字代表该三端集成稳压电路的输出电压,如lm7806表示输出电压为正6V,lm7909表示输出电压为负9V。因为三端固定集成稳压电路的使用方便,电子制作中经常采用。最大输出电流1.5A,LM78XX系列输出电压分别为:5V;6V;8V;9V;10V;12V;15V;18V;24V。LM7805元器件如图3.19所示。56\n南京工程学院自动化学院本科毕业设计(论文)图3.19LM7805外形图3.7.2电源电路原理图电源电路原理图如图所示,该系统输入电压可以再8V-24V之间,采用三端线性稳压芯片LM7805稳压,输出5V的电压供给单片机以及外围器件。所有芯片的VCC和GND都连在一起,电源电路还加了适当的旁路滤波电容,净化电源,增强了抗干扰能力。电源电路原理图如图图3.20。图3.20电源电路原理图56\n南京工程学院自动化学院本科毕业设计(论文)第四章系统软件设计4.1系统软件设计概述根据系统所需实现的功能,软件设计可主要分为以下几个部分:主程序,显示程序,键盘程序,电机控制程序等。与汇编语言相比,C语言具有良好的模块化,易阅读和维护等优点,用其编写的程序具有很好的可移植性,功能化的代码能够很方便地从一个工程移植到另一个工程,从而可以减少开发时间,用C语言编写程序比用汇编语言更符合人们的思考习惯,很多处理器支持C语言编译器,故本设计的软件设计采用C语言进行编写。[7]4.2Keil开发软件介绍KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,提供了丰富的库函数和功能强大的集成开发调试工具。我们进行软件编程,需要通过汇编软件将所编写的源程序变为CPU可以执行的机器码。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。Keil可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,可以直接写入程序存贮器如E2PROM中。Keil软件开发流程:(1)建立工程;(2)为工程选定目标芯片;(3)设置工程的配置参数(4)打开/建立程序文件;(5)编译和连接文件;(6)纠正和修改程序中的书写和语法错误并重新编译连接;(7)将生成的HEX文件烧入单片机,运行调试。56\n南京工程学院自动化学院本科毕业设计(论文)4.3系统主控程序流程图根据设计要求,本设计的软件部分应实现的系统工作过程为:系统上电,对步进电机驱动器、数码管等进行初始化;进行工作方式选择,依次对速度,加速度和脉冲进行设定,若为键盘输入方式,则按下“设定”键,进入通道选择,选定后,对该系统的速度,脉冲和加速度进行设定。系统主控程序流程图如图4.1所示。K1按下则一直产生500hz的,50%的测试脉冲,松开K1,脉冲停止进入脉冲频率设定界面K0按下切换电机方向K12按下电机转动K13按下进入加速度设定界面K14按下进入脉冲个数设定界面限位开关,电机停止K11按下?主函数开始按钮判断K1按下K11按下系统初始化YNYNYNYNNYYNYNNYYN图4.1系统主控程序流程图56\n南京工程学院自动化学院本科毕业设计(论文)4.4键盘控制流程图根据设计要求,本程序实现的要求满足电机启动控制和参数的设置。如图4.2键盘控制流程图开始RUN是否按下电机按设定值运行限位开关,电机停止SET是否按下进入脉冲设定界面扫描UP键扫描DOWN键LEFT键是否按下RIGHT键是否按下SET键是否再次按下YNYYNYNN图4.2键盘控制流程图56\n南京工程学院自动化学院本科毕业设计(论文)4.5步进电机控制流程图步进电机加减速通常有三种方法:直线加减速、指数加减速、抛物线加减速,后两种方法,步进电机可能因为升降速太快而丢步,影响定位精度,下文介绍了精确定位过程的实现。任意直线加减速的方法,如图4.3所示,设位移设定值是已Pn、最大速度是Vmax、加速度是Acc,根据公式V=2×Acc×Pn,Vn为实时速度,可得Vn=,Pn=n(1)图4.3同步启动加速曲线图4.4延时启动加速曲线此公式,CPU根本无法实时计算出该值。这里介绍一种延时启动直线加减速脉冲生成方法。如图4.4所示。曲线1表示速度加速曲线,现把该设定曲线延时时间,即曲线2,在曲线2初始时刻发首个脉冲,此时速度值由图4.4可知。56\n南京工程学院自动化学院本科毕业设计(论文)所以由此可知:图4.5有匀速过程的速度位移曲线图4.6无匀速过程的速度位移曲线t0取值越小,则实际加速曲线越逼近给定加速曲线,这里为计算方便取t0为0.1s,由式(4)很容易求出初始时刻v1(一般将v1放大10倍,以避免浮点数乘除运算),根据式(8)、(5)分别求出vi、ti,由ti求出装载定时器T0的初始值。同样可以分析得出减速过程中匀减速初始时刻vi-1就是加速过程中达到的速度最大值。在加减速过程中,用户设置的位移值、加速度值可能较小,最大速度值又可能较大,所以单片机在运算过程中要判断是否有匀速运动过程,如图4.5、图4.6所示,具体方法如下:首先计算中间位移点Pm=Ps/2,并对定时器T0输出脉冲数进行计数,设计数变量为j,当j<Pm时,实时判断当前速度是否到达设定的最大速度值,若到达,则记录当前输出脉冲数P1,根据对称性,可知在第(Ps-P1)个脉冲开始减速。若j=Pm时,当前度依旧小于设定的最大速度值,则系统随即开始减速,两者都直至输出Ps个脉冲后停止。综上所述,定时器T0流程如图4.7所示,右侧是加速段流程,中间是匀速段流程,左侧是减速段流程。如图4.7步进电机控制流程图56\n南京工程学院自动化学院本科毕业设计(论文)图4.7步进电机控制流程图56\n南京工程学院自动化学院本科毕业设计(论文)第五章步进电机与驱动器的控制5.1步进电机选型本系统中,步进电机选用2相4线的42BYGH系列电机。该电机的主要参数如下:步距角(°)------------------------------------------1.8°绝缘电阻(Ω)----------------------------------------500VDC100MΩMin环境温度(℃)----------------------------------------—20~+50温 升(℃)------------------------------------------80径向跳动(mm)--------------------------------------0.02轴向跳动(mm)--------------------------------------0.1-0.3机身长(mm)-----------------------------------------34相电压(V)--------------------------------------------12相电流(A)--------------------------------------------0.4相电阻(Ω)-------------------------------------------30相电感(mH)------------------------------------------37静力矩(g.cm)-----------------------------------------2600引线数(NO.)------------------------------------------4转动惯量(g.c㎡)-------------------------------------34定位力矩(g.cm)--------------------------------------200重量(kg)-----------------------------------------------0.25.2步进电机的控制方法在运动控制系统中,既要对运动轨迹严格控制,也要对运动速度严格控制,以保证所生产的产品的精度及系统的生产效率。在高速运动时,为避免在启动和停止阶段发生冲击、失步、超程和振荡,运动控制系统需要对运动速度进行加减速控制。(1)脉冲增量插补算法的进给速度控制脉冲增量插补的输出形式是脉冲,器频率与进给速度成正比。因此可通过控制插补运算的频率来控制进给速度。常用的方法有:软件延时法和中断控制法。本设计采用中断控制法,即根据编程进给速度计算出定时器/计数器(CTC)的定时时间常数,以控制CPU中断,在中断服务中进行一次插补运算并发出进给脉冲,CPU等待下一次中断,如此循环进行,直到插补完毕。56\n南京工程学院自动化学院本科毕业设计(论文)这种方法使得CPU可以在两个进给脉冲时间间隔内做其它工作,如输入、译码、显示等。进给脉冲频率由定时器定时常数决定,定时到,插补运算一次输出进给脉冲。(2)加减速度控制为了保证控制精度,在进给速度突变时必须对送到进给电动机的脉冲频率进行加减速控制。当速度突然升高时,应保证加在伺服进给电动机上的进给频率逐渐增大;当速度突降时,应保证加在伺服电动机上的进给脉冲频率逐渐减小。本系统采用直线加减速控制算法,快速进给时速度变化范围大,平稳性好。速度变化曲线如图5.1所示。ABCDOvcpV(t)KL图5.1直线加减速直线加减速控制需经5个过程:1)加速过程若输入速度与上一个采样周期的输出速度vi-1之差大于一个速度常数KL,即vc-vi-1>KL,则必须进行加速控制,使本次采样周期的输出速度增加一个KL值:vi=vi-1+KL,KL为速度阶跃因子。显然,在加速过程中,输出速度vi沿斜率为=的直线上升,为采样周期。2)加速过渡过程当输入速度vc与上次采样周期的输出速度vi-1之差满足下式时:0查看更多
相关文章
- 当前文档收益归属上传用户