步进电机控制系统_第1页
步进电机控制系统_第2页
步进电机控制系统_第3页
步进电机控制系统_第4页
步进电机控制系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、河北地质大学信息工程学院电子信息工程专业单片机课程设计报告题目步进电机控制系统姓名学号班级指导教师2016年 7 月 1 日课程设计任务书班级姓名学号课程设计题目步进电机控制系统课程设计起止日期至实习地点课程设计内容与要求(包括:设计任务及要求、设计原理、所需仪器设备、验收标准)一、基本功能:1、加速运转 100 步,匀速运转 100 步,减速运转 100 步,反方向加速 100 步,反方向匀速;100 步,反方向减速 100 步;2、电机的启动、停止、加减速、正反向等均可由按键控制。二、扩展功能:1、一段时间内 (ss)将转速加到 100 转/ 分钟,匀速运转一段时间(ss)后停止,正反方向

2、均可控制;2、通过键盘设置电机转动的角度: 步进方式 : 即每按一次键,电机转过一定的角度(如360);设定方式 : 由键盘直接输入一个电机要旋转的角度,如输入210 再按“确定”后,电机旋转210度,正反方向均可控制;3、其他自行增加的功能。指导教师 2016年 7 月 1 日课程设计报告注:此表可加附页一、设计原理与技术方法:( 包括:电路工作原理分析与原理图、元器件选择、电路调试方法与结果说明;软件设计说明书与流程图、软件源程序代码、软件调试方法与运行结果说明。) 1. 电路工作原理分析1.1 系统工作原理系统是以 stc90c51 单片机为核心(如图4) 。该系统通过对stc90c51

3、 单片机 p1的赋值,以 tc1117为驱动芯片(如图3) ,并通过单片机程序控制和处理,从而实现了步进电机的状态控制。通过独立键盘的命令输入,经stc90c51 单片机处理后,可以实现步进电机开始和停止,正转和反转,加速和减速等状态的变换。由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上, 而必须使用专业设备 -步进电机控制驱动器。 所以该系统使用tc1117为驱动芯片:控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列, 环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,以驱动步进电机的转动, 环

4、形分配器是在该系统中是用计算机软件设计的方法实现环形分配器要求的功能。系统步进电机的励磁方式为两相单四拍,即 - +- 。图 1 步进电机原理图. . 步进电机的换向控制如果给定工作方式正序通电,步进电机正转,即- +- ;如果按反序通电,即 -+-,则电机就反转。在某一高速下的正、反向切换实质包含了降速换向加速3 个过程。.步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。所以通过改变单步延时时间的长短,就可以对步进电机实现加速,匀速和减速。.步进电机的起停控制步进电机由于其电气特性,运转时会有步进感。还因为惯性作

5、用,所以在启动时,必须有加速过程,在停止时必须有减速过程。. 元器件选择. . 步进电机步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此适合用单片机控制。步进电机区别于其他控制电机的最大特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定。步进电机分三种:永磁式(pm ) ,反应式( vr )和混合式 (hb),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件。每个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为

6、数字/ 角度转换器。该系统步进电机工作方式是两相单四拍, 电机工作的赋值如图2, 分别为 0 xf7,0 xfb,0 xfd,0 xfe, 当连续不断给他赋值时,步进电机就能够转起来。关于步进电机的旋转角度和和拍数赋值我单独写了个小程序进行了验证,其结果是:每次给步进电机端口赋一组值(即一拍) ,步进电机转动一次,每拍转过的角度是18 度。所以单四拍一轮赋值转过的是32 度。具体步骤如下:用单四拍的工作方式给电机赋值,用按键控制,即每按下一次按键,给步进电机赋一轮值(四拍) 。在步进电机上做个标记,每按一次,观察一次,最终按了 5 次电机转了约 360 度。即每拍步数的角度 =360/(4*5

7、)=18 度。验证小程序在附件 1。步进电机的 a-,a+,b-,b+口分别接入驱动芯片的outa ,outb ,outc 和 outd 口。图 3 步进电机驱动图1.2.2 stc90c51 单片机atmel 公司生产的 stc90c51 单片机是一种低功耗 / 低电压、高性能的 8 位单片机,它采用 cmos 和高密度非易失性存储技术,而且其输出引脚和指令系统都与mcs-51兼容;片内的 flash rom 允许在系统内改编程序或用常规的非易失性编程器来编程,内部除 cpu 外,还包括 256字节 ram ,4 个 8 位并行 i/o 口,个中断源, 2 个中断优先级,2 个 16 位可编

8、程定时计数器, stc90c51 单片机是一种功能强、灵活性高且价格合a- a+ b- b+ 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 图 2 步进电机控制口赋值表理的单片机,它适合该系统的编程。p1.0-p1.4 口接驱动芯片的ina-ind。图 4 stc90c51单片机原理图. 系统设计框图stc90c51 单片机独 立 键 盘控制电路tc1117启 动 电路双 极 性两 相 步进电机电源电路图 5 总体设计方框图2. 软件设计. 原理和流程图整个系统由按键和电机驱动两部分。 按键主要功能是判断是否有键按键下且按键按下后是否弹起来,只有当这两个过程都执行才认为是一次

9、按键。而电机驱动程序(即主程序)的功能是判断是哪个键按下,并执行相应的功能。2.1.1 按键部分它包扩一个延时子函数和按键判断子函数。按键是低有效,所以当gpio_key 的值为 0 xff 时,处于无按键状态,只有当gpio_key 非 1 时且延时一段时间后还是该状态才判断有效。当按键弹起时,才认为完成了一次按键,并把它的值返回。延时子函数主要用 for 进行空循环和 while 循环完成。2.1.2 电机驱动部分该部分主要用 if和 for 语句完成, if语句分别写出正转加速, 正转匀速, 正转减速和反转加速,反转匀速,反转减速及停止七种工作状态子模块。当每种工作状态按键有效时,就会执

10、行相应的子模块,电机就会进入对应的工作状态。而每个工作状态的工作的时间是 for 循环来完成的,并用break 跳出 if循环,防止在单个状态中出现死循环。键盘扫描按键?执行结束开始是否图 6 按键流程图2.2 源程序/* * 标题 : 步进电机一 (单步四拍 ) * 单步四拍工作方式:* 正转: a/ b/ a b * 反转: b a b/ a/ 开始键盘扫描k1? 开始k2? 停止k3? 正转加速k4? 正转匀速是是是是否否否k5? 正转减速k6? 反转加速k7? 反转匀速k8? 反转减速是是是否否否否否图 7 主程序流程图j14短路冒需断开*/ #include reg52.h #inc

11、lude #define uint unsigned int #define uchar unsigned char uchar step; /定义要使用的io 口#define gpio_key p2 /独立键盘用p2 口/声明全局函数unsigned char key_scan(); /延时函数void delay(unsigned int t) unsigned int k; while(t-) for(k=0;k0;step-) if(gpio_key !=0 xff) break; else p1=0 xfb; delay(b); p1=0 xfd; delay(b); p1=0 x

12、f7; delay(b); p1=0 xfe; delay(b); break; if(value=3)/ 反转加速 uchar c=100; for(c=100;c2;c=c-4) if(gpio_key !=0 xff) break; else p1=0 xfb; delay(c); p1=0 xfd; delay(c); p1=0 xf7; delay(c); p1=0 xfe; delay(c); break; if(value=5)/ 反转减速 uchar d=3; for(d=3;d2;e=e-4) if(gpio_key !=0 xff) break; else p1=0 xfe

13、; delay(e); p1=0 xf7; delay(e); p1=0 xfd; delay(e); p1=0 xfb; delay(e);/1 次 break; if(value=7) /正转匀速 for(step=100;step0;step-) if(gpio_key !=0 xff) break; else p1=0 xfe; delay(100); p1=0 xf7; delay(100); p1=0 xfd; delay(100); p1=0 xfb; delay(100); break; if(value=8) /正转减速 uchar f=3; for(f=3;f100;f=f

14、+4) if(gpio_key !=0 xff) break; else p1=0 xfe; delay(f); p1=0 xf7; delay(f); p1=0 xfd; delay(f); p1=0 xfb; delay(f);/1 次 break; if(value=2)/ 停止 p1=0 xff; / 每个按键要按下去久一点才会有效/* * 函 数 名: key_scan() * 函数功能: 扫描键盘* 输入: 无* 输出: 读取到的键值*/ unsigned char key_scan() unsigned char keyvalue = 0 , i; / 保存键值/-检测按键1-/

15、 if (gpio_key != 0 xff) /检测按键k1 是否按下 delay(1); /消除抖动if (gpio_key != 0 xff) /再次检测按键是否按下 keyvalue = gpio_key; i = 0; while (i50) & (gpio_key != 0 xff) /检测按键是否松开 delay(1); i+; return keyvalue; /将读取到键值的值返回 2.3 调试方法和结果按电路图连接, 用 keil 软件编写程序, 用普中自动下载程序到单片机上,分别按按键顺序操作,分别是开始,停止,正转加速,正转匀速,正转减速,反转加速,反转匀速,反

16、转减速等功能。程序编译正确,能实现开始,停止,正转加速,正转匀速,正转减速,反转加速,反转匀速,反转减速等功能。并且各功能能自由切换。3. 实物展示二、课程设计工作记录:1. 设计步骤与时间安排6 月 13 日 拿到课程设计题目,把所有要求都看了一遍,并进行排序。6 月 14 日-6 月 15 日 在网上和图书馆查找相关资料。6 月 16 日 确定设计所需要的器件并准备好。6 月 17 日-6 月 18 日 了解步进电机和 stc90c51 单片机的工作原理。6 月 19 日 编写步进电机匀速工作程序。6 月 20 日-6 月 23 日 编写按键控制程序。6 月 24 日 编写步进电机正反转程

17、序。6 月 25 日-6 月 26 日 编写步进电机加减速和步数控制程序。6 月 27 日 对整个系统程序综合运用。6 月 28 日 课程设计演示。6 月 29 日-6 月 30 日 写课程设计报告7 月 1 日 提交报告。2. 调试步骤与时间安排6 月 19 日 步进电机匀速工作程序调试。6 月 20 日-6 月 23 日 按键控制程序调试。6 月 24 日 步进电机正反转程序调试。6 月 25 日-6 月 26 日 步进电机加减速和步数控制程序调试。6 月 27 日 系统总程序调试。3. 课题完成结果说明本课题完成了设计的基本功能,能按键控制步进电机的启动、停止、正转、反转、加速和减速等状

18、态,并可以在各个状态中自由切换。同时步进电机达到要求所转的步数后可以自动跳出工作状态。但设计不足的是个别按键灵敏度较低,需要按键时间长些或多次按键才有效。其次是扩展也没有完成。同时, 也还可以扩展led或 lcd显示步进电机的步数,转速等。4. 课题总结在这次课程设计中我掌握了stc90c51 单片机的基本运用过程,对课上的知识有了更深入的理解。在编程上,基本掌握了c 语言在单片机上的运用。在硬件上,了解了步进电机的工作原理,也懂了一些单片机设计应用实验在实际操作过程中应注意的问题。从理论知识到实际动手,我感觉到了实践的重要,它是所学知识的实际应用。在这次课程设计中,我发现了自己的不足,如 c

19、 语言基础差,分析程序能力较低等。在空余时间里,我会继续深入学习,努力掌握单片机的相关知识,为毕业设计做准备。附件 1:/* * 标题 : 步进电机拍数和旋转角度验证( 单步四拍 ) * * * * 单步四拍工作方式: * * 正转: a/ b/ a b * * 反转: b a b/ a/ * j14短路冒需断开 * */ #include reg52.h #include /-定义要使用的io 口-/ #define gpio_key p2 /独立键盘用p2口/ 声明全局函数unsigned char key_scan(); / 延时函数void delay(unsigned int t) unsigned int k; while(t-) for(k=0;k60;k+) /用 for 的空循环延长程序的执行时间 /* * 函 数 名 : main * 函数功能 : 主函数* 输入 : 无* 输出 : 无*/ void main(void) unsigned char value, keynum; value=2; while (1) keynum = k

温馨提示

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

评论

0/150

提交评论