单片机控制步进电机(共25页)_第1页
单片机控制步进电机(共25页)_第2页
单片机控制步进电机(共25页)_第3页
单片机控制步进电机(共25页)_第4页
单片机控制步进电机(共25页)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE 东 北 石 油 大 学课 程 设 计课 程 单片机的控制系统课程设计 题 目 单片机控制步进电机 学 院 电气信息工程学院 专业班级 学生姓名 学生学号 指导教师 杨莉 于镝 2014年 7 月 7 日东北(dngbi)石油大学课程设计任务书课程(kchng) 单片机的控制系统(kn zh x tn)课程设计题目 单片机控制步进电机专业 自动化 姓名 学号 主要内容:基于单片机控制步进电机拟定了总体设计方案,完成了硬件设计、软件设计以及系统仿真及试调。基本要求:本设计为了实现用单片机控制步进电机的功能,拟定了以下设计思路:采用单片机控制一个三相单三拍的步进电机工作。步进电机的旋转方向

2、由正反转控制信号控制。电机运转的时候有正转和反转指示灯指示。电机在运转过程中,如果过热,则电机停止运转,同时红色指示灯亮,同时警报响。本设计的关键之处是:如何生成控制步进电机的脉冲序列。主要参考资料:1张毅刚.单片机原理与应用M.北京:高等教育出版社.2008.2楼然苗.51系列单片机设计实例M.北京:航空航天大学出版社.2006.3周润景.Proteus入门实用教程M.北京:机械工业出版社.2011.4汪道辉.单片机系统设计与实践M.北京:电子工业出版社.2005.5谭浩强.C程序设计(第三版)M.北京:清华大学出版社.2005.6王港元.电工电子实践指导M.江西:科学技术出版社.2008.

3、完成期限 2014.6.30-2014.7.4 指导教师 杨莉 于镝 专业负责人 2014年 6 月 27 日目录(ml) TOC o 1-2 h z u HYPERLINK l _Toc392341234 第1章 概述(i sh) PAGEREF _Toc392341234 h 1 HYPERLINK l _Toc392341235 1.1 步进电机(dinj)概述 PAGEREF _Toc392341235 h 1 HYPERLINK l _Toc392341236 1.2 步进电机的特征 PAGEREF _Toc392341236 h 1 HYPERLINK l _Toc39234123

4、7 1.3 步进电机驱动系统概述 PAGEREF _Toc392341237 h 2 HYPERLINK l _Toc392341238 1.4 基本设计要求 PAGEREF _Toc392341238 h 2 HYPERLINK l _Toc392341239 第2章 系统结构及主要元器件 PAGEREF _Toc392341239 h 3 HYPERLINK l _Toc392341240 2.1 设计思路 PAGEREF _Toc392341240 h 3 HYPERLINK l _Toc392341241 2.2 设备及工作环境 PAGEREF _Toc392341241 h 4 HY

5、PERLINK l _Toc392341242 第3章 硬件设计 PAGEREF _Toc392341242 h 5 HYPERLINK l _Toc392341243 3.1 系统硬件设计 PAGEREF _Toc392341243 h 5 HYPERLINK l _Toc392341244 3.2 系统工作原理 PAGEREF _Toc392341244 h 6 HYPERLINK l _Toc392341245 第4章 软件设计 PAGEREF _Toc392341245 h 8 HYPERLINK l _Toc392341246 4.1 分析论证 PAGEREF _Toc3923412

6、46 h 8 HYPERLINK l _Toc392341247 4.2 程序流程图 PAGEREF _Toc392341247 h 8 HYPERLINK l _Toc392341248 4.3程序清单 PAGEREF _Toc392341248 h 9 HYPERLINK l _Toc392341249 第5章 系统仿真及调试 PAGEREF _Toc392341249 h 19 HYPERLINK l _Toc392341250 第6章 结论 PAGEREF _Toc392341250 h 20 HYPERLINK l _Toc392341251 参考文献 PAGEREF _Toc392

7、341251 h 21单片机的控制系统课程设计(报告)PAGE 2第1章 概述(i sh)1.1 步进电机(dinj)概述一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。每输入一个冲信号,该电动机就转过一定的角度(有的步进电动机可以直接输出线位移,称为直线电动机)。因此步进电动机是一种把脉冲(michng)变为角度位移(或直线位移)的执行元件。步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。随着数字控制系统的发展,步进电

8、动机的应用将逐渐扩大。步进电动机的种类很多,按结构可分为反应式和激励式两种;按相数分则可分为单相、两相和多相三种。1.2 步进电机的特征步进电机具有自身的特点,归纳起来有:(1)位置及速度控制简便:步进电机在输入脉冲信号时,可以依输入的脉冲数量做固定角度的旋转得到灵活的角度控制(位置控制)。因为速度和输入脉冲的频率成正比,运转度可在相当宽范围内平滑调节。(2)可以直接进行开环控制:因为步距误差不长期累积,可以不需要速度传感器以及位置传感器,就以输入的脉冲数量和频率构成具有一定精度的开环控制系统。(3)高可靠性:不使用电刷,电机的寿命长,仅取决于轴承的寿命。(4)具定位保持力矩:永磁式、混合式步

9、进电机在停止状态下(无脉冲信号输入时),仍具有励磁保持力矩,故即使不靠机械式的刹车,也能做到停止位置的保持。(5)中低速时具备高转矩:步进电机在中低速时具有较大的转矩,能够较同级伺服电机提供更大的扭力输出。同时,步进电机也有自己的一些缺点:(l)步进电机(dinj)带惯性负载的能力较差。(2)不能直接使用普通的交直流电驱动,而必须使用专用设备一步(y b)进电机驱动器。(3)输出转矩随转速的升高(shn o)而下降。1.3 步进电机驱动系统概述步进电机的工作必须使用专用设备步进电机驱动器。驱动器针对每一个步进脉冲,按一定的规律向电机各相绕组通电(励磁),以产生必要的转矩,驱动转子运动。步进电机

10、、驱动器和控制器构成了不可分割的3大部分。步进电机驱动系统的性能除与电机自身的性能有关外,在很大程度上取决于驱动器性能的优劣。当电机和负载己经确定之后,整个驱动系统的性能就完全取决于驱动控制方法。步进电机驱动方式的发展先后有单电压驱动、高低压驱动、斩波恒流驱动、调频调压驱动和细分驱动等。1.4 基本设计要求采用单片机控制一个三相单三拍的步进电机工作。步进电机的旋转方向由正反转控制信号控制。步进电机的步数由键盘输入,可输入的步数分别为3、6、9、12、15、18、21、24和27步,且键盘具有键盘锁功能,当键盘上锁时,步进电机不接受输入步数,也不会运转。只有当键盘锁打开并输入步数时,步进电机才开

11、始工作。电机运转的时候有正转和反转指示灯指示。电机在运转过程中,如果过热,则电机停止运转,同时红色指示灯亮,同时警报响。本题目的关键之处是:如何生成控制步进电机的脉冲序列。第2章 系统结构及主要元器件2.1 设计(shj)思路步进电机的不同驱动方式,都是在工作时,脉冲信号按一定顺序轮流加到三相绕组上,从而(cng r)实现不同的工作状态。由于通电顺序不同,其运行方式有三相单三相拍、三相双三拍和三相单、双六拍三种(注意:上面“三相(sn xin)单三拍”中的“三相”指定子有三相绕组;“拍”是指定子绕组改变一次通电方式;“三拍”表示通电三次完成一个循环。“三相双三拍”中的“双”是指同时有两相绕组通

12、电)。(1)三相单三拍运行方式:下图所示为反应式步进电动机工作原理图,若通过脉冲分配器输出的第一个脉冲使A相绕组通电,B,C相绕组不通电,在A相绕组通电后产生的磁场将使转子 上产生反应转矩,转子的1、3齿将与定子磁极对齐,如果图(a)所示。第二个脉冲到来,使B相绕组通电,而A、C相绕组不通电;B相绕组产生的磁场将 使转子的2、4齿与B相磁极对齐,如图(b)所示,与图(a)相比,转子逆时针方向转动了一个角度。第三个脉冲到来后,是C相绕组通电,而 A、B相不通电,这时转子的1、3齿会与C组对齐,转子的位置如图(c)所示,与图(b)比较,又逆时针转过了一个角度。图 2-1 反应式步进电机工作原理图当

13、脉冲不断到来时,通过分配器使定子的绕组按着A相-B相-C相-A相的规律不断地接通与断开,这时步进电动机的转子就连续不停地一步步的逆时 针方向转动。如果改变步进电动机的转动方向,只要将定子各绕组通电的顺序改为A相-C相-B相-A相,转子转动方向即改为顺时针方向。单三拍分配方式(fngsh)时,步进电动机由A相通电转换到B相同点,步进电动机的转子转过一个角度,称为一步。这时转子转过的角度是30度。步进电动机每一步转过的角度称为步距角。(2)三相(sn xin)双三拍运行方式三相双三拍运行方式:每次都有两个绕组通电,通电(tng din)方式是AB-BC-CA-AB,如果通电顺序改为AB-CA-BC

14、-AB则步进电机反转。双三拍分配方式时,步进电动机的步距角也是30度(3)三相单,双六拍运行方式:三相六拍分配方式就是每个周期内有六个通电状态。这六中通电状态的顺序可以使A-AB-B-BC-C-CA-A或者A- CA-C-BC-B-AB-A六拍通电方式中,有一个时刻两个绕组同时通电,这是转子齿的位置将位于通电的两相的中间位置。在三相六拍分配 方式下,转子每一步转过的角度只是三相三拍方式下的一半,步距角是15度。单三拍运行的突出问题是每次只有一相绕组通电,在转换过程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震荡,故用的较少。双三拍

15、运行的特点是每次都有两相绕组通电,且在转换过程中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单三拍相同。六拍运行方式转换时始终有一相绕组通电,且步距角较小,故工作稳定性好,但电源较复杂,实际应用较多。2.2 设备及工作环境 (1) 硬件:AT89S51单片机一片、35BYJ412步进电机一台、ISP下载器一个、LCD12864显示器、温度传感器18B20芯片。 (2) 软件:Windows操纵系统、Keil C51软件。第3章 硬件设计3.1 系统(xtng)硬件设计3.1.1最小单片机系统(xtng) 图3-1 最小单片机系统(xtng)5V电源:给系统供电。复位电路:程序跑飞时复位

16、电路可以使程序从新执行,相当于电脑的重启。晶振:给单片机运行提供时钟。比如电脑的2.2GHz频率。EA接高电平:表示运行内部程序存储器下载的程序。P0口接排阻:P0口开漏结构,使用时一般接排阻拉高电平。3.1.2键盘设计图3-2 键盘(jinpn)设计该电路(dinl)中采用独立键盘(jinpn)工作方式,共设有12个按键,分别提供3、6、9、12、15、18、21、24布局选择功能、键盘锁功能以及步进电机转动方向选择功能。其中有程序决定起作用。3.2 系统工作原理该系统的工作核心CPU为ATMEL公司生产的AT89S51芯片将多种功能的8位CPU与FPEROM(快闪可编程/擦除只读存储器)结

17、合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性能价格比远高于同类芯片。它与MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。89S51内含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间基本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。CPU为Atmel公司生产的89C51/89C52/89C55等。出厂所配晶振频率为11.0592MH,每个机器周期为1.085us,用户更换晶振以提高速度;存贮器

18、为64K,前4K/8K20K在CPU内部,其它程序在EPR0M27512中;数据存贮器为32K(62256),地址为8000FFFFH;/O扩展8155,片内RAM地址200O-20FFH ;8155命令口地址为2100H ;A口地址21O1H B口地址:2102H C口地址:2103H ;T低八位2104H T高八位2105H ;多路模拟开关的使用 IN0P1=0F8H IN4:P1=0FCH IN1P1=0F9H IN5:P1=OFDH IN2P1=0FAH IN5:P1=0FEH IN3P1=0FBH IN7:P1=0FFH 不掉电数据存贮器为500EH-507FH ;控制板160 x1

19、O9(mm) 供电(n din)+5V300mA +12V100mA -12V100mA ;AT89C51是一种(y zhn)低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用(shyng)高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容;主要性能: 与MCS-51 微控制器产品系列兼容;片内有4KB可在线重复编程的快闪擦写存储器 。引脚简介: 图3-3 AT89S51引脚整体介绍:该系统采用的芯片还有:DS18B20温度传感器

20、、ULN2003A以及MP28GA四相五线步进电机,并且步进电机在双八拍的方式下工作,步矩为 5.625 ,步进电机的旋转方向由正反转控制信号控制。步进电机的步数由键盘输入,可通过独立键盘S1S9输入的步数分别为3、6、9、12、15、18、21、24和27步对应的角度为16.875、33.725、151.875,且键盘S10具有键盘锁功能,当键盘上锁时,步进电机不接受输入步数,也不会运转。只有当键盘锁打开,选择运转方向并且输入步数时,步进电机才开始工作。电机运转的时候有正转指示灯D2和反转指示灯D3指示。电机在运转过程中用温度传感器采集步进电机外表温度(可设置),如果过热,则电机停止运转,同

21、时红色指示灯亮,同时蜂鸣器警报响。第4章 软件设计4.1 分析(fnx)论证此步进电机控制电路设计与实现,主要采用了ULN2003A驱动芯片,温度传感器芯片DS18B20芯片,独立键盘(jinpn)等,包含步进电机运行驱动,温度采集,主函数三大功效模块。步进电机(dinj)运行驱动模块:由于该系统中没有完全使用I/O端口,所以采用了独立键盘的工作方式,系统工作时,键盘控制的I/O口处于高电平状态,当按键按下时触发低电平,驱动程序实时监测并立即响应执行相应工作。温度采集模块的重要功效是对步进电机的外表采集温度,并且对已设定好的数值进行比较,从而确定机身温度是否过高,正常时电机正常转动,当温度过高

22、时电机不再转动,并且蜂鸣器报警,红灯点亮。主函数模块的重要功效是调动温度采集函数、步进电机函数中函数,实现模块化编程。整体功效:AT89S51芯片控制ULN2003A芯片驱动步进电机,扫描键盘输入运行状态以及运转步数,当电机外表温度超过32是电机停止转动,并且报警!4.2 程序流程图主程序流程图如图4-1所示否否是开始报警,红灯点亮,步进电机停转等待开键盘锁键盘判断步进电机温度是否过高?电机高温?步进电机运转确定输入步数初始化程序是否图4-1主程序流程4.3程序清单步进电机(dinj)驱动函数:/BJDJ.h#ifndef _BJDJ_H_#define _BJDJ_H_ #include #

23、include #define uchar unsigned char#define uint unsigned intsbit k1=P10;sbit k2=P11;sbit k3=P12;sbit k4=P13;sbit k5=P14;sbit k6=P15;sbit k7=P16;sbit k8=P17;sbit k9=P00;sbit k10=P01;sbit k11=P02;sbit k12=P03;void key_scan();void motor_turn();void motor_stop();#endif/BJDJ.c#includeBJDJ.huchar code FFW

24、8=0 xfe,0 xfc,0 xfd,0 xf9,0 xfb,0 xf3,0 xf7,0 xf6;uchar code REV8=0 xf6,0 xf7,0 xf3,0 xfb,0 xf9,0 xfd,0 xfc,0 xfe;uchar rate ;extern uchar i=0; /*/ /* 延时 /*/void delay(uchar x) uchar i,j; for(i=0;ix;i+); for(j = 0 ; j110 ; j+) ; /*/*步进电机(dinj)正转/*/void motor_ffw(uchar x) uchar i,j; for (j=0; jx; j+)

25、 /转1*n圈 for (i=0; i8; i+) /一个(y )周期转45度 P2 = FFWi; /取数据(shj) delay(150); /调节转速 /*/*/*步进电机反转/*/void motor_rev(uchar x) uchar i,j; for (j=0; jx; j+) /转1*n圈 /退出此循环程序 for (i=0; i8; i+) /一个周期转45度 P2 = REVi; /取数据 delay(150); /调节转速 /*键盘扫描*/void key_scan()i=0;if(k1=0)delay(5);if(k1=0)i=24;if(k2=0)delay(5);i

26、f(k2=0)i=46;if(k3=0)delay(5);if(k3=0)i=72;if(k4=0)delay(5);if(k4=0)i=96;if(k5=0)delay(5);if(k5=0)i=120;if(k6=0)delay(5);if(k6=0)i=144;if(k7=0)delay(5);if(k7=0)i=168;if(k8=0)delay(5);if(k8=0)i=192;if(k9=0)delay(5);if(k9=0)i=216;/*电机(dinj)转动*/void motor_turn()if(k10=0)delay(5);if(k10=0)P2=P2&0 xf0;if(

27、k11=0&k12=1&k10=1) delay(5);if(k11=0&k12=1&k10=1)motor_ffw(i);if(k12=0&k11=1&k10=1)delay(5);if(k12=0&k11=1&k10=1)motor_rev(i);void motor_stop()motor_rev(0);温度传感器18B20驱动(q dn)函数:/DS18B20.h#ifndef _DS18B20_H_#define _DS18B20_H_#include#include #define uint unsigned int#define uchar unsigned charextern

28、 uchar T;sbit DQ=P27; /温度(wnd)输入口sbit bell=P04;sbit led1=P07;void delay2(uint t);void ow_reset(void);void write_byte(uchar val);void read_temp();void work_temp();#endif/DS18B20.c#includeDS18B20.hextern uchar data temp_data2=0 x00,0 x00;uchar flag;char presence=1;uchar T;/*11微秒延时函数(hnsh)*/void delay2

29、(uint t)for(;t0;t-);/*18B20复位(f wi)函数*/void ow_reset(void)presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0; /delay2(50); / 550usDQ=1; / delay2(6); / 66uspresence=DQ; / presence=0继续(jx)下一步 delay2(45); /延时500uspresence = DQ;DQ=1; /*18B20写命令函数*/void write_byte(uchar val)uchar i;for (i

30、=8; i0; i-) DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0 x01; /最低位移(wiy)出delay2(6); /66usval=val/2; /右移(yu y)一位DQ = 1;delay2(1); /*18B20读1个字节(z ji)函数*/uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ = 0; /_nop_();_nop

31、_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0 x80;delay2(6); /66usDQ=1;return(value);/*读出温度函数*/void read_temp()ow_reset(); /总线复位write_byte(0 xCC); / 发Skip ROM命令write_byte(0 xBE); / 发读命令(mng lng)temp_data0=read_byte(); /温度(wnd)低8位temp_data1=read_byte(); /温度(wnd)

32、高8位ow_reset();write_byte(0 xCC); / Skip ROMwrite_byte(0 x44); / 发转换命令/*温度数据处理函数*/void work_temp()T=(temp_data0&0 xf0)4)|(temp_data1&0 x07)31)motor_stop(); led1=0;bell=1;delay2(1000);else led1=1;bell=0; motor_turn();第5章 系统(xtng)仿真及调试编写好的源程序在 Keil 编译后呈现很多错误,这些错误有很多时平时(pngsh)的实验碰到过的,例如:字母开头忘加0,零和字母O弄混杂了,有些标号用了几次等等,幸好(xngho)这些错误在平时的实验中碰到了,所以改错误很轻易。除了常见的错误外,还有几条错误时在前几次实验都没有出现过,如:AJMP跳转指令跳不回指定的地位,是由于跳转的长度大于AJMP跳转的长度,最后只好用LJMP跳转后才跳到指定的地位

温馨提示

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

最新文档

评论

0/150

提交评论