单片机课程设计_第1页
单片机课程设计_第2页
单片机课程设计_第3页
单片机课程设计_第4页
单片机课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、余战科我学院课程设计报告题目单片机控制步进电机课程名称单片机原理及接口技术院部名称专业自动化班级M10自动化学生姓名学号课程设计地点课程设计学时指导教师高峰金陵科技学院教务处制【注:根据课程设计大纲第四项具体要求撰写课程设计报告】1 设计任务和要求3.2 设计思路4.3 系统硬件设计5.3.1 硬件电路的工作原理5.3.2 步进电机模块5.3.3 控制模块6.3.4 主要元件介绍:6.4 软件编程1.1.5 调试过程与结果2.0.5.1 正转结果显示:2.05.1.1 正转加速:2.1.5.1.2 正转减速:2.1.6 总结与体会2.4.7 参考资料2.6.8 附录2.6.1 设计任务和要求单

2、片机课程设计是考察学生利用所学过的专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合规范的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。本次设计考核的能力主要有:1) 专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电机与拖动、微特电机及其驱动、计算机高级语言、计算机辅助设计、计算机办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。2)项目设计与运作能力,团队协作能力,技术文档撰写能力,PP

3、T汇报与口头表达能力。3)电气与自动化系统的设计与实际应用能力。要求完成的工作量包括:1)现场仿真演示效果。2)学生结合课题进行PPT演讲与答辩。3) 学生上交课题要求的各类设计技术文档。2设计思路电路基本理论:步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可通过控制脉冲数来控制角位移量,从而达到准确的定位目的。通过对步进电机的软件设计和硬件设计包括步进电机的结构、原理及应用,根据原理和硬件的设计利用c语言编写程序,经过反复运行和调试,实现单片机对步进电机的控制。步进电机是机电控制中一种常用的执行机构,

4、它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。基于单片机和p

5、roteus的步进电机控制电路的基本组成如图所示:根据设计要求,采用的方案如下。硬件部分实现电机转动,包括控制开关模块;电机转动模块。软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动。电源驱动89C51单片机,在89C51中装载程序,通过开关按键来输入信号,89C51向驱动电路提供信号使步进电机动作。3系统硬件设计3.1 硬件电路的工作原理XT*L1具TWRtT.IFC所效g FC的8 P0.4134 FTWF pre 萩pc PC7J3 72.G«7 -i F PZ Zf*iri mr F2.4flSi12 工阳】 PZ 口阳斗 +注P3 口田

6、口 pj 1/rxo F - 5 0 F: LE.*KIP3HP3j=u»d?京F总电路图通过对开关k1k2k3的开关,来实现对步进电机的正反转和停止,通过k4k5来进行加减速,并且有相应的LED灯的显示。3.2 步进电机模块STEPPER-MOTOR功能:单片机输出的程序通过转换器和电机驱动器给步进电机一个脉冲信号,使步进电机实现正转与反转3.3 控制模块功能:通过控制台实现对单片机程序的开与关3.4 主要元件介绍:3.4.1 步进电机:步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机区别于其他控制电机的

7、最大特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机分三种:永磁式(PM,反应式(VRR和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。步进电

8、机28BYJ4&步进电机28BYJ48型四相八拍电机,电压为DC5DC12V当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A000),双(双相绕组通电)四拍(AB-BC-CD-DA-ABp。),八拍(A-AB-B-BC-C-CD-D-DA-A。)四相步进电机有两种运行方式,一、四相四拍;二、四相八拍。要想搞清楚四相八拍

9、运行方式下步进电机的转速如果计算,需要先清楚两个基本概念。1、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.2、步距角:对应一个脉冲信号,电机转子转过的角位移用9表示。9=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为8=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为9=360度/(50*8)=0.9度(俗称半步)。这两个概念清楚后,我们再来计算转速,以基本步距

10、角1.8°的步进电机为例(现在市场上常规的二、四相混合式步进电机基本步距角都是1.8°),四相八拍运行方式下,每接收一个脉冲信号,转过0.90,如果每秒钟接收400个脉冲,那么转速为每秒400X0.90=360°,相当与每秒钟*$一圈,每分钟60转。由于单片机接口信号不够大需要通过ULN200敛大再连接到相应的电机接口,如下:11 %1山;5案 5, &<,<.V 二 £*二D IR:R提砥尔hR*G步进电机驱动橙黄粉蓝十AtJ(P1口)10000x08110.00x0c01000x0401100x0600100x0200110x03

11、00010x0110010x09所以可以定义正转励磁序列为A->AB->B->BC->C->CD->D->DAucharcodeFFW=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;/反转励磁序列为AD->D->CD->C->BC->B->BA->AucharcodeREV=0x09,0x08,0x0c,0xO4,0x06,0x02,0x03,0x01;步进电机28BYJ48的主要技术参数:L或技术参数电机厘号电氏¥国中机LJRm产51WP.?.工P.P.S定1点甲d

12、B中后度2Wr回643001:酗二300<550zJW.抬600VAC1S3、四相步进电机的脉冲分配规律目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。各种工作方式在电源通电时的时序与波形分别如图1a、b、c所示。本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频

13、率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。3.4.2 89C51 单片机Atmel公司生产的89C51单片机是一种低功耗/低电压高性能的8位单片机,它采用CMO和高密度非易失性存储技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的FlashROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。89C51单片机部分引脚功能介

14、绍:PLCC£ n (movKXM n 二 clwldJ n ou<qod nPL5 PL6 PL7 RST (RXDJP3.0NC (TXDJP11 府前P32 而T)P33 (T0)P3.4 (T1W3.5c 匚CCCC 匚 C. 匚 C 匚JO 11B141516176 5 4 3 2 1 44434241403938 3736 史34 33323130 291819202122232425262728 P0.4(AD4) npgAD5)=1 P0.6(AD6)= P(h7(AD7) 口跖/ =«NC= AL&TROG UPSEN P2.7(A15)3P

15、2.6(A14) P2.5(A13);£ql< 口 E£-IVJ u.£=<) u鼠6S OTdwv) 0 %u Q5u nvix u2为匡 u 9.Ed部)PDIPP1Q c7 4fl口 -P1J匚2393 PO WADO)PIN c338n Pn.UADl)Pl3匚437口 PO 2(AD2)PL4 c5363 P0 3IAD3)PL5 c635 P0.4(AD4)Pl.6 c7M P0.5(AD5)PL7 口333=> P0,6(ADfi)RST c9323 PD.7(AD7)(RXD)P3.0 c10313 EA/j(TXD)P3J c1

16、1J <1n ALETROG(1NTOJP3.2 c12293 PSEN(1NT】)P3.3 E13283 P2,7(A15)(T0JFS4 c1427=> P2 61Al4)(T2JP3.5 c15263 P23A13)(WRJP3.6 g1625=> P2.4(An)(RDJP3.7 匚17243 P23(A1I)XTAL2 E1823口 P£2(A10)XTALl 匚)9223 P2.IIA9)GND c20213 PNOlAg)XTAL2(18脚):接外部晶体和微调电容的一端;在89C51片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若

17、需采用外部时钟电路时,该引脚输入外部时钟脉冲。89C51/8031正常工作时,该引脚应有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外部时钟时,该引脚输入外部时钟脉冲。RST/VPD(9脚):RST:复位信号输入端,高电平有效。当此输入端保持两个机器周期的高电平时,就可以完成复位操作。RST/VPD(9脚):VPD:RSH唧的第二功能,备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动接入该引脚,为RAM!供备用电源,以保证RAM中的信息不丢失,使得复位后能继续正常运行。EA/Vpp(31脚):Vpp

18、:又t8751片内EPROMI化编程时,编程电压输入端(12-21V)。P0口:漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载。P0口可作为一个数据输入/输出口;在CPUJ问片外存储器时,P0口为分时复用的低8位地址总线和8位数据总线。P1口:带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。P3口:带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。P3口除作为一般I/O口外,每个引脚都有第二功能。4软件编程4.1主流程图4.2主要程序:#include<reg52.h>#defineuintunsignedint#define

19、ucharunsignedcharucharcodeFFW=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;ucharcodeREV=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;sbitK1=P3八0;sbitK2=P3A1;sbitK3=P3A2;sbitK4=P3A3;sbitK5=P3A4;voidDelayMS(uintms)uchari;while(ms-)for(i=0;i<120;i+);voidSETP_MOTOR_FFW(ucharn)uchari,j;intM=25;for(i=0;i<5*n;

20、i+)for(j=0;j<8;j+)if(K3=0)break;P1=FFWj;if(K4=0)P0=0xf6;DelayMS(20);elseif(K5=0)P0=0xee;DelayMS(100);elseDelayMS(50);if(K4=1&&K5=1)P0=0xfe;voidSETP_MOTOR_REV(ucharn)uchari,j;intM=25;for(i=0;i<5*n;i+)for(j=0;j<8;j+)if(K3=0)break;P1=REVj;if(K4=0)P0=0xf5;DelayMS(20);elseif(K5=0)P0=0xed

21、;DelayMS(100);elseDelayMS(50);if(K4=1&&K5=1)P0=0xfd;voidmain()ucharN=50;while(1)if(K1=0)P0=0xfe;SETP_MOTOR_FFW(N);if(K3=0)break;elseif(K2=0)P0=0xfd;SETP_MOTOR_REV(N);if(K3=0)break;elseP0=0xfb;P1=0x03;4.3程序分块介绍:4.3.1 正反转的控制字设定:ucharcodeFFW=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;ucharcodeREV=

22、0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;本列4组步进电动机工作于8拍方式正转励磁序列为A->AB->B->BC->C->CD->D->DA反转励磁序列为AD->D->CD->C->BC->B->BA->A正转:sbitK1=P3A0;反转:sbitK2=P3A1;停止sbitK3=P3A2;加速:sbitK4=P3A3;减速:sbitK5=P3A4;4.3.2 延时程序:voidDelayMS(uintms)uchari;else DelayMS(50);while(ms

23、-)for(i=0;i<120;i+);4.3.3 正转部分voidSETP_MOTOR_FFW(ucharn)uchari,j;intM=25;for(i=0;i<5*n;i+)for(j=0;j<8;j+)if(K3=0)break;P1=FFWj;if(K4=0)/加速P0=0xf6;DelayMS(20);elseif(K5=0)/减速P0=0xee;DelayMS(100);if(K4=1&&K5=1)P0=0xfe;按照正转励磁序列A->AB->B->BC->C->CD->D->DA4行通电,转动n圈,在转

24、动过程中,按下加速按钮,电机加速,对应的LEW会亮,按下减速,电机减速,对应的LEW会亮,如果按下停止按钮,会立刻停止转动,亮停止灯。4.3.4 反转部分:voidSETP_MOTOR_REV(ucharn)uchari,j;intM=25;for(i=0;i<5*n;i+)for(j=0;j<8;j+)if(K3=0)break;P1=REVj;if(K4=0)P0=0xf5;DelayMS(20);elseif(K5=0)P0=0xed;DelayMS(100);elseDelayMS(50);if(K4=1&&K5=1)P0=0xfd;按照反转励磁序列为AD-

25、>D->CD->C->BC->B->BA->A4行通电,转动n圈,在转动过程中,按下加速按钮,电机加速,对应的LEW会亮,按下减速,电机减速,对应的LED灯会亮,如果按下停止按钮,会立刻停止转动,亮停止灯。4.3.5 主程序:voidmain()ucharN=50;/运转圈数while(1)if(K1=0)P0=0xfe;/LED1点亮,正转指示灯SETP_MOTOR_FFW(N);/电动机正转if(K3=0)break;5.1.1正转加速:elseif(K2=0)P0=0xfd;/LED2SETP_MOTOR_REV(N);if(K3=0)break

26、;elseP0=0xfb;/LED3P1=0x03;5调试过程与结果5.1正转结果显示:点亮,反转指示灯/电动机反转点亮,停止指示灯MEM同用启向tdeXTM-iFDIwMflPoatKURSTPC才心,iJWfl里Nf<M曰2tfM口pson/Mla!£Fl!g4瓯P?BFP2Di*1*n.nnia口力ftl.DflVJ?rj-l-qrpPI2P32JHT0P13内审而TPS'TOMSF-.3-TiFteNT*3J-Wr-!'.iJi:XTM2fisrFZ.DMaOFl.lfAfrlpuzrwz"'IPC3Mip«B7H=ipaTi

27、'ftjDJ=!Hi山巴口l-l'-11F-2.5-13I-I-14P2.7.1-5年"人口PIpaariNri团中1。F3£tfT1F-BMIRPgrjiifF5.1.2正转减速:篁/±1犀咄iJHErTALiP2OWm2pzi.nrAMPC.11PHZffdXZ23gsPSmgP:.5i,iiiD5P:前电力PtJ7M7ME南1由F1.1F1J:F1JF1.-41.3F1AP2.如11M.山,L2P2,13Pi.AU依加帕paaMp5nus."i而TfSmmrF.-VTOMS中事甘歪5.2反转结果显示:I,11十mm呈STEPPER-

28、MOTOT,匕;昌12正SC支舶2阔MMT*L2sinPO中上T白m川健RSt用山阳E.鹏OTF2cL阳FS.UB0P2.2JA-I0FEW陞国及甘alEP2再JRP1.&A13吁3”P£7JMT5FlLFl1PJ1"EDPJWlMHpaiTJFl?P1i打弓THrjha京11Fl7力口口hjyr二3五国1。,1T"S7T才与STT五皿5.2.1反转加速:._1±DI1;'PF二.U2,i-h7CSTEPPERdOTCfillLhZUUJ*,4F一.-:Sar»,11二口fMUFG.1«'1iPD3叩三单。即离

29、由PDNl与i*比6NDi'jr<4P3XWT甩NAfi:n.uHfi冷口P2J3M1135P2.WI8;L:p-I-正阡s:5.2.2反转减速:Fl口Pii.iPHIFfSF-.I/TPFIBMTiOpaarinfii的闻和F3£,iT1,£自述F中工而ddfl12I41r:"n"MW好陋心pj.irrjj!p?亦而*EFl-STT1FjJ.'FF5.3停止结果显示;'Xr*LlHITP3&间2Pj日FDJ他行咫叱14沁工脑怕P3jMj心M尔用不PU-nwva。2i*W2:pz.owe吃jwo皿加川口0311F31

30、NSTEF'F'ER-MOTURrL-!."'i'I通WTO的SrsrjHD"在仿真过程中要注意元件的选择,还有仿真跟实物存在的差异,仿真的数据不一定就适合实物,所以要根据实物来进行修改,通过不断的调试才能符合要求,在连接电路时要看好引脚。6总结与体会在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:CAD制图、汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存

温馨提示

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

评论

0/150

提交评论