精编完整版基于单片机的步进电机控制毕业论文报告_第1页
精编完整版基于单片机的步进电机控制毕业论文报告_第2页
精编完整版基于单片机的步进电机控制毕业论文报告_第3页
精编完整版基于单片机的步进电机控制毕业论文报告_第4页
精编完整版基于单片机的步进电机控制毕业论文报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、(此文档为word格式,下载后您可任意编辑修改!)河南农业大学 单 片 机 课 程设 计 报 告 题目名称: 步进电机控制系统 专 业: 电 子 信 息 工 程 班 级: 10 电 信 一 班 学生姓名: 汤 炜 炜 指导老师: 王 玲 2013年 6 月 27 日 目录1.前言12. 整体设计2 2.1步进电机28byj-4822.1.1 28byj-48工作原理22.1.2 28byj-48参数22.2单片机32.2.1.概述32.2.2.单片机的选择42.2.3.单片机的基本结构43. 电路仿真设计63.1 仿真软件proteus的使用63.2单片机最小系统83.3液晶显示模块93.4步

2、进电机及其驱动模块103.5键盘设计114. 软件设计124.1 keil c51编程软件的使用及调试方法124.2软件设计要求134.3系统软件设计流程134.3.1软件总体设计框图13 4.4主程序144.4.1头文件144.4.2主程序154.4.3液晶模块164.4.4矩阵键盘模块184.4.5电机模块205. 调试与功能说明205.1硬件调试216. 结束语227.参考文献221.前言步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位

3、的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快,其中步进电机也广泛应用于数字控制系统,例如数控机床、绘图机、计算机外围设备、自动记录仪表、钟表和数模转换装置等。步进电机分三种:永磁式(pm),反应式(vr)和混合式(hb),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但

4、噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。基于步进电机在社会实践中的广泛应用,本设计主要运用28byj-18步进电机,此产品小体积、高转速、底振动。具 有结构紧凑、力矩大、输入功率小、噪音小、 使用方便等特点。产品广泛用于空调器、电动器械、冷暖通阀门、热水器自动调温系统、自动化仪器、舞台灯光、安防视频监控、及单片机学习开发等领域。再用stc89c52单片机作为控制器来实现基于单片机的步进电机控制系统。2、整体设计2.1步进电机28byj-4

5、82.1.1 28byj-48工作原理本实验选择28byj-48步进电机作为设计对象,步进电机28byj48型四相八拍电机,电压为dc5vdc12v。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(a-b-c-d-a。),双(双相绕组通电)四拍(ab-bc-cd-da-ab-。),八拍(a-ab-b-bc-c-cd-d-da-a。)2.1.2

6、28byj-48参数1.极限参数: 表2-1参数最小值最大值单位工作温度1+60 储存温度-20+75 2.技术参数: 表2-2参数值参数值电压vdc5空载牵入频率hz500直流电阻25°c ±7%32空载牵出频率hz600步距角5.625°64绝缘耐压v 1s600减速比164温升 k牵入转矩(100hz时)gf.cm250噪音 db自定位转矩gf.cm300驱动方式四相八拍连接线长:230mm,采用ul 26awg 1061的电源线 3.接线示意图 图2.1 接线示意图 4.脉冲分配方式图2.2 脉冲分配方式2.2单片机2.2.1.概述单片机微型计算机是微型计

7、算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和io接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。2.2.2.单片机的选择目前,我国生产很多型号的单片机,在此,我们采用型号为stc89c51的单片机。因为: stc89c51是一个低电压,高性能cmos 8位单片机,片内含4k bytes的可反复擦写的flash只读程序存储器和128 bytes的随机存取数据存储器(ram),器件采用atmel公司

8、的高密度、非易失性存储技术生产,兼容标准mcs-52指令系统,片内置通用8位中央处理器和flash存储单元,内置功能强大的微型计算机的at89c51提供了高性价比的解决方案。    stc89c51是一个低功耗高性能单片机,40个引脚,32个外部双向输入输出(io)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,stc89c51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。2.2.3.单片机的基本结构下图是mcs-51系列单片机的内部结

9、构示意图:mcs-51系列单片机无论是片内ram容量、io口功能、系统扩展能力、指令系统、引脚等都基本相同。在制造技术上,mcs-51系列单片机按两种工艺生产。一种是hmos工艺,即高密度短沟道 mos工艺。另一种是chmos工艺,即互补金属氧化物的hmos工艺生产 。在片内程序存储器的配置上,mcs-51系列单片机有三种形式,即片内无程序存储器、有掩膜程序存储器rom、有可擦除程序存储器eprom。单片机端口的既有一定的通用性,亦要有相当的灵活性,端口的设置目的总是想尽量满足各种设备连接的要求。当然单一通用的单片机芯片,是无法实现与任意一种外设的直接连接的。单片机的引脚数有限,更不能同时与多

10、个外设直接连接。目前解决的办法是使用外接接口芯片来实现。此类芯片目前市面上有很多,有的接口芯片起传输过程中的缓冲作用以便满足接口的驱动能力要求;有的可以进行对电信号进行放大或衰减,以便适应单片机电平的需求;有的可以进行模数或数模转换,支持单片机对模拟信号处理。在功能上,mcs-51系列单片机有基本型和增强型两类,它们以芯片型号的末位数字来区分。即“1”为基本型,“2”为增强型。 在mcs-51系列单片机中,我们以8051为例,来介绍其结构及功能。8051单片机的内部功能框图如图2.3示:图2.3 mcs-51系列单片机的内部结构3. 电路仿真设计 本系统主要由键盘模块,显示模块,主控模块,步进

11、电机模块组成,其系统图如下:图3.0 系统总体结构框图3.1 仿真软件proteus的使用proteus是一款专门的单片机系统仿真软件,其所提供的单片机型号多,可便于用户进行各种单片机系统的设计与仿真。另外,proteus提供了很多设计中常用的各种芯片如各种数字门电路、触发器、移位寄存器和其他可编程逻辑芯片,方便用户进行各种设计电路的仿真。值得一提的是proteus提供的示波器、信号发生器、测量探针等虚拟仪器为用户分析测试设计电路提供了理论依据,方便了用户设计。双击桌面快捷方式打开proteus原理图设计软件,界面如下所示:图3.1 proteus的isis原理图编辑界面单击界面中的yes可以

12、查看proteus软件自带的原理图仿真实例,选择no可以进行电路原理图的设计。然后点击软件界面右面的p可以放置所需要的元器件,界面如下图所示:图3.2 元器件放置界面找到设计电路所需要的元器件然后双击所需的元器件,这时就会在软件右侧的元器件列表中看到所选择的元器件了。在此单击鼠标左键后就可将元件放到原理图编辑界面中。放好元器件后用导线将元器件连接起来,最后的总体的系统设计图如下:图3.3系统总体设计3.2单片机最小系统单片机的最小系统是由电源、复位、晶振组成,下面介绍一下每一个组成部分。其proteus仿真图如下: 图3.4 单片机最小系统3.3液晶显示模块为了更人性化,更直观的了解到步进电机

13、的运行状况,所以在本设计中加入了液晶显示模块,以便及时的将步进电机的当前运行状态提供给用户,由于本设计所显示的内容并不多所以选着较小容量的lcd1602即可。其设计的电路图如下:图3.5液晶显示电路3.4步进电机及其驱动模块由于单片机驱动能力有限,不能直接用于步进电机的驱动本设计采用uln2003a芯片驱动步进电机。uln2003是高耐压、大电流达林顿陈列,由七个硅npn达林顿管组成。 该电路的特点如下: uln2003的每一对达林顿都串联一个2.7k的基极电阻,在5v的工作电压下它能与ttl和cmos电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。 其内部结构如下:图3.6

14、uln2003内部结构图连接步进电机电路图如下:图3.7 步进电机及其驱动电路3.5键盘设计本次设计要求有六个按键,分别为启动,停止,一档,二档,三档,四档。由于键盘数量较多,用独立按键将浪费大量io口,所以本地合计采用矩阵键盘,其中k1,k2分别对应启动,停止,k5-k8对应一档,二档,三档,四档,其电路图如下:图3.8 键盘电路当用手按下一个键时,如图3-8所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用

15、软件方法可以很容易地解决抖动问题,这就是通过延迟3-10ms来等待抖动消失,这之后,在读入键盘码图3.9 按键抖动信号波形4. 软件设计4.1 keil c51编程软件的使用及调试方法本设计的软件设计采用keil c51来编写,该软件的使用方法介绍如下。双击桌面上的keil软件的快捷启动方式打开软件,打开后的软件界面如下图所示:图4.1 keil 软件界面然后点击project>new project选择新建工程,并保存到合适的位置,然后在芯片列表中选择相应的芯片,界面如下图所示,然后点击完成即可。图4.2 芯片选择界面完成后点击file>new新建一个程序编辑文件,然后保存即可在

16、其中编辑所需要的程序了,然后点击软件上方的调试按钮进行纠错调试直至没有错误。4.2软件设计要求 本设计要求实现用stc89c52单片机实现对步进电机的控制,并能实现步进电机的旋转,及四档不同的速度调节,同时能及时的用液晶显示屏显示步进电机的当前状态4.3系统软件设计流程4.3.1软件总体设计框图图4.1主程序流程图4.4主程序本设计为使程序可读性好将分模块进行说明。4.4.1头文件#ifndef _kye_h_#define _kye_h_*常用数据类型简化定义*typedef unsigned char uint8;typedef unsigned int uint16;*矩阵键盘位定义*s

17、bit keyin1 = p10;sbit keyin2 = p11;sbit keyin3 = p12;sbit keyin4 = p13;sbit keyout1 = p14;sbit keyout2 = p15;sbit keyout3 = p16;sbit keyout4 = p17;*液晶控制位定义*sbit rs = p25 ;sbit rw = p26 ;sbit en = p27 ;sbit busy = p07;*电机转速档位定义*#define one 50#define two 30#define three16 #define four 8*子程序声明*void dis

18、(void);void wait(void);void w_cmd(uint8 cmd);void w_dat(uint8 dat);void w_string(uint8 addr_start, uint8 *p);void init_lcd1602(void);void delay(uint8 t);void keyscan(void);void mofor(void);#endif4.4.2主程序#include <reg52.(void)while(1) keyscan();键盘扫描dis();液晶显示初始化if(startend =1)mofor();else p3 = 0;

19、4.4.3液晶模块* 等待繁忙标志*void wait(void)p0 = 0xff;dors = 0;rw = 1;en = 0;en = 1;while (busy = 1);en = 0;* 写数据*void w_dat(uint8 dat)wait();en = 0;p0 = dat;rs = 1;rw = 0;en = 1;en = 0;* 写命令*void w_cmd(uint8 cmd)wait();en = 0;p0 = cmd;rs = 0;rw = 0;en = 1;en = 0;* 发送字符串到lcd*void w_string(uint8 addr_start, uin

20、t8 *p)w_cmd(addr_start);while (*p != '0')w_dat(*p+); * 初始化1602*void init_lcd1602(void)w_cmd(0x38); 16*2显示,5*7点阵,8位数据接口w_cmd(0x0c); 显示器开,不显示光标w_cmd(0x06); 写一个字符后,地址指针加1w_cmd(0x01); 现实清零,数据指针清零*液晶显示子程序*void dis(void)init_lcd1602();if(startend)w_string(0x80,"start");if(gra=one)w_strin

21、g(0xc0,"grade:one");else if(gra=two)w_string(0xc0,"grade:two");else if(gra=three)w_string(0xc0,"grade:three");elsew_string(0xc0,"grade:four"); elsew_string(0x01," "); 4.4.4矩阵键盘模块*键盘扫描子程序*void keyscan(void)keyout1 = 0;keyout2 = 1;keyout3 = 1;keyout4 =

22、 1;if(!keyin1)delay(5);if(!keyin1)startend=1;while(!keyin1);if(!keyin2)delay(5);if(!keyin2)startend=0;while(!keyin2); keyout1 = 1;keyout2 = 0;keyout3 = 1;keyout4 = 1;if(!keyin1)delay(5);if(!keyin1)gra= one;while(!keyin1); if(!keyin2)delay(5);if(!keyin2)gra= two;while(!keyin2); if(!keyin3)delay(5);if

23、(!keyin3)gra= three;while(!keyin3); if(!keyin4)delay(5);if(!keyin4)gra= four;while(!keyin4); 4.4.5电机模块*电机旋转子程序*void mofor(void)char i;while (startend) keyscan();dis();for (i=7; i>=0; i-)p3 = ffwi;delay(gra);*tms延时*void delay(uint8 t)uint8 i,j;for(i=t;i>0;i-)for(j=110;j>0;j-);5. 调试与功能说明5.1硬件调试本次设计采用学习开发板作为调试平台。将软件下载到stc89c51单片机中,未按键式,电机不工作和液晶显示也不工作;当按下启动键,步进电机转动一档转速转动,液晶屏上显示 start grade:one;当按下停止键,电机和液晶同时停止工作,再按启动键,步进电机转动一档转速转动,液晶屏上显示 start grade:one;当依次按下一档,二档,三档,四档键时速度一次升高,液晶上也一次显示st

温馨提示

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

评论

0/150

提交评论