《基于单片机的步进电机的运动控制系统课程毕业设计 经典》由会员分享,可在线阅读,更多相关《基于单片机的步进电机的运动控制系统课程毕业设计 经典(23页珍藏版)》请在金锄头文库上搜索。
1、11目 录步进电机原理及硬件设计步进电机原理及硬件设计.21 单片机电路单片机电路.21.1 AT89C51 单片机的组成结构单片机的组成结构.21.2 AT89C51 单片机的引脚及功能单片机的引脚及功能.42 步进电机步进电机.62.1 步进电机的工作原理步进电机的工作原理.62.2 步进电机的驱动步进电机的驱动.73 电源电源.114 软件程序设计软件程序设计.114.1 三相六拍环形分配三相六拍环形分配.114.2 主程序的设计主程序的设计.12总结总结.19参考文献参考文献.21221 步进电机原理与硬件设计1 单片机电路本系统采用 A89C51 单片机产生控制信号单片机内部的内存即
2、可满足要求。如需要扩展较多的外部 RAM 和 ROM 可加上数据缓冲器。步进电机控制信号通过 AT89C51 单片机其中一个口进行扩充。为了增加步进电机工作的灵活性,在启动步进电机工作之后,当有键按下,设置产生外部中断,达到灵活控制电机的目的。下面介绍一下 AT89C51 单片机。1.1AT89C51 单片机的组成结构单片机的组成结构AT89C51 单片机内部硬件结构框图如图 2 所示。它由一个 8 位中央处理器(CPU)、一个 256B 片内 RAM 及 4KBFlashROM、21 个特殊功能寄存器、4个 8 为并行 I/O 口以及中断系统等部分组成,各功能部件通过片内单一总线连成一个整体
3、,集成在一块芯片上。(1) CPUCPU 是单片机的核心部分,CPU 包括两个基本部分:运算器和控制器。运算器运算器即算术逻辑单元 ALU,是进行算术或逻辑运算的部件。可实现算术运算和逻辑运算。操作的结果一般送回累加器 ACC,而其状态信息送至程序状态寄存器 PSW。控制器控制器是用来控制计算机工作的部件。控制器接收来自存储器的指令,使各部件协调工作,完成指令所规定的操作。33时序和振荡电 路CPU并行 I/O口程序存储器 ROM2个16 位定时 / 计数器串行 I/O口数据存储器 RAM中断系统时钟源外部事件外部中断P0 P1P2 P3RXDTXD内部 8 位数据总线内 部 中 断图 2 A
4、T89C51 单片机内部结构示意图(2)内部存储器内部数据存储器AT89C51 芯片内共有 256B(地址为 00H-FFH)的数据存储器,其中高128B(地址为:80H-FFH)被专用寄存器占用,能作为寄存器供用户使用的只是低 128B(地址为:00H-7FH),用于存放可读写的数据,如程序执行过程中的变量。内部程序存储器AT89C51 共有(地址为:0000H-0FFFH)的 flash 程序存储器,用于存放程序、原始数据或表格常数。(3)定时/计数器AT89C51 共有两个 16 位的定时/计数器都可以设置成计数方式,用于对外部事件进行计数;也可设置成定时方式,并可以根据计数或定时的结果
5、实现对单片机运行的控制。(4)并行 I/O 口用于进行单片机内外的传输,4 个 8 位的 I/O 口(P0、P1、P2、P3)。每个 8 位的口,既可用作输入口,也可用作输出口,每个口即可以 8 位同步读写,又可对每一位进行单独的操作。标准 I/O 口的主要功能相当于一个 8 位锁存器,44能存储一个字节的二进制数据,以保持与之相连接的 8 条口线各自电位的高低状态。1.2 AT89C51 单片机的引脚及功能AT89C51 共有 40 个引脚,下面介绍一下它们的主要功能。(1)P0 口P0 口某一位的结构图如图 3 所示,一个输出锁存器、两个三态缓冲器、一12DCPQQ-T1T2读锁存器内部总
6、线写锁存器锁存器地址/数据控制信号CVCCP0.X引脚读引脚MUX此后断开 a 相绕组,b 相单独通电,依此规律循环往复.这种方式需经过6个切换才能完成一个循环.单相三拍方式的每一拍步进角为3,三相六拍的步进角则为1.5,因 此,在三相六拍下,步进电机的运行反转平稳柔和,但在同样的运行角度与速度下,三相六拍驱动脉冲的频率需提高1倍,对驱动开关管的开关特性要求较高。系统 的总体设计框图如图5所示:图5 系统的整体流程图当步进电机驱 动系统工作时,控制器首先检测接收传感器信号,进行换算成需要的检测量,并将之与设定值进行比较,得出其差值 ,并根据程序的设定转化为步进电机的步进脉冲。从而通过单片机控制
7、的驱动器来驱动步进电机,从而带动丝杠传动系统,进而控制液氮液面升降系统的运动,完成一个循环控制过程。步进电机的驱动电路如图6所示,采用单片机 AT89C51来驱动,AT89C51具有8k 字节 flash 闪速存储器,256字节内部 ram,32个 i/o 口线,3个16位定时/计数器,1个六向量两极中断结构,一个全双工串行通信接口,同时片内还有振荡器及时钟电路。可以很方便地使用不同相数的步进电机按一种可执行的通电1010方式来控制,在这个系统中,单片机的主要作用是接收键盘设定值,显示设定初值 以及检测的当前值,同时还具有串行通信功能。检测传感器信号,接收传感器信号,并进行处理,计算出步进电机
8、需要的步进量,通过 p1.0,p1.1,和 p1.2提供控制步进电机的时序脉冲,控制步进电机的运行,系统采用软件来完成脉冲分配,这样可根据应用系统的需要,方便灵活地改变步进电机的控制方式,步进一步的时间可由两个控制字的送出时间间隔决定。图6 步进电机驱动电路组成4、系统的软件设计4.1 硬件脉冲分配器电路步进电动机的脉冲分配可以由硬件和软件两种方法来实现。硬件环形分配 器需要根据步进电动机的相数和要求的通电方式而设计专门的电路,图 7 所示 为一个三相六拍的环形分配器。分配器的主体是三个 J-K 触发器。三个 J-K 触发器的 Q 输出端分别经各自 的功放线路与步进电动机 A、B、C 三相绕组
9、连接。当 QA1 时,A 相绕组通电; QB1 时,B 相绕组通电;QC1 时,C 相绕组通电。DR+和 DR-是步进电动机的 正反转控制信号。正转时,各相通电顺序:AABBBCCCA反转时,各相通电顺序:AACCCBBBA1111所示为的三相六拍环形分配器逻辑真值表如表 7 所示。序号 控制信号状态 输出状态 导电绕组 01234561 1 00 1 00 1 10 0 11 0 11 0 01 1 01 0 01 1 00 1 00 1 10 0 11 0 11 0 0AABBBCCCAA表 8 三相六拍环形分配器逻辑真值表软件脉冲分配对于不同的计算机和接口器件,软件环分有不同的形式,现以
10、 AT89C51 单 片机配置的系统为例加以说明。 (1)由 P1 口作为驱动电路的接口 控制脉冲经 AT89C51 的并行 I/O 接口 P1 口输出到步进电动机各相的功率放大器 输入,设 P1 口的 P1.0 输出至 A 相,P1.1 输出至 B 相,P1.2 输出至 C 相。 (2)建立环形分配表1212为了使电动机按照如前所述顺序通电,首先必须在存储器中建立一个环形分配表,存储器各单元中存放对应绕组通电的顺序数值,如表 9 所示。当运行时,依次将环形分配表中的数据,也就是对应存储器单元的内容送到 P1 口,使P1.0、P1.1、P1.2 依次送出有关信号,从而使电动机轮流通电。 表 9
11、 三相六拍软件环形分配数据表 存储单元地址 单元内容 对应通电相 K+0K+1K+2K+3K+4K+501H(0001) 03H(0011) 02H(0010) 06H(0110) 04H(0100) 05H(0101) AABBBCCCA表为三相六拍环形分配表,K 为存储器单元基地址(十六位二进制数),后面所加的数为地址的索引值。可见,要是电动机正转,只需依次输出表中各单元的内容即可。当输出状态已是表底状态时,则修改索引值使下次输出重新为表首状态。如要使电动机反转,则只需反向依次输出各单元的内容。当输出状态达到表首状态时,则修改指针使下一次输出重新为表底状态4.2 步进电机的驱动系统软件主要
12、由主控程序、脉冲分配驱动程序、键处理程序、显示数据处理程序及显示驱动程序、串口通信监控程序等部分 组成。系统的主程序流程图如图10所示,步进电机驱动中断子程序流程图如图11所示。1313图10系统的主程序流程图1414图11 驱动子程序流程图由驱动系统的 硬件控制图可以看出,单片机只是根据需要轮流给p1.0,p1.1,p1.2端口发送步进脉冲来控制电机运行,则三相六拍的系统控制模型如附表所示;在程 序中,只要将依次将6个控制字送到 p1口,步进电机就会转动一个齿距角。每送一个控制字,就完成一拍,步进电机就转过一个步距角。附表 三相六拍控制模型1515设定有如下工作单元和工作位定义:r0为步进数寄存器;psw 中,f0为方向标志位, f0=0时正转, 否则反转。步进时间由两个控制字的送出时间间隔决定。步进电机的中断子程序:start: push accpush pswpush r0jb f0, loop2 ;判正反转loop1: mov a, #01h ;第1拍控制码mov p1, a ;执行第