基于MCS-51的步进电机驱动控制(毕业设计).doc_第1页
基于MCS-51的步进电机驱动控制(毕业设计).doc_第2页
基于MCS-51的步进电机驱动控制(毕业设计).doc_第3页
基于MCS-51的步进电机驱动控制(毕业设计).doc_第4页
基于MCS-51的步进电机驱动控制(毕业设计).doc_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

沈阳航空工业学院电子信息工程学院毕业设计(论文)第1章 概述1.1 课题来源与研究意义步进电机是电机家族中近年来发展较快、具有广阔应用前景的重要一员。步进电机又称脉冲电动机,是数字控制的一种执行元件。它是随着计算机控制系统发展而发展起来的,利用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或者线位移的电动机。步进电机驱动器是其控制系统中的一部分,而步进电机与它的驱动器是一个整体的不可分割的两部分,统称为“步进电动机单元”。因而步进电机与驱动器关系密切。晶体管技术的应用,使驱动器向小型化前进了一步。 对于步进电机控制系统,运动控制器就像是它的中枢神经系统,指挥着它的每个动作。控制器接收相应指令,并根据指令向各进给电机发出控制信号,各个电机的驱动器则将控制信号转变成直接驱动电机的电信号。开放式运动控制己成为运动控制的发展方向,因此对控制器也有更高的要求,比如从硬件上要能实现电机的位置控制、速度控制,从软件上 配有功能完备的控制软件,具有完善的运动轨迹插补功能和软件控制功能且能方便地与机床、机器人等设备联接,能迅速地建立高层应用程序与设备之间的控制以及测试数据交换等。步进电机由于省去了旋转类步进电机必须的丝杠和链条等机械转换装备,结构大为简化,在需要直线驱动的场合从定位精度、工作效率和节约能源等方面显示出越来越明显的优势。随着微机技术和集成电路的发展、步进电机本体的日臻完善、驱动技术的不断提高以及直线运行应用领域的逐渐增多,步进电机正朝着其他电机驱动装置不能满足和使用旋转电机有困难的领域发展,步进电机的发展前景将更广阔。电动机一直在现代化的生产和生活中起着十分重要的作用,无论是在工业生产还是在日常生活中的家用电器都大量地使用着各种各样的电动机。因此对电动机的控制变得越来越重要。电动机的控制技术的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、微机应用技术的最新发展成就。正是这些技术的进步使电动机控制技术在近二十年来发生了翻天覆地的变化,其中电动机的控制部分已由模拟控制逐步让位于以单片机为主的微处理器控制。世界电动机制造业的发展已经历了100多年,我国电动机生产起始于1917年,至今已有90多年的历史。2008年以来,我国电机产量突飞猛进,全行业通过多种提高利润的方式,生产企业克服了多重困难,使行业经济形势趋于平稳,呈现出产销增速减缓、出口增速回落、利润继续增长、经济效益综合指数上升等特点。国内许多高校业内人士对步进电机驱动系统进行了很多研究,并取得了很大的进展。随着我国电子工业的发展,步进电机驱动系统已逐步国产化,我国许多科研生产单位都投入到开发生产的行列。1.2课题分析本课题要求设计基于MCS-51的4相步进电机驱动控制系统,能够实现步进电机的正反转设置,步进电机的转速设定及相关参数的LCD显示等。系统总体结构包括单片机最小系统、电机驱动控制电路、LCD显示及键盘设定等,其中键盘用于步进电机运行方式和参数的设定,LCD配合键盘显示当前步进方向和步进速度等。其系统框图如图1.1所示。LCD显示速度控制方向控制单片机驱动电路控制电路步进电机图1.1 系统原理框图由单片机产生驱动步进脉冲信号传递给控制电路,控制电路根据接收到的脉冲实现步进电机的换相逻辑,驱动电路将输入信号功率放大后直接驱动电机工作。步进电机在一个脉冲周期内将会按照设定的方向转动一个固定的角度,将电脉冲转化成角位移。转速由脉冲信号频率来控制决定,可通过控制脉冲在一定时间内的个数来控制角位移量,从而达到调速的目的。1单片机本系统单片机择AT89C51,它是美国ATMEL公司生产的低电压,高性能的COMS 8位单片机。与AT89C1051相比,AT89C51内部有4K字节的存储器,而AT89C1051内部仅有1K字节的存储器。AT89C51内部含有128x8字节RAM,而AT89C1051内部只含有64x8字节RAM.另外,AT89C51比AT89C1051多了17个可编程的I/O口,而且保密性能前者也比后者高。2步进电机驱动控制步进电机是典型的机电一体化元件。电机本体、机驱动器和控制器是构成步进电机系统不可分割的三大部分。当步进电机本体确定后,系统的性能主要取决于驱动控制器的优劣。步进电机受脉冲信号控制,接收到一个脉冲控制信号,就改变一次励磁状态,驱动器按设定方向驱动电机走一个固定步距。脉冲输入越多,走过的步距越多,即走的距离越长;输入脉冲频率越高,速度越快;励磁状态改变的顺序不同,电机运行的方向就不同。因此通过控制脉冲有无,可控制电机的启动、停止;通过控制脉冲个数 可控制电机位移量,达到准确定位的目的;通过控制脉冲频率可控制步进电机的速度, 达到调速的目的;通过控制励磁状态改变的顺序,可控制电机的运行方向。常用的驱动控制技术主要有以下四种: (1) 常规驱动。主要指单电压串电阻驱动、双电压驱动和高低压驱动。通过串电阻和提高启动电压等简单方法使绕组导通电流上升的前端变陡,改善电机高频特性, 提高电机的高频响应。主要优点是电路简单、成本低。缺点是能量消耗大,电机低频运行不平稳,噪声较大,控制精度不够高。 (2) 恒流斩波驱动技术。恒流斩波驱动控制技术采用脉冲调制(PWM)等方式,使相绕组电流基本保持恒定。优点是能够保证电机牵出转矩的平均值基本恒定。同时,电机的高频响应得以提高,共振现象减弱。不足之处是不能解决步进电机本身所固有的低频振动问题。 (3) 细分驱动控制技术。细分驱动也称微步驱动。其基本思想是在每次输入脉冲切换时,不将相绕组电流全部通入或切除,而只改变相应绕组中额定电流的一部分,这样电机的合成磁势也只旋转步距角的一部分,转子的每步运行角度也只有步距角的一部分。利用电流控制技术可以实现 步进电动机的微步驱动,提高步进电动机系统分辨率和运行平稳性,解决低频振动问题,进一步改善系统的牵出特性。 (4) 集成电路驱动控制技术。通过使用专业的集成芯片完成驱动步进电机,由于集成电路集驱动和保护于一体,作为步进电动机的专用驱动芯片,使用起来非常方便。设计中选择L298N集成电路芯片作为步进电动机的驱动芯片,L298内部采用2个高电压、大电流的全桥电路A、B,每个桥需要2个标准的TTL逻辑电平输入,以驱动继电器、螺线管、直流电机和步进电机等负载。再通过L297来产生步进脉冲以完成驱动控制。3显示显示可以用数码LED和液晶LCD来完成,前者可以用移位寄存器74LS164来驱动,74LS164是8位串入并出移位寄存器,可以实现LED的显示,但是显示的位数较多时,需占用较多的I/O口线,占用板子的空间也较大。后者它将LCD控制器、驱动器、RAM、ROM和LCD显示器集成到了一块PCB板上。这种模块与MCS-51芯片接口简单,使用方便。由于本次设计是对采集到的步进电机转速进行显示,而且需要显示转动方向的正负,采用LED点阵显示及数码管显示不太适合,所以采用LCD显示。通过以上方案的设计最终采用以单片机AT89C51为核心元件的控制系统,采用L298N集成电路芯片作为步进电动机的驱动芯片完成驱动控制,而步进脉冲则通过L297来产生。基于单片机的控制系统具有体积小、简单实用、成本低、性能价格比高等特点,并且系统不易受到干扰,可靠性好。系统可以实现步进电机转速的调节和方向的转换,LCD显示速度以及方向,系统比较智能化,测量精度也比较高,是本次设计的最佳选择。第2章 硬件电路设计硬件系统以AT89C51单片机为核心部件,主要由单片机最小系统模块、电机驱动控制模块、LCD显示模块及键盘输入模块等组成,本章分别就各部分的具体设计作简单介绍。2.1单片机最小系统本次设计中,电路的控制部分选择以单片机AT89C51为核心的最小系统板,该系统由时钟电路、复位电路等组成。这三部分是单片机正常工作的前提。AT89C51采用+5V单电源供电,时钟电路采用外部时钟源,由外部提供晶振,复位电路的基本功能是为系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为了可靠起见,一般电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。2.1.1 时钟电路单片机工作的时间基准是由时钟电路提供的。单片机的时钟可以通过两种方式产生:内部振荡方式和外部振荡方式,外部振荡方式需要引入外部时钟信号作为单片机的时钟信号,它可以使各单片机之间的时钟信号同步,常用于多片单片机组成的系统中,而对于本次设计只需用一片单片机的情况,本次系统设计采用了内部振荡方式。因为时钟电路是一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,所以可以外接晶振和电容组成单片机内部的振荡器。在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图2.1所示。 图2.1 时钟电路晶振的实际频率和标称频率之间关系式如下 (2.1)其中为实际频率,为标称频率,为负载电容,负载电容的计算公式如(2.2) (2.2)上式中为杂散电容, 和为外部所加的两个电容,对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性,所以通常都是选取两个电容值相同的电容。通常的取值范围为3010pF;晶振频率可以在1.2MHz到12MHz之间选择,本次设计石英晶体选择12MHz。机器周期=。2.1.2 复位电路单片机的复位通常分为三种:自动复位,手动复位,看门狗复位。复位是单片机的初始化操作,只要给引脚RESET加上2个机器周期以上的高电平信号,就可使单片机AT89C51复位。复位的主要功能是初始化为0000H,使单片机从0000H单元开始执行程序,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,为摆脱死锁状态,也需按复位键重新启动。AT89C51单片机的复位电路通常采用自动复位和手动复位,其内部没有看门狗,在本设计中采用手动复位和自动复位相结合。复位电路如图2.2所示:图2.2 复位电路由上图可知,上电时,+5V电源立即对单片机供电,电源经过R1和C3给单片机充电,即电流经C3流向RST,RST得到高电平, C3和R1构成时间常数,这里的时间常数是大于2个机器周期,即RST得到的高电平信号大于2个周期,所以单片机复位。复位完毕以后,C3充电停止不再有电流流过,RST经R1接地为低电平,电路进入工作状态。在单片机工作状态下,当按下按键S1时,能够使RST端快速达到高电平,并保证RST引脚出现2个机器周期以上稳定的高电平,所以单片机实现了复位。2.2 步进电机驱动控制模块在驱动电路的设计中主要用到芯片L297和L298,L297是步进电机专用控制器,它能产生四相控制信号,可用于计算机控制的两相双极和四相单极步进电机。该器件采用双列直插20脚塑封封装,主要用到的引脚功能如下:4脚(A)A相驱动信号。5脚(INH1)控制A相和B相的驱动极。当此引脚为低电平时,A相、B相驱动控制被禁止;当线圈级断电时,双极性桥用这个信号使负载电源快速衰减。若CONTROL端输入是低电平时,用斩波器调节负载电流。6脚(B)B相驱动信号。 7脚(C)C相驱动信号。8脚(INH2)控制C相和D相的驱动级。作用同INH1相同。 9脚(D)D相驱动信号。10脚(ENABLE)L297的使能输入端。当它为低电平时,INH1,INH2,A,B,C,D都为低电平。当系统被复位时用来阻止电机驱动。 11脚(CONTROL)斩波器功能控制端。低电平时使INH1和INH2起作用,高电平时使A,B,C,D起作用。 13脚(SENS2)C相、D相绕组电流检测电压反馈输入端。 14脚(SENS1)A相、B相绕组电流检测电压反馈输入端。 17脚(CW/CCW)方向控制端。步进电机实际旋转方向由绕组的连接方法决定。当改变此引脚 的电平状态时,步进电机反向旋转。 18脚(CLOCK)步进时钟输入端。该引脚输入负脉冲时步进电机向前步进一个增量,该步进是在信号 的上升沿产生。 19脚(HALF/FULL)半步、全步方式 选择端。此引脚输入高电平时为半步方式(四相八拍),低电平时为全步方式。如选择全步方式时变换器在奇数状态,会得到单相工作方式(单四拍)。 用L297输出信号可控制L298双H桥驱动集成电路,用来驱动电压为46V,每相电流为2.5A以下的步进电动机。L297也可用来控制由达林顿晶体管组成的分立电路,驱动更高电压、更大电流的步进电动机。此器件的特性是只需要时钟、方向和模式输入信号。相位是由内部产生的,因此可减轻微处理机和程序设计的负担。L297主要由译码器、2个固定斩波频率的PWM恒流斩波器以及输出逻辑控制组成。其核心是脉冲分配器,它产生3种相序信号,对应于3种不同的工作方式,即:半步方式(HALFSTEP,半步);基本步距(FULLSTEP,整步)一相激励方式;基本步距两相激励方式。脉冲分配器内部是1个3bit可逆计数器,加上一些组合逻辑,产生每周期8步格雷码时序信号,这也就是半步工作方式的时序信号。此时HAL/FULL信号为高电平。若HALFFULL取低电平,得到基本步距工作方式,即4步工作方式。L297另一个重要组成是由2个PWM斩波器来控制相绕组电流,实现恒流斩波控制以获得良好的转矩一频率特性。每个斩波器由1个比较器、1个RS触发器和外接采样电阻组成,并设有1个公用振荡器,向2个斩波器提供触发脉冲信号。L298是SGS公司的产品,比较常见的是15脚Multiwatt封装,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机或一个两相步进电机。L298N可接收标准TTL逻辑电平信号,4脚VS接电源电压,范围为2.546V,输出电流可达2.5A,可驱动电感性负载。此芯片可直接由单片机的 IO 端口来提供模 透过电源来调节输出电压; 拟时序信号, 拟时序信号, 但在本驱动电路中用 L297来提供时序信号,节省了单片机 IO 端 L297来提供时序信号, 来提供时序信号 口的使用。L298的主要引脚功能如下:5、7=7、9,1A1、1A2输入端,TTL电平兼容 6、11=8、14,1EN、2EN使能端,低电平禁止输出 8=1、10、11、20,GND地9=12,Vss逻辑电源,4.5-7V 10、12=13、15,2A1、2A2 输入端,TTL电平兼容 13、14=16、17,2Y1、2Y2 输出端 本系统设计的驱动控制电路如图2.3所示。图2.3 L297和L298驱动四相步进电机L297的A,B,C,D端分别与L298的IN1,IN2,IN3,IN4相连,接收脉冲信号。L298的1脚和15脚发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。OUT1,OUT2 和 OUT3,OUT4之间可分别接电动机的一相。5,7,10,12脚接输入控制电平,控制电机的正反转。ENA,ENB控制使能端,控制电机的停转。控制步进电机的运行速度只要控制系统发出时钟脉冲的频率或换相的周期,即在升速过程中,使脉冲的输出频率逐渐增加;在减速过程中,使脉冲的输出频率逐渐减少。2.3 LCD显示模块本系统的显示部分采用LCD,显示当前步进电机的转速和转向。选用LCD1602芯片,LCD显示模块是把LCD显示屏、背景光源、线路板和驱动集成电路等部件构造成1个整体作为1个独立部件使用,只留1个接口与外部通信。显示模块通过这个接口接收显示的命令和数据,并按指令和数据的要求进行显示,外部电路通过这个接口读出显示模块的工作状态和显示数据。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每1个字符都有1个固定的代码。用户对模块写入适当的控制命令,即可完成清屏、显示、地址设置等操作。LCD引脚功能如表2.1所示:表2.1 1602引脚功能表引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光电源负极LCD1602的基本的操作分为以下四种: 表 2.2 LCD寄存器选择表RSR/W-操 作00数据寄存器写入01数据寄存器读出10指令寄存器写入11指令寄存器读出本设计采用并行方式控制,LCD与单片机的通讯接口电路如图2.4所示。图2.4 LCD显示电路LCD1602的E管脚接到P2.2,RS管脚接到P2.0,R/W管脚接到P2.1,通过软件设置,当E=0时,LCD1602开始工作。当R/W=0,RS=0时,单片机可以向LCD写指令,当RS=1,R/W=0时,单片机可以向LCD写数据,单片机的P1口和LCD的DB端口相连,当P1口输出数据时,通过软件程序控制,将数据进行一系列的计算,最后在LCD上显示此时步进电机的转速。2.4 键盘输入模块键盘模块主要完成对步进电机速度和方向的调节,包括加速按键,减速按键,正转按键和反转按键。当加速按键按下,增加步进电机的转速;减速按键按下,减少步进电机的转速;正转和反转按键对步进电机的转动方向进行转换。按键电路如图2.5所示。图2.5 按键控制电路加速按键与P3.4口相连;减速按键与P3.5相连;反转按键与P3.6相连;正转按键与P3.7相连。按键按下后将信号输入单片机,后由单片机通过驱动器传给步进电机,步进电机转动,从而实现按键对步进电机速度和方向的控制。 第3章 软件系统的设计软件系统设计是系统的核心,在本次设计中使用keil C语言编译。软件设计运用模块化程序设计思想,对不同功能的程序分别进行编程,这样不但使得整个软件的层次和结构比较清晰,而且有利于软件的调试和修改。3.1主程序设计四相步进电机有很多种工作方式如四相四拍或四相八拍。本设计采用四相八拍工作,即采用AAB BBCCCDDDAA的循环方式送数据,单字母表示四相里只有一相导通,双字母表示有两相导通。步进电机转过1个齿距,需连续送完以下8个数据:0001、0011、0010、0110、0100、1100、1000、1001。若步进电机连续转动,则需循环送这8个数据。逆序送数则可让电机反转,控制送脉冲的频率可控制部电机的转速。步进电机精准的转1圈送多少个数据取决于所使用的步进电机的转子齿数。主程序由初始化子程序、按键扫描子程序、按键处理子程序、转速控制子程序、方向控制子程序等组成。实现的功能包括脉冲信号发生,键盘的识别处理,LCD的显示等。主程序的设计思路是首先进行系统的初始化,然后设定定时器的工作方式,接着调用按键扫描和处理子程序,它们能够实现对步进电机转速和方向的调节,然后再调用显示子程序,它能够实现对调整后步进电机转速的显示。最后,程序返回到主程序开始执行的那一步,循环调用按键扫描处理,主程序流程如图3.1所示。设定定时器工作方式开始初始化所有存储单元N是否有按键转向标志=1?NYY正反调用按键处理程序调显示状态程序显示图3.1 主程序流程图3.2 转速控制子程序本课题采用的是四相步进电机,定子上有8个极,转子上有4个极。步进电机在工作时需由专用的驱动电源将脉冲信号电压按一定的顺序轮流加到定子的各相绕组上。驱动电源主要由脉冲分配器和脉冲功率放大器两部分组成,具体电路设计如图2.4。步进电机的定子绕组从一次通电到下一次通电称为一拍。每一拍转子转过的角度称为步距角。本课题对此四相步进电机采用的是4相8拍运行方式,即四相通电顺序为A-AB-B-BC-C-CD-D-DA-A。经过8拍才完成一个通电循环,又不不论采用何种运行方式,步距角与转子极数z和拍数N之间的关系满足 所以本系统中电机的步距角,若通过定时器中断设定脉冲频率为f ,则转子每秒钟转过的圈数为 也即步进电机每分钟的转速为,一分钟转了1.875f 圈。 所以只要改变定时器的定时时间,并在定时中断产生时反转脉冲信号的状态,就能设置出合适的步进电机转速。定时器方式一为16位计数器,若设置定时时间为50ms,则每隔50ms计数溢出一次,并同时产生中断。这里需要计算计时时间和计数数值之间的关系,过程如下:本系统的系统时钟频率为12MHZ,所以机器周期,设基础定时时间为50ms,需要装入T1的初值为X,则有,可得X=15536。将X化为16进制,即X=3CB0H,所以在初始化程序中将T1的初值置为TH1=03CH,TL1=B0H。定时器初始化程序流程如图3.2所示:图3.2 定时器初始化流程图根据上面的计算,定时时间为50ms,若需要定时100ms,则只需在发生两次定时器中断后再执行相应的程序即可。程序中用变量speed来设定定时时间长短,即发生speed次定时中断后再将控制芯片的步进脉冲电平取反,相当于此时步进脉冲的周期为通过按键修改speed的值即可调节步进速度,speed与步进电机的转速之间的关系如表3.1所示。表3.1 speed与转速关系speed12345步进周期T(ms)100200300400500步进频率f(HZ)1053.32.52步进速度(圈/分)18.73.8定时器中断服务子程序如图3.3所示:图3.3 定时器中断服务子程序3.3 LCD显示子程序LCD的初始化包括复位设置、清除显示、地址归位、显示开关、游标设置、读写地址设置等,LCD中所有数字和字符都可以通过它的ASCII码来访问显示。LCD操作主要有以下步骤。(1)初始化模块。根据LCM 的使用规格,在模块的电压上电后,模块内有复位电路自动复位,当内部复位电路不能复位时,可用软件方法来复位。根据需要设定好LCD的工作显示方式。(2)写命令。包括但不限于初始化、调节显示位置、清除显示。(3)写数据。把1个字符的ASCII码写入液晶使其显示。(4)读忙信号。液晶显示模块是1个慢显示器件,所以在执行每条指令之前一定应该测试忙信号,确定其不忙时再操作。当确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。流程图如图3.4所示:图3.4 LCD显示子程序3.4 键盘扫描子程序键盘程序设计重点为键盘功能设计与按键处理。系统的键盘电路如图2.6所示,按键自上到下依次为加速、减速、正转和反转,LCD显示电路对按键操作过程进行显示。各键设定功能如下:加速键:增大步进速度。按下此键时电机开始增大步进速度,每按下一次键,速度增加。减速键:减少步进速度。按下此键时电机开始减少步进速度,每按下一次键,速度减少。正转键:按下此键时电机开始正转,即逆时针旋转正转键:按下此键时电机开始反转,即顺时针旋转程序流程图如下:图3.5 键盘扫描流程图当检测到有按键按下时,根据按键不同进行相应处理。程序流程如下:图3.6键盘处理流程图第4章实验仿真及调试4.1 软件仿真结果分析Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、8086和MSP430等。本系统采用LCD1602液晶显示屏显示,显示的内容分为一行显示,显示的是步进电机的转速和方向。设定顺时针方向为转动的负方向,逆时针方式为正方向。开始时,LCD显示速度为5,方向为负,如图4.1所示:图4.1 步进电机初始状态仿真图表4.1 Proteus实验数据(初始状态为speed=5,反转,状态是顺序发生的)按键状态一状态二状态三状态四加速按下浮起浮起浮起减速浮起按下浮起浮起正转浮起浮起按下浮起反转浮起浮起浮起按下LCD显示Speed:-4Speed:-5Speed:+5Speed:-5从表中可以看出,按下加速按键步进电机的方向不变,设定每按键一次转速speed减1,LCD显示的速度为-4;当按下减速按键时转动的方向不变,速度每按下一次减少1,显示的速度为-5;当按下正转按键,步进电机的方向转换,速度不变,LCD显示的+5,按下反转键情况类似分析,仿真基本实现了任务要求。仿真中步进电机步进电机速度与speed之间的关系测量如下表4.2 脉冲信号与步进电机转速关系LCD显示Speed:1Speed:2Speed:3Speed:4转速(转/分钟)199654.2 系统联调单片机应用系统的调试,包括硬件调试和软件调试,是一个很重要的步骤。硬件调试和软件调试并不能完全分开,许多硬件错误就是在软件调试过程中被发现和纠正的。一般方法是先排除明显的硬件故障和软件错误,然后进行软硬件联合调试。在进行联机仿真调试之前,应作好下述工作:(1) 元器件在焊接过程中要逐一检查,例如二极管、晶体管、电解电容的极性,电容的容量及耐压,元件的数值是否正确等。(2) 管座、元件焊接完毕,还要仔细检查各元件之间裸露部分有无相互接触现象,焊接面的各焊点间、焊点与邻近线有无连接。特别注意电源是否短路,否则,在联电的时候很容易造成电路电流过大,烧坏片子。(3) 完成上述检查后,先空载上电(未插芯片),检查电路板各引脚及插件上的电位是否正常,特别是单片机引脚上的各点电位。若一切正常,将芯片插入各管座,再通电检查各点电压是否达到要求,逻辑电平是否符合电路或器件的逻辑关系。若有问题,掉电后再认真检查故障原因。仿真调试的方案:把整个应用系统按其功能分成若干模块,如系统扩展模块、键盘输入模块、显示输出模块、驱动电路模块等。针对不同的功能模块,编写一小段测试程序,并借助于万用表、示波器等仪器来检查硬件电路的正确性。 硬件电路调试主要包括LCD显示电路、键盘控制电路、步进电机驱动电路等。因此,要使系统设计能够按要求更好的完成,就要将这几方面进行调试直至能够工作正常。(1) LCD液晶显示电路在焊接完LCD之后,接上电源调试,可是液晶屏没有反应,什么都没显示,后来检查电路发现复位电路没有接对。在接好复位电路之后还是没有显示,又检查了一遍发现晶振两边的电容忘记接了,因为没接电容单片机不容易起振,再接好后确保准确无误后接通了电源, LCD显示出了初始角度值。(2) 键盘控制电路键盘控制电路这部分,包括4个独立按键,当设定上下限按键被按下时,相应的LED灯亮,没有问题,当增加减少按键被按下时,在LCD上显示的数值也能相应的增加或减少,所以键盘控制电路的调试没有问题。(3) 步进电机驱动电路 对于驱动电路部分开始的时候步进电机没有正常转动,后来发现是L297的VCC端没有接到5V的电源上,接上5V电压源后驱动电路正常工作。(4) 软件调试的过程中,也出现了一些错误。其一就是括号的问题,因为程序中要有程序的嵌套,所以有时有的子程序只写了一个括号,结尾没有加,所以程序编译时出现了错误。其二就是分号的问题,写程序的过程中,一般每写完一条语句,后面应该加一个分号,但在写程序过程中出现疏忽,分号就忘了写了,所以出现了错误。其三就是大小写问题,因为C语言程序是区分大小写的,差一个字母就找不到路径实现。软件的设计在与硬件联调之前主要是对所编写的程序进行语法错误的查找,然后进行编译,生成可以写入单片机的.C文件。在KEIL中运行后,通过观察数据窗口,也可以看出一部分结果,但是只有与硬件联调,在硬件上所显示的结果才能最终看出软件的调试成功与否。经过上述各个方面的调试后,最后进行的就是把各个子模块连接起来对整体进行调试。由于经过对软件,硬件,软硬件的仔细调试后,一些基本问题都已经解决,所以总体调试过程中没有遇到什么问题,调试顺利通过。至此,本次设计要求的转换步进电机的转动方向和调节转动速度等功能基本实现。第5章 总结本系统是通过51单片机驱动控制步进电机的系统,经过测试可以实现如下功能:(1) 定时器发出的脉冲信号通过L297和L298的驱动实现步进电机按照所规定的转速进行步进转动。(2) 通过键盘按键的控制实现了对步进电机转速和方向的控制和调整。(3) 通过LCD显示屏能够显示当前步进电机的转动速度和转动方向。在设计过程中,力求硬件电路简单,充分发挥软件设计的优势,编程灵活方便等优点,最终完成了课题任务中所有的基本要求。但系统还存在一定不尽如人意的地方,如不能直接直观的显示出步进电机的转速等在这次毕业设计的过程中我受益匪浅。从一开始的确定课题,到后来的资料查找、理论学习,到最后的的调试和测试过程,将所学过的理论知识和实践结合起来,动手能力得到了进一步的加强。毕业设计中包含了模拟电子线路、数字电子线路和单片机的知识,可以说是对所学过的知识的一次全面综合。主要是学习MCS-51单片机,包括MCS-51外围电路的连接、软件设计的基本思路,控制外围元器件的基本方法等方面有了进一步的学习。对LCD液晶显示屏的应用有更熟练的操作。这次毕业设计,是我学习专业知识和技能的好机会,我在这个过程中收获了许多。在画原理图、安装和调试软件、硬件过程中不可避免地遇到各种问题,这要求保持沉着冷静,联系书本理论知识积极地思考,实在解决不了可以请教同学或指导老师。虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到期望的要求,很好地完成了本次设计任务。第6章 社会经济效益与应用前景分析随着经济技术的发展,单片机的应用越来越普遍,它以其体积小、可靠性高、控制功能强、使用方便、性价比高、容易产品化等特点,受到人们的重视和关注。目前,单片机已在智能仪器、仪表、机电设备过程控制、自动控制、家用电器和数据处理等方面,扮演着重要角色。电动机能源效率水平的提高对于我国能源节约、环境保护以及资金节约均具有重要意义。同时,高效电动机的开发与应用也是目前国际上的发展趋势,世界各国对电动机的节能工作都给予了高度的重视。中国能源相对缺乏,优质能源严重短缺,从节约能源、保护环境出发,高效率电动机是目前的国际发展趋势,发展前景广阔。本次设计利用单片机驱动步进电机,就是将机械技术,控制技术,信息技术等有机的融合在一起。能够实现用单片机为核心控制,将脉冲信号转换为电信号,可以通过改变信号的频率改变步进电机的转动速度和方向,同时显示此时速度和方向。由于系统使用了较为普遍的元器件,例如89C51,LCD等,所以成本较低、集成度高、体积小、功耗低、运行可靠、性价比高,而且在过程控制中较为简单方便。根据试验及运行结果,此系统具有良好的运行性能,可应用于各种步进电机的驱动系统中,具有一定的社会经济效益。表6.1 电子器件市场价格调查表器件名称市场价格(单位:元/个)使用数量(单位:个)单片机AT89S5271L297101L29841LCD1602111步进电机281键盘按键24致 谢首先我要感谢我的指导教师江秀红老师。她为人随和热情,治学严谨细心,精益求精的工作作风,深深地感染和激励着我。本论文从选题到完成,每一部分都是在老师的指导下完成的。江老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨、热忱鼓励。正是江老师的无私帮助与热忱鼓励,我才能顺利完成研究课题。在此谨向老师表示崇高的敬意和衷心的感谢!在毕业设计期间,得到了很多老师、同学的帮助。在此感谢于春和、徐锦丽和葛文老师在前期与中期答辩中的督促,以及室友的建议。这次毕业论文能够最终顺利完成,归功于各位老师四年间的认真负责,使我能够很好的掌握专业知识,并在毕业论文中得以体现。也正是你们长期不懈的支持和帮助才使得我的毕业论文最终顺利完成。最后,我向沈阳航空航天大学电子信息工程学院的全体老师们再次表示衷心感谢:谢谢你们,谢谢你们四年的辛勤栽培!参考文献1 清华大学电子教研组编 阎石主编:数字电子技术基础(第四版) 高等教育出版社,1998年12月2 张永瑞等编:电子测量技术基础 西安电子科技大学出版社,2004年12月3 孙肖子、张企民编:模拟电子技术基础 西安电子科技大学出版社,2001年1月4 张毅刚编:新编MCS-51单片机应用设计 哈尔滨工业大学出版社,2003年7月 5 荀殿栋,徐志军等. 数字电路设计实用手册M.北京:电子工业出版社,2003.159-166.6 潭浩强. C语言设计(第二版)M. 北京:清华大学出版社,1999.7 何立民. 单片机应用技术选编M. 北京:北京航空航天大学出版社,2004.8 严天峰编.单片机应用系统设计与仿真调试M. 北京:北京航空航天大学出版社,2005.9徐薇莉,曹柱中控制理论与设计M上海:上海交通大学出版社200310黄坚自动控制原理及其应用M北京:高等教育出版社,200411先锋工作室单片机程序设计实例M北京:清华大学出版社,2003 12王幸之,钟爱琴AT89系列单片机原理及接口技术M北京:北京航天大学出版社,200413康华光,陈大钦模拟电子电路M北京:高教育出版社,200414李华MCS-5l系列单片机实用接口技术M北京:北京航空航天大学出版社,200115 田林波,李兴根.混合式步进电机 sPwM 微步驱动技术的研究J.微电机,2000,33(3):161816王伯林.单片机系统设计的误区与对策J.电子技术应用,2005.2436 14孙涵芳.Intel16 位单片机M.北京:北京航空航天大学出版社,2005.20223617卢超单片机与PC机的通信设计 J工矿自动化,2007(5):1 l6一ll818 邱书波.铅酸蓄电池自动充放电控制器的设计与实现M.电子技术应用,2001.11914519 丛君丽. 基于单片机控制的步进电机高低压驱动系统设计M,电力电子技术 2008.02031 20 王幸之.单片机应用系统抗千扰技术M.北京:北京航空航天大学出版社,2000.146169 21 张毅刚.单片机原理及应用M.高等教育出版社,2006.159178 11 王灿,马瑞卿,李玲娟,徐仲春.高可靠性混合式步进电机驱动系统研究.微电机.2006,39(9):54 一 56,6022 Dogan Ibrahim.Micro-controller-based temperature monitoring and control,2002.23 Daniel D.Pollock.The theory and properties of thermocouple elements,2001.24 Kenneth J.Ayala.The 8051 microcontrollerR.Chicago:Cengage Learning,2004.附录I 原理图附录 源程序代码#include#define uchar unsigned char #define uint unsigned intsbit rs=P20; sbit lcden=P22;sbit rw=P21;sbit sp=P01;sbit direct=P00;sbit speedup=P34;sbit speeddown=P35;sbit pdirect=P36;sbit ndirect=P37; uchar k; /按键返回值uint speed,speed1;/延时函数void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/键扫描程序uchar scan_key() uchar i,x;i=P3;/取P3端口数据i|=0x0f;/将该数低四位置,若此数据为0xff。说明无按键按下if(i=0xff) /无键按下 k=255; /随意返回键值elsedelay(19); /按键消斗时间约19msif(i=0xff) k=255;else /有按键按下i&=0xf0;x=P3;x|=0x0f;while(!(x=0xff)x=P3;x|=0x0f; switch(i) case 0x70:k=0;break;/p3.7端口按下,正转 case 0xb0:k=1;break;/p3.6端口按下,反转 case 0xd0:k=2;break;/P3.5端口按下,dec case 0xe0:k=3;break; /P3.4端口按下,add default:k=255;break; /没有按键按下return k;/*= 按键处理 =*/*=键处理程序*/void key_chuli(uchar k) switch (k)case 0: /正转 direct=1;break;case 1:/反转 direct=0;break; case 2: speed+=1;/减速 speed1=speed; if(speed=20)speed=20; break;case 3: speed-=1; /加速 speed1=speed; if(speed=1)speed=1;break;default:break; /-LCD1602写指令函数-void write_com(uchar com)rs=0;lcden=0;P1=com;delay(5);lcden=1

温馨提示

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

评论

0/150

提交评论