单片机课程设计实验报告.docx
- 文档编号:8636692
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:21
- 大小:974.60KB
单片机课程设计实验报告.docx
《单片机课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
单片机课程设计实验报告
课程设计任务书
学生姓名:
专业班级:
指导教师:
陈德军工作单位:
武汉理工大学
题目:
单片机应用实践——设计并实现步进电机控制器
初始条件:
(1)Keil、Proteus7.8、STC等软件;
(2)课程设计辅导书:
《单片机微型计算机与接口技术》
(3)先修课程:
数字电子技术、模拟电子技术、
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
(1)课程设计时间:
1周;
(2)课程设计题目:
设计并实现步进电机控制器
(3)本课程设计统一技术要求:
按照要求对题目进行分析,构造流程图进而设计汇编程序;通过proteus软件对线路进行仿真,以确保线路连接的准确性;最后应用到实际电路并对实验结果进行分析;
(4)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献至少5篇;
(5)写出本次课程设计的心得体会(至少500字)。
时间安排:
第18周
参考文献:
[1]戴胜华等《单片机原理与应用》北京:
清华大学出版社;
[2]李群芳等《单片微型计算机与接口技术》(第三版)北京:
电子工业出版社
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要1
Abstract2
1.前言3
2、系统原理分析4
2.1步进电机总控制工作原理4
2.1.1步进电机的结构6
2.1.2步进电机的启停控制7
2.1.3步进电机的转向控制7
2.1.4步进电机的速度控制8
2.1.5步进电机的换相控制8
2.2系统设计思路9
3、硬件系统设计与仿真10
3.1主要元件简介10
3.1.1STC89C52单片机10
3.1.2ULN2003A驱动芯片10
3.2各个分模块分析12
3.2.1时钟晶振电路12
3.2.2复位电路12
3.2.3步进电机驱动电路13
3.2.4系统总电路图14
4、程序流程框图15
5、实物调试问题与分析16
6.心得体会17
7、参考文献19
附录:
20
本科生课程设计成绩评定表24
摘要
步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。
步进电机可以直接用数字信号驱动,使用非常方便。
在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。
因此非常适合于单片机控制。
本课程设计以STC89C52单片机作为微控制器,使用混合式步进电机驱动芯片ULN2003A进行驱动,实现了对步进电机运行状态的简单控制。
本次设计能实现的功能有电机运行、停止,加速、减速、反转等控制功能。
关键字:
步进电机单片机ULN2003A汇编语言
Abstract
Steppermotoristheelectricpulsesignalintoangulardisplacementorlineardisplacementoftheimplementationofcomponents.Thesteppermotorcanbedirectlydrivenbydigitalsignals,soitisveryconvenienttouse.Whenthereisnopulseinput,theairgapmagneticfieldcankeeptherotorinthepositionoftherotorpositionundertheexcitationofthewindingpowersupply.Soitisverysuitableforsinglechipmicrocomputercontrol.ThiscourseisdesignedtoSTC89C52microcontrollerasthemicrocontroller,theuseofhybridsteppermotordriverchipULN2003Atodrive,toachieveasimplecontroloftherunningstateofthesteppermotor.Thedesigncanachievethefunctionofmotorrunning,stop,acceleration,deceleration,inversionandothercontrolfunctions.
Keyword:
SteppermotorMCUULN2003AAssembly
1.前言
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。
随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。
步进电机的原始模型起源于1830年至1860年,1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中,这被认为最早的步进电机。
1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。
到20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。
步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。
在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。
本次课程设计主要采用STC89C52芯片,用汇编语言编写出电机的正转、反转、加速、减速、停止程序,通过单片机、电机的驱动芯片ULN2003以及相应的按键实现以上功能,并且步进电机的工作状态要用相应的发光二极管显示出来。
控制系统主要由硬件设计和软件设计两部分组成。
其中,硬件设计包括单片机的最小系统模块、电源模块、控制模块、步进电机ULN2003A驱动模块、4个功能模块的设计。
并且通过仿真控制系统对硬件、软件进行了调试和改善,实现了上述功能。
本系统具有智能性、实用性及可靠性的特点。
2、系统原理分析
2.1步进电机总控制工作原理
28BYJ-48步进电机
步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面。
从结构上看,步进电机分为三相、四相、五相等类型,本次设计的是四相电机。
四相步进电机的工作方式有单四拍、双四拍和单双八拍3种。
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
图2.1.1步进电机三相接线图
如图2.1.1所示,U1、V1、W1接电源,分别有三个开关控制,U2、V2、W2分别接地。
如果给处于错齿状态的相通电,则转子在电磁力的作用下,将向磁导率最大(即最小磁阻位置)位置转动,即向趋于对齿的状态转动。
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器 。
以反应式步进电机为例:
如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。
如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3π,此时齿3与C偏移为1/3π,齿4与A偏移(π-1/3π)=2/3π。
如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3π,此时齿4与A偏移为1/3π对齐。
如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3π这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,电机就每步(每脉冲)1/3π,向右旋转。
如按A,C,B,A……通电,电机就反转。
由此可见:
电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。
而方向由导电顺序决定。
不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3π改变为1/6π。
甚至于通过二相电流不同的组合,使其1/3π变为1/12π,1/24π,这就是电机细分驱动的基本理论依据。
不难推出:
电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。
并且导电按一定的相序电机就能正反转被控制——这是旋转的物理条件。
只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。
2.1.1步进电机的结构
图2.4.1步进电机内部结构图
如图2.1所示,步进电机分为转子和定子两部分:
1.定子:
由硅钢片叠成的,定子上有6大磁极,每2个相对的磁极(N,S)组成一对,共有3对。
定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3π、2/3π,(相邻两转子齿轴线间的距离为齿距以π表示),即A与齿1相对齐,B与齿2向右错开1/3π,C与齿3向右错开2/3π,A'与齿5相对齐,(A'就是A,齿5就是齿1)。
2.转子:
由软磁材料制成,其外表面也均匀地分布着小齿,与定子上的小齿相同,并且小齿的大小相同,间距相同。
图2.4.2步进电机转子展开图
反应式步进电机的动力来源于电磁力,只有电机存在错齿现象才能转动。
在电磁力的作用下,转子被推动到最大磁导率的位置,定子小齿与转子小齿对齐的位置,并处于平衡状态,如图2.2中的A相位置,这种现象被称为对齿。
而对于三相步进电机来说,当某一相得磁极处于最大磁导位置时,另外两相必须处于非最大磁导位置,即定子和转子不对齐位置,这种现象被称为错齿。
2.1.2步进电机的启停控制
步进电机由于其电气特性,运转时会有步进感,即振动感。
为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,提高电机运行的平稳性。
在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机的转轴不能自由转动。
2.1.3步进电机的转向控制
如果给定工作方式正序换相通电,步进电机正转。
若步进电机的励磁方式为单四拍,即A-B–C-D。
如果按反序通电换相,即则电机就反转。
2.1.4步进电机的速度控制
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
2个脉冲的间隔越短,步进电机就转得越快。
调整送给步进电机的脉冲频率,就可以对步进电机进行调速。
2.1.5步进电机的换相控制
步进电机换向时,一定要在电机减速停止或降到突跳频率范围之内再换向,以免产生较大的冲击而损坏电机。
换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第1个脉冲前发出。
对于脉冲的设计主要要求要有一定的脉冲宽度(一般不小于5μs)、脉冲序列的均匀度及高低电平方式。
在某一高速下的正、反向切换实质包含了减速→换向→加速3个过程。
2.2系统设计思路
我们本次设计的步进电机控制系统主要有单片机STC89C52、ULN2003A步进电机驱动芯片、五线四相永磁式步进电机、及其其他相关元件组成。
可以通过开关来控制系统的启/停工作,并通过LED显示管的工作状态显示步进电机的正、反转和前进、后退的状态。
其总体设计框图1所示:
图1系统设计框图
3、硬件系统设计与仿真
3.1主要元件简介
3.1.1STC89C52单片机
图2.STC89C52引脚图
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU在掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
3.1.2ULN2003A驱动芯片
ULN2003A是高耐压、大电流、内部由七个硅NPN达林顿管组成的驱动芯片。
ULN2003A的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003A工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
图3.ULN2003A引脚图
橙
黄
粉
蓝
十六制(P1口)
1
0
0
0
0x08
1
1
0
0
0x0c
0
1
0
0
0x04
0
1
1
0
0x06
0
0
1
0
0x02
0
0
1
1
0x03
0
0
0
1
0x01
1
0
0
1
0x09
由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,顺序刚好相反所以可以定义旋转相序
ucharcodeCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表
ucharcodeCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表
3.2各个分模块分析
3.2.1时钟晶振电路
时钟电路是整个系统的心脏,控制着步进电机工作节奏。
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:
内部振荡和外部振荡。
STC89C52单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式.图4中的外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30PF左右,晶振频率选12MHz。
图4.时钟电路仿真电路图
3.2.2复位电路
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。
复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。
复位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
图5.复位电路仿真电路图
3.2.3步进电机驱动电路
本设计采用ULN2003A芯片。
ULN2003A是高耐压、大电流、内部由七个硅NPN达林顿管组成的驱动芯片。
ULN2003A的每一对达林顿都串联一个2.7K的基极电上午阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003A工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
图6.步进电机驱动仿真电路图
3.2.4系统总电路图
图7.系统总电路原理仿真图
将各个模块综合起来,通过STC89C52单片机连接起来得到总的步进电机控制电路如下。
4、程序流程框图
按硬件图连接好电路以后,开始用汇编语言写程序,并运行程序,程序编写程序流程图如下。
5、实物调试问题与分析
完成焊接任务后,接着就要对步进电机控制系统进行调试了。
连接并检查完基本线路后,我们将keil上编写的程序烧写到芯片上,但是开始我们发现程序烧入进去后步进电机并没有转动,但检查后电路没问题,之后才知道我们设定的初始状态脉冲频率太低,转速过慢转动的效果不明显,后来减小了脉冲间隔,转动的效果就很明显了,然后就按下各个开关按键进行测试,后来发现程序采用的是一直对键盘进行扫描的方式,因此在调试过程中需要一直按着按键来使步进电机持续进行工作,因此我们焊接了两个开关代替按键进行操作,最后电机和显示器都基本上按照设计要求工作了。
最后的调试之所以能够如此顺利,与我们之前遇到的一系列问题和我们组员的辛勤付出是密不可分,最终电机能按要求转起来了就是对我们最好的鼓励!
6.心得体会
经过这次的课程设计,我得到了不少的收获,一方面加深了对课本理论的认识,另一方面也提高了动手能力。
现总结了以下的心得体会。
1、在设计过程中,曾经遇到很多的障碍,设计图经过许多次的修改最后才定下来,但在调试的过程中又出现了问题;并没有想象中的那么容易;在焊接过程中稍有不注意就会出现管脚的错位,有些在硬件测试过程中才能检查出来。
2、在设计中最艰难的是汇编语言的设计这一模块,在这一点上我们做的相当艰难,从一开始的毫无头绪,但后来的查阅资料请教同学着手写,再到后来的程序不断纠错改正再到成功运行,一步一步都来之不易。
3、在调试过程中遇到的另一个问题就是我们在进行调试时,开始我们发现程序烧入进去后步进电机并没有转动,但检查后电路没问题,之后才知道我们设定的初始状态脉冲频率太低,转速过慢转动的效果不明显,后来减小了脉冲间隔,转动的效果就很明显了,在这一部分浪费的时间较多,以后要汲取经验。
通过本次课程设计,我们深深体会到了理论知识学习的重要性,如果没有扎实的理论知识作为奠基,那么在今后的实践运用中就像是无头之蝇,没有一点头绪,不知从何入手,最终只能求助于他人,被动地进行工作。
不管对以后的工作还是学习都起不到积极的促进作用。
在本次课程设计活动中,我们团队也体会到了分工协作的重要性,主要负责写程序,焊接电路,负责撰写设计报告,每个组员分工明确,遇到个人难以解决的问题就一起商量讨论,组员之间既独立又不失联系协作,极大的提高了工作效率。
这点是值得我们在今后的工作和学习中好好运用的。
7、参考文献
(1)《单片机原理及应用技术》李全利著高等教育出版社
(2)《单片机课程设计实例指导》李光飞编著北京航空航天大学出版社
(3)《单片机程序设计实例》先锋工作室编著清华大学出版社
(4)电子工程师之家、豆丁网、XX、搜狗、电子工程专辑
附录:
源程序:
ORG00H
START:
MOVDPTR,#TAB1
MOVR0,#03H
MOVR1,#4H
MOVR4,#00H
MOVP1,#03H
WAIT:
MOVP1,R0
MOVP0,#0FFH
JNBP0.4,TIZ
JNBP0.0,POS
JNBP0.1,NEG
SJMPWAIT
POS:
MOVA,R4
MOVCA,@A+DPTR
ACALLDELAY
INCR4
AJMPKEY
NEG:
MOVR4,#6
MOVA,R4
MOVCA,@A+DPTR
MOVP1,A
ACALLDELAY
AJMPKEY
KEY:
MOVP0,#0FFH
JBP0.4,ZZ1
AJMPTIZ
TIZ:
MOVP1,#00H
SETBP0.5
SETBP0.6
AJMPKEY
ZZ1:
JBP0.0,FZ1
CJNER4,#8,LOOPZ
MOVR4,#0
LOOPZ:
MOVA,R4
MOVCA,@A+DPTR
MOVP1,A
SETBP2.1
CPLP2.0
JNBP0.2,JIASUZ
JNBP0.3,JIANSUZ
ACALLDELAY
INCR4
AJMPKEY
FZ1:
JBP0.1,KEY
CJNER4,#255,LOOPF
MOVR4,#8
LOOPF:
DECR4
MOVA,R4
MOVCA,@A+DPTR
MOVP1,A
SETBP2.0
CPLP2.1
JNBP0.2,JIASUF
JNBP0.3,JIANSUF
ACALLDELAY
AJMPKEY
DELAY:
MOVA,R1
MOVR6,A
DD1:
MOVR5,#3H
DD2:
MOVR7,#0
DD3:
DJNZR7,DD3
DJNZR5,DD2
DJNZR6,DD1
RET
JIASUZ:
ACALLDELAY1
CJNER1,#02,L1
JMPL2
L1:
DECR1
L2:
JMPLOOPZ
JIANSUZ:
ACALLDELAY1
CJNER1,#08H,L3
JMPL4
L3:
INCR1
L4:
JMPLOOPZ
JIASUF:
ACALLDELAY1
CJNER1,#02H,L5
JMPL6
L5:
DECR1
L6:
JMPLOOPF
JIANSUF:
ACALLDELAY1
CJNER1,#08H,L7
JMPL8
L7:
INCR1
L8:
JMPLOOPF
DELAY1:
MOVR6,#10H
DD4:
MOVR5,#02H
DD5:
MOVR7,#0
DD6:
DJNZR7,DD6
DJNZR5,DD5
DJNZR6,DD4
RET
TAB1:
DB02H,06H,04H,0CH
DB08H,09H,01H,03H
END
本科生课程设计成绩评定表
姓名
性别
专业、班级
课程设计题目:
单片机应用实践——设计并实现步进电机控制器
课程设计答辩或质疑记录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 实验 报告