计算机控制课程设计步进电机的控制设计毕业论文Word格式文档下载.doc
- 文档编号:3630824
- 上传时间:2023-05-02
- 格式:DOC
- 页数:19
- 大小:271.54KB
计算机控制课程设计步进电机的控制设计毕业论文Word格式文档下载.doc
《计算机控制课程设计步进电机的控制设计毕业论文Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《计算机控制课程设计步进电机的控制设计毕业论文Word格式文档下载.doc(19页珍藏版)》请在冰点文库上搜索。
使用单片机,外加驱动电路使用循环查表法实现
与方案一的区别不大,就是不需要8255,AT89C51直接与开关、接口电路相接,电路更简单。
3硬件电路设计
3.1设计思路,元件选型
⑴用控制器输出接口的每一位控制一相绕组。
⑵三种控制方式的数学模型分别为如下所述。
表3-1-1三相单三拍
表3-1-2三相双三拍
步序
控制位
工作状态
控制模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
A
01H
2
B
02H
3
C
04H
AB
03H
BC
06H
CA
05H
表3-1-3三相六拍
4
5
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微机控制原理图
8086
8255A
驱动器
步进电机
负载
……
图3.2单片机控制原理图
AT89C51
3.3硬件连线图
图3.3.1微机步进电机控制系统硬件接线图
如上图所示:
左边一芯片,从上到下,依次为开关K0、K1、K2、K3,与之相对应的接线端口为PA0、PA1、PA2、PA3口,最右端为步进电机,往左为驱动芯片,再次之为8255的扩展端口。
表3-3-1各开关对应的步行电机状态表
开关
步进电机状态
K3
K2
K1
K0
停止
启动正转
启动反转
正转加速
反转加速
正转减速
反转减速
图3.3.2单片机步进电机控制系统硬件接线图
左边一AT89C51芯片,从上到下,依次为开关K0、K1、K2、K3、K4,与之相对应的接线端口为P3.0、P3.1、P3.2、P3.3、P3.4口,最右端为步进电机,往左为驱动芯片,再次为P1.0、P1.1、P1.2端口。
表3-3-2各开关对应的步行电机状态表
开关
正转
反转
加速
减速
K4
4软件设计
4.1.1微机方案的软件设计
实现步进电机运行方式、方向和加速、减速以及启/停的控制,是接口软件设计的主要任务。
为此,在编写程序之前,要建立一个相序表。
相序表的建立应根据步进电机运行方式的要求及各绕组与8255A端口连接情况来确定加电代码。
根据上图的连接情况,可以写出相序表中三相6拍运行方式的加电代码为:
01H,03,02H,06H,04H,05H。
在8255初始化完毕后,取出相序表的首地址,将其存入BX。
当要求步行电机正转时,首地址进行加1操作。
在次过程中要检查指针是否指到末地址。
若是,指针减5,回到首地址,如此循环。
当要求反转时,将首地址进行加5操作到达末地址,在进行减1操作,在次过程找要检查指针是否到达首地址。
如是,则将指针加5回到末地址。
根据设计流程图,软件设计部分将本系统分为6个子程序,分别是正向转子程序、反向转子程序、常速延时子程序、加速延时子程序、减速延时子程序、通用延时子程序。
4.1.2单片机方案的软件设计
使用单片机实现控制,接口软件与使用微机相类似,选择工作方式3来实现步进电机的正转、反转、加速、减速,即通过开端电路来实现步进电机在不换硬件接线的情况下实现各种状态的转换。
4.2方框图
开始
8255初始化
K0=1?
N
Y
判断K3K2K1的值
000
常速延时
减速延时
分40段调速
加速延时
001
010
011
100
101
图4.2.1微机控制方框图
图4.2.2单片机控制方框图
是否启动?
判断转向
正传初始转速
反转初始转速
判断转动状态
否
是
4.3程序清单
微机程序清单:
DATASEGMENT
LIUDB01H,03H,02H,06H,04H,05H
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,DATA
MOVAX,STACK
MOVSS,AX
COUNT1EQU0C300H ;
初始转速延时
COUNT2EQU0B300H ;
高速延时
COUNT3EQU0FFF0H ;
慢速延时
COUNT4EQU0FEEH ;
步数,至少40步
MOVBX,OFFSETLIU
MOVDX,PORTCTR
MOVAL,90H
OUTDX,AL ;
送入8255控制字
LOOP1:
INAL,PORTA
MOVAH,AL
ANDAH,01H
CMPAH,01H ;
判断开关K0是否闭合
JNZLOOP1
ANDAH,02H
CMPAH,02H ;
判断开关K2是否闭合
JNZZZ
JMPFZ
;
…………………………………………………………………………….
ZZ:
MOVAH,AL ;
正向转子程序
INAL,PORTA
ANDAL,0CH
PUSHAX
MOVAL,[BX]
CMPAL,05H;
检查是不是最后一个加电代码
JNZXH1
SUBBX,5
XH1:
INCBX;
指针作加1运算,及实现向后移动
MOVDL,[BX]
OUTPORTB,AL;
从B口输出
POPAX
CMPAL,00H
JNZX1
CALL CHANGSU ;
调用常速延时
X1:
CMPAL,04H
JZX2
CALLJIASU ;
调用加速延时
X2:
CMPAL,08H
JZX3
CALLJIANSU;
调用减速延时
X3:
JMPSTART
FZ:
反向转子程序
CMPAL,00H
CMPAL,01H;
检查是不是第一个加电码
JNZFXH1
ADDBX,5;
若是第一个加电码,则指针加5跳到最后一个加电码
FXH1:
DECBX;
指针减1,实现向前移动
MOVAL,[BX]
OUTPORTB,AL
CHANGSU:
PUSHCX ;
短延时子程序
MOVCX,COUNT1;
COUNT1为常速常速
ADD1:
PUSHAX
LOOPADD1
POPCX
RET
JIASU:
PUSHCX ;
加速延时子程序
MOVCX,40 ;
分40级加速
MOVDX,COUNT1 ;
COUNT1为常速延时
PUSHDX
SUBDX,COUNT2 ;
COUNT2为高速延时
MOVAX,DX
DIV40
MOVDX,AX
POPAX
ADD2:
SUBAX,DX
MOVDX,AX
CALLDELAY
LOOPADD2
MOVAX,COUNT4 ;
COUNT4定义步数
SUBAX,40
MOVCX,AX ;
走完剩余的步数
JIANSU:
减速延时子程序
MOVCX,40 ;
COUNT1为常速延时量
SUBDX,COUNT3 ;
COUNT3为慢速延时量
ADD3:
ADDAX,DX
LOOPADD3
DELAY:
PUSHCX ;
通用延时子程序
MOVCX,DX
ADD4:
PUSHAX
LOOPADD5
POPCX
RET
CODEENDS
ENDSTART
单片机程序清单:
ORG0000H
AJMPSTOP;
跳转至子程序STOP处
ORG0040H
STOP:
MOVP1,#00H;
开始
JBP3.0,START
JBP3.1,RERUN
SJMPSTOP
MOVR0,#00H ;
START1:
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZSTART
MOVP1,A
STALOP:
JNBP3.0,START2
JBP3.4,STOP
JBP3.2,SPEEDUP
JBP3.3,SLOW
LCALLDELAY0
INCR0
LJMPSTART1
START2:
JBP3.1,RERUN
LJMPSTOP
RERUN:
MOVR0,#00H ;
RERUN1:
MOVDPTR,#TABLF
MOVCA,@A+DPTR
JZRERUN
MOVP1,A
RERLOP:
JNBP3.1,STALOP
JBP3.4,STOP
JBP3.2,SPEEDUP
JBP3.3,SLOW
LCALLDELAY0
INCR0
LJMPRERUN1
SPEEDUP:
LCALLDELAY1;
JBP3.0,START1
SLOW:
LCALLDELAY2;
JBP3.0,START2
DELAY0:
MOVR1,#20 ;
初始速度延时子程序
D1:
MOVR2,#50
DJNZR2,$
DJNZR1,D1
RET
DELAY1:
MOVR1,#0 ;
D2:
MOVR2,#10
DELAY2:
MOVR1,#50 ;
D3:
MOVR2,#100
DJNZR1,D3
TABLE:
DB01H,03H,02H,06H,04H,05H;
正转控制模型
DB00H
TABLF:
DB05H,04H,06H,02H,03H,01H;
反转控制模型
END
5总结
我觉得做计算机控制技术课程设计是十分有意义的,而且是十分必要的。
这门课程还牵涉到了微机原理和DSP应用等课程,把我们的其他专业科都粘合在了一起,达到融会贯通的作用,让我们学的更广,学的更灵活!
一直以来都从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
这次课程设计对我来说学到的不仅是那些知识,更多的是团队和合作。
现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!
不过没想到这项看起来不需要多少技术的工作却是非常需要耐心和精力。
今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!
作为一名自动化专业的大三学生,在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
我觉得作为一名自动化专业的学生,计算机控制技术的课程设计是很有意义的。
更重要的是如何把自己平时所学的东西应用到实际中。
虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这几天的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。
我认为这个收获应该说是相当大的。
觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。
小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。
同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
某个人的离群都可能导致导致整项工作的失败。
实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这一点,这也是非常宝贵的。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
挫折是一份财富,经历是一份拥有。
这次实习必将成为我人生旅途上一个非常美好的回忆!
谢谢袁老师的精心教导,由于我的知识掌握程度不是很高,所以这次课程设计的质量不一定很好,但是我觉得这次课程设计的过程是很精彩的,正如上面所说,这次课程设计必将是我成长过程中一剂良药!
6参考文献
[1]李正军.计算机控制系统[M].北京:
机械工业出版社,2005:
124--130
[2]顾德英,张健,马淑华.计算机控制技术[M].北京:
北京邮电大学出版社,2006:
64--70
[3]刘金琨.先进PID控制及其MATLAB仿真[M].北京:
电子工业出版社,2003:
55--62
[4]潘新民,王燕芳.微型计算机控制技术使用教程[M].北京:
电子工业出版社,2006:
128—139
[5]丁元杰主编.单片微机原理及应用[M].北京:
机械工业出版社,1994.
[6]李叶紫等.MCS-51单片机应用教程[M].北京:
清华大学出版社,2004.
[7]张友德等.单片微型机原理、应用与实验[M],上海:
复旦大学出版社,2000.
[8]张淑清等.单片微型计算机接口技术及其应用[M].北京:
国防工业出版社,2001.
[9]求是科技编著.单片机模块设计实例导航[M].北京:
人民邮电出版社,2004.
[10]张俊谟主编.单片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机控制 课程设计 步进 电机 控制 设计 毕业论文