基于单片机的步进电机控制系统  毕业设计论文_第1页
基于单片机的步进电机控制系统  毕业设计论文_第2页
基于单片机的步进电机控制系统  毕业设计论文_第3页
基于单片机的步进电机控制系统  毕业设计论文_第4页
基于单片机的步进电机控制系统  毕业设计论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

引言步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的迅速发展和微型计算机的普及与应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本又提高了控制的灵活性,可靠性及多功能性。在当今社会的各个领域步进电机无处不在,应用领域涉及机器人、工业电子自动化设备、医疗器件、广告器材、舞台灯光设备、印刷设备、计算机外部应用设备等等。因此,设计出高精确度、实时监控、语音提示的步进电机具有重要的现实意义和实用价值。基于单片机的步进电机控制系统,能够有效地对步进电机转速、方向等进行控制。本设计采用16位单片机AT89S52对步进电机进行控制,通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过驱动芯片驱动步进电机;同时,用按键来对电机的状态进行控制,并用数码管显示电机的转速,1课题背景步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字执行元件,随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中的普及与深入,步进电机的需求量越练越大。随着工业技术的不断发展,以及同类产品的不断出现,步进电机面临着前所未有的挑战。但近30年来,数字技术、计算机技术和永磁材料的迅速发展,推动步进电机的发展,为步进电机的应用开辟了广阔的前景,近几年来,步进电机需求量一直呈现出较快的增长速度,其中扫描仪、打印机、传真、DVDROM/CDROM驱动器、空调及多功能自动化办公设备等应用对步进电机的需求增长最强。此外由于USB20的日益流行促进了高分辨率扫描仪的销售,步进电机向着小型、薄型和更小的步进角度发展。步进电机有着方方面面重要应用,如何对其进行有效控制,使其能够发挥最大的优势是各个行业技术开发人员所共同关注的,本次设计了一套简单的通用控制系统,对步进电机的转速、方向实行手动控制,并能通过数码管显示其转速。2设计要求本设计主要研究单片机控制步进电机,对步进电机的转速、方向进行控制和显示。该系统的主要技术参数(1)系统供电电源电压12V、5V;额定电流05A。(2)驱动电源输出四相八拍方式。(3)步踞角09。该系统要实现的主要功能(1)能实现步进电机的正转、反转控制。(2)能实现步进电机的转速控制。(3)扩展功能实现步进电机点动的转动控制及正反转控制。3方案论证31步进电机选择由于本系统是基于单片机的步进电机系统,实际上是设计步进电机的驱动电路,而设计步进电机的驱动电路有一个必须遵循的原则先选择步进电机后进行驱动电路设计。所以在此先介绍步进电机的选择,而这个问题的又分为步进电机在理论上的选用以及理论联系实际对步进电机的选用。311理论上对步进电机的选用步进电机作为本系统的主要组成部件,它的参数选取以及电机的性能指标直接影响到系统控制精度及运行可靠性。步进电机和一般直流电机不同,它的性能指标与驱动电源及测试条件关系很大。同样一个步进电机,当驱动电源或测试方法改变了,其性能会千差万别。不同厂家制造的步进电机,只有在相同的控制电源以及测试条件下进行比较才有意义。因此只有对步进电机的参数和特性有比较深刻的了解,才会更好地选用和使用步进电机。1步进电机的主要参数步距角在电机内不带任何减速装置的情况下,输入一个脉冲信号,步进电机所转过的机械位移即为步距角。电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。目前市场上步进电机的步距角一般有036/072(五相电机)、09/18(二相、四相电机)、15/3(三相电机)等。鉴于在本市购买步进电机的困难以及目前市场上广泛应用的是二相、四相混合式电机,所以本系统采用的是步距角09四相混合式步进电机。步距角为09度,通过计算360/09400,则步进电机转一圈需要400步。步进电机的相数步进电机的相数是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。每相都包括电机绕组以及和绕组串联成一个支路的其他元件。在没有细分驱动器时,主要靠选择不同相数的步进电机来满足自己步距角的要求。额定电压指步进电机各相绕组主回路上的直流电压。电压波纹系数不宜过大,一般情况下应小于5。为了步进电机及其配套电源的标准化,国家标准GBN11381规定步进电机的额定电压为单电压驱动6,12,27,48,60,80(V);双电压驱动6/12,80/12(V)。功率步进电机典型功率范围从几百微瓦用于较小电机直到几瓦用于大型电机。步进电机的最大功耗受绕组中温度限制。出于本系统设计的考虑只须选择功率范围在十瓦以内的小功率电机即可。最高运行转速确定步进电机的最高运行转速。转速指标在步进电机的选取时至关重要,步进电机的特性是随着电机转速的升高,扭矩下降,其下降的快慢和很多参数有关,如驱动器的驱动电压、电机的相电流、电机的相电感、电机大小等等,一般的规律是驱动电压越高,力矩下降越慢;电机的相电流越大,力矩下降越慢。在设计方案时,电机的转速控制可以参考厂家提供的矩频特性图。2步进电机动态指标步距角精度即为步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示误差/步距角100。不同运行拍数其值不同,四拍运行时应在5之内,八拍运行时应在15以内。失步电机运转时运转的步数,不等于理论上的步数,称之为失步。失调角转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。最大空载起动频率电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。最大空载运行频率电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。312实际对步进电机的选用以上是出于理论上对步进电机的选用,实际上由于本系统只须简单地控制步进电机正反转、点动正反转,而没有涉及到使用步进电机拖动负载,因此诸如静力矩和动力矩、转子的转动惯量、失调角、力矩负载、惯性负载这些因素就不需要考虑了;其次由于本设计采用的是小功率的步进电机,因此也不需要过分考虑步距角精度这个因素;再则在本市购买步进电机存在着少选择且价格昂贵的客观因素,所以最终只购买到如下图所示这款价格低廉,型号老旧的二手步进电机,该电机型号太古老且没有说明书,因此现有的参数如下该电机为二相四相混合式步进电机,步距角为09,相数M为4,额定电压UE值为12V,相电阻值为34,电机引出线数目为6,分别为红、红、黄、橙、灰、黑六色。图313步进电机实体图32步进电机驱动的几种方案论证与比较本设计的重点在于对步进电机的控制和驱动,设计中受控电机为四相八拍制的步进电机。321使用分立元件驱动步进电机以往步进电机控制系统采用分立元件或者集成电路组成的控制回路,不仅调试安装复杂,要消耗大量元器件,而且一旦定型之后,要改变控制方案就得重新设计电路。随着微电子和计算机技术的发展,对步进电机的控制变得非常灵活方便,可以通过软件来控制步进电机。因此,用微电脑控制步进电机已经成为了一种必然的趋势,也符合数字化的时代趋势。322使用多个功率放大器件驱动电机通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。323使用CH250芯片驱动电机在这种形式里,脉冲分配器(CH250)、驱动电路由硬件完成。单片机只提供步进脉冲和正、反转控制信号,步进脉冲的产生与停止、步进脉冲的频率和个数都可用软件控制。但相比于用软件代替脉冲分配器的方式来说,硬件一旦确定下来,不易更改,更主要的是此种芯片已经在世面上买不到了,所以不采取该方案。324使用L298N芯片驱动电机L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,每相电流达2A。可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;电路简单,使用方便。325使用ULN2003高压大电流达林顿晶体管阵列驱动电机ULN2003承受高达50V工作电压和05A工作电流,而本设计电机也仅需要035A相电流驱动即可。由此芯片构成的驱动电路简单,驱动功率大且成本低,且由软件完成脉冲分配工作,不仅使线路简化,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。33驱动芯片的选择本系统是用单片机来实现的,单片机种类繁多,不过又以MCS51/52系列的单片机使用最广泛,而且本系统的主要功能和51/52系列的单片机用途很合适,所以选用了ATMEL公司的51/52系列芯片。AT89S52是A典型代表,使用相当的多,应用资料很多,价格便宜,是初学51/52的首选芯片,该单片机还有一个优点就是在板子上加上下载电路就可以在线下载了,使用调试起来很是方便。所以本系统的单片机采用AT89S52。由于设计要求用L298N驱动芯片,所以本次设计使用L298N芯片驱动电机。34步进电机与单片机的连接形式341由硬件完成脉冲分配的功能在这种形式里,脉冲分配器、驱动电路由硬件完成。单片机只提供步进脉冲和正、反转控制信号,步进脉冲的产生与停止、步进脉冲的频率和个数都可用软件控制。单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的通断。一般来说,硬件一旦确定下来,不易更改,这种方案,硬设备成本高,它的应用受到了限制。硬件环形分配器由门电路和双稳态触发器组成的逻辑电路构成。342由软件完成脉冲分配工作所谓软件完成脉冲分配就是用软件改变单片机与步进电机接口输出值,进而达到控制步进电机绕组的通电顺序和通电方式之目的。由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。硬件的主要任务是完成驱动功能。一般微机系统需要进行如下设置设置输出接口设计环形分配子程序,在存储器中建立环形分配表设计延时子程序,设计延时子程序来控制步进频率。本电路是以单片机为基础,主要通过软件实现脉冲发生器功能,因此外围电路的设计得到了简化。电路工作过程接电源5V和12V,从正反转及点动控制模块里选择电机工作方式按钮,比如选择正转控制按钮,单片机AT89S52接收到响应信号后产生脉冲信号,经过接口的上拉电阻后稍微加大输出引脚的驱动能力、提高输出电平,使输出电流变大。接着就是通过L298N芯片驱动电机来给予电机启动电流。步进电机四个相分别为A、B、C、D,本系统步进电机工作于四相八拍的工作方式。通电绕组顺序AABBBCCCDDDAA这样电机转子便顺时针方向一步一步地转动;相反要使电机自动反转则各相绕组的通电绕组顺序为通电绕组顺序AADDDCCCBBBAA注意这里的正反转和点动控制的通电绕组顺序的输出状态是一致的。4系统主要芯片介绍41AT89S52AT89S52是一种低功耗、高性能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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图41AT89S52芯片图42L298NL298N采用由达林顿管组成的H型PWM电路。PWM电路由四个大功率晶体管组成H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控脉冲的占空比,精确调整电动机转速。这种电路由于管子工作只在饱合和截止状态下,效率非常高。H型电路使实现转速和方向的控制的简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的PWN调整技术。L298N是SGS公司的产品,常见的是15脚MULTIWATT封装,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含双H桥高电压大电流集成电路。由图42可见L298N的内部结构,每个H桥的下侧桥臂晶体管发射极连在一起,其输出脚(SENSEA和SENSEB)用来连接电流检测电阻。VSS接逻辑控制的电源。VS为电机驱动电源。IN1IN4输入引脚为标准TTL逻辑电平信号,用来控制H桥的开与关即实现电机的正反转,ENA、ENB引脚则为使能控制端,用来输入PWM信号实现电机调速。图42L298N芯片图437805集成稳压器是指将不稳定的直流电压变为稳定的直流电压的集成电路。在电子制用中应用较多的是三端固定输出稳压器。图431所示为应用最广泛的串联式集成稳压器内部电路方框图,其工作原理是取样电路将输出电压UO按比例取出,送入比较放大器与基准电压进行比较,差值被放大后去控制调整管,以使输出电压UO保持稳定。H7805系列为3端正稳电压电路,TO220封装,能提供多种固定的输出电压,应用范围广。内含过流,过热和过载保护电路。带散热时,输出电流可达1A。虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。主要特点输出电流可达1A输出电压有5V过热保护短路保护输出晶体管SOA保护极限值(TA25)V1输入电压(VO518V)35VROJC热阻(结到壳)5/WROJA热阻结到空气65/WTOPR工作结温范围0125TSTG贮存温度范围65150功能框图图4317805的功能图图4327805实物图44光电耦合器基本的光电耦合器包括发光二极管LED、光检测器和光学透明、电气绝缘电介质。电流启动LED后,该二极管发光,并通过电介质与光电探测器耦合。光检测器产生的电流与耦合光成正比。该电流可以通过不同的电路来操纵,以进行不同的功能。光电耦合器的主要功能是防止电路一侧出现过高的电压,或快速变化的电压损坏元器件或扭曲另一侧的传输。具体方法是使需要的信号以光学的形式通过,同时在两个系统之间保持电性隔离。本设计选用TLP5212型光电耦合器,如图44所示TLP5212中由两个隔离通道TLP5214组成的DIP包装。图44TLP5212芯片图5系统主要硬件电路设计51单片机控制系统框图AT89S52单片机LED数码显示步进电机驱动驱动步进电机图51单片机控制系统原理框图52步进电机基本原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。521步进电机的特点1输出转角大小与输入脉冲数严格成比例,即来一个脉冲,转一个步距角,且在时间上与输入脉冲同步。2电机转子转速随输入信号的脉冲频率而变化。即控制脉冲频率,可控制电机转速。3借助控制线路,易于获得正反转、间歇运动等特殊功能。即改变脉冲顺序,改变方向。4转子的转动惯量小,启动、停止时间短。一般在信号输入几毫秒或几十毫秒后,即能使电机转动或达到同步转速。信号切断后,电机立即停止转动。5输出转角精度高,无累积误差。6步进电机的工作状态对各种干扰因素不敏感。7控制特性好。8步距值不受各种干扰因素的影响。9总位移量取决于总的脉冲数522步进电机换相、转向及加/减速控制方案1控制换相顺序按键选择通电换相这一过程称为脉冲分配。四相步进电机的八拍工作方式,其各相通电顺序为AABBBCCCDDDAA,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。2控制步进电机的转向如果给定工作方式正序通电,步进电机正转,如果按反序通电换相,则电机就反转。3控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。523步进电机的选择电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。根据设计要求需要步进电机的步距角为09度所以选择四相步进电机。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图522A、B、C所示A单四拍B双四拍C八拍图523步进电机工作时序波形图524应用中的注意点1步进电机应用于低速场合每分钟转速不超过1000转,(09度时6666PPS,最好在10003000PPS09度)间使用,此时电机工作效率高,噪音低。2步进电机最好不使用整步状态,整步状态时振动大。3由于历史原因,只有标称为12V电压的电机使用12V外,其他电机的电压值不是驱动电压伏值,可根据驱动器选择驱动电压(建议57BYG采用直流24V36V,86BYG采用直流50V,110BYG采用高于直流80V),当然12伏的电压除12V恒压驱动外也可以采用其他驱动电源,不过要考虑温升。4转动惯量大的负载应选择大机座号电机。5电机在较高速或大惯量负载时,一般不在工作速度起动,而采用逐渐升频提速,一电机不失步,二可以减少噪音同时可以提高停止的定位精度。6高精度时,应通过机械减速、提高电机速度,或采用高细分数的驱动器来解决,也可以采用5相电机,不过其整个系统的价格较贵,生产厂家少,其被淘汰的说法是外行话。7电机不应在振动区内工作,如若必须可通过改变电压、电流或加一些阻尼的解决。8电机在600PPS(09度)以下工作,应采用小电流、大电感、低电压来驱动。9应遵循先选电机后选驱动的原则。53时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到内部振荡和外部振荡。MCS51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALL和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图53所示在其外接晶体振荡器简称晶振或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图33中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选12MHZ图53时钟电路原理图54电源部分因为电路中的AT89S52单片机的工作电压是5V,而步进电机的工作电压是12V,根据稳压电源的设计要求及其技术指标,结合本系统的功率要求及安装方便实用,本实验用电容整流滤波再经集成稳压管7805/7812后得到直流5V和12V电压。提供给AT89S52芯片、步进电机及其他外围电路。其硬件电路如下示图541输出5V电压图542输出12V电压55复位电路为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,要保证单片机可靠地复位,接个电容就是为了这个时间,即可引起系统复位。但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出1/0端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动开关复位。本系统采用上电复位方式。图55复位电路原理图56步进电机驱动电路驱动电路集成化成为一种趋势。目前,已有多种步进电机驱动集成电路芯片,它们大多集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,广泛用于小型仪表、计算机外设等领域,使用起来非常方便。本设计采用L298N芯片。L298N芯片适用于四相步进电机的驱动。它最大能输出2A电流、46V电压。内部集成有驱动电路,上电自行复位,可以控制转向和输出使能。图561驱动电路原理图本设计在单片机与步进电动机驱动器的连接电路间利用三个8引脚光电耦合器件TLP5212组成如图562所示的隔离电路。其作用是切断了单片机与步进电动机驱动回路之间电的直接联系,实现了单片机与驱动回路系统地线的分别联接防止处于大电流感性负载下工作的驱动电路产生的干扰信号以及电网负载突变产生的干扰信号通过线路串入单片机,影响单片机的正常工作图562隔离电路图57LED显示电路由于系统显示的内容比较简单,显示量不多,所以显示选用数码管既方便又经济。LED有共阴极和共阳极两种。如图571所示。符号和引脚共阴极共阳极图571LED数码管结构原理图共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极COM的数码管。共阳数码管在应用时应将公共极COM接到5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极COM的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。静态显示是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。动态显示是将所有数码管的8个显示笔划“A,B,C,D,E,F,G,DP“的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,在轮流显示过程中,每位数码管的点亮时间为12MS,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。为节省端口及降低功耗,本系统采用动态扫描显示方式。本电路的“段控”和“位控”分别由P1口和P0口控制,P0选中哪个数码管,哪个数码管就亮,P1口控制显示数字。572数码管连接图58下载线介绍单片机ISP下载线51AVRISP3AVR和ATMEL的AT89S系列单片机可以使用ISP下载线在线编程擦写,即不必将IC芯片拆下,直接在电路板上进行程序修改、下载等操作。这样对程序的调试和升级都很方便。目前支持芯片有AT89S51,AT89S52,AT89S53,下载线引脚定义图581ISP原理图图582下载线实物图6电子电路的调试与运行61WAVE系列仿真软件及其软件调试本次设计的程序是用C语言编写的,原本想用汇编语言编写,但汇编语句太多太长,看起来很麻烦没有C语言简洁,比如一些循环语句比汇编写出来简单很多,短很第1脚MOSI第2脚VCC第3脚NC第4脚GND第5脚RESET第6脚GND第7脚SCK第8脚GND第9脚MISO第10脚GND多。程序用仿真软件进行仿真,我用的是WAVE仿真软件,它是集编辑、编译/连接、加载、调试等为一体的集成开发环境(IDE)。用户可以在同一界面环境中完成所有任务。它是利用宿主机上丰富的资源及良好的开发环境开发和仿真调试目标机上的软件。然后通过串行口将编译生成的目标代码传输下载到目标板上,并用调试器在调试软件支持下进行实时分析和在线仿真调试。最后,目标板在特定环境下编程脱机运行。我们用仿真器主要是检查程序是否有错,并且在没烧入单片机前可以对其进行仿真对程序是否实现所要求的性能进行检测。在程序输入后对其进行编译,由于我的程序有些是从网上下载的,编译没出现多少错误,主要是变量总是漏了忘记定义,我把在程序中没定义的除了是局部变量的,我会在该程序前对它进行定义,其他我都是在最前面进行全局变量定义。我把程序分为几部分,每部分都实现的功能不同,把所要用的全局变量在其中一部分进行统一定义,如BITON_OFF/运行与停止标志,BITDIR/方向标志,UNSIGNEDCHARMOTOR_MODE/运行模式选择等。还有FOR循环和WHILE循环的跳出调入我经常弄不懂,我就用WAVE仿真器的单步跟踪看它的跳转。最让人郁闷的是明明觉得程序没错,可编译显示有错。有时看半天就是找不出来,后来跟同学讨论,很多是没有正确调用语句,想调用别的语句没有加以说明。其实在程序方面由于部分是从网上下的,错误并不是很多。可通过WAVE仿真器对程序进行仿真时就出了很多问题。在进行仿真时首先出现的是程序和我设计的按键连接管脚不符,我的按键接法是K1接P13;K2接P17;K3接P15;K2接P14,它们和程序的按键接口不符,我就在全局定义中把按键定义成全局变量如下SBITKEY1P13/K1;SBITKEY2P17/K2;SBITKEY3P15/K3;SBITKEY4P14/K4这样在下面的程序中就直接引用KEY变量就可以了。还有就是显示部分我按照自己的设计用RUN1、RUN来显示工作的两种功能,我对显示程序的寄存器地址进行了修改,还有我把4个数码管的个、十、百、千位用自己的算法进行了修改。要注意的是显示中断和步进中断要处理好它们的协调,开始我设计它们的中断是同一个,但经过仿真发现问题就对他们使用了不同的中断,而且输入的频率不能太高,步进电机的每拍的间隔时间不能太短,否则电机来不及响应。这程序最主要的部分是主程序,我设计的步进电机加电后只要有脉冲就可以运行,但要对它进行控制就要在主程序中对它进行编程,其中主要的是对它的按键情况判断来实现相应的功能。按键程序的主要功能是通过不同的按键控制步进电机的运行状态。本设计有3个功能模块模块1实现步进电机转数的控制如加速或减速。按K1数码管显示RUN1,进入模式1。按K3每按一次速度加1,K4每按一次速度减1。长按K3每次速度加10,长按K4每次速度减10。长按K2推出功能2实现步进电机转数的正反转控制。按K1数码管显示RUN1,进入模式2再按K1正转再按K1反转长按K2推出模块3实现步进电机的点动。按K1看到数码管显示RUN2,再长按K1显示RUN就进去模块3,进行点动。62硬件调试我的电路板分为两部分控制部分和驱动部分,中间用光电耦合器进行隔离,用AT89S52单片机输出脉冲并通过驱动器控制步进电机的转动。我这次的毕设第一次尝试用贴片电阻和双面板。由于设计时电阻太多如果用普通插件电阻的话,我要打很多孔而且在布线上增加了一定难度,电路板的面积也一定不小。因此我用贴片电阻可以不用打孔,板子做出后看起来器件较少比较整洁,所占面积也不大。但问题也出来了,在印刷PCB时底面和顶面容易对不齐,那打孔时造成底面和顶面不能互连。我采取的方法是在双面敷铜板擦洗干净,先用针将打印在敷腊纸上的顶层镜像铜膜走线图的四角的定位过孔中心钻个小孔,再将顶层镜像铜膜走线图复盖在敷铜板上,四周用小片透明胶纸暂固定,用台钻将四个定位小孔钻透。再将打印在敷腊纸上的底层铜膜走线图小心地复盖到另一面敷铜板上,注意对准定位过孔位置,四周仍用小片透明胶纸暂固定,最后再用电熨斗进行两面轮流热压,冷却后敷腊纸掀起,底层铜膜走线图和顶层镜像铜膜走线图就准确地转印到双面敷铜板上了。这样就解决了双面板布线的问题。总的来说布线还挺成功,就是在布局方面要加强下。焊好后看PCB图仔细对照板子看是否有漏焊的地方,我还在阳光下对太阳看了下是否有虚焊,总体来说板子没出现什么问题。有几个过孔我用铁丝插入过孔焊死整个孔。在我的调试过程中,我想调试电源部分,我用7805和7812来提供电源,但刚工作没多久就发现7812出现发热并可以闻到烧焦的闻到,当时还以为7812烧掉了,理论我是用7805输入75V输出5V,7812输入15V输出12,但由于步进电机没买到合适的就在二手市场买了个二手步进电机,上面没有表明参数,它的输入电压我就不能按设计加入。经过实际调试,我发现7812输人电压的电压要在712V范围内,输入输出电压差控制在3V以内,要不然7812会很快发烫,并给7812加了块散热片。在检测我设计的上电复位时,我发现虽然没什么问题,但可以在设计好点。在实际工作中我给电路板通电后显示的是我设置的初始状态。本来我可以使用按键复位这样可以手动控制复位方式,这样运行中复位可以不断开电源,由于设计时没想到那么多,这是我设计的一个不足。我检测AT89S51的20和40引脚之间的电压为5V,单片机可以正常工作。其他器件连接没错能正常工作,而L298N没有控制功能所以我检测它的引脚焊接。在都没问题后,给电路板接电后通过控制4个键让步进电机按程序设计的状态运行。经过测量在电压不变的情况下,当步进电机转速为2时电流为07A,当转速为50时电流为04A,转速越快电流越小,因为当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,供电电源电流一般根据驱动器的输出相电流来确定,当转速大于50后步进电机的运动基本看不出来,尽量把转速设置在2到50范围内。63程序部分程序分成以下几部分(1)判断键号部分判断是否有键按下。(2)显示部分使用动态扫描方式,显示工作模式和转速。(3)通电方向部分控制步进电机的正、反转的判断。(4)步进电机控制部分及主程序控制步进电机的各项工作模式。按键程序流程图(按键键号说明K1、K2、K3、K4长按时键号为K5、K6、K7、K8)延时10MS判断建号为长按按键键号加4按键扫描延时20MSNYYNYN按下超过200MS有键按下有键按下/按键扫描程序CHARKEYVOIDUNSIGNEDCHARKEY_CODE,KKIF0XFF0X47|P1/按键是否按下DELAY10MS/延时去抖IF0XFF0X47|P1/按键是否按下SWITCH0X47|P1/有键按下CASE0XF7KEY_CODE1BREAK/K1按下CASE0X7FKEY_CODE2BREAK/K2按下CASE0XDFKEY_CODE3BREAK/K3按下CASE0XEFKEY_CODE4BREAK/K4按下DEFAULTKEY_CODE0BREAKFORKK00XFF0X47|P1KK/等待按键释放DELAY10MSIFKK20/按键按下超过200MS为长按KK20KEY_CODEKEY_CODE4/长按时键号加4RETURNKEY_CODEIFKK20/长短键识别KEY_CODEKEY_CODE4ELSEKEY_CODE0ELSEKEY_CODE0RETURNKEY_CODE64扩展部分除了完成毕设的要求,在原来的基础上扩展了点动的功能。由于单片机是通过程序产生的脉冲来控制步进电机。所以在原有的程序上加上了点动程序,它实现步进电机一步一步的转动,进入点动功能后除用K2退出键就只能用K3、K4键控制电机运动,如果按键K3控制电机正向点动,那么K4控制反向的点动,长按K2键退出。实现点动功能程序如下CASE1DISP_BIT0LED_DISP00X18LED_DISP10X1DLED_DISP20X14LED_DISP30X02/显示RUN2IFKEY_CODE5/长按K1/模式1点动DISP_BIT0LED_DISP00X18LED_DISP10X1DLED_DISP20X14LED_DISP30X1C/显示RUN进入点动模式TR11WHILEKEY_CODE5IFKEY30/如果按K3为正转MOTOR_MODE1/模式1每次按下转速加1ON_OFF1DIR0/正转/REV5ELSEIFKEY40/如果按K4为反转MOTOR_MODE1ON_OFF1DIR1/反转/REV5ELSEIFKEY20/如果K2按下KEY_CODE6/长按K2退出ON_OFF0/停止ELSEON_OFF0BREAK主程序框图主程序长按K1进入模式0显示RUNNNNNYY显示RUN1显示RUN2长按K1长按K2退出按下K1转速每次减1Y进入点动正转按K3按K4反转不断按K3转速加1不断按K4NY正转反转NNYYYNNYN扩展点动功能框图按要求所需功能框图按K4不断按K4转速每次减10返回长按K4长按K3转速每次加10Y返回长按K2退出YYNNN7结论本次毕业设计是在大学4年最后一次实践,第一次从头到尾的自己做一遍。开始的时候对设计一点头绪都没有,看了大量的网站很书籍有了点自己的想法。我把所需要的芯片都找出来并在网上找到它们的外围电路,像AT89S52的复位电路、晶振电路、按键电路,显示电路有很多种接法如静态和动态,我通过确定驱动电路后觉得用动态扫描方式节省I/O口,而像L298N驱动芯片的外围电路在网上可以找到正确的接法。电源部分我看了些别人的介绍选用7085输入5V、7812输入12V的电压给AT89S52、L298N和步进电机供电,完成芯片外围电路的连接后就剩下把个个芯片连接在一起组成所需的电路,这样一步一步过来慢慢的就把硬件部分设计完成。在软件设计方面,一部分参考文献的已成程序进行修改编写,一部分则是平时的经验积累,扩展部分是我在网上找到别人的经过修改来的。本次毕业设计使我受益匪浅,主要是了解了AT89S52单片机及其相关芯片的系统结构、工作原理,且学到一个新的芯片L298N的使用,还有就是有了独立思考问题的经历。应该说这次毕业设计基本达到了设计的要求,并在原有要求上有了扩展设计。但是系统还有许多不完善之处。比如用双面板使印刷、焊接、调试增加的一点难度,步进电机没按设计所需的去买这样在电压方面不能准确施加电压。也有比以前进步的地方,这次应用了贴片电阻使得电路板器件看起来少了很多在布局上我下了一定功夫,把板子分成两部分一面控制一面驱动,让我在调试时可以分块检测、修改。个人还有不少想法没有应用到系统设计中去。例如给步进电机设置一定的步数让它按设定值转动,语音报出转动的步数及速度,液晶显示功能等这些设计会让系统的实用型大大提高。谢辞在本次毕业设计的制作调试过程中,得到了老师和同学的极大的支持和帮助。首先,要特别感谢我的导师赵志鹏老师,本次毕设是在赵老师悉心指导和鼓励下完成的。赵老师在百忙之中常抽出宝贵的时间和我研究、讨论课题中所遇到的困难,指导我寻求解决问题的途径。赵老师以严谨的治学态度和一丝不苟的工作精神为我树立了良好的榜样,以言传身教培养了我开展科学研究的独立工作能力。在此谨向赵老师表示衷心的感谢崇高的敬礼。同时,我也要感谢在这次设计过程中给予过我很大帮助的老师和同学,另外我也要感谢学校图书馆,它种类繁多的图书,让我方便地找到了许多有用的资料,正是有了这么多的关心和支持,我的毕业设计才能如此顺利进行参考文献1吴金戌,沈庆阳,郭廷吉8051单片机实践与应M清华大学出版社200432詹跃东,电机及拖动基础M重庆重庆大学出版社,2002,123谭建成机控制专用集成电路M北京机械工业出版社,19974王晓明,电动机的单片机控制M北京北京航空航天大学出版社,5丁炜,魏孔平可编程控制器在工业控制中的应用M北京化学工业出版社,20046胡汉才单片机原理及其接口技术M北京清华大学出版社,19967黄涛,李晶,李志刚电动车直流无刷电动机的调速控制J微计算机信息,2006,48铁才,电机控制技术M哈尔滨哈尔滨工业大学出版9杨莉,魏萍基于单片机控制的步进电机转速控制系统J南昌工程学院学报20056附录1附录2附录3程序步进电机控制系统INCLUDEINCLUDESBITIN1P30/A相SBITIN2P31/B相SBITIN3P32/C相SBITIN4P33/D相SBITENAP10/AB相SBITENBP11/CD相SBITKEY1P13/K1SBITKEY2P17/K2SBITKEY3P15/K3SBITKEY4P14/K4DEFINEDISP_DATAP2/LEDDB0DB7SBITLED1P00/LED0SBITLED2P01/LED10SBITLED3P02/LED100SBITLED4P03/LED1000BITDISP_BIT0/显示的标志位BITON_OFF/运行与停止标志BITDIR/方向标志UNSIGNEDCHARMOTOR_MODE/运行模式选择UNSIGNEDLONGINTREV100/转速UNSIGNEDINTREV_SETUP100/转速设置UNSIGNEDLONGINTSTEP_NUM/步数UNSIGNEDCHARCODECWW80XFE,0XFC,0XFD,0XF9,0XFB,0XF3,0XF7,0XF6/四相双八拍正转UNSIGNEDCHARCODECW80XF6,0XF7,0XF3,0XFB,0XF9,0XFD,0XFC,0XFE/反转UNSIGNEDCHARCODEDISP_DB0X0A,0XFA,0X4C,0X68,0XB8,0X29,0X09,0X7A,0X08,0X28,0X18,0X89,0X0F,0XCD,0XC8,0X0D,0X1D,0X98,0X99,0X8F,0XD9,0X1A,0XC9,0X1C,0XDD,0X8D,0X8A,0XFD,0XFF,0XCB/0,1,2,3,4,5,6,7,8,9,A,B,C,C,D,E,F,H,H,L,N,N,O,P,R,T,U,/UNSIGNEDCHARCODELED_BIT0XFE,0XFD,0XFB,0XF7,0X00/LED显示位选UNSIGNEDCHARLED_DISP0X00,0X01,0X02,0X03,0X00/显示寄存器UNSIGNEDCHARI/显示位选UNSIGNEDINTJ/步进电机拍UNSIGNEDCHARA,BUNSIGNEDCHARTEMPINTP/延时001秒子程序VOIDDELAY10MSVOIDUNSIGNEDCHARJ,K/FORI20I0IFORJ20J0JFORK248K0K/按键扫描CHARKEYVOIDUNSIGNEDCHARKEY_CODE,KKIF0XFF0X47|P1/按键是否按下DELAY10MS/去抖IF0XFF0X47|P1/按键是否按下SWITCH0X47|P1CASE0XF7KEY_CODE1BREAKCASE0X7FKEY_CODE2BREAKCASE0XDFKEY_CODE3BREAKCASE0XEFKEY_CODE4BREAKDEFAULTKEY_CODE0BREAKFORKK00XFF0X47|P1KK/等待按键释放DELAY10MSIFKK20KK20KEY_CODEKEY_CODE4RETURNKEY_CODEIFKK20/长短键识别KEY_CODEKEY_CODE4ELSEKEY_CODE0ELSEKEY_CODE0RETURNKEY_CODEVOIDSTEP_DIRVOIDIFJ0STEP_DIRSTEP_NUMELSESTEP_NUM0ON_OFF0CASE1STEP_DIRREV_SETUPREVREV_SETUP/用于LED显示显存在LED_DISPVOIDT0VOIDINTERRUPT1USING1TH0655364700/256TL0655364700256IFDISP_BITLED_DISP0REV/1000LED_DISP1REVLED_DISP01000/100LED_DISP2REVLED_DISP01000LED_DISP1100/10LED_DISP3REV10IFI3MENU_MODE0SWITCHMENU_MODECASE0DISP_BIT0LED_DISP00X18LED_DISP10X1D/0X1ALED_DISP20X14LED_DISP30X01/0X1CIFKEY_CODE5/模式0MOTOR_MODE1/电机模式1WHILEKEY_CODE6DISP_BIT1KEY_CODEKEYSWITCHKEY_CODECASE1DIRDIRBREAKCASE2ON_OFFON_OFFTR1ON_OFFBREAKCASE3REVREV1IFREV9990REV9995BREAKCASE4REVREV1IFREV9995REV2BREAKCASE7REVREV10IFREV9990REV9995BREAKCASE8REVREV10IFREV9995REV2BREAKDEFAULTBREAKBREAKCASE1DISP_BIT0LED_DISP00X18LED_DISP10X1DLED_DISP20X14LED_DISP30X02IFKEY_CODE5/模式1如运转DISP_BIT0LED_DISP00X18LED_DISP10X1DLED_DISP20X14LED_DISP30X1CTR11WHILEKEY_CODE5IFKEY30/正转MOTOR_MODE1/电机模式0注不计步ON_OFF1DIR0/REV5ELSEIFKEY40MOTOR_MODE1ON_OFF1DIR1/REV5ELSEIFKEY20KEY_CODE6/退出ON_OFF0ELSEON_OFF0BREAKCASE2DISP_BIT0LED_DISP00X05LED_DISP10X16LED_DISP20X17LED_DISP30X19IFKEY_CODE5BREAKDEFAULTBREAK9JWKFFWVGTYMJG6ACZ7HDQ8KQQFHVZFEDSWSYXTYQA9WKXFYEQDJSXUYUP2KNXPRWXMAUE9AQGN8XPR849GXGJQVUE9WEWZQCUEQYPEH5PDX2ZVKUMGTXRM6X4NGPPVSTTKSV3TNGK8Z89AMYWPAZADNUKNMUWFA5UXY7JND6YWRRWWCVR9CPBKZNMZ849GXGJQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论