单片机课设报告书Word格式.docx
《单片机课设报告书Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课设报告书Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,其优点是结构简单、运行可靠、控制方便。
尤其是步距值不受电压、温度的变化的影响、误差不会长期积累的特点,给实际的应用带来了很大的方便。
它广泛用于消费类产品(打印机、照相机、雕刻机)、工业控制(数控机床、工业机器人)、医疗器械等机电产品中。
研究步进电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。
控制核心采用C51芯片,它以其独特的低成本,小体积广受欢迎,当然其易编程也是不可多得的优点为此,本文设计了一个单片机控制步进电机的控制系统,可以实现对步进电机转动速度和转动方向的高效控制。
本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。
本系统采用AT89C51作为控制单元,通过独立按键实现对步进电机转动方向及转动速度的控制。
二、设计任务和要求
2.1
课程设计目的
《单片机原理及应用课程设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。
2.2课程设计要求
1、认真查阅资料;
2、遵守课程设计时间安排;
3、认真保质保量完成设计要求
4、认真书写报告。
三、设计思路
3.1系统工作框图:
图3-1系统工作框图
本系统采用AT89C51作为控制单元,通过独立按键模块实现对步进电机转动方向及转动速度的控制。
设计按照系统设计功能的要求,确定系统由4个模块组成:
AT89C51、电机驱动模块、时钟电路、键盘电路。
3.2方案的选择
(1)主控芯片方案
方案一:
采用传统的AT89C52单片机作为主控芯片。
此芯片价格便宜、操作简便,低功耗,比较经济实惠。
方案二:
采用TI公司生产的MSP430F149系列单片机作为主控芯片。
此单片机是一款高性能的低功耗的16位单片机,具有非常强大的功能,且内置高速12位ADC。
但其价格比较昂贵,而且是TPFQ贴片封装,不利于焊接,需要PCB制板,大大增加了成本和开发周期。
方案三:
采用宏晶科技有限公司的STC12C5A60S2增强型51单片机作为主控芯片。
此芯片内置ADC和SPI总线接口,且内部时钟不分频,可达到1MPS。
而且价格适中。
考虑到此系统需要不用到ADC,从性能和价格上综合考虑我们选择方案一,即用AT89C51作为本系统的主控芯片。
(2)步进电机驱动方案
方案1:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
方案2:
采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。
但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅会降低效率,而且实现很困难。
方案3:
采用ULN2803达林顿管电机驱动芯片,ULN2803芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。
功率驱动电路是功率电子设备输出电路的一个重要组成部分。
ULN2803芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。
对步进电机控制方便灵活。
因此我们选用了方案3。
四、硬件系统的设计
4.1步进电机
4.1.1步进电机的概述
步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。
单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。
多相步进电动机有多相方波脉冲驱动,用途很广。
使用多相步进电动机,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。
每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。
正常情况下,步进电机转过的总角度和输入的脉冲数成正比;
连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。
4.1.2步进电机的特性
步进电机转动使用的是脉冲信号,而脉冲是数字信号,这恰是计算机所擅长处理的数据类型。
从20世纪80年代开始开发出了专用的IC驱动电路,今天,在打印机、磁盘器等的OA装置的位置控制中,步进电机都是不可缺少的组成部分之一。
总体上说,步进电机有如下优点:
1.不需要反馈,控制简单。
2.与微机的连接、速度控制(启停和反转)及驱动电路的设计比较简单。
3.没有角累积误差。
4.停止时也可保持转距。
5.没有转向器等机械部分,不需要保养,故造价较低。
6.即使没有传感器,也能精确定位。
7.根椐给定的脉冲周期,能够以任意速度转动。
但是,这种电机也有自身的缺点:
1.难以获得较大的转矩
2.不宜用作高速转动
3.在体积重量方面没有优势,能源利用率低。
4.超过负载时会破坏同步,高速工作时会发出振动和噪声。
4.1.3步进电机的种类
目前常用的步进电机有三类:
表4-1步进电机分类
类别
结构
步距
力矩
动态性能
反应式步电动机(VR)
采用高导磁材料构成齿状转子和定子
小
较差
永磁式步电动机(PM)
转子采用多磁极圆筒形的永磁铁,其外侧配置齿状定子吸引和排斥力产生转动
大
好
混合步进电动机(HB)
这是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构
4.1.4永磁步进电机的控制原理
在本设计以常用的永磁式步进电机为例,用单片机控制步进电机。
图4-1是28BYJ-48型永磁步进电机的外形图,图4-2是该电机的接线图。
图4-128BYJ-48型永磁步进电机外形图图4-228BYJ-48型永磁步进电机接线图
从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。
要使用步进电机转动,只要轮流给各引出端通电即可。
将COM端标识为C,只要AC、BC或/AC、/BC,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、B或/A、/B轮流接地。
不难设计出控制电路,因其工作电压为12V,因此用一块开路输出达林顿驱动器(这里用ULN2003,关于ULN2003将在后面介绍)作为驱动,通过P1.0、P1.3来控制各线圈的接通与切断。
开机时,P1.0、P1.3均为高电平,依次将P1.0、P1.2(或P1.1、P1.3反向)切换为低电平即可驱动步进电机运行。
如果要改变电机的转动速度只要改变两次接通之间的时间。
改变转速,只要改变P1.0、P1.2(或P1.1、P1.3反向)轮流变低电平的时间即可达到要求,因为不会影响到其他功能的实现,这个时间可以用延时来实现步进电机转速与单步时间的关系如下:
表4-2步进电机转速与单步时间的关系
转速
单步时间(ms)
20
62.5
21
59.52380952
22
56.81818182
23
54.34782609
24
52.08333333
25
50
26
48.07692308
27
46.2962963
28
44.64285714
…
93
13.44086022
94
13.29787234
95
13.15789474
96
13.02083333
97
12.88659794
98
12.75510204
99
12.62626263
100
12.5
可以根据这个计算值来估算计算程序中应该设定的延时时间。
这里用到的晶振是12.000M。
有了上述表格,程序就不难实现了,使用延时子程序延时,定时时间到后切换输出脚即可。
4.2步进电机控制系统组成
步进电机控制系统共分为六个模块:
单片机最小系统模块、键盘控制模块、步进电机驱动模块和电源模块。
1.单片机最小系统主要由复位电路和时钟电路组成。
复位电路为单片机系统提供可靠复位,使单片机能正常启动。
时钟电路采用外部时钟方式,保证单片机个功能部件都是以时钟频率为基准,有条不紊地一拍一拍地工作。
2.键盘控制模块包括方向控制键、加速键和减速键、启停键,分别与单片机的P3.0、P3.1、P3.2和P3.3相连。
实现对步进电机的控制。
并且键盘上连接有发光二极管,以指示键盘状态。
4.步进电机驱动模块选用七个NPN达林顿连接晶体管ULN2803为步进电机提供脉冲信号,驱动步进电机转动。
该模块与单片机的P1.0—P1.3相连。
5.电源模块是通过将市电220V转变为直流12V和直流5V分别供给驱动模块和单片机模块。
4.3单片机最小系统
4.3.1简介
近年,由于CHMOS技术的进步,大大地促进了单片机的CMOS化。
CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。
这也是今后以80C51取代8051为标准MCU芯片的原因。
因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。
CMOS电路的特点是低功耗、高密度、低速度、低价格。
采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。
随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺。
CHMOS和HMOS工艺的结合。
目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。
因而,在单片机领域CMOS正在逐渐取代TTL电路。
单片机是通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。
其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;
数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;
控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。
考虑到经济和可靠性的要求,本设计中采用AT89C51单片机,它宏晶科技设计生产的单时钟/机器周期(1T)的单片机。
是高速/低功耗/超强抗干扰的新一代8051单片机。
指令代码完全兼容传统8051,但速度快8-12倍。
4.3.2AT89C51单片机特点
1.AT89C51单片机参数:
工作电压:
5.5V—3.8V/3.3V
Flash程序存储器字节:
4K
定时器T0、T1:
有
中断优先级:
2
2.AT89C51单片机优点:
超低功耗
超强抗干扰,超强抗静电
输入输出口多,最多有40个I/O
速度快,1个时钟/机器周期,可用低频率晶振。
4.3.3AT89C51单片机引脚图及功能介绍
AT89C51引脚图:
图4-3AT89C51引脚图
AT89C51引脚功能介绍:
1)电源引脚Vcc和Vss
Vcc(40脚):
电源端为+5VVss(20脚):
接地端。
2)时钟电路引脚XTAL1和XTAL2
XTAL2(18脚):
接外部晶体和微调电容的一端。
在单片机内部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。
若需采用外部时针电路时,该引脚输入外时钟脉冲。
要检查89C52的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):
接外部晶体和微调电容的另一端。
在片内,它是振荡电路反向放大器的输入端。
在采用外部时钟时,该引脚必须接地。
3)控制信号脚RSTALEPSEN和EA。
RST(9脚):
RST是复位信号输入端,高电平有效。
在此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30引脚):
地址锁存允许信号端。
当AT89C52上电正常工作后,ALE引脚不断向外输出正脉冲信号。
此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。
平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。
如果你想看一下AT89C52芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,则AT89C52基本上是好的。
ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。
PSEN(29脚);
程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引脚接ERROM的OE端。
PSEN端有效,即允许读出ERROM/ROM中的指令码。
CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。
不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。
要检查一个AT89C52小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。
如有,说明基本上工作正常。
EA/VPP(31脚):
外部程序存储器地址允许输入端/固化编程电压输入端。
当EA引脚接高电平时,CPU只访问片内ERROM/ROM并执行内部程序存储器中的指令。
但在PC(程序计数器)的值超过OFFFH(对8751/8051为4k)时,将自动转向执行片外存储器的程序。
当出入信号EA引脚接低电平(接地)时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
对于无芯片内的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。
如果使用有片内ROM的AT89C52,外扩ERROM也是可以的,但也要使EA接地。
4)I/O(输入/输出端口,P0,P1,P2,P3)
P0口:
P0口是一个漏极开路的8位准双向I/O端口。
P1口:
8位准双向I/O端口。
P2口:
即可以做地址总线输出地址高8位,也可以做普通I/O用,(此时为准双向口)。
P3口:
双功能口,即可以做普通I/O口用(此时为准向口,也可以按每位定义实现第二功能操作)。
见下表。
表4-3P3口的第二功能表
引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0外部中断)
P3.5
T1(定时器1外部中断)
P3.6
WR(外部存储器写选通)
P3.7
RD(外部存储器读写通)
4.3.4单片机时钟电路与复位电路的设计
本系统采用AT89C52系列单片机,相比其他单片机具有很多的优点。
本系统采用外部时钟电路和加电自复位电路。
采用上电复位形式,微控制器上电后,系统时钟启动,当8051MCU的脚复位引第9脚接高电平并且时间超过2个机器周期,即可完成复位操作。
电源电路中C2,C3起滤波作用,C2过滤高频信号,C3过滤低频信号。
分别如下图所示:
图4-4时钟电路
图4-5复位电路
4.4电源模块设计
电源模块采用5V直流电源给单片机步进电机供电,电路图如下图所示。
P1为电源插孔,D1为电源指示灯。
图4-6电源模块设计
4.5按键模块设计
按键模块采用了5个按键,分别从从左到右为正转、反转、加速、减速、停止。
电路图如下所示:
键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。
键盘实质是一组按键开关的集合。
键盘所用开关为机械弹性开关,利用了机械触点的合、断作用。
一个电压信号在机械触点的断开、闭合过程中,都会产生抖动,一般为5—10ms;
两次抖动之间为稳定的闭合状态,时间由按键动作所决定;
第一次抖动前和第二次抖动后为断开状态。
为了确保单片机对一次按键动作只确认一次按键,必须消除抖动的影响。
消除按键抖动通常采用硬件、软件两种方法。
由于硬件消抖电路设计复杂,本设计中没有采用,在此不再详细叙述;
软件消抖适合按键较多的情况,方便简单。
其原理是在第一次检测到有键按下时,执行一段延时10ms的子程序后在确认该键电平是否仍保持闭合状态电平,如果保持闭合状态电平则确认为真正有键按下,从而消除了抖动的影响。
其原理图如图2-3所示:
89C51单片机复位后P0-P3口初始状态为0FFH,通过按钮开关控制电机的换向和调速,系统不断检测P3.2-P3.3引脚的状态,按钮按下系统检测到低电平,执行相关操作,否则在上拉电阻和+5V电源作用下始终保持高电平。
图4-7按键模块设计
4.6驱动模块的设计
4.6.1ULN2803A芯片介绍
ULN28038个NPN达林顿晶体管,连接在阵列非常适合逻辑接口电平数字电路(例如TTL,CMOS或PMOS上/NMOS)和较高的电流/电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载,广泛的使用范围:
计算机,工业和消费应用。
所有设备功能由集电极输出和钳位二极管瞬态抑制。
该ULN2803是专为符合标准TTL,而制造ULN2804适合6至15V的高级别CMOS或PMOS上。
该电路为反向输出型,即输入低电平电压,输出端才能导通工作。
特点:
包含8个NPN达林顿管,高耐压,大电流,器件编号:
ULN2803,输出击穿电压:
50(V),输出电流:
500(mA),输入电阻:
2.7k(Ω),推荐输入电压:
5(V),度范围:
-40℃~+85℃。
芯片引脚图及内部电路图如下图所示:
图4-8ULN2803A内部电路图
图4-9ULN2803A管脚图
1-8引脚:
输入端
11-18引脚:
输出端
9引脚:
地端
10引脚:
电源+
其主要特性为:
表4-4ULN2003主要特性表
极限值(若无其他规定,Tamb=25℃)
参数名称
符号
数值
单位
输入电压
VIN
30
V
输入电流
IIN
mA
功耗
PD
1
W
工作环境温度
Topr
-20to+85
℃
贮存温度
Tstg
-55to+150
℃
4.6.2驱动电路设计
步进电机驱动电路的工作过程是:
首先从P1口输出00000001B,由于单片机与ULN2803连接只用到了P1.0—P1.3,所以ULN2803与单片机连接的四个管脚中每时刻只有一个或两个管脚处于导通状态(采用双拍方式对步进电机控制),其他管脚处于断开状态。
这样就使得与ULN283连接的步进电机只有一个引出端导通。
该系统驱动原理图如图4-10所示:
图4-10驱动电路设计
五、软件系统的设计
5.1软件设计的原则及编程思路
应用系统中的应用软件是根据系统功能要求设计的,应稳定正确的实现系统的各种功能。
在本系统中,软件设计要求做到以下几点:
(1)软件结构清晰,简捷,流程合理。
(2)各功能程序实现模块化。
这样,即便于调试,链接,又便于移植,修改。
(3)程序存储区,数据存储区要合理规划,既能节约内存容量,又使操作方便。
(4)运行状态实现标志化管理。
各个功能程序运行状态,运行结果以及运行要求都要设置状态标志以便查询,程序转移,控制都可通过状态标志条件来控制。
5.2程序设计思路
步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动等任务,这就必须通过中断技术来实现。
在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按键值修改相应参数值,实现键盘的实时处理功能。
延时子程序对步进电机的转速进行控制,不同的延时值对应不同的转速;
根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。
说明如下:
1.单片机接受键盘信息,改变系统内部变量值。
2.单片机输出脉冲信号,控制步进电机转动。
5.3程序流程图
5.3.1主程序流程图
步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图5-1所示:
图5-1主程序流程图
5.3.2正反转子程序流程图
当正转或者反转键按下后,程序跳转到相应的正反转子程序,正反转子程序中先检测停止按键是否按下,若按下,则停止;
弱没有按下,则依次向P0口输出相应的正(反转)脉冲序列里面的脉冲。
流程图如下:
图5-2正反转子程序流程图
5.3.3硬件中断程序流程图
硬件