步进电机控制系统设计方案.docx

上传人:b****6 文档编号:5152674 上传时间:2022-12-13 格式:DOCX 页数:20 大小:253.31KB
下载 相关 举报
步进电机控制系统设计方案.docx_第1页
第1页 / 共20页
步进电机控制系统设计方案.docx_第2页
第2页 / 共20页
步进电机控制系统设计方案.docx_第3页
第3页 / 共20页
步进电机控制系统设计方案.docx_第4页
第4页 / 共20页
步进电机控制系统设计方案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

步进电机控制系统设计方案.docx

《步进电机控制系统设计方案.docx》由会员分享,可在线阅读,更多相关《步进电机控制系统设计方案.docx(20页珍藏版)》请在冰豆网上搜索。

步进电机控制系统设计方案.docx

步进电机控制系统设计方案

5.系统仿真

5.1系统仿真

5.2系统仿真结果分析

第1章方案设计

1.1设计任务

1.1.1设计要求

(1)用带中断行列式键盘作为数据和暂停等功能的输入

(2)七段数码管显示当前步进电机的运行状态

(3)采用集成芯片作为步进电机的驱动电路

(4)使用PROTEUS软件对程序进行仿真和调试

1.1.2设计任务

(1)根据设计要求划分功能模块

(2)编程实现模块要求

(3)根据模块画出总电路图

(4)画出模块程序流程图

(5)编写整个源程序代码

(6)PROTEUS仿真与调试

1.2方案设计与论证

1.2.1总体方案论证与比较

方案一、采用AT89C51单片机作为整机的控制单元。

以AT89C51单片机为核心的控制电路,采用模块化的设计方案,使用行列式键盘作为数据的输入、数码管做数据的输出显示、以L298作为驱动控制步进电机,实现步进电机进行正转、反转、暂停、继续。

修改延时子程序可控制步进电机的转速。

在本系统中,行列式键盘起着人机交互的作用,是输入电路的主要组成部分,行列式键盘是通过反转法编程实现的,相对于行列的查询法,更加简单实用,容易理解。

在行列式键盘的程序设计中,利用了中断程序,更好的体现了控制的实时性,它既和硬件有关,又和软件有关,使得步进电机的控制更灵活,效率更高;利用四位一体的七段数码管显示输入的步数,并动态显示当前剩余步数;以L298数字芯片作为步进电机的驱动电路,解决单片机驱动能力不足的缺点。

此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,具有高度的智能化、人性化,一定程度体现了智能,能满足系统的要求。

此方案的基本原理如图1.1所示。

 

图1.1方案一原理框图

方案二、采用电机专用驱动数字芯片L297以及L298组合使用控制步进电机。

采用数字电路对单片机对步进电机控制的信号进行处理,由于L297以及L298的组合使用,能有效的减少单片机I/O口的使用,并大幅度的提高单片机的带负载能力。

但由于该课程设计可用的I/O口充足,如果过多的使用数字芯片,这样必然带来高成本、电路复杂等缺点。

因此,本方案灵活性不高,效率低,不利于步进电机的性能。

同时,对各路信号处理也比较困难。

比较以上两种方案的优缺点,方案一简洁、灵活、可扩展性好,能达到设计要求,因此本设计采用方案一来实现。

第2章电路设计

2.1系统电路原理

系统电路图如图2.1所示

图2.1系统电路图

2.2主要元器件选择

单片机具有运算能力强、功耗低、大寻址范围以及廉价等特点,基于单片机的上述优越性,所以首选单片作为整个电路设计的核心控制器件。

综合单片机存储器,驱动能力,抗干扰能力等各个方面的要求选择ATS89C51。

显示电路采用四位一体的七段数码管既能够满足显示的要求,同时相对于使用LCD作为电路显示单元来说,从显示效果上七段数码管显示具有字符大,亮度高等特点,从硬件电路上七段数码管驱动也同样简单,并且七段数码管的成本更低,更符合设计效益方面的要求。

由于单片机最高输出电压为+5V,而步进电机的额定工作电压是+12V,所以必须采用外围的驱动电路。

步进电机的驱动电路多种多样,从设计的要求分析,我们可以采用单电源供电方式电路作为步进电机的驱动电路。

两相步进电机工作在双相四拍工作方式时需要四种不同状态的时序脉冲,所以使用步进电机驱动芯片L298能够使电路的结构更简单,并且能够提高电路的稳定性和可靠性。

2.3单元电路设计

2.3.1步进电机控制原理

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。

其基本原理作用如下:

(1)控制换相顺序

通电换相这一过程称为脉冲分配。

例如:

两相步进电机的双相四拍工作方式,其各相通电顺序时序如图所示:

通电控制脉冲必须严格按照这一顺序分别控制A、B两相的通断。

图2.2步进电机原理图

 

图2.3步进电机双相四拍工作时序图

(2)控制步进电机的转向

如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。

(3)控制步进电机的速度

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉冲的间隔越短,步进电机就转得越快。

调整单片机发出的脉冲频率,就可以对步进电机进行调速。

2.3.2步进电机驱动原理

步进电机可以有多种驱动方式,例如单电源供电方式,高低双电源供电等,综合该设计各方面的因素,采用单电源供电方式作为步进电机驱动,电路结构比较简单,也具有一定的可靠性。

但在高频时会产生干扰,影响步进电机的正常运行。

单电源供电方式原理图如图2.4所示:

图2.4单电源供电方式原理图

采用数字芯片L298作为步进电机驱动电路,L298引脚分布及内部结构如图2.5所示。

单片机对步进电机的控制信号从L298的In1-In4输入,步进电机的控制信号从Out1-Out4输出。

图2.5L298引脚及内部结构

2.3.3数码显示管

在此次课程设计中,为了更好的实现人机交互,让我们更好的控制步进电机的转动,我们用四合一的8位数码显示管来显示我们输入的转动次数,并且通过程序让步进电机每转动一次,数码显示管上的数相应减少一,当步进电机转完我们需要其转动的次数时,数码显示管上显示的数字也减少到“0”,然后数码显示管会显示英文单词“OVER”,由此提醒人步进电机已经转动完成,从而实现人们对步进电机的动态控制。

数码显示管是由二极管显示字段的显示器件,它由8个发光二极管构成,通过不同的组合可以显示0到9,A到F以及小数点等字符。

数码管通常有共阴极和共阳极两种类型,共阴极数码管阴极必须接低电平(一般为地),当一个发光二极管的阳极连到高电平时,此二极管亮;共阳极数码管的发光二极管是阳极并接到高电平(一般为+5V),需点亮的发光二极管阴极接到低电平即可。

显然,要显示一个字型就应该使此字型的相应发光二极管点亮,实际上就是送一个不同电平的组合代表的数据到数码管。

在此次课程设计中,我们采用的使共阳极数码显示管,因为,在数码显示管于单片机相连接时,若为共阴极,则必须接上上拉电阻,这样数码显示管对单片机的压力太大,而共阳极却不要,所以为了减低单片机的压力,减少成本,增大元器件的寿命,我们采用的使共阳极的数码显示管。

2.3.4行列式键盘

在单片机的应用系统中,扫描键盘只是CPU的工作任务之一。

在实际应用中,要想做到既能及时响应键操作,又不过多的占用CPU的工作时间,就要根据应用系统中的忙闲情况选择适当的键盘工作方式。

键盘的工作方式一般有循环扫描和中断扫描两种。

循环扫描方式是利用CPU在完成其它工作的空余,调用键盘扫描子程序,来响应键输入要求。

在执行键功能程序时,CPU不再响应键输入要求。

键盘扫描程序应具备以下4项功能:

1,判断键盘上有无按下。

2,去除键的抖动操作。

3,扫描键盘,得到按下键的键号。

4,判别闭合的键是否释放。

采用循环扫描键盘的工作方式,虽然也能响应键入的命令或数据,但这种工作方式不管键盘上有无按键按下,CPU总要定时扫描键盘;而应用系统在工作时,并不需要按键输入,因此,CPU常处于空扫描状态。

中断扫描工作方式可以提高CPU的工作效率,即只在键盘有键按下时发中断请求,CPU响应中断请求后,转入中断服务程序,进行键盘扫描,识别键码。

中断扫描工作方式是一种简易键盘接口电路,其直接有80C51P1口的高,低字节构成4*4行列式键盘。

键盘的列线与P1口的低四位相接,键盘的行线接到P1口的高四位。

在中断扫描方式中,有一个与门,其输入端分别与各列线相连,而输入端接单片机外部中断输入INT0。

初始化时,键盘行输入口全部置0。

当有键按下时,INT0端为低电平,向CPU发中断请求,若CPU开放外部中断,则响应中断请求,进入中断服务程序。

综合以上所述,我们采用中断工作方式。

 

 

第3章程序设计

3.1系统程序流程

3.1.1主程序流程图

由于程序实现的功能比较的多,为了能够更清晰的体现设计思路,编写合理规范的程序;同时也是为了能够更好的协调各模块的功能,提高程序的执行效率和,所以一般首先画出主程序的流程图,然后在主程序流程图结构的指导下完成各个部分的功能。

这种设计的思路充分的体现了模块化的设计思想,因为模块化的设计思想能够使编写的程序在以后的调试和修改的过程中也显得比较的容易。

主程序流程图如图3.1所示。

 

图3.1主程序流程图

 

3.1.2中断服务程序流程图

中断服务程序主要实现键盘的功能并且把用户从键盘输入的数据存储到相应的存储单元中。

中断服务程序流程图如图3.2所示。

 

图3.2中断服务程序流程图

 

3.1.2显示子程序流程图

数码管采用动态扫描的显示方法,从P2.0-P2.3口依次高电平选通需要显示的数码管,显示数字的字形码存放在60H到63H单元中。

为了观察到比较稳定而且亮度高的显示效果,延时子程序一般延时2-5ms。

显示子程序流程图如图3.3所示。

图3.3显示子程序流程图

 

 

3.2系统程序设计

ORG0000H

LJMPMAIN

ORG0003H

LJMPKEY

ORG0100

;******程序初始化*******

MAIN:

SSBIT20H;1代表开始

ZZBIT21H;1代表正转

FFBIT22H;1反转

PPBIT23H;1表示暂停

JXBIT24H;1代表继续

BACKBIT25H;

MOVSP,#30H

MOVP1,#0FH

MOVIE,#81H

MOV60H,#00H

MOV61H,#00H

MOV62H,#00H

MOV63H,#00H

SETBIT0

;*******控制主程序*******

START:

JBSS,BEGIN

LCALLDISP

LJMPSTART;没有开始,则等待

BEGIN:

JBZZ,ZHENG

JBFF,FAN

LCALLDISP

LJMPSTART

;******步进电机正转程序******

ZHENG:

SETBP2.4

SETBP2.5

CLRP2.6

CLRP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,POS1

LJMPWAN

POS1:

CLRP2.4

SETBP2.5

SETBP2.6

CLRP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,POS2

LJMPWAN

POS2:

CLRP2.4

CLRP2.5

SETBP2.6

SETBP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,POS3

LJMPWAN

POS3:

SETBP2.4

CLRP2.5

CLRP2.6

SETBP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,ZHENG

LJMPWAN

;******步进电机反转程序*****

FAN:

SETBP2.4

CLRP2.5

CLRP2.6

SETBP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,POSS1

LJMPWAN

POSS1:

CLRP2.4

CLRP2.5

SETBP2.6

SETBP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,POSS2

LJMPWAN

POSS2:

CLRP2.4

SETBP2.5

SETBP2.6

CLRP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,POSS3

LJMPWAN

POSS3:

SETBP2.4

SETBP2.5

CLRP2.6

CLRP2.7

LCALLDISP;完成一步

LCALLCHECK

JBBACK,FAN

LJMPWAN

;*******步进电机步数为0,暂停,继续功能查询子程序****

CHECK:

MOVR1,#60H

DEC@R1

CJNE@R1,#0FFH,OV1

INCR1

DEC@R1

MOV60H,#09H

CJNE@R1,#0FFH,OV1

INCR1

DEC@R1

MOV60H,#09H

MOV61H,#09H

CJNE@R1,#0FFH,OV1

INCR1

DEC@R1

MOV60H,#09H

MOV61H,#09H

MOV62H,#09H

CJNE@R1,#0FFH,OV1

CLRBACK

LJMPRETURN1

OV1:

SETBBACK

L2:

JBPP,PAUSE1;等于1则跳转到暂停

LCALLDISP

LJMPRETURN1

PAUSE1:

JBJX,L1

LCALLDISP

LJMPL2

L1:

LJMPL2

RETURN1:

RET

;*******步数显示子程序*******

DISP:

MOVDPTR,#DAT

SETBP2.0

CLRP2.1

CLRP2.2

CLRP2.3

MOVA,60H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

CLRP2.0

SETBP2.1

CLRP2.2

CLRP2.3

MOVA,61H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

CLRP2.0

CLRP2.1

SETBP2.2

CLRP2.3

MOVA,62H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

CLRP2.0

CLRP2.1

CLRP2.2

SETBP2.3

MOVA,63H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

MOVP0,#0FFH

RET

DAT:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H

;********键盘中断服务程序*******

KEY:

PUSHACC

PUSHPSW

MOVP1,#0F0H;高位输出1,读低四位的状态

MOVA,P1;送入A

ANLA,#0F0H;屏蔽低四位,保存高四位

MOVB,A

MOVP1,#0FH;低位输出1,读高四位状态

MOVA,P1

ANLA,#0FH;屏蔽高四位,保存低四位

ORLA,B;AB相或形成查表字符

MOVB,A

MOVR0,#00H;键码保存在R0中

MOVDPTR,#TAB

LOOP:

MOVA,R0

MOVCA,@A+DPTR

CJNEA,B,NEXT;若相等则送键码到80H~8FH单元中,不相等则继续查找

LJMPKEY1

NEXT:

INCR0

CJNER0,#10H,LOOP

LJMPRETURN;查完没有键按下则返回主程序

TAB:

DB0EEH,0EDH,0EBH,0E7H

DB0DEH,0DDH,0DBH,0D7H

DB0BEH,0BDH,0BBH,0B7H

DB07EH,07DH,07BH,077H

KEY1:

MOVA,R0

MOVDPTR,#TAB1

ADDA,R0

JMP@A+DPTR

TAB1:

AJMPOPR1

AJMPOPR2

AJMPOPR3

AJMPOPRZZ

AJMPOPR4

AJMPOPR5

AJMPOPR6

AJMPOPRFZ

AJMPOPR7

AJMPOPR8;以上为0~9数字键的入口地址

AJMPOPR9

AJMPOPRPA

AJMPOPRST

AJMPOPR0

AJMPOPRGO

OPR1:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#01H

LJMPRETURN

OPR2:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#02H

LJMPRETURN

OPR3:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#03H

LJMPRETURN

OPRZZ:

SETBZZ

CLRFF

LJMPRETURN

OPR4:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#04H

LJMPRETURN

OPR5:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#05H

LJMPRETURN

OPR6:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#06H

LJMPRETURN

OPRFZ:

SETBFF

CLRZZ

LJMPRETURN

OPR7:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#07H

LJMPRETURN

OPR8:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#08H

LJMPRETURN

OPR9:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#09H

LJMPRETURN

OPRPA:

SETBPP

CLRJX

LJMPRETURN

OPRST:

SETBSS

LJMPRETURN

OPR0:

MOV63H,62H

MOV62H,61H

MOV61H,60H

MOV60H,#00H

LJMPRETURN

OPRGO:

SETBJX

CLRPP

RETURN:

POPPSW

POPACC

RETI

;******延时子程序*******

DELAY:

MOVR7,#100

DE:

MOVR6,#50

DJNZR6,$

DJNZR7,DE

RET

;*****显示提示信息OVER程序*****

WAN:

MOVP2,#08H

MOVP0,#0C0H

LCALLDELAY

MOVP2,#04H

MOVP0,#0C1H

LCALLDELAY

MOVP2,#02H

MOVP0,#86H

LCALLDELAY

MOVP2,#01H

MOVP0,#88H

LCALLDELAY

LJMPWAN

END

第4章系统仿真

4.1系统仿真

使用Proteus软件画出系统电路图,然后加载程序文件。

点击开始按钮,进行系统仿真。

仿真结果如图4.1所示。

图4.1系统仿真图

4.2系统仿真结果分析

从键盘输入步进电机的运行步数,确定步进电机的转动方向,然后按下开始键按钮,从PROTEUS仿真中我们可以看到电机按照我们预设的要求转动并且数码管也比较清晰的显示着步进电机当前剩余的步数,当步数减为0的时候,显示提示信息“OVER”告诉我们所有步数已经执行完毕。

在步进电机正常转动的过程中,按下暂停键,电机停止转动,数码管同样显示当前剩下的步数,等待开始按钮按下;当开始键按下后,系统恢复暂停前的运行状态。

开始键和步进电机方向控制按键不分先后顺序,也就是说不论是先按下正转或反转键确定电机的转动方向再执行开始操作,还是先在输入好电机的运行步数后直接按下开始键,再来确定电机的转动方向,最后在PROTEUS仿真中我们看到的结果是一样的,比较符合人的思维习惯。

第5章课程设计的总结与体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾此次单片机课程设计,从选题到确定任务书,从原理到仿真,在接近个三星期的日子里,可以说是苦多于甜,但是我确实从中学到很多实用的东西,设计中自由的发散不仅巩固了以前所学过的知识,更重要的是通过查资料请教老师同学等各种学习途径掌握了许多书本上所没有学到过的知识,在这短短的半个月时间里获益匪浅。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

 

参考文献资料

[1]张迎新,等.单片机初级教程[M].北京:

北京航空航天大学出版社,2000

[2]张迎新,等.单片机微型计算机原理、应用及接口技术[M].修订版.北京:

国防工业出版社,2004.

[3]丁志刚,李刚民.单片微型计算机原理与应用[M].北京:

电子工业出版社,1990.

[4]孙传友,等.测控电路及装置[M].北京:

北京航天航空大学出版社,2000.

[5]www.CNDZ.com

 

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

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1