《基于单片机原理的步进电机的正反转程设计报告书.doc》由会员分享,可在线阅读,更多相关《基于单片机原理的步进电机的正反转程设计报告书.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 电机控制课程设计报告书 题 目 基于单片机原理的步进电机的正反转 目 录目 录1摘 要11.概 述2课程设计的任务和要求2设计思路框架3设计方案的模块解释32.系统硬件设计3单片机最小系统原理介绍32.1.1 AT89C51的工作原理4复位电路的工作原理7晶振电路的工作原理8电机驱动电路原理介绍93.系统软件设计10系统流程图10系统程序分析114调试过程与结果195总结与体会206.参考资料217.附 录22摘 要介绍了步进电机正反转控制原理及其接口驱动控制电路,编制了基于MCS-51单片机的步进电机正反转控制的子程序,并应用wave软件进行了仿真。证明在并行口控制中,可以利用软件实现环行
2、脉冲分配,实现程序较简单,同时还可以节省硬件投资。结合单片机控制步进电动机的实际工作环境,从提高控制系统运行的可靠性角度,讨论了实际应用的软件抗干扰技术。 关键词单片机;步进电机;正反转控制1.概 述电机控制课程设计是考察学生利用所学过的电机控制专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合标准的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。本次设计考核的能力主要有:专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电机与拖动、
3、微特电机及其驱动、电脑高级语言、电脑辅助设计、电脑办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT汇报与口头表达能力。电气与自动化系统的设计与实际应用能力。要求完成的工作量包括:制作实际成品,并现场演示效果。学生结合课题进行PPT演讲与答辩。学生上交课题要求的各类设计技术文档。本系统主要由电源模块、控制模块、电机驱动模块、按键中断模块等四个模块组成。电源模块的功能是将交流220V电源经过整流转化为直流+5V电源,以供应控制、显示、驱动等模块供电。控制模块是系统的主导作用,即51单片机的最小系统,
4、用来发送信号以控制电机及显示。电机驱动模块使用的是ULN2003芯片。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的直流工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。按键模块则分为启动按键和中断按键,启动按键使用的是单片机普通的I/O口。用来控制系统启动。中断按键则是使用的外部中断口P3.2,P3.3)。在系统运行时则可以随时控制电机的加减速。该电路工作原理:本项目中选用了最基础的C51单片机做为其控制核心,单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统,本设计采用AT89C51单片机,最小系
5、统一般应该包括:单片机、晶振电路、复位电路、电源电路。单片机最小系统复位电路的极性电容C3的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。51单片机最小系统晶振X1也可以采用6MHz或者12MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。单片机最小系统起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好。P0口为开漏输出,作为输出口时需加上拉电阻RP1,阻值一般为10k。设置为定时器模式时,加1计数器是对内部机器周期计数1个机器周期等于12个振荡周期,
6、即计数频率为晶振频率的1/12。计数值N乘以机器周期Tcy就是定时时间t.设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。图2-1最小系统电路图2.1.1 AT89C51的工作原理AT89C51是一个低电压,高性能CMOS8位
7、单片机带有4K字节的可反复擦写的程序存储器PENROM。和128字节的存取数据存储器RAM,这种器件采用ATMEL公司的高密度、不容易丧失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。本设计采用AT89C51,它提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式停止中央处理器的工作,能够
8、允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位。VCC:电源电压 GND:地P0口:P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。作为输出口时,每一个管脚都能够驱动8个TTL电路。当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0口在闪烁编程时,P0口接收指令,在程序校验时,输出指令,需要接电阻。P1口:P1口一个带内部上拉电阻的8位双向I/O口,P1的输
9、出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1口接收低8位地址。P2口:P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。闪烁编程或校验时,P2口接收高位地址和
10、其它控制信号。P3口:P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表2-1所示:端口引脚第二功能RXDTXDINT0INT1T0T1WRRD表2-1P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。ALE/ :当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储
11、器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现
12、。EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2:片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。2-2 AT89C51引脚复位电路的工作原理单片机在启动运行时需要复位,使CPU以及其他功能部件处于
13、一个确定的初始状态,并从这个状态开始工作,另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。电路中C1电解电容、R2组成复位电路,它的作用是将单片机内部特殊功能寄存器和端口寄存器恢复到初始状态,从内部FLASH存储器的初始状态开始执行。如下图,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。RST引
14、脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,假设使用6MHz晶振,则需持续4S以上才能完成复位操作。在通电瞬间,由于RC的充电过程,在RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位。CPU在第二个机器周期内执行内部复位操作,以后每个机器周期重复一次,直至RST端电平变低。在单片机复位期间,AlE和 信号都不产生。复位操作将对部分专用寄存器产生影响。上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复
15、位状态,进入正常工作模式。只要高电平能保持复位所需要的时间约两个机器周期,单片机就能实现复位。图2-3复位电路晶振电路的工作原理 晶振分为有源晶振和无源晶振两种,其作用是在电路产生震荡电流,发出时钟信号。它是时钟电路中最重要的部件,它的作用是向IC等部件提供基准频率,它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。一般的晶振振荡电路都是在一个反相放大器,两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,一般IC的引脚都有等效输入电容。图2-4晶振电路 该电路工作原理:步进电机是一种将电脉冲转化为角位移的
16、执行机构。解释说明:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度及步进脚。可以通过控制脉冲个数来控制角位移量,从而到达准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而到达调速的目的。本次系统采用的是四相八拍电机,电压为DC5V-DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或者两相绕组的通电状态转变一次,也就对应转子转过一定的角度一个步距角。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,通常的通电方式有单单相绕组通电四拍A-B
17、-C-D-A双双相绕组通电四拍AB-BC-CD-DA-AB-.八拍A-AB-B-BC-C-CD-D-DA-A.。步进电机必须加驱动才可以运转,驱动信号必须为脉冲信号,没有脉冲的时候,步进电机静止,如果加入适当的脉冲信号,就会以一定的角称为步角转动。转动的速度和脉冲的频率成正比。本系统的28BYJ48 5V 驱动的4相5线的步进电机,而且是减速步进电机,减速比为1:64,步进角为5.625/64度。如果需要转动1圈,那么需要360/5.625*64=4096个脉冲信号。图2-5驱动电路 图3-1系统流程图 如流程图所示,系统主要是电机控制部分,以及两个外部中断,下面将一一阐述。1. 电机控制部分
18、电机控制主要是靠的ULN2003驱动电路。本次系统采用的是四相八拍电机,电压为DC5V-DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地运转。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度一个步距角。当通电状态改变完成一个循环时,转子转过一个齿距,而八拍A-AB-B-BC-C-CD-D-DA-A.。Uchar F_Rotation8=0xE2,0xE6,0Xe4,0Xec,0Xe8,0Xf8,0xf0.0xf2;/正转表格,0111,0011,1011,1001,1101,1100,1110,0110/a-ab-b-bc-c-
19、cd-d-da 四相八拍方式void zheng() uint i,j; for(j=0;j64*8;j+) /步距角5.625/64 减速比1/64,8拍,这个循环为一圈。 for(i=0;i8;i+) dianji=B_Rotationi; delay_50us(speed); 本文中断只要使用的两个外部中断int0,int1,使用的是下降沿出发方式,所以,让其中的引脚接地,即可得到一个下降沿,系统就会执行中断程序,由于两个中断是独立的,所以不需要考虑优先级问题。/主程序打开中断void main() EA=1; /全局中断开 EX0=1; /外部中断0开 EX1=1; IT0=1; /
20、中断程序void int0() interrupt 0 delay(500); zdup(); speed-=5; 4. 系统总程序#include#define uchar unsigned char#define uint unsigned int#define dianji P2uchar liushui=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff;uchar F_Rotation8=0xE2,0xE6,0xE4,0xEC,0xE8,0xF8,0xF0,0xF2;/正转表格, 0111,0011 1011,1001 1101,1100 ,11
21、10,0110/a-ab-b-bc-c-cd-d-da 四相八拍方式uchar B_Rotation8=0xF2,0xF0,0xF8,0xE8,0xEC,0xE4,0xE6,0xE2;/反转表格void delay_50us(uint t) uchar j; for(;t0;t-) for(j=19;j0;j-); void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com)lcdrs=0;P0=com;delay(60); /stc12型MCU,延时乘以12倍lcden=1;delay(
22、60);lcden=0;void write_data(uchar date)lcdrs=1;P0=date;delay(60);lcden=1;delay(60);lcden=0;void init()lcden=0;write_com(0x38);write_com(0x0e);write_com(0x06);write_com(0x01);void xianshi1() uint i; /for(i=0;i2;i+) init();write_com(0x82+0x10);for(num=0;num13;num+)write_data(xs11num);delay(300);for(nu
23、m=0;num16;num+)write_com(0x18);delay(2000);delay(5000);write_com(1);write_com(0x82+0x50);for(num=0;num13;num+)write_data(xs11num);delay(300);for(num=0;num16;num+)write_com(0x18);delay(2000); delay(8000);void xszheng() init(); write_com(0x80); for(num=0;num16;num+)write_data(xsznum);delay(300); write
24、_com(0x80+0x43);for(num=0;num9;num+)write_data(xsz1num);delay(300);delay(1000);write_data(0x00);delay(2000);void xsfan() init(); write_com(0x80); for(num=0;num16;num+)write_data(xsznum);delay(500); write_com(0x80+0x43);for(num=0;num10;num+)write_data(xsz2num);delay(500);delay(1000);write_data(0x00);
25、delay(2000);void zdup() init(); write_com(0x82); for(num=0;num12;num+)write_data(zd1num);delay(500);delay(1000);write_data(0x00);delay(1000);void zddown() init(); write_com(0x82); for(num=0;num12;num+)write_data(zd2num);delay(500);delay(2000);write_data(0x00);delay(1000);void zheng() uint i,j; for(j
26、=0;j64*8;j+) /步距角5.625/64 减速比1/64,8拍,这个循环为一圈 for(i=0;i8;i+) dianji=B_Rotationi; delay_50us(speed); void fan() uint i,j; for(j=0;j64*8;j+) /步距角5.625/64 减速比1/64,8拍,这个循环为一圈 for(i=0;i8;i+) dianji=F_Rotationi; delay_50us(speed); void stop()dianji=0x00;void liushui1() uint m; for(m=0;m9;m+)delay(200);P0=l
27、iushuim; P1=liushuim; P2=liushuim;/ P3=liushuim; delay(2000); /P1=0xff; delay(8000); void main() EA=1; /全局中断开 EX0=1; /外部中断0开 EX1=1; IT0=1; IT1=1; speed=150;/delay(10000);/while(1)if(!zz)delay(20);if(!zz)liushui1();xianshi1();delay(200);xszheng();while(1)zheng();if(!fz)delay(20);if(!fz)liushui1();xia
28、nshi1();delay(200);xsfan();while(1)fan();void int0() interrupt 0 delay(500);zdup();speed-=5;void int1() interrupt 2 delay(500);zddown();speed+=5;4调试过程与结果调试过程主要分为硬件调试以及软件调试两大部分。其中硬件调试主要是指将电路接好之后,对其是否虚焊,短路进行检查,主要依靠万用表的电阻档。看连接的焊点是否都导通,不该相连接的焊点是否电阻无穷大。因此,在焊接的时候就应多注意点,要知道,焊错了就不好再改,所以,我们大多采用插针的方式连接电路。这样做就
29、方便插拔,即使连接错误也只要重新插下就可以。软件调试则是比较重要的部分,在系统未成型的时候,主要依靠proteus软件进行仿真。对每个模块进行分块调试。比方调试电机的时候,程序直接就是单片机控制电机执行一些简单的操作。当技术成熟之后,再在程序中加入其它控制模块。在程序调试的时候,我尽量将程序模块化,主程序直接用子函数。这样程序修改起来就比较方便。当所有子函数全部建立好了,再将所有该应用的程序放到主程序里面。在proteus仿真全部可行的情况下,将程序烧到录到单片机中,进行硬件仿真。我们在调试的时候千万不能操之过急,要一步一步的来,一个模块一个模块的弄,这样有利于调试成功!5总结与体会 介绍了步
30、进电机正反转控制原理,及其接口驱动控制硬件电路,以及由MCS-51的单片机控制的步进电机正反转控制的脉冲分配软件实现,并应用wave软件进行了仿真,证明其软件实现比较简单,可以有效节省硬件投资。讨论了实际应用的软件抗干扰技术,可以提高控制系统的可靠性。对脉冲的分配控制思想,还可以推广应用到很多不同的控制场合,如,霓虹灯控制,音乐喷泉等。 本次课设主要以单片机为基础,用单片机来控制电机的转动,熟悉单片机的一般搭建电路,了解一般电子电路与单片机构成简单系统及简单编程的方法。熟练掌握了使用方法,进一步加深对单片机常用指令的理解与运用。能够较熟练的运用protues绘制电路原理图以及进行仿真。以及pr
31、otues的联合调试。在课设过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及常用编程设计思路技巧的掌握方面有了很大的提高。同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习电脑方面的知识有极大的帮助,使我们积累实际电子制作经验,到达学以致用的目的,真正的吧理论和实践结合起来,让我们进一步体验到实践的重要性。对我们以后的工作有很大的帮,同时锻炼了我们团队合做精。同时非常感谢老师的细心指导,当我们遇到困难时,能及时给予我们帮助。1潘晓宁,朱耀东。单片机程序设计实践教
32、程 2刘海宽,包建华。单片机实验与实训教程 3杨居义,马宁。单片机原理与工程应用 4胡健,刘玉宾。单片机原理及接口技术实践教程 5韩志军,刘新民。单片机系统设计与应用实例 6朱博,马鸣鹤。单片机应用技术教程7.附 录附录一:总电路图附录二:元件清单名称数量名称数量AT89C51单片机112m晶振1单片机底座1电解电容20UF22pf瓷片电容21K电阻1ULN20031电木万用板1按键5杜邦线假设干电位器103 10k1插针假设干USB母头供电1发光二极管假设干五线四相步进电机110K电阻假设干附录三:实物图片毕业设计论文原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计论文,是我
33、个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过奉献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计论文的规定,即:按照学校要求提交毕业设计论文的印刷本和电子版本;学校有权保存毕业设计论文的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下
34、,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要奉献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进
35、行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计论文的内容包括:1封面按教务处制定的标准封面格式制作2原创性声明3中文摘要300字左右、关键词4外文摘要、关键词 5目次页附件不统一编入6论文主体部分:引言或绪论、正文、结论7参考文献8致谢9附录对论文支持必要时2.论文字数要求:理工类设计论文正文字数不少于1万字不包括图纸、程序清单等,文科类论文正文字数不少于万字。3.附件包括:任务书、开题报告、外文译文、译文原文复印件。4.文字、图表要求:1文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2工程设计类题目的图纸,要求部分用尺规绘制,部分用电脑绘制,所有图纸应符合国家技术标准标准。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3毕业论文须用A4单面打印,论文50页以上的双面打印4图表应绘制于无格子的页面上5软件工程类课题应有程序清单,并提供电子文档5.装订顺序1设计论文2附件:按照任务书、开题报告、外文译文、译文原文复印件次序装订学习文档 仅供参考
限制150内