版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院课程设计摘 要:本设计通过单片机AT89C51对步进电机进行控制,通过IO口输出的具有时序的方波作为步进电机的控制信号。主要介绍了步进电机控制器、驱动电路和LED显示电路的设计,实现了步进电机的控制。单片机考虑接受来自RS232的速度控制指令,通过单片机转换成步进电机的走步脉冲,同时对2只步进电机的连续速度控制。LED数码管显示电机运行状态,通过速度与走步脉冲的关系,实现加速、减速和恒速工作。关键词:单片机、步进电机、调速控制、AT89C51目 录1、 步进电机的概述.1 1.步进电机的概念.12.步进电机的发展概况.13.步进电机速度与走步脉冲的关系.2二、设计的任务要求与思路.
2、31.设计任务要求.32.设计思路.4三、硬件的设计与实现.61.控制电路.62.最小系统以及AT89C51单片机简介.73.电源模块.94.驱动电路以及步进电机.105.显示模块.126.RS232串口通讯模块.13四、软件的设计与实现.131.系统总体框图.13 2.四位八段LED数码管显示代码.143. PWM调节输出模块代码.174. 1*8距阵键选择模块程序.19五、课程设计总结.22六、附录:电路总原理图.23七、参考文献.241小功率步进电机速度控制系统设计报告1、 步进电机的概述1. 步进电机的概念:步进电机是一种将电脉冲信号变换成相应的角位移或直线位移的机电执行元件。控制步进
3、电机的输入脉冲数量、频率及电机各相绕组的接通顺序,可以得到各种需要的运行特性。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。随着经济的发展技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用C语言编写软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行
4、方式。2.步进电机的发展概况:步进电机的原始模型起源于1830年至1860年。1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中,这被认为最早的步进电机。1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪60年代后期在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制
5、性场合步进电机用得最多。步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。3. 步进电机速度与走步脉冲的关系步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机区别于其他控制电机的最大特点
6、是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。该设计采用的电机为四相步进电机。采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。本设计利用单片机进行控制,主要是利用软件
7、进行环形脉冲分配。四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。各种工作方式在电源通电时的时序与波形分别如图所示。图1 时序与波形图本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。二、设计的任务要求与思路1.设计任务要求设计以单片机为内核的小功率步进电机速度控制器。单片机考虑接受来自RS232的速度控制指令,通过单片机转换
8、成步进电机的走步脉冲,同时对2只步进电机的连续速度控制。要求讨论速度与走步脉冲的关系,并实现加速、减速和恒速工作。硬件的设计选择计算机51内核的单片机,设计支持计算机工作的外围电路,讨论加速、减速和恒速工作方式下的控制策略;设计步进电机驱动电路,设计键盘、显示接口电路,考虑设计RS232串行通讯通口还要包括电源等相关电路的设计方案。软件设计分配系统资源,编写系统初始化和主程序模块。步进电机控制信号输入程序以及步进电机控制程序设计,显示与键盘等处理程序其它程序模块。2. 设计思路步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频
9、率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。单片机使用AT89c51,通过控制模块发出信号,经单片机处理后,向步进电机的驱动器和状态显示模块发出触发信号,使得步进电机接收到驱动器的触发信号,就开始动作。状态显示模块显示当前步进电机的转速。电源为各个模块提供电能,让每个模块都能正常工作的基础。步进电机不能识别单片机发出的信号,应有驱动模块将单片机发出的信号进行转换、放大;才可以让步进电机做出相应的动作;驱动器在这里起到桥
10、梁作用,为单片机与步进电机的连接而采用的;步进电机有单、双拍及单双混合式工作方式,课程设计采用四相五线式步进电机(双四拍工作方式),驱动模块应具备四根相线,才能满足步进电机的要求,驱动模块选取ULN2003芯片,ULN2003特点是低电压,低功率控制元件,符合课程设计要求;现在是智能化的时代,通过PC机发出要求,硬件做出相应的反馈动作,课程设计的控制模块就涉及到PC机,通过单片机串口通信,就可以与PC机连接、通信,这样就可以远距离,可监视、控制步进电机的运转速度;显示模块通过一对四联式的数码管构成,能够时时刻刻反映电机的状态,PC机与数码管都可以显示电机的运转速度,二者的区别在于数码管是固定在
11、某个地方,给人指示的作用,而PC机是作为控制而显示的;各个模块都是独立的个体,软件程序是将整个模块合理的统一调度起来,完成课程设计任务。 电源模块51内核的单片机LED数码显示管步进电机ULN2003驱动模块键盘 图2 步进电机速度控制系统原理框图3、 硬件的设计与实现1. 控制电路据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、K3、K4、K5、K6、 K7、K8,控制电路如下图所示。通过K1、K2、K3选择单相、二相、一二相驱动;通过K4、K5选择正转、反转;通过K6、K7控制转速,K8控制系统回复初始状态或重置状态。根据步进电机的工作原理
12、可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有:软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过K6、K7的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。图3 键盘开关电路2. 最小系统以及AT89C51单片机简介单片机最小系统或者称为最小应用系统,就是用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。如图3
13、所示。图4 最小系统AT89C51是一种带4K字节闪烁可编程可擦除只读存储器和128bytes随机存取数据存储器的低电压、高性能CMOS8位微处理器。片内置通用8位中央处理器,采用ATMEL公司的高密度、非易失性存储技术的生产,兼容标准MCS-51指令系统。AT89C51提供以下标准功能:4K字节Flash闪存存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器;一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信及中
14、断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一次硬件复位。用AT89C51足以实现对步进电机的简单控制。89C51单片机其管脚图如图4所示,其各引脚功能如下: VCC:供电电压。 GND:接地。 P0P3口:4个8位I/O端口,每个端口既可以用作输入,也可用作输出。P3口也可作为AT89C51的一些特殊功能口。 P3.0 RXD(串行输入口); P3.1 TXD(串行输出口); P3.2 /INT0(外部中断0); P3.3 /INT1(外部中断1) ; P3.4 T0(计时器0外部输入); P3.5 T1(计时器1外部输入); P3.6 /WR(外
15、部数据存储器写选通); P3.7 /RD(外部数据存储器读选通)。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 图5 89C51芯片引脚图ALE:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,CPU只访问片外ROM程并执行外部存储器中的指令;当/EA端保持高电平时,CPU只访问片内Flash ROM并执行内部存储器中的指令。 XTAL1:反向
16、振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3. 电源模块电源是各种电子系统与设备的源动力,电源系统出故障,会使整个电子设备不能正常工作,因此电源性能的好坏直接影响到系统与设备工作质量和效率。在电子电路中,通常都需要电压稳定的直流电源供电,直流稳压电源是一种性能接近理想电压源的直流电源。通过变压,整流,滤波,稳压,使电源输出某一稳定电压值。系统所用电源模块电路如下图所示:图6 电源模块电路图线性稳压电源由变压、整流、滤波和稳压三个部分组成。变压是将输入的220V的交流电变成所需大小的交流电;整流指把大小、方向都变化的交流电变成单向脉动的直流电;滤波指滤除脉动直
17、流电中的交流成分,使得输出波形平滑;稳压指输入电压 波动或负载变化引起输出电压变化时,能自动调整使输出电压维持在原值。图7 直流稳压电源的组成4. 驱动电路以及步进电机步进电机是工业过程控制及仪表控制的主要控制元件之一,它具有以下几个显著特点: 步进电机可以直接接受数字信号,而不再需要进行D/A转换; 步进电机具有快速启、停能力,可在一刹那间实现启动或停止。 步进电机具有精度高,步距角可由每步90°降低到0.36°。步进电机由于精度高及不用传感器,故定位精确。进电机不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器,如下图所示。它由脉冲发生控制单元、功率
18、驱动单元、保护单元等组成。驱动单元与步进电动机直接耦合,也可理解成步进电动机微机控制器的功率接口。步进电机控制指令脉冲发生控制单元功率驱动单元反馈与保护单元 图8 步进电机驱动电路原理框图通过ULN2803构成驱动电路,电路图如下图所示。通过单片机的P3.4P3.7输出脉冲到ULN2003的1B4B口,经信号放大后从1C4C口分别输出到电机的A、B、C、D相。图9 驱动电路电路图5. 显示模块本设计采用四位共阳极七段数码管动态显示,用来显示。它将所有数码管的8个段线相应地并接在一起,并接到 AT89C51,由P2口控制字段输出。而各位数码管的共阳极由AT89C51的P0口控制Q2Q5来实现4位
19、数码管的位输出控制。由于单片机内P0口没有上拉电阻,单片机上的P0口需接上上拉电阻,同时段码和P2口之间需要加限流电阻。图10 显示模块电路这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,同一时刻如果各位数码管的位选线都处于选通状态的话,4位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选
20、线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。6. RS232串口通讯模块本设计采用RS232串行通讯通口,来实现计算机与单片机的通信。其具体的电路图如下图所示。图11 通讯串口模块电路4、 软件的设计与实现1.系统总体框图单片机是系统的核心,主要承担控制信号的接受,逻辑分析和运算
21、,控制量的输出和显示的运算和输出等功能。本程序采用模块化设计,针对上述功能主要包括主函数、键盘扫描、串口中断、计时中断和显示程序几个模块。其中,主函数主要负责对单片机、内部元件及中断等工作方式进行定义和设定,并协调好各模块之间的运行时序,其流程图如下:图12 系统总体框图2.四位八段LED数码管显示代码部分代码如下:#include "reg52.h"#include "intrins.h" /_nop_();延时函数用#define Disdata P0 /段码输出口#define discan P2 /扫描口#define uchar unsigne
22、d char#define uint unsigned intsbit DQ=P33; /电压输入口sbit DIN=P07; /LED小数点控制sbit k5=P14;uchar up_alarm=20;uint h; uchar flag;/*电压小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
23、0x90,0xff,0xbf;/共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" uchar code scan_con=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe; /列扫描控制字uchar data temp_data2=0x00,0x00; /读出电压
24、暂放uchar data display8; /显示单元数据,共4个数据和一个运算暂用/*11微秒延时函数*/void ser_init()TMOD=0X20;SCON=0X50;TH1=0XFD;TL1=0XFD;TR1=1;void delay(uint t)for(;t>0;t-);/*显示扫描函数*/scan()char k; for(k=0;k<7;k+) /四位LED扫描控制 Disdata=0xff; Disdata=dis_7displayk; if(k=4)DIN=0; discan=scan_conk;delay(200); discan=0xff; .3.PW
25、M调节输出模块代码部分代码如下:#include<reg52.h>unsigned int pulse_width_MAX = 0xF0; / ;PWM 脉宽最大值, 占空比 = 93.75%unsigned int pulse_width_MIN = 0x10; / ;PWM 脉宽最小值, 占空比 = 6.25%unsigned int step =0x38;unsigned int pulse_width;unsigned int i,j;unsigned char state;void PCAinit(); /PCA模块初始化void delay1ms(unsigned in
26、t TIME); /1ms延时程序(大概是1ms)void work0_enter();/调节占空比void work1_add();/调节占空比void work2_sub();/调节占空比void work3_stop(); /调节占空比void st(); /用来表示pulse_width的状态函数void main(void)EA=0;PCAinit(); /初始化PCA定时器zhankongbi();void PCAinit()CMOD=0x80; /PCA 在空闲模式下停止 PCA 计数器工作/PCA 时钟模式为fosc/12/禁止 PCA 计数器溢出中断CCON=0x00; /禁
27、止 PCA 计数器工作, 清除中断标志、计数器溢出标志CL=0X00; /清0计数器CH=0X00;/下面设置模块0为 8 位 PWM 输出模式, PWM 无需中断支持。脉冲在P3.7(第11脚)输出CCAPM0=0x42; /PCA(计数器阵列)模块0的工作模式 :8位PWM工作模式PCA_PWM0=0x00; /赋值为0,pwm才能有高电平输出/下面设置模块1为 8 位 PWM 输出模式, PWM 无需中断支持。脉冲在P3.5(第9脚)输出CCAPM1=0x42; /PCA(计数器阵列)模块1的工作模式 :8位PWM工作模式PCA_PWM1=0x00; /赋值为0,pwm才能有高电平输出E
28、PCA=1; / 开 PCA 中断EA =1; / 开总中断CR=1; /将PCA 计数器打开void delay1ms(unsigned int TIME)for(i=0;ifor(j=0;j<400;j+);void st()if(pulse_width=pulse_width_MIN)state=0;if(pulse_width=pulse_width_MAX)state=1;.4.1*8距阵键选择模块程序部分代码如下:#include<reg52.h>#include<vardfn.h>#include<disp.h>#include<k
29、eyscan.h>void keyscan(); void disp();void work0_enter();void work1_add();void work2_sub();void work3_stop();void main() t400ms=100; buf4=0xff; keycnt=0x05; /去抖延时器 TMOD=0X01; /定时器0 工作发生1 TH0=0XF0;/定时器设初值,定5MS TL0=0X60; TR0=1; /开定时 while(1) while(!TF0); TF0=0; /5ms到主循环一次 TH0=0XF0; TL0=0X60; keyscan();/调用按键扫描 disp(); switch(sta) case 0:work0_enter();break; /指定电压值输入 case 1:work
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网线布放施工方案(3篇)
- 英语合唱活动策划方案(3篇)
- 街道新闻发布应急预案(3篇)
- 道路路基砼施工方案(3篇)
- 铁路石道床施工方案(3篇)
- 险企内部营销方案(3篇)
- 餐厅策划营销活动方案(3篇)
- 26年高性价比靶点筛选指南
- 国际贸易就业方向全解析
- 化妆品安全规范培训
- 坚守教育底线筑起师德防线
- pep六年级英语下册Unit4单元总复习课件
- 地质调查员(地质灾害方向)职业技能竞赛试题
- 钢结构答辩课件
- 2023年辽阳市太子河区数学六年级第二学期期末达标测试试题含解析
- 轮机概论-大连海事大学
- 大学生健康教育(复旦大学)【超星尔雅学习通】章节答案
- 国际贸易实务题库(含答案)
- 2023-2025年xx市初中学业水平考试体育与健康考试体育中考理论考试题库
- YY/T 0076-1992金属制件的镀层分类 技术条件
- SB/T 10479-2008饭店业星级侍酒师技术条件
评论
0/150
提交评论