《计算机控制课程设计 步进电机的控制设计.doc》由会员分享,可在线阅读,更多相关《计算机控制课程设计 步进电机的控制设计.doc(19页珍藏版)》请在三一办公上搜索。
1、目 录1设计目的及意义- 1 -1.1设计目的- 1 -1.2设计意义- 1 -2方案论证- 2 -2.1设计要求- 2 -2.2方案论证- 2 -3硬件电路设计- 3 -3.1设计思路,元件选型- 3 -3.2控制原理图- 5 -3.3硬件连线图- 6 -4软件设计- 8 -4.1.1微机方案的软件设计- 8 -4.1.2单片机方案的软件设计- 8 -4.2方框图- 9 -4.3程序清单- 11 -5总结- 16 -6参考文献- 17 -1设计目的及意义1.1设计目的1.巩固和加深课堂所学知识;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.通过步进电机控制系统设计与制作,深入
2、了解与掌握步进电机的运行方式、方向、速度、启/停的控制以及单三拍、双三拍和三相六拍等工作方式的控制。1.2设计意义步进电机是工业过程控制及仪表中的主要控制元件之一。在数字控制系统中,由于它可以可以直接接受计算机来的数字信号,不需要进行数模转换,所以用起来更方便。步进电机角位移与控制脉冲间的精确同步。若将角位移的改变转变为线性位移、位置、体积、流量等物理量的变化,便可实现对它们的控制。正因为步进电机具有快速启停,精确步进以及能直接接收数字量等特点,所以使其在定位场合中得到了广泛的应用。特别在工业过程控制系统中,使用开环控制模式,微型计算机可以很容易控制步进电机的位置和速度,而不用使用位移传感器,
3、所以应用越来越广泛。学会使用微型计算机控制步进电机也就显得很重有必要了。2方案论证2.1设计要求控制步进电机正转、反转,加速,减速。完成步进电机单三拍、双三拍和三相六拍等工作方式的控制,画出控制步进电机的电路图,并编程完成软件部分。2.2方案论证方案一:使用微机+8255A,外加驱动电路使用循环查表法实现因为步进电机是通过改变其输入脉冲来改变步进电机的输出状态的,所以此方案考虑选择用开关电路来改变其调用的子程序已达到改变其输入的脉冲。故此方案使用开关电路,8255A的若干端口来进行。由步进电机的原理可以知道其状态的特点,所以,可以考虑通过改变其脉冲的顺序来改变步进电机的转向,实现正转与反转,通
4、过均匀地改变其脉冲时间间隔的长短来实现步进电机的加速与减速。故此方案可以用8255的PA口和开关电路来选择各种状态的改变。方案二:使用单片机,外加驱动电路使用循环查表法实现与方案一的区别不大,就是不需要8255, AT89C51直接与开关、接口电路相接,电路更简单。3硬件电路设计3.1设计思路,元件选型用控制器输出接口的每一位控制一相绕组。三种控制方式的数学模型分别为如下所述。表3-1-1三相单三拍表3-1-2三相双三拍步序控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000001A01H200000010B02H300000100C0
5、4H步序控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000011AB03H200000110BC06H300000101CA05H表3-1-3三相六拍步序控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000001A01H200000011AB03H300000010B02H400000110BC06H500000100C04H600000101CA05H本次设计我选择三相六拍的控制设计微机控制部分:步进电机接口的硬件部分主要是提供输送相序代码的并行数据线(6根),以及保护电机绕
6、组的器件,所以接口电路以8255A为主芯片,将PA口作数据口,传送加电代码,再加上锁存器74LS373作绕组保护。另外,还有功率驱动管TIP122,以及二极管、开关K0、K1、K2、K3。本实验采用A口作为控制口,B口作为输出口,PA0、PA1、PA2、PA3分别接开关的K0、K1、K2、K3,PB0、PB1、PB2分别接步进电机的ABC。单片机控制部分:使用单片机控制的电路与使用微机实现的电路很相似,主要由:AT89C51、TIP122驱动管,以及二极管、开关K0、K1、K2、K3组成。3.2控制原理图图3.1微机控制原理图80868255A驱动器步进电机负 载图3.2单片机控制原理图AT8
7、9C51驱动器步进电机负 载3.3硬件连线图图3.3.1微机步进电机控制系统硬件接线图如上图所示:左边一芯片,从上到下,依次为开关K0、K1、K2、K3,与之相对应的接线端口为PA0、PA1、PA2、PA3口,最右端为步进电机,往左为驱动芯片,再次之为8255的扩展端口。表3-3-1各开关对应的步行电机状态表开 关步进电机状态K3K2K1K00000停止0001启动正转0011启动反转0101正转加速0111反转加速1001.正转减速1011反转减速图3.3.2单片机步进电机控制系统硬件接线图如上图所示:左边一AT89C51芯片,从上到下,依次为开关K0、K1、K2、K3、K4,与之相对应的接
8、线端口为P3.0、P3.1、P3.2、P3.3、P3.4口,最右端为步进电机,往左为驱动芯片,再次为P1.0、P1.1、P1.2端口。表3-3-2各开关对应的步行电机状态表开 关步进电机状态K0正转K1反转K2加速K3减速K4停止4软件设计4.1.1微机方案的软件设计实现步进电机运行方式、方向和加速、减速以及启/停的控制,是接口软件设计的主要任务。为此,在编写程序之前,要建立一个相序表。相序表的建立应根据步进电机运行方式的要求及各绕组与8255A端口连接情况来确定加电代码。根据上图的连接情况,可以写出相序表中三相6拍运行方式的加电代码为:01H,03,02H,06H,04H,05H。在8255
9、初始化完毕后,取出相序表的首地址,将其存入BX。当要求步行电机正转时,首地址进行加1操作。在次过程中要检查指针是否指到末地址。若是,指针减5,回到首地址,如此循环。当要求反转时,将首地址进行加5操作到达末地址,在进行减1操作,在次过程找要检查指针是否到达首地址。如是,则将指针加5回到末地址。根据设计流程图,软件设计部分将本系统分为6个子程序,分别是正向转子程序、反向转子程序、常速延时子程序、加速延时子程序、减速延时子程序、通用延时子程序。4.1.2单片机方案的软件设计使用单片机实现控制,接口软件与使用微机相类似,选择工作方式3来实现步进电机的正转、反转、加速、减速,即通过开端电路来实现步进电机
10、在不换硬件接线的情况下实现各种状态的转换。4.2方框图开 始8255初始化K0=1?NY判断K3K2K1的值000NNNN启动正转启动反转正转加速反转加速正转减速常速延时减速延时分40段调速加速延时分40段调速YYYYYYNN001010011100101图4.2.1微机控制方框图反转减速图4.2.2单片机控制方框图开 始是否启动?判断转向正传初始转速反转初始转速判断转动状态判断转动状态加速延时减速延时加速延时减速延时加速加速减速减速停止否是正转反转停止4.3程序清单微机程序清单:DATA SEGMENTLIU DB 01H,03H,02H,06H,04H,05HDATA ENDSSTACK
11、SEGMENT PARA STACK STACKDB 100 DUP(?) STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,DATAMOV AX,STACKMOV SS,AXCOUNT1 EQU 0C300H;初始转速延时COUNT2 EQU 0B300H;高速延时COUNT3 EQU 0FFF0H;慢速延时COUNT4 EQU 0FEEH;步数,至少40步MOV BX,OFFSET LIU MOV DX,PORTCTRMOV AL,90H OUT DX,AL;送入8255控制字LOOP1
12、:IN AL,PORTAMOV AH,ALAND AH,01HCMP AH,01H;判断开关K0是否闭合JNZ LOOP1MOV AH,ALAND AH,02HCMP AH,02H;判断开关K2是否闭合JNZ ZZJMP FZ;.ZZ:MOV AH,AL;正向转子程序IN AL,PORTAAND AL,0CHPUSH AXMOV AL,BXCMP AL, 05H ; 检查是不是最后一个加电代码JNZ XH1SUB BX,5XH1:INC BX ; 指针作加1运算,及实现向后移动MOV DL,BXOUT PORTB,AL ;从B口输出POP AXCMP AL,00HJNZ X1CALLCHANG
13、SU;调用常速延时X1:CMP AL,04HJZ X2CALL JIASU;调用加速延时X2:CMP AL,08HJZ X3CALL JIANSU ;调用减速延时X3:JMP START;.FZ:MOV AH,AL; 反向转子程序IN AL,PORTAAND AL,0CHCMP AL,00HPUSH AXMOV AL,BXCMP AL,01H ;检查是不是第一个加电码JNZ FXH1 ADD BX,5 ;若是第一个加电码,则指针加5跳到最后一个加电码FXH1:DEC BX ;指针减1,实现向前移动MOV AL,BXOUT PORTB,ALPOP AXCMP AL,00HJNZ X1CALLCH
14、ANGSU;调用常速延时X1:CMP AL,04HJZ X2CALL JIASU;调用加速延时X2:CMP AL,08HJZ X3CALL JIANSU ;调用减速延时X3:JMP START;.CHANGSU: PUSH CX;短延时子程序MOV CX,COUNT1 ;COUNT1为常速常速ADD1: PUSH AXPOP AXLOOP ADD1POP CX RET;.JIASU:PUSH CX;加速延时子程序MOV CX,40 ;分40级加速MOV DX,COUNT1; COUNT1为常速延时PUSH DXSUB DX,COUNT2;COUNT2为高速延时MOV AX,DXDIV 40MO
15、V DX,AXPOP AXADD2:SUB AX,DXMOV DX,AX CALL DELAYLOOP ADD2MOV AX,COUNT4;COUNT4定义步数SUB AX,40MOV CX, AX ;走完剩余的步数CALL DELAYRET;.JIANSU:PUSH CX;减速延时子程序MOV CX,40 ;分40级加速MOV DX,COUNT1; COUNT1为常速延时量PUSH DXSUB DX,COUNT3;COUNT3为慢速延时量MOV AX,DXDIV 40MOV DX,AXPOP AXADD3:ADD AX,DXMOV DX,AXCALL DELAYLOOP ADD3MOV AX
16、,COUNT4;COUNT4定义步数SUB AX,40MOV CX, AX ;走完剩余的步数CALL DELAYRET;.DELAY:PUSH CX;通用延时子程序MOV CX,DXADD4:PUSH AXPOP AXLOOP ADD5POP CXRETCODE ENDSEND START单片机程序清单:ORG 0000HAJMP STOP ;跳转至子程序STOP处 ORG 0040HSTOP:MOV P1,#00H ;开始 JB P3.0,START JB P3.1,RERUN SJMP STOPSTART:MOV R0,#00H;正转START1:MOV A,R0 MOV DPTR,#TA
17、BLE MOVC A,A+DPTR JZ START MOV P1,A;.STALOP:JNB P3.0,START2 JB P3.4,STOP JB P3.2,SPEEDUP JB P3.3,SLOW LCALL DELAY0 INC R0 LJMP START1;.START2:JB P3.1,RERUN LJMP STOPRERUN:MOV R0,#00H;反转RERUN1:MOV A,R0 MOV DPTR,#TABLF MOVC A,A+DPTR JZ RERUN MOV P1,A;.RERLOP:JNB P3.1,STALOP JB P3.4,STOP JB P3.2,SPEEDU
18、P JB P3.3,SLOW LCALL DELAY0 INC R0 LJMP RERUN1;.SPEEDUP: LCALL DELAY1 ;加速 INC R0 JB P3.0,START1 LJMP RERUN1;.SLOW: LCALL DELAY2 ;减速 INC R0 JB P3.0,START2 LJMP RERUN1;.DELAY0:MOV R1,#20;初始速度延时子程序 D1:MOV R2,#50 DJNZ R2,$ DJNZ R1,D1 RET;.DELAY1: MOV R1,#0;加速延时子程序D2: MOV R2,#10 DJNZ R2,$ DJNZ R1,D1 RET;
19、.DELAY2:MOV R1,#50;减速延时子程序 D3:MOV R2,#100 DJNZ R2,$ DJNZ R1,D3 RETTABLE: DB 01H,03H,02H,06H,04H,05H ;正转控制模型 DB 00HTABLF: DB 05H,04H,06H,02H,03H,01H ;反转控制模型 DB 00H END5总结我觉得做计算机控制技术课程设计是十分有意义的,而且是十分必要的。这门课程还牵涉到了微机原理和DSP应用等课程,把我们的其他专业科都粘合在了一起,达到融会贯通的作用,让我们学的更广,学的更灵活!一直以来都从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很
20、高,这是我做这次课程设计的又一收获。 这次课程设计对我来说学到的不仅是那些知识,更多的是团队和合作。现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能! 不过没想到这项看起来不需要多少技术的工作却是非常需要耐心和精力。今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多! 作为一名自动化专业的大三学生,在已度过的大学时间里,我们大多数
21、接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。 在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。 通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名自动化专业的学生,计算机控制技术的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自
22、己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这几天的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合相处,以及自身的动脑和努力,都是以后工作中需要的。 同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原
23、理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。 对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆! 谢谢袁老师的精心教导,由于我的知识掌握程度不是很高,所以这次课程设计的质量不一定很好,但是我觉得这次课程设计的过程是很精彩的,正如上面所说,这次课程设计必将是我成长过程中一剂良药!6参考文献1 李正军. 计算机控制系统M. 北京:机械工业出版社,2005:124-1302 顾德英,张健,马淑
24、华. 计算机控制技术M. 北京:北京邮电大学出版社,2006:64-703 刘金琨. 先进PID控制及其MATLAB仿真M. 北京:电子工业出版社,2003:55-624潘新民,王燕芳微型计算机控制技术使用教程M北京:电子工业出版社,2006:1281395 丁元杰主编单片微机原理及应用M北京:机械工业出版社,1994.6 李叶紫等MCS-51单片机应用教程M北京:清华大学出版社,2004.7 张友德等单片微型机原理、应用与实验M,上海:复旦大学出版社,2000.8 张淑清等单片微型计算机接口技术及其应用M北京:国防工业出版社,2001.9 求是科技编著单片机模块设计实例导航M北京:人民邮电出版社,2004.10 张俊谟主编单片机中级教程(原理与应用)M北京:北京航空航天大学出版社,2000.11 谢宜人等单片机使用技术问答M北京:人民邮电出版社,2003.