微型计算机控制技术课程设计电子版本.doc
Good is good, but better carries it.精益求精,善益求善。微型计算机控制技术课程设计-成绩课程设计报告设计题目步进电机控制系统设计课程名称计算机姓名学号班级教师设计日期2012年步进电机控制系统设计摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的概率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无积累误差等特点,使得在速度、位置领域用步进电机来控制变的非常简单。本次课程设计采用TDN-AC/ACS计算机控制技术实验箱中的35BYJ46型四相八拍步进电机为对象,以8088CPU为基础设计计算机控制系统硬件电路、8088为核心的步进电机控制系统,编写步进电机控制程序,从而实现步进电机的变速运转以及正反向运转。关键词:步进电机、四相八拍、电脉冲信号、变速运转、正反向运转SteppermotorcontrolsystemdesignAbstractSteppermotoristheelectricpulsesignalintoangulardisplacementorlineardisplacementoftheopen-loopcontrolcomponents.Inthecaseofnon-overloaded,themotorspeedtostopthelocationoftheprobabilitydependsonlyonthepulseandthepulsenumber,regardlessofloadchanges,thatis,toaddapulsemotor,themotoristurnedastepangle.Theexistenceofthislinearrelationship,withonlyperiodicerrorofthesteppermotorwithouttheaccumulationoferrors,etc.,makesthespeedandpositiontocontrolthesteppermotorareasbecomeverysimple.Thecurriculumdesignusecomputer-controlledtechnologyexperimentsTDN-AC/ACSboxin35BYJ46four-phaseeight-shotsteppermotorfortheobjectto8088CPU-basedcomputercontrolsystemhardwarecircuitdesign,8088asthecoreofthesteppermotorcontrolsystem,writesteppermotorcontrolprogram,inordertoachievevariablespeedoperationofthesteppermotorandtheprosandconstorunning.KeyWords:SteppermotorFour-phaseeight-shotElectricalpulsesVariable-speedoperationForwardandreverseoperation目录第一章:步进电机介绍11.1:步进电机工作原理11.2:步进电机控制系统原理1第二章:系统设计及硬件介绍32.1:系统描述32.2:硬件选取及其简介32.2.1:硬件选取32.2.2:执行机构选取32.2.3:8088cpu介绍42.2.4:8255接口芯片介绍.42.2.5:ULN28035第三章:实验设计73.1:实验线路73.2:8255口输出电平在各步中的情况图73.3:8088扩展数据存储器和8255接口电路原理图73.4:系统结构图8第四章:程序设计94.1流程图94.2:实验程序9第五章:系统运行分析125.1:过程分析125.2:运行结果12总结13参考文献13附录14第一章:步进电机介绍1.1:步进电机工作原理步进电机实际上是一个数字/角度转换器,也是一个串行的数/模转换器。其结构原理,如图1-1所示。从图1-1可以看出,电动机的定子上有6个等分的磁极,A,A',B,B',C,C',相邻的两个磁极间的夹角为60°。相对的两个磁极组成一相,如图所示的结构为三相异步电机。当某一绕组有电流通过时,该绕组相应的两个磁极立即形成N极和S极,每个磁极上各有5个均匀分布的锯齿小齿。图表Error! No sequence specified.1步进电机原理图1-2:步进电机控制系统原理步进电机控制系统主要是由步进控制器,功率放大器及步进电机组成。特别是采用微型机控制,更可以根据系统的需要灵活改变步进电机的控制方案,使用起来很方便。原理图如下:80888255A驱动器步进电机负载微型机控制步进电机系统原理图第二章:系统设计及硬件介绍2.1:系统描述:用8088cpu控制8255接口芯片,ULN2803驱动步进电机运转。用计算机(windows98系统)启动ACS2002软件,装入设计好汇编语言,调出示波器来运行程序,最终通过软硬件结合的方式实现电机正反转,修改程序可实现调速。2.2:硬件选取及其简介2.2.1硬件选取1.8088cpu(扩展8255接口电路和数据存储器)2.8255接口芯片3.4个发光二极管4.ULN2803驱动模块5.四相八拍步进电机2.2.2:执行机构选取本设计所采用的是国产35BYJ46型步进电机,它使用+12V直流电源,步距角为3.75°。励磁线圈:2.2.3:8088cpu介绍8088是一个Intel以8086为基础的微处理器,拥有16位元暂存器和8位元外部资料总线。8088的原理图及引脚如下图:8088引脚图2.2.4:8255接口芯片介绍8255接口芯片:8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。原理图及引脚如下图:8255引脚图2.2.5:ULN2803ULN2803:采用AP=DIP16,AFW=SOL16封装方式八路NPN达林顿连接晶体管阵系列特别适用于低逻辑电平数字电路(诸如TTL,CMOS或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机,工业用和消费类产品中的灯、继电器、打印锤或其它类似负载中。所有器件具有集电极开路输出和续流箱位二极管,用于抑制跃变。ULN2803的设计与标准TTL系列兼容,而ULN2804最适于6至15伏高电平CMOS或PMOS。ULN2803接线图第三章:实验设计3.1:实验线路3.2:8255口输出电平在各步中的情况图:步序PB13PB12PB11PB10工作状态输出值10001A01H20011AB03H30010B02H40110BC06H50100C04H61100CD0CH71000D08H81001DA09H3.3:8088扩展数据存储器和8255接口电路原理图3.4:系统结构图第四章:程序设计4.1流程图4.2:实验程序STACKSEGMENTSTACKDW256DUP(?)STACKENDSDATASEGMENTTABLE1DB01H,03H,02H,06H,04H,0CH,08H,09H;正转拍顺序TABLE2DB09H,08H,0CH,04H,06H,02H,03H,01H;反转拍顺序DATAENDS;8255B口输出值CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMAIN:MOVAL,80H;给8255控制口送入控制字OUT63H,ALA0:MOVCX,0016H;正转周期数A1:MOVBX,OFFSETTABLE1PUSHCXMOVCX,0008H;步进电机正转数为8A2:MOVAL,BX;8255输出OUT61H,ALCALLDALLY;调用DALLY延时程序INCBXLOOPA2;一个周期完否POPCXLOOPA1;正转完否MOVCX,0024H;反转周期A3:MOVBX,OFFSETTABLE2PUSHCXMOVCX,0008H;步进电机反转数为8A4:MOVAL,BXOUT61H,ALCALLDALLY2INCBXLOOPA4;一个周期完否POPCXLOOPA3;反转完否JMPA0DALLY:PUSHCX;延时程序MOVCX,0150H;改变CX可实现调速T1:PUSHAXPOPAXLOOPT1POPCXRETCODEENDSENDSTART第五章:系统运行分析5.1:过程分析一按照硬件电路图来连接电路。首先由8088CPU扩展出程序存储器和8255芯片,然后由8255芯片的PB口的PB0,PB1,PB2,PB3分别接驱动单元ULN2803的A相,B相,C相,D相,最后由驱动单元ULN2803输出接到红色发光二极管和步进电机各相上。二在window98系统环境下运行ACS2002软件,装入设计好的程序后点开示波器,然后运行程序。让电机实现正转反转。经过认真观察,确定本次实验所用的步进电机步距角是3.75°,经计算得它的转子侧应该有12个槽位。三通过改动正反转周期数使得步进电机正反转的周期数不同,改动每一拍的延时程序使步进电机转动不同的速度,达到调速的目的。5.2:运行结果示波器出现一条水平的横线,步进电机以一定的速度开始运转,正转16圈后开始反转,反转24圈后开始正转,如此往复下去。在转动的同时,发光二极管在按照一定的规律闪烁。总结通过八个小时的课程设计和实验,使我完全的掌握了ACS2002软件,并且更加加深了对步进电机的理解。这次课设我学会了怎样系统地设计一个软硬件控制系统,加深了对8088、驱动模块、步进电机等模块工作方式的理解运用,也强化了软件编写和理解能力。在经过不懈的努力后,终于让电机实现了正反转。这时,老师又提出了关于硬件的问题,让我们认清了自己的能力,只是会简单地连线。在小组同学的讨论和老师的启发下,把硬件各部件的工作关系原理基本上弄清了。这次课设使得我认清了自己的不足,在课设的过程中也是自己学会了很多。特别是要感谢老师的耐心指导,使得我受益匪浅。参考文献1信息工程自动化实验室计算机控制技术实验指导书.太原理工大学。2马春燕。微机原理与接口技术。电子工业出版社,2009,12。附录A:电路原理图附录B:程序清单STACKSEGMENTSTACKDW256DUP(?)STACKENDSDATASEGMENTTABLE1DB01H,03H,02H,06H,04H,0CH,08H,09H;正转拍顺序TABLE2DB09H,08H,0CH,04H,06H,02H,03H,01H;反转拍顺序DATAENDS;8255B口输出值CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMAIN:MOVAL,80H;给8255控制口送入控制字OUT63H,ALA0:MOVCX,0016H;正转周期数A1:MOVBX,OFFSETTABLE1PUSHCXMOVCX,0008H;步进电机正转数为8A2:MOVAL,BX;8255输出OUT61H,ALCALLDALLY;调用DALLY延时程序INCBXLOOPA2;一个周期完否POPCXLOOPA1;正转完否MOVCX,0024H;反转周期A3:MOVBX,OFFSETTABLE2PUSHCXMOVCX,0008H;步进电机反转数为8A4:MOVAL,BXOUT61H,ALCALLDALLY2INCBXLOOPA4;一个周期完否POPCXLOOPA3;反转完否JMPA0DALLY:PUSHCX;延时程序MOVCX,0150H;改变CX可实现调速T1:PUSHAXPOPAXLOOPT1POPCXRETCODEENDSENDSTART-