




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 河南理工大学单片机原理与接口技术课程设计单片机控制步进电机 姓 名: 何水源 学 号: 1316301140 专业班级: 电气13-3 指导老师: 张宏伟 所在学院: 电气工程与自动化学院 2016年3月9号 摘要 MCS-51单片机的基本结构包含了如下部件:一个8位的CPUProcessing Unit,中央处理器),它的功能是执行指令,完成算术、逻辑运算和对整机进行控制;片内程序存储器ROM,用来存放程序或固定的数据、表格等;片内数据存储器RAM,用来存放经常读、写的数据,如计算的中间结果等; MCS-51单片机有多个公司、多种型号的产品,但基本有三类:基本型(51
2、系列)、增强型(52系列)和特殊型。其中基本型有8031、8051、89C51,基本型的代表产品是89C51,其基本配置如下:8位CPU;4 KB片内ROM;128 B可使用的片内RAM;21个特殊功能寄存器;32线并行I/O接口;2个16位定时/计数器;1个全双工串行接口;5个中断源、2个中断优先级的中断结构。增强型有8032、8052、89C52,增强型的代表产品是89C52,其基本配置如下:8位CPU;8 KB片内ROM;256 B可使用的片内RAM;26个特殊功能寄存器;32线并行I/O接口;( 1)内部程序存储器容量的扩展,由1 KB
3、、2 KB、4 KB、8 KB、16 KB、20 KB、32 KB发展到64 KB甚至更多。(2)片内数据存储器,目前已有512 B、1 KB、2 KB、4 KB、8 KB等。(3)增加了外设功能,如片内A/D、D/A、DMA、多并行接口 (增加了P4、P5)、PCA、PWM、PLC、WDT等。(4)存储器的编程方式,如ISP(在系统编程)和ISA(在应用编程),可以通过并口、串口或专门引脚烧录程序。(5)通信功能的增强,有2个串口、IC总线、ISP、USB总线、C
4、AN总线、自带TCP/IP协议等。(6)JTAG调试型。 关键词:MCS-51单片机、ROM、RAM、串口、总线 目 录 1设计任务和要求 . 2设计思路 . 3系统硬件设计 . 3.1 硬件电路的工作原理 . 3.2步进电机模块 . 3.3控制模块 . 3.4主要元件介绍: .4软件编程 . 5 调试过程与结果 . 5.1正转结果显示: .5.1.1正转加速:
5、60;. 5.1.2正转减速: . 6 总结与体会 . 1设计任务和要求 单片机课程设计是考察学生利用所学过的专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合规范的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。 本次设计考核的能力主要有: 1) 专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电机与拖动、微特电机及其驱动、计算机
6、高级语言、计算机辅助设计、计算机办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。 2) 项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT汇报与口头表达能力。 3) 电气与自动化系统的设计与实际应用能力。 要求完成的工作量包括: 1) 现场仿真演示效果。 2) 学生结合课题进行PPT演讲与答辩。 3) 学生上交课题要求的各类设计技术文档2设计思路 电路基本理论: 步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点
7、讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可通过控制脉冲数来控制角位移量,从而达到准确的定位目的。通过对步进电机的软件设计和硬件设计包括步进电机的结构、原理及应用,根据原理和硬件的设计利用c语言编写程序,经过反复运行和调试,实现单片机对步进电机的控制。 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉冲个数即可
8、以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 基于单片机和proteus的步进电机控制电路的基本组成如图所示根据设计要求,采用的方案如下。硬件部分实现电机转动,包括控制开关模块;电机转动模块。软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动。电源驱动89C51单片
9、机,在89C51中载程序,通过开关按键来输入信号,89C51向驱动电路提供信号使步进电机动作3系统硬件设计 3.1 硬件电路的工作原理通过对开关k1 k2 k3的开关,来实现对步进电机的正反转和停止,通过k4 k5来进行加减速,并且有相应的LED灯的显示。 3.2步进电机模块功能:单片机输出的程序通过转换器和电机驱动器给步进电机一个脉冲信号,使步进电机实现正转与反转3.3控制模块功能:通过控制台实现对单片机程序的开与关3.4主要元件介绍: 3.4.1步进电机: 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给
10、一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机区别于其他控制电机的最大特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。 步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角
11、度(不距角)或前进、倒退一步。步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。 步进电机28BYJ48: 步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信 号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。 四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A
12、-B-C-D-A。),双(双相绕组通电)四拍(AB-BC- CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。) 四相步进电机有两种运行方式,一、四相四拍;二、四相八拍。 要想搞清楚四相八拍运行方式下步进电机的转速如果计算,需要先清楚两个基本概念。 1、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A. 2、步距角:对应一个脉冲信号,电机转子
13、转过的角位移用表示。=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为=360度/(50*8)=0.9度(俗称半步)。 这两个概念清楚后,我们再来计算转速,以基本步距角1.8°的步进电机为例(现在市场上常规的二、四相混合式步进电机基本步距角都是1.8°),四相八拍运行方式下,每接收一个脉冲信号,转过0.9°,如果每秒钟接收400个脉冲,那么转速为每秒400X0.9°=360°,相当与每秒钟转一圈,每分钟60转。 由于
14、单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下所以可以定义正转励磁序列为A->AB->B->BC->C->CD->D->DA uchar code FFW=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /反转励磁序列为AD->D->CD->C->BC->B->BA->A uchar code REV=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;
15、 步进电机28BYJ48的主要技术参数 橙 黄 粉 蓝 十六制(P1口) 1 0 0 0 0x08 1 1 0 0 0x0c 0 1 0 0 0x04
16、 0 1 1 0 0x06 0 0 1 0 0x02 0 0 1 1 0x03 0 0 0 1 0x01 1 0
17、160; 0 1 0x09 所以可以定义正转励磁序列为A->AB->B->BC->C->CD->D->DA uchar code FFW=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /反转励磁序列为AD->D->CD->C->BC->B->BA->A uchar code REV=0x09,0x08,0x0c,0x04,0x06,
18、0x02,0x03,0x01; 步进电机28BYJ48的主要技术参数: 3、四相步进电机的脉冲分配规律 目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。各种工作方式在电源通电时的时序 与波形分别如图1 a、b、c所示。本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相
19、单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内 89C51单片机tmel公司生产的89C51单片机是一种低功耗/低电压高性能的8位单片机,它采用CMOS和高密度非易失性存储技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的Flash ROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计
20、数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。 89C51单片机部分引脚功能介绍XTAL2(18脚):接外部晶体和微调电容的一端;在89C51 片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。89C51/8031正常工作时,该引脚应有脉冲信号输出。 XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外部时钟时,该引脚输入外部时钟脉冲。 RST/VPD(9脚): RST:复位信号输入端,高电平
21、有效。当此输入端保持两个机器周期的高电平时,就可以完成复位操作。 RST/VPD(9脚): VPD :RST引脚的第二功能,备用电源输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将+5V电源自动接入该引脚,为RAM提供备用电源,以保证RAM中的信息不丢失,使得复位后能继续正常运行。 EA/Vpp(31脚): Vpp:对8751片内EPROM固化编程时,编程电压输入端(12-21V)。 P0口: 漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载。 P0口可作为一个数据输入/输出口;
22、160;在CPU访问片外存储器时,P0口为分时复用的低8位地址总线和8位数据总线。 P1口: 带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。 P3口: 带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。P3口除作为一般I/O口外,每个引脚都有第二功能4软件编程 4.1主流程图4.2主要程序: #include <reg52.h> #define uint unsigned int #define uchar
23、160;unsigned char uchar code FFW= 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 uchar code REV= 0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01sbit K2 = P31; sbit K3 = P32;
24、160;sbit K4 = P33; sbit K5 = P34; void DelayMS(uint ms void main() uchar N = 50; while(1) if(K1 = 0)
25、0; P0 = 0xfe; SETP_MOTOR_FFW(N); if(K3 = 0) break; else if(K2 = 0) P0 = 0xfd;
26、0; SETP_MOTOR_REV(N); if(K3 = 0) break void main() uchar N = 50; while(1) if(K1 = 0)
27、60;P0 = 0xfe; SETP_MOTOR_FFW(N); if(K3 = 0) break; else if(K2 = 0) P0 = 0xfd; SET
28、P_MOTOR_REV(N); if(K3 = 0) break; else P0 = 0xfb; P1 = 0x03 else if(K2 = 0)
29、 P0 = 0xfd; /LED2点亮,反转指示灯 SETP_MOTOR_REV(N); /电动机反转
30、60; if(K3 = 0) break; else P0 = 0xfb; /LED3点亮,停止指示灯
31、P1 = 0x03; 5 调试过程与结果 5.1正转结果显示:5.1.1正转加速 5.1.2正转减速5.3停止结果显示6 总结与体会 单片机课程设计心得体会: 这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。 关于这次课程设计,我们花费了比较多的心
32、思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便
33、;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。 除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。 此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有
34、电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级
35、为设计。 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:CAD制图、汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源。所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要
36、令我抓狂了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。后来我们组就用了他写的程序,他自己又抽空做了些拓展。 接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮助我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大
37、家都鼓励我,即使最后出不来东西,但是一定要坚持把它做完。当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。 在要验收前,终于做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最后应该还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西现在记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,A/D转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当
38、中的疑惑。在这 个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手算了吧,不要想那些如果,还是准备我自己的,做好我现在能做的吧。 还好,验收还算成功,得了3分,不是很高,但是我觉得对我来说已经很好,代表了我真实的水平,我觉得我对单片机的一些知识在这个动手的过程中真的是从无到有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有七、 参考资料 参考资料不低于5篇,参考书目要求与本设计课题相关。 格式参考: 1 侯文霞.
39、;变频调速技术在中央空调控制中的应用J.机床电器.2002第二期. 2 韩常. PLC编程及应用M. 北京:机械工业出版社,2005. 3 彭虎,周佩玲,傅忠谦.微机原理与接口技术Z.北京:电子工业出版社,2008 4 张齐,朱宁西.单片机应用系统设计技术基于C51的Proteus仿真Z.北京:电子工业出版社,2009 5周荷琴,吴秀清.微型计算机原理与节后技术Z.合肥:中国科技大学出版社八、 附录 附录一:总电路图附录二:电路源程序 #include
40、 <reg52.h> #include <intrins.h> #include "timer0.h" #include "display.h" #include "uart.h" /Motor sbit CoilA = P10; sbit CoilB = P11;sbit CoilC =
41、P12; sbit CoilD = P13; #define uint unsigned int #define uchar unsigned char #define STEPNUM 48 /步进电机一圈的步数步进电机驱动11 sbit CoilC = P12; sbit CoilD = P13; #define
42、;uint unsigned int #define uchar unsigned char #define STEPNUM 48 /步进电机一圈 unsigned char StepNumber=0; bit StepGapFlag,StrRecvOkFlag; uchar str1Print="Timer0's value is:" uchar
43、0;i,UartSendArray8=0, 0, 0, 0, 0, 'r','n','0' uchar str2Print="UartRecvArray value is:" 用 uchar UartPrintArray6=0, 0, 0, 'r'
44、;,'n','0' uchar UartRecv,UartRecvArray5=0; uint time0value,speedvalueRPM; uchar disData=11,11,11,11,11,0,0,0;void InitMotor() CoilA = 0;
45、160;CoilB = 0; CoilC = 0; CoilD = 0;14 if(speedvalueRPM != 0) SetMotor(); if(StrRecvOkFlag) StrRecvOkFlag = 0; if(UartRecvArray0-0x30)<5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钻头代理经销协议书
- 外包运输安全协议书
- 旧房房顶改造协议书
- 刑事司法互助协议书
- 问题处理调解协议书
- 煤炭联营协议书范本
- 医药连锁购销协议书
- 项目承包内部协议书
- 没有档案托管协议书
- 汽车限速协议书范本
- 防流感班会课件
- 2025安徽蚌埠市国有资本运营控股集团有限公司招聘4人笔试参考题库附带答案详解
- 2024年中国资源循环集团有限公司招聘笔试真题
- 行政管理本科毕业论文-数字政府背景下地方政府治理效能研究
- 家庭营养师课件
- 铁路护路工作培训
- 玉兰采购及包栽包活合同范本
- 2025年春季四年级下册语文第15课《白鹅》课件(统编版)
- 2024北京市大兴初二(下)期中数学试卷及答案
- JGT266-2011 泡沫混凝土标准规范
- 中央八项规定实施细则解读课件
评论
0/150
提交评论