毕业论文:基于89c51单片机的步进电机控制系统设计_第1页
毕业论文:基于89c51单片机的步进电机控制系统设计_第2页
毕业论文:基于89c51单片机的步进电机控制系统设计_第3页
毕业论文:基于89c51单片机的步进电机控制系统设计_第4页
毕业论文:基于89c51单片机的步进电机控制系统设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广西大学行健文理学院毕业论文题目基于89C51单片机的步进电机控制系统设计学部理工学部专业自动化班级2007级1班学号0738230126学生姓名指导教师二一一年六月摘要步进电机广泛应用于工业控制、家用电器和仪器仪表当中,它是一种性能良好的数字化执行元件,它利用输入脉冲与电机轴转角成比例的特征,将脉冲转变成角位移,因此非常适合单片机控制。基于单片机设计的控制系统可以实现较复杂的控制,角度,速度,方向都能任意设置。本论文设计一个基于89C51单片机的步进电机控制系统。该系统以89C51单片机为核心,设计运用虚拟仿真技术,电力电子技术,单片机原理,数字电路,模拟电路,脉宽调制等进行模块化设计,以步进电机,89C51单片机,ULN2003达林顿管,LCD1602液晶显示器为主要硬件,以KEILUVISION3集成开发环境为软件开发平台,实现了步进电机的精确控制和数据检测。本文主要介绍了步进电机控制系统的设计方案与器件选型,硬件设计、软件设计和PROTEUS仿真与实物验证。该系统以四相步进电机为被控对象,包含步进电机驱动模块和步进电机主轴上的实物对象,通过单片机P1口控制输入步进电机驱动脉冲的频率、个数和序列,可以得到精确的速度、步距角和运行方向,并直观的显示在LCD1602液晶显示器。该系统通过PROTEUS仿真和制作实物验证,基本符合了设计要求,并完成了理论到实践的联结。关键词步进电机单片机脉宽调制仿真THESTEPPERMOTORCONTROLSYSTEMDESIGNBASEDONTHE89C51MONOLITHICABSTRACTSTEPPERMOTORSAREWIDELYUSEDININDUSTRIALCONTROL,HOMEAPPLIANCESANDINSTRUMENTSWHICH,ITISAGOODPERFORMANCEOFDIGITALIMPLEMENTATIONOFCOMPONENTS,ITHASINPUTPULSEISPROPORTIONALWITHTHEMOTORSHAFTANGLECHARACTERISTICS,ITPULSESINTOANGULARDISPLACEMENT,SOITISSUITABLEFORSCMMICROCONTROLLERBASEDCONTROLSYSTEMDESIGNEDTOACHIEVEAMORECOMPLEXCONTROL,ANGLE,SPEED,DIRECTIONCANBESETARBITRARILYTHEDESIGNOFATHESISBASEDON89C51MICROCONTROLLERASTHECOREOFTHESTEPPERMOTORCONTROLSYSTEMHE89C51MICROCONTROLLERASTHECORESYSTEMDESIGNUSINGVIRTUALSIMULATIONTECHNOLOGY,POWERELECTRONICSTECHNOLOGY,SCMPRINCIPLES,DIGITALCIRCUITS,ANALOGCIRCUITS,PULSEWIDTHMODULATION,MODULARDESIGNTOTHESTEPPERMOTOR,89C51MICROCONTROLLER,ULN2003DARLINGTON,LCD1602LCDMONITORASTHEMAINHARDWARETOKEILUVISION3INTEGRATEDDEVELOPMENTENVIRONMENTFORSOFTWAREDEVELOPMENTPLATFORM,PRECISIONSTEPPERMOTORCONTROLANDDATADETECTIONTHISPAPERDESCRIBESSTEPPERMOTORCONTROLSYSTEMDESIGNANDCOMPONENTSELECTION,HARDWAREDESIGN,SOFTWAREPROTEUSSIMULATIONANDPHYSICALDESIGNANDVERIFICATIONTHEFOURPHASESTEPPERMOTORSYSTEMASTHECONTROLLEDOBJECT,INCLUDINGTHESTEPPERMOTORDRIVEMODULESANDSTEPPERMOTORSPINDLEPHYSICALOBJECT,THROUGHTHECONTROLINPUTPORTP1MICROCONTROLLERSTEPPERMOTORDRIVEPULSEFREQUENCY,NUMBERANDSEQUENCE,CANBEACCURATESPEED,STEPANGLEANDTHEDIRECTIONANDVISUALDISPLAYINTHELCD1602LCDMONITORTHESYSTEMISPRODUCEDBYPROTEUSSIMULATIONANDPHYSICALVERIFICATION,INLINEWITHTHEDESIGNREQUIREMENTS,ANDCOMPLETEDLINKTHEORYTOPRACTICEKEYWORDSSTEPPERMOTORMICROCONTROLLERPULSEWIDTHMODULATIONSIMULATION目录第一章绪论211课题研究的背景及意义212本课题研究国内外动态及意义213研究内容与安排3第二章系统设计方案与器件选型421引言422系统总体设计423步进电机52489C51单片机625LCD1602液晶显示器626本章小结7第三章硬件设计831引言832驱动电路833单片机系统934LCD1602电路935键盘接口1036本章小结10第四章软件设计1141引言1142程序流程图1143控制功能实现1244显示功能实现1445本章小结15第五章PROTEUS仿真与实物验证1651引言1652设计图1653本章小结18结论19参考文献20附录21致谢29第一章绪论11课题研究的背景及意义111本课题研究设计基于89C51单片机控制的4相步进电机系统15,由单片机产生驱动脉冲信号,通过键盘设定步进电机的运行方向和步进速度,在液晶显示器上显示步进角,步进方向,和步进速度,并通过仿真6软件PROTEUS对系统进行仿真和测试。整个系统采用模块化设计,结构简单可靠。本人选择该课题作为毕业设计,不仅可以提高自己的软件编程和硬件电路设计能力,还可以提高自己动手解决实际问题的能力。12本课题研究国内外动态及意义步进电机早在19世纪三十年代出现了步进电机7,那时候的步进电机只是一种自由旋转的电磁铁,工作原理如同今天的反应式步进电机8,我国早在1958年就研制成功了反应式步进电机,并且开始将其应用于数控机床,上世纪60年代中期,人们发明了永磁式和混合式步进电机,不断提高效率和降低功耗。国外方面,1952年美国麻省工学院首先研制成三坐标铣床,传统的电动机也已经不能满足要求,为了适应这些要求,研制了一系列新的具备控制功能的电动机系统,其中便有步进电机。步进电机的发展与计算机工业密切相关,自从步进电机在计算机外围设备中取代了小型直流电动机以后,使其设备的性能提高,很快地促进步进电机的发展,另一方面,微型计算机和数字控制技术的发展,又将作为数控执行部件的步进电机推广应用于其他领域,如电加工机床,医疗仪器,测量仪器等。基于89C51单片机的步进电机控制系统单片机(SINGLECHIPMICROCONTROLLER,SCM),又称为微控制器。它是指在一块半导体芯片上集成了构成计算机的基本要素,步进电机的转速随着输入脉冲频率的变化而变化,调速范围广,灵敏度高,输出转角能控制,而且控制精度高,又能实现同步控制9,所以广泛应用于开环系统10中。步进电机是机电一体化产品中关键组件之一,是一种性能良好的数字化执行元件,步进电机的输入脉冲与电机轴转角成比例的特征,将脉冲转变成角位移,因此非常适合于单片机控制。本课题采用STC89C51单片机11作为控制系统,集成有CPU,4KB的ROM,128字节RAM,4X8位并行I/O口,5个中断源,2个中断优先级,2X16可编程定时计数器,其特点如下1灵活性和适应性。89C51单片机的控制方式由软件完成,如需修改控制规律,只需修改程序即可,在系统调试和升级时,可以不断尝试选择最优参数,直到满意。2可以实现较复杂的控制,而且精度很高。3可提供人机操作界面。要用到键盘和显示单元,实现完整的步进电机控制。4此外,在进行系统设计时常用的EDA软件如MULTISIM、PROTEL、ORCAD等1214对涉及单片机的电路系统无法进行仿真,利用PROTEUS的虚拟仿真技术15应用于单片机系统的设计中,具有明显的经济性和很好的可移植性。采用此设计的步进电机控制方法线路简单可靠,比较节约成本。与一般驱动器相比,除了不能细分之外,其它功能都可以实现,性价比很高。在医疗器械、机器人等没有细分要求的场合,不失为一种理想的选择。13研究内容与安排熟悉和掌握步进电机的工作原理及控制技术,然后通过仿真软件设计步进电机的ULN2003A驱动电路模块,并给出详细的设计思路。熟悉和掌握C51单片机的接口技术,然后通过仿真软件设计基于89C51单片机的键盘输入、LCD输出、步进电机控制、单片机外部晶振等接口电路。掌握和运用C语言编程设计,然后按设计要求启/停,正/反转,速度等编制程序,完成键盘处理与LCD显示。熟悉运用PROTEUS和KEILC51软件进行仿真调试。观察运行模式下仿真结果与设计要求是否相吻合。步进电机正反转,加速,减速,停止,与LCD的显示是否一致,在满足设计要求下进行系统优化,如按键防抖动调整。熟悉运用PROTEL设计制作PCB印刷电路。制作实物进行实验验证。第二章系统设计方案与器件选型21引言212本系统设计方案采用模块化的方式进行,本章节详细讲述该系统主要的四大部件步进电机、89C51单片机、ULN2003达林顿管驱动、LCD1602液晶显示器的型号和适用范围。先简明地画出系统总体设计框图,然后列出各器件的使用说明,最后综合各器件分析其合理性和可行性。22系统总体设计如图21所示,该设计完成基于89C51单片机的步距电机控制系统,该系统由硬件设计和软件设计完成。硬件是整个系统的生命,软件赋予了其灵魂,整个系统设计流程分三步第一步,硬件设计,运用PROTEL软件完成各个外围电路与单片机的接口设计,包括各器件的型号,管脚分配,元器件的封装形式。第二步,软件设计,运用KEIL集成开发软件平台完成系统的控制功能和显示功能。第三步,仿真和实物验证,PROTEUS软件完成模拟仿真电路,PROTEL软件完成设计PCB印刷电路并制作实物。最后进行实验验证。图21系统总体设计框图89C51电机驱动串口通信显示输出键盘输入M23步进电机步进电机是将电脉冲信号转变成角位移或直线位移的执行元件,步进电机突出的特点通过控制输入脉冲的频率达到精确的调速。步进电机的角位移量和输入的脉冲个数严格成正比,在时间上与输入脉冲的时间同步,因此只要控制输入脉冲的个数,电机绕组的通电相序,就可以获得所需的步进角和转向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有的的位置处于定位状态,因此非常适合于单片机的控制。如图22所示,本设计采用的28BJY48型减速步进电机,工作电压5V,步进角度5625X1/64,减速比164,是单极性直流供电的五线四相步进电机。只要对步进电机四相绕组按一定是时序通电,步进电机就能转动,四相步进电机按照通电的时序不同,可分为单四拍,双四拍即(ABBCCDDAAB),八拍(AABBBCCCDDDAA)三种工作方式,单四拍与双四拍步距角相同,单四拍的转动力矩比八拍的小,因为八拍的工作方式的步距角是单四拍和双四拍的一半,八拍既可以保持较高的转动力矩有能够提高控制精度,所以本设计采用八拍作为步进电机的工作方式。图22步进电机通电绕组示意图89C51单片机输出的脉冲驱动能力有限,不能直接驱动步进电机,需要经过一级功率放大,即功率驱动电路。单极性和双极性是步进电机常采用的两种驱动架构,本设计采用的是单极性功率驱动电路,双列直插式16脚封装,将89C51单片机发出了脉冲信号通过ULN2003达林顿管放大驱动步进电机。2489C51单片机89C51单片机一般采用40个引脚封装的双列直插(DIP)方式,采用CHMOS工艺制造的低功耗机型,在型号中间加一个“C”字母作为识别。本设计采用STC的89C51,其应用于本设计的功能如下并行I/O口89C51的4个8位并行I/O口,分别为P0、P1、P2、P3。除了P1口为单一功能,其余的3个端口还分别具有各自不同的第二功能,本设计采用P1口低四位作为脉冲序列输出端,P0口作为LCD的数据信号端,P2口前4位做LCD的控制使能端,P3口作为按键输入信号端。通过软件实现各项功能。复位复位是单片机的初始化操作,只要给复位引脚RST(9引脚)加上两个周期以上的高电平信号,就可以使89C51单片机复位,当程序运行出错或操作错误使系统处于死锁状态时,需要采用按键的方式进行复位。复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个周期的S5P5,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需的信号。89C51复位是由外部复位电路来实现的,复位通常采用自动上电复位,按键复位两种方式来实现的。本设计采用按键手动复位,详细参见322内容。串口通信89C51单片机内部有一个全双工的通用异步接受发送器(UART)用于串口通信,P31TXD发送端,P32RXD接收端,使用这个通信口实现串行异步通信,进行下载软件等操作。由于现在大多数个人计算机设计的都是USB20接口,摒弃了传统的串行接口,所以单片机与计算机通信就需要USB转串口,本设计采用PL2303HX芯片电路进行TTL电平转换,采用USB20转RS232接口与计算机通信。键盘键盘实际上就是一个开关,连接到电源地,键盘闭合逻辑状态为“0”,键盘断开为“1”,本设计采用独立式按键键盘,4X2MIL封装,软件扫描按键与单片机接口电平的状态,软件延时消除按键抖动的方法实现键盘输入功能。25LCD1602液晶显示器LCD1602的可以显示16X2个字符,工作电压为455V,工作电流2MA,本设计采用单列直插式16脚封装LCD1602,用以显示步进电机的运行状态,圈数,方向和速度。该液晶显示器还可以自由调节亮度。26本章小结通过分析步进电机、单片机和液晶显示器的原理和特性,我们可以得出结论,该系统设计是合理和可行的。为后面的硬件设计和软件搭建理论框架,提供参考和基础。步进电机控制系统的组成器件还包括键盘和一些小的元器件,比如电阻,电容,电源开关等;它们和4大部件共同组成了一个基于89C51单片机的步进电机控制系统。第三章硬件设计31引言313本章内容是运用PROTEL软件设计硬件电路原理图,原理图大致分为四个部分,分别为驱动电路,单片机系统,LCD1602电路,键盘输入电路。32驱动电路如图31所示,ULN2003是高耐压大电流达林顿晶体管阵列元器件,每一对达林顿管串联一个27K的基极电阻,在5V工作电压下和TTL或CMOS电路相连,经过ULN2003放大驱动步进电机转动。图31ULN2003达林顿管芯片电路图图32ULN2003达林顿管驱动电路图33单片机系统如图33所示,由89C51单片机及其外接12M晶振至XTAL1(19)、XTAL2(18)引脚组成外部时钟电路和手动按键复位电路RST(9)引脚组成的51单片机最小系统。图33单片机最小系统示意图34LCD1602电路如图34所示,单片机的P0口作为LCD1602液晶显示单元的数据接口,P20、P21、P22作为控制使能端。详细管脚分配参见表31表31LCD1602管脚分配表编号定义管脚分配1VSS电源地/2VDD正极/3VL电源偏压/4RSP205RWP216EP22714数据接口P00P0715背光正/16背光负/图34LCD1602电路图35键盘接口键盘P32、P33、P34、P35作为键盘输入信号端。公共端接电源地,按键为常开触点,按键闭合时接口逻辑电平置“0”。图35键盘输入电路图36本章小结原理图设计的时候会碰到有些元器件找不到的问题,可以直接创建一个封装库,自己新建一个元件。最好把所需要用到的元件放在一起,这样方便下次调用元件。第四章软件设计41引言软件设计主要工作是控制功能和显示功能的实现。本章节内容是运用KEILUVISION3集成开发环境进行程序设计,并采用C语言编写软件程序。程序流程图清晰的描述了该系统运行时的全过程,为了叙述不至于冗长累赘,本章节从中筛选一些关键的程序片段进行说明42程序流程图开始LCD初始化显示定时器初值载入K10K20K30K40NNN启停切换圈数切换正反转切换速度切换返回NYYYY定时器T0中断反转方向标志1正转返回调速YN图41程序流程图43控制功能实现本系统要实现的主要功能是控制步进电机的启停,正反转,加减速和步距角,通过控制脉冲输出顺序和脉冲个数实现上述功能,单片机系统经过初始化后,进入按键扫描程序,等待用户操作,当按下相应的设置按键,在按下启停键后,启动定时器T0中断,进入中断服务程序,系统便按照设定的参数和模式向P1口传送脉冲信号序列。启停控制通过控制启停标志位置“1”或置“0”,中断响应输出或关闭中断。IFK10BEEPWHILEK10/等待键释放ON_OFFON_OFF/启停标志位,每次按键按下取反切换MOTOR_RUN/运行并显示/K1END步进角控制该步进电机为减速电机,减速比为164,电机转子转一圈需要输入64个脉冲,转过的角位移量用表示,则360524(41)步进电机转一圈转过的角度为5625控制圈数即可控制其步进角。IFK20BEEPIFSNUM_DR1SNUM/圈数标志位,每次按键按下圈数自加1SNUM1SNUMIFSNUM0X14SNUM_DRSNUM_DR/大于设定圈数,取反ELSESNUM/圈数自减1SNUM1SNUMIFSNUM0X01SNUM_DRSNUM_DR/K2END正、反转控制步进电机正转时,单片机P1口输出的驱动脉冲序列为从上到下;将单片机反向输出该组序列即可实现步进电机的反转。表41步进电机四相八拍正转表转向A(P10)B(P11)C(P12)D(P13)16进制11100X0E10100X0A10110X0B10010X0911010X0D01010X0501110X07正转01100X06加、减速控制步进电机主轴旋转一圈则需要6464步,即4096步,通过细分步数就可以达到调速的目的。下面也是通过按键扫描后整定参数,中断时执行。IFK40BEEPIFRATE_DR1RATE/速度自加1IFRATE0X10RATE_DRRATE_DR/速度标志位取反,速度减小ELSERATE/速度自减1IFRATE0X01RATE_DRRATE_DR/速度标志位取反,速度增大/K4END中断服务程序VOIDMOTOR_ONOFFINTERRUPT1TL00X33TH00XF5QIFQINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEDELAYNOP_NOP_NOP_NOP_NOP_UNSIGNEDCHARCODEFFW80XFE,0XFC,0XFD,0XF9,0XFB,0XF3,0XF7,0XF6/反转UNSIGNEDCHARCODEREV80XF6,0XF7,0XF3,0XFB,0XF9,0XFD,0XFC,0XFE/正转SBITK1P32/运行与停止SBITK2P33/设定圈数SBITK3P34/方向转换SBITK4P35/速率调整SBITLCD_RSP20SBITLCD_RWP21SBITLCD_ENP22BITON_OFF0/运行与停止标志BITDIRECTION1/方向标志BITRATE_DR1/速率标志BITSNUM_DR1/圈数标志UCHARCODECDIS1“NO0738230126“UCHARCODECDIS2“2010/4/19“UCHARCODECDIS3“STOP“UCHARCODECDIS4“NUMRATE“UCHARCODECDIS5“RUNNING“UCHARM,V0,Q0UCHARNUMBER0,NUMBER10UCHARSNUM20,SNUM120/预设定圈数UCHARRATE3/预设定速率UCHARDATA_TEMP,DATA_TEMP0,DATA_TEMP2/延时T毫秒/110592MHZ时钟,延时约1MS/VOIDDELAYUINTTUCHARKWHILETFORK0K124K/VOIDDELAYBUCHARX/X014MSUCHARIWHILEXFORI0I13I/检查LCD忙状态/LCD_BUSY为1时,忙,等待。为0时,闲,可写指令与数据。/BITLCD_BUSYBITRESULTLCD_RS0LCD_RW1LCD_EN1DELAYNOPRESULTBITP0LCD_EN0RETURNRESULT/写指令数据到LCD/RSL,RWL,E高脉冲,D0D7指令码。/VOIDLCD_WCMDUCHARCMDWHILELCD_BUSYLCD_RS0LCD_RW0LCD_EN0_NOP_NOP_P0CMDDELAYNOPLCD_EN1DELAYNOPLCD_EN0/写显示数据到LCD/RSH,RWL,E高脉冲,D0D7数据。/VOIDLCD_WDATUCHARDATWHILELCD_BUSYLCD_RS1LCD_RW0LCD_EN0P0DATDELAYNOPLCD_EN1DELAYNOPLCD_EN0/LCD初始化设定/VOIDLCD_INITDELAY30LCD_WCMD0X38/162显示,57点阵,8位数据DELAY5LCD_WCMD0X38DELAY5LCD_WCMD0X38DELAY5LCD_WCMD0X0C/显示开,关光标DELAY5LCD_WCMD0X06/移动光标DELAY5LCD_WCMD0X01/清除LCD的显示内容DELAY5/设定显示位置/VOIDLCD_POSUCHARPOSLCD_WCMDPOS|0X80/数据指针80地址变量/LCD1602初始显示子程序/VOIDLCD_INIT_DISDELAY10/延时LCD_INIT/初始化LCDLCD_POS0/设置显示位置为第一行的第1个字符M0WHILECDIS1M0/显示字符LCD_WDATCDIS1MMLCD_POS0X40/设置显示位置为第二行第1个字符M0WHILECDIS2M0LCD_WDATCDIS2M/显示字符MDELAY3000/延时LCD_POS0/设置显示位置为第一行的第1个字符M0WHILECDIS3M0/显示字符LCD_WDATCDIS3MMLCD_POS0X40/设置显示位置为第二行第1个字符M0WHILECDIS4M0LCD_WDATCDIS4M/显示字符MFORM0M2MLCD_POS0X0CM/显示方向符号LCD_WDAT0X3E/数据转换子程序/VOIDDATA_CONVDATA_TEMP0DATA_TEMP/10/高位IFDATA_TEMP00DATA_TEMP00X20/高位为0不显示ELSEDATA_TEMP0DATA_TEMP00X30DATA_TEMP2DATA_TEMP10/低位DATA_TEMP2DATA_TEMP20X30/数据显示子程序/VOIDDATA_DISDATA_TEMPSNUM/显示圈数DATA_CONVLCD_POS0X44LCD_WDATDATA_TEMP0LCD_POS0X45LCD_WDATDATA_TEMP2DATA_TEMPRATE/显示速率DATA_CONVLCD_POS0X4DLCD_WDATDATA_TEMP0LCD_POS0X4ELCD_WDATDATA_TEMP2/显示运行方向符号/VOIDMOTOR_DRIFDIRECTION1/正转方向标志FORM0M2MLCD_POS0X0CM/显示方向符号LCD_WDAT0X3EELSEFO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论