《2022年步进电机控制资料 .pdf》由会员分享,可在线阅读,更多相关《2022年步进电机控制资料 .pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、I 机电一体化技术课程设计报告目录1. 系统概述 11.1 步进电机控制工作原理1 1.2 系统设计思路 12. 系统硬件设计 2 2.1基于 8255 的步进电机控制系统3 2.2显示电路7 3. 系统软件设计12 3.1程序流程图12 3.2 程序清单15 4. 结束语20 参考文献21 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 23 页 - - - - - - - - - II 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
2、- - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - - - 1 1. 系统概述1.1 步进电机控制工作原理步进电机实际上是一个数字角度转换器,也是一个串行的数模转换器。步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制 4 个方面。从结构上看 , 步进电机分为三相、四相、五相等类型 , 常用的则以三相为主。三相步进电机的工作方式有三相单三拍、三相双三拍和三相六拍3 种 , 下面具体加以阐述。1.1.1 步进电机的启停控制步进电机由于其电气特性, 运转时会有步进感 , 即振动感。为了使电机转动平滑 , 减小振动
3、 , 可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波 , 可以减小步进电机的步进角 , 提高电机运行的平稳性。 在步进电机停转时 , 为了防止因惯性而使电机轴产生顺滑 , 则需采用合适的锁定波形 , 产生锁定磁力矩 , 锁定步进电机的转轴 , 使步进电机的转轴不能自由转动。1.1.2 步进电机的转向控制如果给定工作方式正序换相通电 , 步进电机正转。 若步进电机的励磁方式为三相六拍 , 即 A-AB-B-BC-C-CA。如果按反序通电换相 , 即则电机就反转。其他方式情况类似。1.1.3 步进电机的速度控制如果给步进电机发一个控制脉冲 , 它就转一步 , 再发一个脉冲 , 它会再转一步。
4、 2 个脉冲的间隔越短 , 步进电机就转得越快。调整送给步进电机的脉冲频率 , 就可以对步进电机进行调速。1.1.4 步进电机的换向控制步进电机换向时 , 一定要在电机减速停止或降到突跳频率范围之内再换向 , 以免产生较大的冲击而损坏电机。换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第1 个脉冲前发出。对于脉冲的设计主要要求要有一定的脉冲宽度 ( 一般不小于 5s) 、脉冲序列的均匀度及高低电平方式。在某一高速下的正、反向切换实质包含了减速换向加速3 个过程。1.2 系统设计思路此次我们所设计的是一个步进电机控制系统,主要由单片机80C51 ,并行输入/ 输出接口 8255,
5、3 相步进电机, 7 段数码管,及一些其他相关元件设计而成。可以通过开关来控制系统的启/ 停工作,当系统运转时,用开关来控制方向,并使相应的指示灯亮起, 同样由开关来选择工作模式, 这次设计并不是使用键盘来输入运转步数, 而是由 8 个开关置 0/1 设步数。运转时, 用 3 位 7 段数码管来输出剩余步数。 最后根据思路所设计出来的硬件图设计相适应的软件。当步进电机驱动系统工作时 , 控制器首先检测接收传感器信号, 经过 A/D 转换成需要的检测量, 即:将模拟量转换为数字量送入单片机的数据口(P1口)单片机根据需要轮流给 P1.0,P1.1,P1.2端口发送步进脉冲来控制电机运行, 程序中
6、 , 只要依次将 6个控制字送到 P1口, 步进电机就会转动一个齿距角. 每送一个控制字 , 就完成一拍, 步进电机就转过一个步距角; 然后将之与设定的初值进行比较, 得出其差值 ,并根据程序的设定转化为步进电机的步进脉冲, 从而通过单片机控制的驱动器来驱动步进电机 , 以带动丝杆传动系统 , 完成一个循环控制过程 . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - 2 系统的总体设计框图如下:8255步进电机控制器8279控
7、制的键盘显示系统步进电机传感器信号丝杠传动系统名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - 3 2. 系统硬件设计2.1 基于 8255 的步进电机控制系统2.1.1 8255芯片的原理1.8255 特性: (1) 一个并行输入 / 输出的 LSI 芯片, 多功能的 I/O 器件, 可作为 CPU 总线与外围的接口 . (2) 具有 24 个可编程设置的 I/O 口, 即使 3 组 8位的 I/O 口为 PA口,PB 口和
8、PC口. 它们又可分为两组12 位的 I/O 口,A 组包括 A口及 C口(高 4 位,PC4PC7),B组包括 B口及 C口(低 4 位,PC0PC3).A组可设置为基本的I/O 口, 闪控(STROBE)的 I/O 闪控式 , 双向 I/O3 种模式 ;B 组只能设置为基本I/O 或闪控式 I/O 两种模式, 而这些操作模式完全由控制寄存器的控制字决定. 2.8255 引脚功能 : RESET: 复位输入线, 当该输入端外于高电平时, 所有内部寄存器 (包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时, 即/CS=0 时, 表示芯片被
9、选中,允许 8255 与 CPU进行通讯 ;/CS=1 时,8255 无法与 CPU做数据传输 . RD:读信号线,当这个输入引脚为低电平时, 即/RD=0且/CS=0时, 允许 8255 通过数据总线向 CPU发送数据或状态信息,即CPU 从 8255 读取信息或数据。WR: 写入信号,当这个输入引脚为低电平时, 即/WR=0且/CS=0时, 允许 CPU 将数据或控制字写入 8255。D0D7:三态双向数据总线, 8255 与 CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8 位数据的读 / 写操作,控制字和状态信息也通过数据总线传送。PA0 PA7:端口 A输入输出线,一
10、个8 位的数据输出锁存器 / 缓冲器,一个8 位的数据输入锁存器。PB0 PB7:端口 B输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。PC0 PC7:端口 C输入输出线,一个8 位的数据输出锁存器 / 缓冲器,一个8 位的数据输入缓冲器。端口C可以通过工作方式设定而分成2 个 4 位的端口,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 23 页 - - - - - - - - - 4 每个 4 位的端口包含一个4 位的锁存器, 分别与端口
11、 A和端口 B配合使用,可作为控制信号输出或状态信号输入端口。 A0,A1: 地址选择线 , 用来选择 8255 的 PA口,PB 口,PC 口和控制寄存器 . 当 A0=0,A1=0时,PA 口被选择 ; 当 A0=0,A1=1时,PB 口被选择 ; 当 A0=1,A1=0时,PC口被选择 ; 当 A0=1.A1=1时, 控制寄存器被选择 . 2.12 步进电机原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下, 电机的转速、 停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响, 即给电机加一个脉冲信号, 电机则转过一个步距角。 这一线性关系的存在,加
12、上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。 它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。实验连接原理图如下图 11 实验连接图2.1.3 步进电机 I/O 分配表输入功能输出功能X0 正转Y0 控制 A相X1 反转Y1 控制 B相名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 23 页 - - - - - - -
13、 - - 5 X2 启动Y2 控制 C相X3 停止X4 低速X5 中速X6 高速2.1.4 步进电机控制流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - - - - - - - - 6 2.1.5 实验程序:TITLE BUJIN.ASM IOCONPT EQU 02A3H IOBPT EQU 02A1H IOAPT EQU 02A0H CODE SEGMENT ASSUME CS:CODE START: MOV AL,90H MOV DX,IOCO
14、NPT OUT DX,AL NOP NOP NOP XUNHUAN: MOV DX,IOAPT IN AL,DX CMP AL,01H JE IOLED1 JNE IOLED2 IOLED1: MOV DX,IOBPT MOV AL,09H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23 页 - -
15、 - - - - - - - 7 MOV AL,03H OUT DX,AL CALL DELAY JMP XUNHUAN IOLED2: MOV DX,IOBPT MOV AL,03H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,09H OUT DX,AL CALL DELAY JMP XUNHUAN DELAY: MOV CX,0FFFFH DELA: LOOP DELA RET CODE ENDS END START 2.2 显示电路(可编程键盘 /
16、显示控制器 8279 电路工作原理)2.2.1 8279电路工作原理1. I/O 控制及数据缓冲器数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPU和 8279 之间的命令或数据。I/O 控制线是 CPU 对 8279 进行控制的引线, CS是 8279 的片选信号,当CS=0时,8279才被允许读出或写入信息。WR 、RD为来自 CPU 的读、写控制信号。A0用于区别信息特性: A0=1时,表示数据缓冲器输入为指令、输出为状态字;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
17、9 页,共 23 页 - - - - - - - - - 8 A0=0时,输入、输出皆为数据。2. 控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示的工作方式,以及有 CPU编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。定时控制包含基本计数器。 其中计数器是一个可编程的N级计数器。 N可以为 231 之间的数据,由软件编程,以便从外界时钟 CLK分频得到内部所需要的100kHZ的时钟。 然后再经过分频,为键盘扫描提供适当的逐行扫描频率和显示扫描时间。3. 扫描计数器扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制
18、计数。4 位计数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供扫描线( 16 条) ;按译码方式工作时,扫描计数器的最低二位被译码后,从SL0SL3输出。因此, SL0SL3提供了 4 中取 1 的扫描译码。4. 回复缓冲器、键盘去抖动及控制来自 RS0 RS7的 8 根回复线的回复信号,由回复缓冲器缓冲并锁存。在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时, 去抖电路被置位, 延时等待 10ms后,再检验该键是否继续闭合,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入8279 内部 FIF
19、O(先进先出)存储器。键盘数据格式如下:D7 D6 D5 D4 D3 D2 D1 D0 控制移位扫描回复控制和移位( D6D7 )的状态由两个独立的附加开关决定,而扫描(D5D4D3 )和回复( D2D1D0 )则是被按键置位的数据。D5D4D3来自扫描计数器,是按下键的行列编码,而 D2D1D0 则来自行 / 列计数器,它们是根据回复信号而确定的行/ 列编码。在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的传感器RAM(即 FIFO存储器) 。在选通输入方式工作时,CNTL/STB为选通输入信号,回复线的内容在CNTL/STB 线的脉冲上升沿送入FIFO存储器。5. FIFO/传感器
20、及其状态寄存器FIFO/传感器 RAM 是一个双重功能的88RAM 。在键盘或选通方式工作时,它是FIFO寄存器,其输入或读出遵循先入先出的原则。FIFO状态寄存器用来存放FIFO的工作状态。例如, RAM 是满还是空;其中存有多少数据;是否操作出错等。当FIFO寄存器不空,状态逻辑将产生IRQ=1信号向 CPU申请中断。在传感器矩阵方式工作中, 这个存储器又是传感器存储器。 它存放着传感器中的每一个状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向CPU 申请中断,同时该状态被送入传感器RAM 。6. 显示 RAM 和显示地址寄存器显示 RAM 用来存储显示数据, 容量为 16
21、8 位。在显示过程中, 存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B 两组, OUTA0 3 和 OUTB0 3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 23 页 - - - - - - - - - 9 可以单独送数,也可以组成一个8 位的码(由编程控制) 。显示寄存器的输出与显示扫描结合, 不断从显示 RAM 中读出显示数据, 同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存由CPU 进行读 /
22、 写显示 RAM 的地址,它可以由命令设定,也可以设置成每次读出或写入后自动递增。2.2.2 管脚, 引线与功能8279采用 40引脚封装 , 其管脚 , 引线功能如图 28 所示. 其引脚功能分述如下: 图 2 8 D0 D7(数据总线 ): 双向 , 三态总线 , 和系统的数据总线相连, 用于 CPU和8279间的数据 / 命令传送 . CLK(系统时钟 ): 输入线 , 为 8279 提供内部时钟的输入端 . RESET( 复位): 输入线 , 当 RESET=1 时,8279 复位, 其复位状态为 :16 个字符显示; 编码扫描键盘 ; 程序时钟编程为 31. CS(片选): 输入线
23、, 当 CS=0时 8279 被选中 , 允许 CPU 对其读 , 写, 否则被禁止. A0(数据选择 ): 输入线 . 当 A0=1时 CPU 写入的数据为命令字 , 读出数据为状态字; A0=0时 CPU 读,写的字节均为数据 . RD,WR( 读、写信号 ): 输入线 . 低电平有效 , 来自 CPU 的控制信号 , 控制 8279的读, 写操作 . IRQ(中断请求 ): 输出线 . 高电平有效 . 在键盘工作方式中 , 当 FIFO/传感器 RAM 村有数据时 ,IRQ 为高电平 .CPU每次从 RAM 中读出数据时 ,IRQ 变为低电平 . 若 RAM 中仍有数据 , 则 IRQ再
24、次恢复为高电平. 在传感器工作方式中 , 每当检测到传感器状态变化时,IRQ 就出现高电平 . SL0SL3(扫描线 ): 输出线 . 用来扫描键盘和显示器 . 它们可以编程设定为译码(4 中取 1)或编码输出 (16 取 1). RL0 RL7(回复线 ): 输入线 . 它们是键盘矩阵或传感器矩阵的列( 或行) 信号输入线 . SHIFT(移位信号 ): 输入线 , 高电平有效 . 该输入信号是 8279 键盘数据的次高位(D6), 通常用来扩充键的功能 , 可以用作键盘上、下档功能键. 在传感器方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
25、 - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - 10 和选通方式中 ,SHIFT 无效. CNTL/STB( 控制/ 选通): 输入线 , 高电平有效 . 在键盘工作方式时 , 该输入信号是键盘数据的最高位(D7), 通常用来扩充键开关的控制功能 , 作为控制功能键用 . 在选通输入方式时 , 该信号的上升沿可把来自RL0 RL7 的是数据存入FIFO RAM 中. 在传感器方式下 , 该信号无效 . OUTA0 OUTA3(A 组显示信号 ): 输出线 . OUTB0 OUTB3(B 组显示信号 ): 输出线 .
26、 这两组引线都是数据输出线, 与多位数字显示 (LED数码管 ) 的扫描线 SL0SL3同步. 两组可以独立使用 , 也可以合并使用 , 合并使用时 OUTA0 为最低位 ,OUTB3为最高位 . BD(显示消隐 ): 输出线 , 低电平有效 . 该信号在数字切换显示或使用消隐命令时, 将显示消隐 . 2.2.3 8279键盘、显示接口电路设计利用键盘、显示专用芯片8279 能够以较简单的硬件电路和较少的软件开销实现微型机与键盘和LED显示器接口,图 29 是一个设计实例。图中的单片机可以是 8031,也可以是 AT89C51 。下面讨论其硬件电路的工作原理和设计问题。1. 外时钟脉冲产生在图
27、 29 中,AT89C51的 ALE既可用作低 8 位地址的锁存信号,也把它接到 8279 的 CLK引脚用作 8279 的外时钟脉冲信号的输入。 脉冲信号频率并非固定不变,好在 8279 并不要求时钟频率固定不变,因此,这样安排还是可以的。不过应该注意,对于 MCS-51系列单片机来说, ALE脉冲频率经常是振荡周期频率fosc 的六分之一,这也是MCS-51单片机的 ALE最高频率,通过对 8279 的程序时钟命令字节的编程, 8279 可以对来自 CLK引脚的脉冲实行231 分频,从而得到 8279 内部工作所需要的100kHZ内部时钟。如果 fosc=12MHz ,分频应为 20。2.
28、 译码电路1)8279 片选译码电路对 8279 的片选译码电路可根据实际电路的地址分配设计。2)键盘、显示扫描译码器在对“键盘 / 显示方式设置命令字”的编程设置为编码凡是(D0=0 )时,那么 8279 内部不译码,从 SL3SL0输出的不是键盘的列和显示器的位信号(高电平有效) 。而是列和位号的编号的BCD 码(SL3是最高位)。在这种情况下应外接译码器,对 SL3SL0译码,以产生列和位信号。8279 可以对 8 位或 16 位显示器以及 8 列 8 行键盘扫描。在 16 位显示时,对显示器扫描和对键盘扫描必须各有自己的译码器,显示器采用416 线译码器,例如 74LS154 ;键盘采
29、用 38 译码器,例如 74LS138 。在图 29 中,只有8 个显示器,适当安排,对显示器和键盘可以共用一个38 译码器。不过应注意,被扫描的键盘的列必须是低电平,因此应选用被选中端(Y0Y7)为低电平的 74LS138 。BD是消隐信号输出端,当BD=0时,74LS138不译码,显示器均为暗。3.驱动电路由 74LS138输出( Y0 Y7)的显示器的位选信号和由A3B0输出的段选名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - - - - - -
30、 - - 11 信号的输出电流太小, 不足以点亮 LED显示器。图 29 中采用共阴极 LED : BS202(发红光的 BSR202 或发绿光的 BSG202 ) ,因此位驱动器选用集电极开路 (OC门)同相输出门电路72LS07 ,段选信号由两个同相输出的功率驱动器75491 提供。在这种情况下单片机的字型码应是表 22“七段码(字形码)”表的内容。图 29 中的 8个 5.1k 为上拉电阻,用来保证A3B0输出高电平时,达到接近+5V,使 LED有足够的亮度。4.中断请求线在键盘中的某键按下, 8279在测得其按下并在去抖动 (延时 10ms)之后再检测认为此键仍在按下状态,便确认此键已
31、按下。在8279 确认某键已按下时,便把此键的键只存于FIFO寄存器中,此时 FIFO内有内容,称为 FIFO存储器不空。只要 FIFO存储器不空, 便使 IRQ为高电平,就直接通过 EXINT端向 8089 请求中断。但由于 AT89C51 的 INT0 或 INT1 是低电平或下降沿请求中断。因此应把IRQ反相后加到 AT89C51的 INT1 端。当单片机读取 FIFO的内容后, IRQ就回到低电平。如果 FIFO存储器中还有未读到的键值,会重新使IRQ变为高电平,向单片机请求中断。由于FIFO 存储器是先进先出RAM ,因此先读走的键值对应于先按下的键。5.SHIFT和 CNTL 可用
32、这两个键增加键盘的功能。例如上档键和下档键。这两键在按下时使SHIFT (或 CNTL )为低电平。当这两个弹起时,使SHIFT (或 CNTL )脚悬空,但由于此两引脚内部有上拉电阻,当它们悬空时实际上是高电平2.2.4 硬件原理图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 23 页 - - - - - - - - - 12 3 系统软件设计3.1 程序流程图:本系统主要由主控程序实现系统的初始化、各个子程序的调用等) 、脉冲分配驱动子程序(驱动步进电机的转动,使
33、其按一定规律进行旋转)、A/D 转换子程序(完成对模拟信号进行模/ 数转换,然后把转换成的数字量送入步进电机控制器 AT89C51芯片)、 8279 键盘/ 显示子程序(主要通过键盘设定初值并实现部分功能键的作用, 然后将数据显示在LED上,以及在 LED上显示当前检测的值)。3.1.1.主程序流程图图 31 系统的主程序流程图寄存器清零调键盘、显示子程序调 A/D 转换子程序,计算偏差偏差为零?调步进电机驱动中断子程序偏差值入栈调延时子程序主程序开始名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
34、- - - 第 14 页,共 23 页 - - - - - - - - - 13 3.1.2 8279键盘/ 显示流程图图 3 2 键盘显示程序框图8279 初始化计算键值散转显示计算键值送显示缓冲区查字型代码有键按下吗?数字键吗? 0字循环1字循环2 字循环显示器显示P 进入键盘、 显示程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 23 页 - - - - - - - - - 14 3.1.3 步进电机驱动子程序流程图图33 驱动子程序流程图进入中断程序偏差出栈
35、判断是否正转?步进数赋值RET 步进数减1 步进数是否为零?步进数赋值步进数减1 送正向脉冲送反向脉冲步 进 数 是 否 为零?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - 15 3.2 程序清单1. 采用 MCS51 汇编语言编写源程序程序入口 : ORG 0000H LJMP MAIN A/D 转换入口 : ORG 0050H LJMP MSZH 键盘显示入口 : ORG 08F0H LJMP HA7S 步进电机驱动中
36、断子程序入口: ORG 0003H LJMP MAIN 2.主程序入口 : ORG 0080H MAIN: CLR PSW LCALL MSZH LCALL HA7S JZ DELAY PUSH ACC PUSH PSW PUSH R0 LCALL START LCALL DELAY SJMP MAIN 3. A/D 转化程序 : MSZH: MOV DPTR,#0FEF8H ;地址保证P2.0=0,且指向IN0 MOV R1, #40H ;存数据的首址MOV R7, #08H ;采样次数READ: MOVX DPTR, A ;启动 IN0 A/D 转换HERE: JB P3.3, HERE
37、;INT1=1,转换未结束等待MOVX A, DPTR ;取数据MOVX R1, A ;存数据INC R1 INC DPTR DJNZ R7, READ ;8 路未采样完继续CLR C SBBB A 30H ;计算偏差值RET 4. 8279 键盘显示程序: ORG 08F0H HA7S: MOV SP, #53H MOV DPTR, #0B001H MOV A, #00H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - - - - - - - - 1
38、6 MOVX DPTR, A ;写 8279 方式字MOV A, #32H MOVX DPTR, A ;写分频系数MOV A, #0DFH MOVX DPTR, A ;清显示缓冲区HA7S1: MOVX A, DPTR JB ACC.7, HA7S1 MOV DPTR, #0B000H MOV A, #0C8H MOVX DPTR, A ;字形送入8279 INC DPTR MOV A, #80H MOVX DPTR, A ;字位送入8279(显示 P)HA7S2: MOV 30H, #80H MOV 31H, #40H HA7S3: MOV DPTR, #0B001H MOVX, DPTR
39、ANL A, #07H CJNE A, #00H, HA7S4 ;有键按下吗?AJMP HA7S3 HA7S4: MOV DPTR, #0B000H MOVX A, DPTR MOV B, A ;取键值MOV R1, #00H MOV DPTR, #KEYTAB HA7S5: MOV A, #00H MOVC A, A+DPTR CJNE A, B HA7S6 ;键值表是否相同AJMP HA7SA ;转数字键处理程序HA7S6: INC DPTR ;键值表地址加1 INC R1 ;查找次数加1 MOV A, R1 JB ACC.4, HA7S7 ;是功能键吗?AJMP HA7S5 ;继续查找H
40、A7S7: MOV R1, #00H MOV DPTR, #KEYTAB1 HA7S8: MOV A, #00H MOVX A, A+DPTR ;取出功能键键值CJNE A, B, HA7S9 ;键值相同吗?AJMP HA7SC ;转功能键处理程序HA7S9:INC DPTR INC R1 MOV A, R1 JMB ACC.2, HA7S8 ;继续查找名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 23 页 - - - - - - - - - 17 AJMP HA7S
41、D ;无键按下返回HA7SD: LJMP HA7S HA7SA: MOV A, 30H MOV DPTR, #0B001H MOVX DPTR, A ;字位送入8279 MOV A, R1 MOV R0, 31H MOV R0, 31H MOV R0, A INC 31H ;字形缓冲区加1 MOV DPTR, #CDA TA MOVC A, A+DPTR ;取字形代码MOV DPTR, #0B000H MOVX DPTR, A ;送 8279 显示INC 30H MOV A, 30H ;字位加1 CJNE A, #88H, HA7SB ;显示到8 位从头开始LJMP HA7S2 HA7SB:A
42、JMP HA7S3 HA7SC:MOV DPTR, #KJPADDR MOV A, R1 RL A ADD A, R1 JMP A+DPTR ;功能键散转处理KJPADDR:LJMP LOOP0 LJMP LOOP1 LJMP LOOP2 KEYTAB: DB 0C1H, 0C8H, 0C9H, 0D0H, 0D8H, 0E0H, 0C2H, 0CAH, 0D1H, 0D9H DB 0DAH, 0C3H, 0CBH, 0D2H, 0D3H, 0DBH KEYTAB1: DB 0E3H, 0E2H, 0E1H CDATA: DB 0CH, 9FH, 4AH, 0BH, 99H, 29H, 28H
43、, 8FH, 08H, 09H, 88H, 38H, DB 6CH, 1AH, 68H, 0E8H LOOP0: MOV R5, #0CH ;0 字循环LJMP DISPC LOOP1:MOV R5, #9FH ;1 字循环LJMP DISPC LOOP2:MOV R5, #4AH ;2 字循环DISPC:MOV R6, #80H DISPCL:MOV A, R6 MOV DPTR, #0B001H MOVX DPTR, A ;字位送8279 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
44、- 第 19 页,共 23 页 - - - - - - - - - 18 MOV A, R5 MOV DPTR, #0B001H MOVX DPTR, A ;字形送8279 MOV R2, #20H LCALL DELAY ;延时MOV A, #OFFH MOVX DPTR, A ;关显示INC R6 ;下一位显示CJNE R6, #88H, DISPCL AJMP DISPC ;不到最后一位继续DELAY:PUSH 02H ;延时子程序DELAY1:PUSH 02H DELAY2:PUSH 02H DELAY3:DJNE R2, DELAY3 POP 02H DJNE R2, DELAY3
45、POP 02H DJNE R2, DELAY2 POP 02H DJNE R2, DELAY1 POP 02H DJNE R2, DELAY RET 5.步进电机驱动程序: START: POP ACC POP PSW POP R0 JB F0, LOOP2 ;判断正反转LOOP1:MOV A, #01H ;第 1 拍控制码MOV P1, A ;执行第 1 拍LCALL DELAY ;步进时间间隔DJNA R0, DONE ;判断是否步进量完成MOV A , #03H ;第 2 拍控制码MOV P1, A ;执行第 2 拍LCALL DELAY DJNZ R0, DONE MOV A, #02
46、H ;第 3 拍控制码MOV P1, A ;执行第 2 拍LCALL DELAY DJNA R0, DONE MOV A , #06H ;第 4 拍控制码MOV P1, A ;执行第 2 拍LCALL DELAY DJNZ R0, DONE 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 23 页 - - - - - - - - - 19 MOV A, #04H ;第 5 拍控制码MOV P1, A ;执行第 2 拍LCALL DELAY DJNA R0, DONE M
47、OV A , #05H ;第 6 拍控制码MOV P1, A ;执行地 2 拍LCALL DELAY AJMP LOOP1 ;循环LOOP2:MOV A, #05H ;反转MOV P1, A LCALL DELAY DJNA R0, DONE MOV A , #04H MOV P1, A LCALL DELAY DJNZ R0, DONE MOV A, #06H MOV P1, A LCALL DELAY DJNA R0, DONE MOV A , #02H MOV P1, A LCALL DELAY DJNZ R0, DONE MOV A, #03H MOV P1, A LCALL DELA
48、Y DJNA R0, DONE MOV A , #01H MOV P1, A LCALL DELAY DJNZ R0, DONE AJMP LOOP2 DONE:RET ;返回6. 延时子程序:DELAY : MOV R4, #64H MDL : NOP NOP NOP NOP DJNZ R4, MDL DJNZ R5, DELAY RET 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - 20 第四章 : 结束语经过这个学期
49、对微机的深入学习,并且在老师的悉心指导和严格要求下,我们终于完成了三相步进电机设计课程。从书本上的知识到自己亲手的课程设计,每一步对我们来说无疑是巨大的尝试和挑战,也成就了我们目前在大学期间独立完成的最大的项目。 记得在刚接到这个课题时, 由于对相关知识不是很了解,我们都有些茫然不知所措。 设计好一个步进电机需料、 上网去了解相关的内容, 渐渐头脑中的概念清晰了起来。 在具体设计的过程中要什么专业知识?带着这个疑问我们开始了地学习和实验: 去图书馆查阅相关资, 我们遇到了更大的困难。 我们不断地给自己提出新的问题,然后去论证、推翻,再接着提出新的问题。在这个循环往复的过程中, 我们这篇稚嫩的设
50、计日臻完善。 虽然我们的设计作品不是很成熟,即使借鉴前人的很多资料仍然还有很多不足之处,但我仍然心里有一种莫大的幸福感,因为我们实实在在地走过了一个完整的设计所应该走的每一个过程,并且享受了每一个过程。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - 21 参考文献1 机电传动与控制(第四版) . 邓星钟等编著华中科技大学出版社2007年 7 月第 4 版2 FX系列 PLC编程及应用(第 1 版). 廖常初主编机械工业出版社