基于单片机的步进电机控制系统 毕业设计论文.doc

上传人:哈尼dd 文档编号:3924005 上传时间:2019-10-10 格式:DOC 页数:38 大小:310.02KB
返回 下载 相关 举报
基于单片机的步进电机控制系统 毕业设计论文.doc_第1页
第1页 / 共38页
基于单片机的步进电机控制系统 毕业设计论文.doc_第2页
第2页 / 共38页
基于单片机的步进电机控制系统 毕业设计论文.doc_第3页
第3页 / 共38页
基于单片机的步进电机控制系统 毕业设计论文.doc_第4页
第4页 / 共38页
基于单片机的步进电机控制系统 毕业设计论文.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《基于单片机的步进电机控制系统 毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制系统 毕业设计论文.doc(38页珍藏版)》请在三一文库上搜索。

1、 引言步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的迅速发展和微型计算机的普及与应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本又提高了控制的灵活性,可靠性及多功能性。在当今社会的各个领域步进电机无处不在,应用领域涉及机器人、工业电子自动化设备、医疗器件、广告器材、舞台灯光设备、印刷设备、计算机外部应用设备等等。因此,设计出高精确度、实时监控、语音提示的步进电机具有重要的现实意义和实用价

2、值。基于单片机的步进电机控制系统,能够有效地对步进电机转速、方向等进行控制。本设计采用16位单片机AT89S52对步进电机进行控制,通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过驱动芯片驱动步进电机;同时,用按键来对电机的状态进行控制,并用数码管显示电机的转速,1 课题背景步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字执行元件,随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中的普及与深入,步进电机的需求量越练越大。随着工业技术的不断发展,以及同类产品的不断出现,步进电机面临着前所未有的挑战。但近30年来,数字技术、计算机技术和永磁材料的迅速发展,

3、推动步进电机的发展,为步进电机的应用开辟了广阔的前景,近几年来,步进电机 需求量一直呈现出较快的增长速度,其中扫描仪、打印机、传真、DVD-ROM/CD-ROM驱动器、空调及多功能自动化办公设备等应用对步进电机的需求增长最强。此外由于USB2.0的日益流行促进了高分辨率扫描仪的销售,步进电机向着小型、薄型和更小的步进角度发展。步进电机有着方方面面重要应用,如何对其进行有效控制,使其能够发挥最大的优势是各个行业技术开发人员所共同关注的,本次设计了一套简单的通用控制系统,对步进电机的转速、方向实行手动控制,并能通过数码管显示其转速。2 设计要求本设计主要研究单片机控制步进电机,对步进电机的转速、方

4、向进行控制和显示。该系统的主要技术参数(1)系统供电电源:电压:12V、5V;额定电流:0.5A。(2)驱动电源输出:四相八拍方式。(3)步踞角:0.9。该系统要实现的主要功能:(1)能实现步进电机的正转、反转控制。(2)能实现步进电机的转速控制。(3)扩展功能:实现步进电机点动的转动控制及正反转控制。3 方案论证3.1 步进电机选择由于本系统是基于单片机的步进电机系统,实际上是设计步进电机的驱动电路,而设计步进电机的驱动电路有一个必须遵循的原则:先选择步进电机后进行驱动电路设计。所以在此先介绍步进电机的选择,而这个问题的又分为步进电机在理论上的选用以及理论联系实际对步进电机的选用。3.1.1

5、理论上对步进电机的选用步进电机作为本系统的主要组成部件,它的参数选取以及电机的性能指标直接影响到系统控制精度及运行可靠性。步进电机和一般直流电机不同,它的性能指标与驱动电源及测试条件关系很大。同样一个步进电机,当驱动电源或测试方法改变了,其性能会千差万别。不同厂家制造的步进电机,只有在相同的控制电源以及测试条件下进行比较才有意义。因此只有对步进电机的参数和特性有比较深刻的了解,才会更好地选用和使用步进电机。(1)步进电机的主要参数 步距角在电机内不带任何减速装置的情况下,输入一个脉冲信号,步进电机所转过的机械位移即为步距角。电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机

6、轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。目前市场上步进电机的步距角一般有0.36/0.72(五相电机)、0.9/1.8(二相、四相电机)、1.5/3(三相电机)等。鉴于在本市购买步进电机的困难以及目前市场上广泛应用的是二相、四相混合式电机,所以本系统采用的是步距角0.9四相混合式步进电机。步距角为0.9度,通过计算:360/0.9=400,则步进电机转一圈需要400步。 步进电机的相数步进电机的相数是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。每相都包括电机绕组以及和绕组串联成一个支路的其他元件。在没有细分驱动器时,主要靠选择不同相数的

7、步进电机来满足自己步距角的要求。 额定电压指步进电机各相绕组主回路上的直流电压。电压波纹系数不宜过大,一般情况下应小于5%。为了步进电机及其配套电源的标准化,国家标准GBn113-81规定步进电机的额定电压为:单电压驱动:6,12,27,48,60,80(V);双电压驱动:6/12,80/12(V)。 功率步进电机典型功率范围从几百微瓦(用于较小电机)直到几瓦(用于大型电机)。步进电机的最大功耗受绕组中温度限制。出于本系统设计的考虑只须选择功率范围在十瓦以内的小功率电机即可。 最高运行转速确定步进电机的最高运行转速。转速指标在步进电机的选取时至关重要,步进电机的特性是随着电机转速的升高,扭矩下

8、降,其下降的快慢和很多参数有关,如:驱动器的驱动电压、电机的相电流、电机的相电感、电机大小等等,一般的规律是:驱动电压越高,力矩下降越慢;电机的相电流越大,力矩下降越慢。在设计方案时,电机的转速控制可以参考厂家提供的矩频特性图。(2)步进电机动态指标: 步距角精度即为步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。 失步电机运转时运转的步数,不等于理论上的步数,称之为失步。 失调角转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。 最大

9、空载起动频率 电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。 最大空载运行频率电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。3.1.2实际对步进电机的选用以上是出于理论上对步进电机的选用,实际上由于本系统只须简单地控制步进电机正反转、点动正反转,而没有涉及到使用步进电机拖动负载,因此诸如静力矩和动力矩、转子的转动惯量、失调角、力矩负载、惯性负载这些因素就不需要考虑了;其次由于本设计采用的是小功率的步进电机,因此也不需要过分考虑步距角精度这个因素;再则在本市购买步进电机存在着少选择且价格昂贵的客观因素,所以最终只购买到如下图所示这款价格低廉

10、,型号老旧的二手步进电机,该电机型号太古老且没有说明书,因此现有的参数如下:该电机为二相四相混合式步进电机,步距角为0.9,相数m为4,额定电压Ue值为12V,相电阻值为34,电机引出线数目为6,分别为红、红、黄、橙、灰、黑六色。图3-1-3 步进电机实体图3.2 步进电机驱动的几种方案论证与比较本设计的重点在于对步进电机的控制和驱动,设计中受控电机为四相八拍制的步进电机。 3.2.1使用分立元件驱动步进电机以往步进电机控制系统采用分立元件或者集成电路组成的控制回路,不仅调试安装复杂,要消耗大量元器件,而且一旦定型之后,要改变控制方案就得重新设计电路。随着微电子和计算机技术的发展,对步进电机的

11、控制变得非常灵活方便,可以通过软件来控制步进电机。因此,用微电脑控制步进电机已经成为了一种必然的趋势,也符合数字化的时代趋势。3.2.2 使用多个功率放大器件驱动电机通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。 3.2.3使用CH250芯片驱动电机在这种形式里,脉冲分配器(CH250)、驱动电路由硬件完成。单片机只提供步进脉冲和正、反转控制信号,步进脉冲的产生与停止、步进脉冲的频率和个数都可用软

12、件控制。 但相比于用软件代替脉冲分配器的方式来说,硬件一旦确定下来,不易更改,更主要的是此种芯片已经在世面上买不到了,所以不采取该方案。3.2.4使用L298N芯片驱动电机L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,每相电流达2 A。可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;电路简单,使用方便。3.2.5使用ULN2003高压大电流达林顿晶体管阵列驱动电机ULN2003承受高达50V工作电压和0.5A工作电流,而本设计电机也仅需要0.35A相电流驱动即可。由此芯片构成的驱动电路简单,驱动功率大且成本低,且由软件完成脉冲分配工作,不

13、仅使线路简化,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。3.3 驱动芯片的选择本系统是用单片机来实现的,单片机种类繁多,不过又以MCS51/52系列的单片机使用最广泛,而且本系统的主要功能和51/52系列的单片机用途很合适,所以选用了ATMEL公司的51/52系列芯片。AT89S52是A典型代表,使用相当的多,应用资料很多,价格便宜,是初学51/52的首选芯片,该单片机还有一个优点就是在板子上加上下载电路就可以在线下载了,使用调试起来很是方便。所以本系统的单片机采用AT89S52。由于设计要求用L298N驱动芯片,所以本次设计使用L298N芯片驱动电机。3.4步进电机与单片机的连

14、接形式: 3.4.1 由硬件完成脉冲分配的功能在这种形式里,脉冲分配器、驱动电路由硬件完成。单片机只提供步进脉冲和正、反转控制信号,步进脉冲的产生与停止、步进脉冲的频率和个数都可用软件控制。单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的通断。一般来说,硬件一旦确定下来,不易更改,这种方案,硬设备成本高,它的应用受到了限制。硬件环形分配器由门电路和双稳态触发器组成的逻辑电路构成。3.4.2 由软件完成脉冲分配工作所谓软件完成脉冲分配就是用软件改变单片机与步进电机接口输出值,进而达到控制步进电机绕组的通电顺序和通电方式之目的。由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且

15、可根据应用系统的需要,灵活地改变步进电机的控制方案。硬件的主要任务是完成驱动功能。一般微机系统需要进行如下设置:设置输出接口;设计环形分配子程序,在存储器中建立环形分配表;设计延时子程序,设计延时子程序来控制步进频率。本电路是以单片机为基础,主要通过软件实现脉冲发生器功能,因此外围电路的设计得到了简化。电路工作过程: 接电源5V和12V, 从正反转及点动控制模块里选择电机工作方式按钮,比如选择正转控制按钮, 单片机AT89S52接收到响应信号后产生脉冲信号,经过接口的上拉电阻后稍微加大输出引脚的驱动能力、提高输出电平,使输出电流变大。接着就是通过L298N芯片驱动电机来给予电机启动电流。步进电

16、机四个相分别为A、B、C、D,本系统步进电机工作于四相八拍的工作方式。通电绕组顺序: A-AB-B-BC-C-CD-D-DA-A这样电机转子便顺时针方向一步一步地转动;相反要使电机自动反转则各相绕组的通电绕组顺序为:通电绕组顺序: A-AD-D-DC-C-CB-B-BA-A 注意这里的正反转和点动控制的通电绕组顺序的输出状态是一致的。4 系统主要芯片介绍4.1 AT89S52AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程

17、,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图

18、4-1 AT89S52芯片图4.2 L298NL298N采用由达林顿管组成的H型PWM电路。PWM电路由四个大功率晶体管组成H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控脉冲的占空比,精确调整电动机转速。这种电路由于管子工作只在饱合和截止状态下,效率非常高。H型电路使实现转速和方向的控制的简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的PWN调整技术。L298N是SGS公司的产品,常见的是15脚Multiwatt封装,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含双H桥高电压大电流集成电路。由图4-2可

19、见L298N的内部结构,每个H桥的下侧桥臂晶体管发射极连在一起,其输出脚(SENSEA和SENSEB)用来连接电流检测电阻。Vss接逻辑控制的电源。Vs为电机驱动电源。IN1-IN4输入引脚为标准TTL 逻辑电平信号,用来控制H桥的开与关即实现电机的正反转,ENA、ENB引脚则为使能控制端,用来输入PWM信号实现电机调速。图4-2 L298N芯片图4.3 7805集成稳压器是指将不稳定的直流电压变为稳定的直流电压的集成电路。在电子制用中应用较多的是三端固定输出稳压器。图4-3-1所示为应用最广泛的串联式集成稳压器内部电路方框图,其工作原理是:取样电路将输出电压Uo按比例取出,送入比较放大器与基

20、准电压进行比较,差值被放大后去控制调整管,以使输出电压Uo保持稳定。H7805系列为3端正稳电压电路,TO-220封装,能提供多种固定的输出电压,应用范围广。内含过流,过热和过载保护电路。带散热时,输出电流可达1A。虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。主要特点输出电流可达1A输出电压有5V过热保护短路保护输出晶体管SOA保护极限值(Ta=25)V1输入电压(Vo518V)35VRojc热阻(结到壳)5/WRojA热阻(结到空气) 65/WTopR工作结温范围0125TstG贮存温度范围-65150 功能框图:图4-3-1 7805的功能图 图4-3-2 7805实物图4

21、.4 光电耦合器基本的光电耦合器包括发光二极管(LED)、光检测器和光学透明、电气绝缘电介质。电流启动LED后,该二极管发光,并通过电介质与光电探测器耦合。光检测器产生的电流与耦合光成正比。该电流可以通过不同的电路来操纵,以进行不同的功能。光电耦合器的主要功能是防止电路一侧出现过高的电压,或快速变化的电压损坏元器件或扭曲另一侧的传输。具体方法是使需要的信号以光学的形式通过,同时在两个系统之间保持电性隔离。本设计选用TLP521-2型光电耦合器,如图4-4所示TLP521-2中由两个隔离通道TLP521-4组成的DIP包装。图4-4 TLP521-2芯片图5 系统主要硬件电路设计5.1 单片机控

22、制系统框图按键选择AT89S52单片机LED数码显示步进电机驱动驱动步进电机 图5-1 单片机控制系统原理框图5.2 步进电机基本原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。5.2.1步进电机的特点(1) 输出转角大小与输入脉冲数严格成比例,即来一个脉冲,转一个步距角,且在时间上与输入脉冲同步。(2) 电机转子转速

23、随输入信号的脉冲频率而变化。即控制脉冲频率,可控制电机转速。(3) 借助控制线路,易于获得正反转、间歇运动等特殊功能。即改变脉冲顺序,改变方向。(4) 转子的转动惯量小,启动、停止时间短。一般在信号输入几毫秒或几十毫秒后,即能使电机转动或达到同步转速。信号切断后,电机立即停止转动。(5) 输出转角精度高,无累积误差。(6) 步进电机的工作状态对各种干扰因素不敏感。(7) 控制特性好。(8) 步距值不受各种干扰因素的影响。(9) 总位移量取决于总的脉冲数5.2.2步进电机换相、转向及加/减速控制方案(1) 控制换相顺序 通电换相这一过程称为脉冲分配。四相步进电机的八拍工作方式,其各相通电顺序为

24、A-AB-B-BC-C-CD-D-DA-A. ,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。(2) 控制步进电机的转向 如果给定工作方式正序通电,步进电机正转,如果按反序通电换相,则电机就反转。 (3) 控制步进电机的速度 如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。 5.2.3步进电机的选择电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。根据设计要求需要步进电

25、机的步距角为0.9度所以选择四相步进电机。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图5-2-2.a、b、c所示:a. 单四拍b. 双四拍c 八拍图5-2-3 步进电机工作时序波形图5.2.4应用中的注意点:(1) 步进电机应用于低速场合-每分钟转速不超过1000转,(0.9度时6666PPS),最好在1000-3000PPS(0.9度)间使用,此时电机工作

26、效率高,噪音低。(2) 步进电机最好不使用整步状态,整步状态时振动大。(3) 由于历史原因,只有标称为12V电压的电机使用12V外,其他电机的电压值不是驱动电压伏值 ,可根据驱动器选择驱动电压(建议:57BYG采用直流24V-36V,86BYG采用直流50V,110BYG采用高于直流80V),当然12伏的电压除12V恒压驱动外也可以采用其他驱动电源, 不过要考虑温升。(4) 转动惯量大的负载应选择大机座号电机。(5) 电机在较高速或大惯量负载时,一般不在工作速度起动,而采用逐渐升频提速,一电机不失步,二可以减少噪音同时可以提高停止的定位精度。(6) 高精度时,应通过机械减速、提高电机速度,或采

27、用高细分数的驱动器来解决,也可以采用5相电机,不过其整个系统的价格较贵,生产厂家少,其被淘汰的说法是外行话。(7) 电机不应在振动区内工作,如若必须可通过改变电压、电流或加一些阻尼的解决。(8) 电机在600PPS(0.9度)以下工作,应采用小电流、大电感、低电压来驱动。(9) 应遵循先选电机后选驱动的原则。5.3 时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号

28、比较稳定,实际使用中常采用这种方式,如图5-3所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图3-3中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选12MHz 图5-3 时钟电路原理图5.4 电源部分: 因为电路中的AT89S52单片机的工作电压是+5V,而步进电机的工作电压是+12V ,根据稳压电源的设计要求及其技术指标,结合本系统的功率要求及安装方便实用,本实验用电容整流滤波再经集成稳压管7805/78

29、12后得到直流 +5V和+12V电压。提供给AT89S52芯片、步进电机及其他外围电路。其硬件电路如下示:图5-4-1 输出+5V电压图5-4-2 输出+12V电压5.5 复位电路为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,要保证单片机可靠地复位,接个电容就是为了这个时间,即可引起系统复位。但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈

30、指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图5-5 复位电路原理图5.6 步进电机驱动电路驱动电路集成化成为一种趋势。目前,已有多种步进电机驱动集成电路芯片,它们大多集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,广泛用于小型仪表、计算机外设等领域,使用起来非常方便。本设计采用L298N芯片。L298N芯片适用于四相步进电机的驱动。它最大能输出2A电流、46V电压。内部集成有驱动电路,上电自行复位,可以控制转向和输出使能。图5

31、-6-1 驱动电路原理图本设计在单片机与步进电动机驱动器的连接电路间利用三个8引脚光电耦合器件TLP521-2组成如图5-6-2所示的隔离电路。其作用是切断了单片机与步进电动机驱动回路之间电的直接联系,实现了单片机与驱动回路系统地线的分别联接.防止处于大电流感性负载下工作的驱动电路产生的干扰信号以及电网负载突变产生的干扰信号通过线路串入单片机,影响单片机的正常工作图5-6-2 隔离电路图5.7 LED显示电路由于系统显示的内容比较简单,显示量不多,所以显示选用数码管既方便又经济。LED有共阴极和共阳极两种。如图5-7-1所示。 符号和引脚 共阴极 共阳极图5-7-1 LED数码管结构原理图共阳

32、数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。静态显示是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进

33、制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。动态显示是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂

34、留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。为节省端口及降低功耗,本系统采用动态扫描显示方式。本电路的“段控”和“位控”分别由P1口和P0口控制,P0选中哪个数码管,哪个数码管就亮,P1口控制显示数字。5-7-2 数码管连接图5.8 下载线介绍:单片机ISP下载线 (51AVRISP) 3AVR和ATMEL的AT89S系列单片机可以使用ISP下载线在线编程擦写,即不必将IC芯片拆下,直接在电路板上进行程序修改、下载等操作。这样对程

35、序的调试和升级都很方便。目前支持芯片有AT89S51,AT89S52,AT89S53,第1脚:MOSI第2脚:VCC第3脚:NC第4脚:GND第5脚:RESET第6脚:GND第7脚:SCK第8脚:GND第9脚:MISO第10脚:GND下载线引脚定义: 图5-8-1 ISP原理图图5-8-2 下载线实物图6 电子电路的调试与运行6.1 WAVE系列仿真软件及其软件调试本次设计的程序是用C语言编写的,原本想用汇编语言编写,但汇编语句太多太长,看起来很麻烦没有C语言简洁,比如一些循环语句比汇编写出来简单很多,短很多。程序用仿真软件进行仿真,我用的是WAVE仿真软件,它是集编辑、编译/连接、加载、调试

36、等为一体的集成开发环境(IDE)。用户可以在同一界面环境中完成所有任务。它是利用宿主机上丰富的资源及良好的开发环境开发和仿真调试目标机上的软件。然后通过串行口将编译生成的目标代码传输下载到目标板上,并用调试器在调试软件支持下进行实时分析和在线仿真调试。最后,目标板在特定环境下编程脱机运行。我们用仿真器主要是检查程序是否有错,并且在没烧入单片机前可以对其进行仿真对程序是否实现所要求的性能进行检测。在程序输入后对其进行编译,由于我的程序有些是从网上下载的,编译没出现多少错误,主要是变量总是漏了忘记定义,我把在程序中没定义的除了是局部变量的,我会在该程序前对它进行定义,其他我都是在最前面进行全局变量

37、定义。我把程序分为几部分,每部分都实现的功能不同,把所要用的全局变量在其中一部分进行统一定义,如bit on_off;/运行与停止标志,bit dir;/方向标志,unsigned char motor_mode;/运行模式选择等。还有for循环和while循环的跳出调入我经常弄不懂,我就用WAVE仿真器的单步跟踪看它的跳转。最让人郁闷的是明明觉得程序没错,可编译显示有错。有时看半天就是找不出来,后来跟同学讨论,很多是没有正确调用语句,想调用别的语句没有加以说明。其实在程序方面由于部分是从网上下的,错误并不是很多。可通过WAVE仿真器对程序进行仿真时就出了很多问题。在进行仿真时首先出现的是程序

38、和我设计的按键连接管脚不符,我的按键接法是K1接P1.3;K2接P1.7;K3接P1.5;K2接P1.4,它们和程序的按键接口不符,我就在全局定义中把按键定义成全局变量如下sbit KEY1=P13;/- K1;sbit KEY2=P17;/- K2 ;sbit KEY3=P15;/- K3 ;sbit KEY4=P14;/- K4 这样在下面的程序中就直接引用KEY变量就可以了。还有就是显示部分我按照自己的设计用RUN1、RUN来显示工作的两种功能,我对显示程序的寄存器地址进行了修改,还有我把4个数码管的个、十、百、千位用自己的算法进行了修改。要注意的是显示中断和步进中断要处理好它们的协调,

39、开始我设计它们的中断是同一个,但经过仿真发现问题就对他们使用了不同的中断,而且输入的频率不能太高,步进电机的每拍的间隔时间不能太短,否则电机来不及响应。这程序最主要的部分是主程序,我设计的步进电机加电后只要有脉冲就可以运行,但要对它进行控制就要在主程序中对它进行编程,其中主要的是对它的按键情况判断来实现相应的功能。按键程序的主要功能是:通过不同的按键控制步进电机的运行状态。本设计有3个功能模块:模块1:实现步进电机转数的控制如加速或减速。按K1数码管显示RUN1,进入模式1。按K3 每按一次速度加1,K4 每按一次速度减1。长按K3 每次速度加10,长按K4每次速度减10。长按K2 推出功能2

40、:实现步进电机转数的正反转控制。按K1数码管显示RUN1,进入模式2.再按K1 正转再按K1反转长按K2 推出模块3:实现步进电机的点动。按K1 看到数码管显示RUN2,再长按K1显示RUN就进去模块3,进行点动。 6.2硬件调试:我的电路板分为两部分控制部分和驱动部分,中间用光电耦合器进行隔离,用AT89S52单片机输出脉冲并通过驱动器控制步进电机的转动。 我这次的毕设第一次尝试用贴片电阻和双面板。由于设计时电阻太多如果用普通插件电阻的话,我要打很多孔而且在布线上增加了一定难度,电路板的面积也一定不小。因此我用贴片电阻可以不用打孔,板子做出后看起来器件较少比较整洁,所占面积也不大。但问题也出

41、来了,在印刷PCB时底面和顶面容易对不齐,那打孔时造成底面和顶面不能互连。我采取的方法是在双面敷铜板擦洗干净,先用针将打印在敷腊纸上的顶层镜像铜膜走线图的四角的定位过孔中心钻个小孔,再将顶层镜像铜膜走线图复盖在敷铜板上,四周用小片透明胶纸暂固定,用台钻将四个定位小孔钻透。再将打印在敷腊纸上的底层铜膜走线图小心地复盖到另一面敷铜板上,注意对准定位过孔位置,四周仍用小片透明胶纸暂固定,最后再用电熨斗进行两面轮流热压,冷却后敷腊纸掀起,底层铜膜走线图和顶层镜像铜膜走线图就准确地转印到双面敷铜板上了。这样就解决了双面板布线的问题。总的来说布线还挺成功,就是在布局方面要加强下。焊好后看PCB图仔细对照板

42、子看是否有漏焊的地方,我还在阳光下对太阳看了下是否有虚焊,总体来说板子没出现什么问题。有几个过孔我用铁丝插入过孔焊死整个孔。在我的调试过程中,我想调试电源部分,我用7805和7812来提供电源,但刚工作没多久就发现7812出现发热并可以闻到烧焦的闻到,当时还以为7812烧掉了,理论我是用7805输入+7.5V输出+5V,7812输入+15V输出+12,但由于步进电机没买到合适的就在二手市场买了个二手步进电机,上面没有表明参数,它的输入电压我就不能按设计加入。经过实际调试,我发现7812输人电压的电压要在712V范围内,输入输出电压差控制在3V以内,要不然7812会很快发烫,并给7812加了块散

43、热片。在检测我设计的上电复位时,我发现虽然没什么问题,但可以在设计好点。在实际工作中我给电路板通电后显示的是我设置的初始状态。本来我可以使用按键复位这样可以手动控制复位方式,这样运行中复位可以不断开电源,由于设计时没想到那么多,这是我设计的一个不足。我检测AT89S51的20和40引脚之间的电压为+5V,单片机可以正常工作。其他器件连接没错能正常工作,而L298N没有控制功能所以我检测它的引脚焊接。在都没问题后,给电路板接电后通过控制4个键让步进电机按程序设计的状态运行。经过测量在电压不变的情况下,当步进电机转速为2时电流为0.7A,当转速为50时电流为0.4A,转速越快电流越小,因为当步进电

44、机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,供电电源电流一般根据驱动器的输出相电流来确定,当转速大于50后步进电机的运动基本看不出来,尽量把转速设置在2到50范围内。6.3程序部分程序分成以下几部分:(1)判断键号部分:判断是否有键按下。(2)显示部分:使用动态扫描方式,显示工作模式和转速。(3)通电方向部分:控制步进电机的正、反转的判断。(4)步进电机控制部分及主程序:控制步进电机的各项工作模式。按键程序流程图:(按键键号说明:K1、K2、K3、K4长按时键号为K5、K6、K7、K8) 延时10MS判断建号

45、为长按按键键号加4按键扫描延时20MSNYYNYN按下超过200ms有键按下有键按下/按键扫描程序 char key(void)unsigned char key_code,kk;if(0xff!=(0x47|P1)/按键是否按下delay10ms();/延时去抖if(0xff!=(0x47|P1)/按键是否按下switch(0x47|P1)/有键按下case 0xf7:key_code=1;break;/k1按下case 0x7f:key_code=2;break;/k2按下case 0xdf:key_code=3;break;/k3按下 case 0xef:key_code=4;break

46、;/k4按下default:key_code=0;break;for(kk=0;0xff!=(0x47|P1);kk+)/等待按键释放delay10ms();if(kk20) /按键按下超过200MS为长按 kk=20;key_code=key_code+4; /长按时键号加4return(key_code);if(kk=20)/长短键识别key_code=key_code+4;elsekey_code=0;elsekey_code=0;return(key_code); 6.4扩展部分除了完成毕设的要求,在原来的基础上扩展了点动的功能。由于单片机是通过程序产生的脉冲来控制步进电机。所以在原有的程序上加上了点动程序,它实现步进电机一步一步的转动,进入点动功能后除用K2退出键就只能用K3、K4键控制电机运动,如果按键K3控制电机正向点动,那么K

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1