基于单片机的步进电动机控制系统方案设计书_第1页
基于单片机的步进电动机控制系统方案设计书_第2页
基于单片机的步进电动机控制系统方案设计书_第3页
基于单片机的步进电动机控制系统方案设计书_第4页
基于单片机的步进电动机控制系统方案设计书_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、毕业论文(设计) 题目:基于单片机的步进电动机 控制系统设计 专业: 电气工程及其自动化 作者: 谢吉湖 指导教师(职称): 刘生建 )(讲师 二0 0 九 年 三 月 日 龙岩学院 毕业论文(设计)开题报告 日 月3 年 2009 论文(设计)题目:基于单片机的步进电动机控制系统的设计 姓名 谢吉湖 年级 级 2006 所在院系物理与机电工程 学院 专业 电气工程及其自动化 指导教师 刘生建 开展本课题的意义及工作内容:数字化电动机控制技术的发展使电机这个古老的机电能量转换装置得到新的发展和广泛运用,极大的改善了工农业的生产效率,改善了人民的生活水平。步进电动机是纯粹的数字控制电动机,它将电

2、脉冲信号转变成角位移,即给一个脉冲信号,步进电动机就转一个角度,因此非常适合于单片机控制。 脚为,1 2正转脉冲输入端 1.双时钟输入总体安排及进度:第1周:到图书管或上网查找资料 第2周:整理所找来的资料 第3周:初步完成本系统的设计给指导老师批改 第4周:根据老师的点评完善本系统的设计 课题预期达到的效果:本文以单片机为控制核心,达到理想的步进电动机位置控制和加减速控制。 指导教师意见: 签名: 基于单片机的步进电动机控制系统设计 学院:物理与机电工程学院 专业:电气工程及其自动化 学号:2006040632 姓名:谢吉湖 指导老师:刘生建 【摘要】数字化电机控制技术的发展使得电机这一古老

3、的机电能量转换装置得到新的发展和广泛的应用,并极大地提高了工农业生产效率,改善了人民的生活水平。步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电动机就转一个角度,因此非常适合于单片机控制。为了提高步进电机控制系统的动态性能和控制精度提出基于单片机的步进电机控制系统设计方法,包括系统硬件、软件及加减速控制算法的设计。 【关键词】 单片机 步进电机控制系统 位置控制 加减速控制 目录 摘要、关键词-3 第一章 三相反应式步进电动机原理及控制-5 一 三相反应式步进电机的工作原理-5 二 步进电动机控制-6 第二章 系统硬件设计-6 一 脉冲分配电路-6 二 功

4、率放大电路设计-8 第三章 系统软件设计-8 一 位置控制-8 (一)位置控制设计-8 (二)位置控制设计程序实现-8 二 加减速控制-9 (一)加减速控制设计-9 (二)加减数控制程序实现-11 致谢词-12 参考文献-12 -13系统程序1附录附录2 位置控制单片机程序-19 附录3 加减速控制单片机程序-21 引言: 随着微电子技术的发展,数字信号处理器以其强大的运算处理能力,较高的控制精度而在自动控制系统中普遍使用。为了提高步进电机的控制性能和精度,本文以单片机AT89C51为控制核心,实现了三相反应式步进电机控制系统的设计。 第一章 三相反应式步进电动机概述及控制 一、三相反应式步进

5、电机的工作原理 三相反应式步进电动机由转子和定子两大部分组成如图1-1所示。在定子绕组上有三对磁极,磁极上装有励磁绕组。励磁绕组分为三相,分别为A、B、C三相绕组。步进电机的转子是由软磁材1料制成,在转子上均匀分布四个凸极,极上不装绕组,转子的凸极也称为转子的齿。 图1-1 三相反应式步进电动机原理图 当步进电动机的A相通电,B相和C相不通电时,由于A相绕组产生的磁通要经过磁阻最小的路径形成闭合磁路,这样将使转子齿13和定子A相对齐,如图中A相通电情况所示。当A相断电,改为B相通电时,同A相通电情况一样,磁通也要经过磁阻最小的路径形成闭合回路,这样转030相通电BB相对齐,转子在空间转过的角度

6、为,如图4子顺时针转过一定角度,使转子齿2、与030相通电所示。相时,同时可使转子顺时针转过的角度为B相改为CC空间角度,如图所示。当的通电顺序往复下去,则步进电机的转子将按一定速度沿逆时针方向旋转,步进电若按照A-B-C-A顺时针通电时,步进电机的转动方A-C-B-A机转速取决于三相控制绕组的通、断电源的频率。当按 向将改为顺时针。在步进电机控制过程中,定子绕组每改变一次通电方式,称为一拍。上述的通电控制方式,由于每次只有一相控制绕组通电,称为三相当三拍控制方式,除此控制方式外,还有三相单、双六拍工作方式和三相双三拍控制方式,在三相单、双六拍工作方式中,控制绕组通电顺序为A-AB-B-BC-

7、C-CA-A或A-AC-C-CB-B-BA-A。在三相双三拍控制方式中,控制绕组通电顺序为AB-BC-CA-AB或AC-CB-BA-AC。步进电机每改变一次通电状态(一拍)转子转过的角度称为步进点饥的步距角,从图中001530,三相双三拍的步距角为可以看出三相单三拍的步距角为,而三相单、双六拍步距角为0?30可通过下式计算 。步进电机的步距角se0360? (1-1) semZCrm?3;C式中的m为步进电机的相数,对于三相步进电机为通电状态系数,对于单拍或双拍C?1C?2Z为步进电机转子的齿数。;方式工作时;单双拍混合方式时 r步进电机的转速n可通过下式计算 60f?n (1-2) mZCr

8、 为步进电机每秒的拍数,成为步进电机的通电脉冲频率。f式中,二 、步进电动机控制 步进电动机是数字控制系统中一种十分重要的自动化执行元件,在工业自动化装备,办公自动化设备中有着广泛的运用,近年来,控制技术、计算机技术以及微电子技术的迅速发展,有力地推动了步进电动机控制技术的进步,提高了步进电动机运动控制装置的应用水平。过去电动机的控制多用模拟法,随着计算机应用技术的迅速发展,电动机的控制也发生了深刻的变化,步进电机常常和计算机一起组成高精度的数字控制系统。模拟控制已经逐渐被使用单片机为主的混合控制和全数 字控制所取代。第二章 系统硬件设计 步进电机是一种将电脉冲信号转换成角位移的执行机构,其转

9、子角位移与输入脉冲的频率成正比,通过改变脉冲频率可以实现大范围的调速;同时,步进电机易于与计算机和其他数字元件接2口,因此被应用于各种数字控制系统中,本设计的步进电动机控制系统由单片机(控制电路),脉冲分配电路、功率放大电路(驱动电路)、步进电动机及电源系统组成组成。系统结构框图如图2-1所示。 图2-1 系统结构框图 一、脉冲分配电路 由步进电动机的工作原理知道,要使电动机正常的一步一步地运行,控制脉冲必须按一定的顺序分别供给电动机各相。给三相绕组轮流供电被称为脉冲分配,实现脉冲分配的方法有硬件法和软件法两种。硬件分配法由环行分配器来实现,软件分配法由程序从计算机接口直接控制输出脉冲的速度3

10、和顺序。 由于软件法在电动机运行过程中,要不停产生控制脉冲,占用大量CPU时间,可能使单片机无法同时进行其他工作(如监测等),所以本系统采用硬件法。使用一种8713集成电路芯片。8713属于单极性控制,用于控制三相和四相步进电机,可以选择以下不同的工作方式: 三相步进电动机,单三拍,双三拍,六拍? 四相步进电动机,单四拍,双四拍,八拍? 可以选择单时钟输入或双时钟输入;具有正反转控制、初始化复位、工作方式、和输入脉8713直流电418V冲状态监视等功能;所有输入端内部都设有斯密特整形电路,提高抗干扰能力;使用4 所列个引脚,各引角功能如表2-120mA。8713有16源,输出电流为 2-1 8

11、713引脚功能 表 说明引脚 功能 端 反转脉冲输入端2 为脚33 ,4脉冲输入端 单时钟输入 正转0-反转;4 1-转向控制端: 端 为六(八)为单三(四)拍;6 ,1100为三(四)拍;01,10工作方式选择:5 拍 四相 四相选择:0-三相;1-7 三/ 8 地 复位端。低电平有效 9 、13、D;三相用B1012输出端。四相用13、,10、11、脚,分别代表A、CC 、A12、11脚,分别代表、11 B,1213 工作方式监视。0为单三(四)拍;14 1为双三(四)拍;脉冲为六(八)拍 输出脉冲状态监视,与时钟同步 15 电源 16 2-2 8713脉冲分配器与单片机接口如图 脉冲分配

12、器与单片机接口图2-2 8713图 本系统选用单时钟输入方式,8713的3引脚为步进脉冲端,4引脚为转向控制端,这两个引脚的输入均由单片机提供和控制,所以5、6、7脚均接高电平。由于采用了脉冲分配器,单片机只需提供步进脉冲,进行速度控制和转向控制,脉冲分配的工作交给脉冲分配器来自动完成。因此CPU的负担减少很多。 二、功率放大电路 脉冲分配器8713的A、B、C三端输出电流很小,而所用的三相反应式步进电机驱动电流较大,每相静态电流为3A。为满足驱动要求,系统设计了步进电机功率驱动电路,如图2-3所示(以A相为例) 图23 步进电机功率驱动电路 电路采用三级晶体管放大,第一级用3DG6小功率管,

13、第二级用3DK4中功率管,第三级用3DD15大功率管。LA为步进电机A相绕组。R15为限流电阻,保证电流稳态值;D2为续流二极管,防止3DD15关断时绕组反电势击穿管子。C9为加速电容,动态工作时,利用其旁路作用,使电机绕5组电流上升加快,来改善电流波形的前沿,提高电机高频性能。 第二章 系统软件设计 步进电机存在启动时失步,停止时振荡现象,这是影响步进电机控制精度的主要原因。因此, 软件设计主要介绍步进电动机位置控制和加、减速控制及程序实现。一、位置控制 (一)位置控制设计步进电动机每走一步,步数减1,如果没有失步的存在,当执行机构到达目标位置时,步数正好为0。因此,用步数等于0来判断是否移

14、动到目标位置,作为步进电动机停止运行信号。绝对位置参数可作为人机对话的显示参数,或作为其他控制目的的重要参数,它与步进电动机的转向有关,当步进电动机正转时,步进电动机每走一步,绝对位置加1,当步进电动机反转,绝对位置随每次步进减1。硬件连接如图2-2所示。 (二)位置控制设计程序实现中断服务子程序框图,如图3-1所示,每次中断仍然改变一次P1.0的状态,每两次中断步进电动机才走一步。 图3-1 中断服务子程序框图 本程序使用资源:30H、31H存放定时常数,低位在前; 32H34H存放绝对位置参数(假设用3字节),低位在前; 35H、36H存放步数(假设最大值占2字节),低位在前。 。P1.1

15、=0P1.1=1 步进电动机的正反转控制在主程序中实现,如果正转,使;如果反转,使二、加减速控制 (一)加减速控制设计 所示。3-2为满足加减速控制要求,本系统步进电机按照指数加减速曲线进行控制,如图 图3-2 指数加减速曲线图 系统按指数曲线加减速时,驱动脉冲频率f与升数时间t的关系为: ?/?tefff? (3-1) m?)m(t式中fm为步进电机最高运行频率;是决定时间快慢的时间常数,实际工作中可由实验来确定。实际运行中,若步进电机运行频率为fg,由式(公式3-1)可算出升速时间为: ?lnf?ln(?f?f)t (3-2) grmm 由于DSP是用定时器比较中断方式来控制步进电机速度的

16、,电机的加减速控制实际上是不断改变定时器周期寄存器的装载值。为了编程的方便,可由阶梯曲线来拟合加速曲线,将升速段按照速度等间距均匀的离散为n档,如图3-3所示 。 加速曲线离散化图3-3 图 若步进电机启动脉冲频率为fg,稳定运行最高频率为fc,则相邻速度级的频率变化为: ?f?(f?f)/n (3-3) gc则每一档频率fk为: f?f?f(k?1)(k?1,2.n) (3-4) gk每一档运行时间Tk为: T?t(f)?t(f)(k?1,2.n) (3-5) krk?k1r式中tr(fk)、tr(fk+1)分别为运行频率fk及fk+1时的升速时间。各分档速度的内运行速度Nk为: N?f?T

17、 (3-6) kkk 则加速过程总步数Nr为: n?NN? )(3-7 kr1?k执行加速控制时,对每档的速度读要计算在此台阶上应走步数,然后以递减方式查询。当减至0时,表明该速度档步数已走完,进入下一档速度。同时,递减加速过程总步数,直到加速过程走6完。以上是对步进电机加速过程的处理方法,减速过程的处理方法同加速过程。 (二)加减数控制程序实现本程序的资源分配如下: R0中间寄存器; R1存储速度级数;R2存储级步数; R3加减速状态指针,加速时指向35H,恒速时指向37H,减速时指向3AH; 32H34H存放绝对位置参数(假设用3字节),低位在前; 35H36H存放加速总步数(假设用2字节

18、),低位在前; 37H39H存放恒速总步数(假设用3字节),低位在前; 3AH3BH存放减速总步数(假设用2字节),低位在前 定时常数系列存放在以ABC为起始地址的ROM中。初始R3=35H,R1,R2都有初使值。加减速 所示3-4程序框图如图 图3-4 加减速程序框图 致谢词:在本设计完成之际,我要向所有给予我指导、关心、支持和帮助的人表示最衷心的感谢!在设计本系统的过程中,我的指导老师刘生建老师给了我悉心的指导和帮助,他为本设计的研究和撰写提供了各种技术资料和技术咨询,特别是刘老师在许多关键问题上的正确指导才能使得我的设计得以顺利完成。本人在设计之前也阅读了大量的相关的文献资料,从中汲取了

19、丰富的知识,借此机会向我的导师和这些作者表示衷心的感谢! 参考文献1许晓蜂。电机及拖动。M。高等教育出版社,2007 2刘亚东,李从心,王小新。步进电机速度的精确控制。J。上海交通大学出版社,2001,35,(10):1517-1520 3周庆贵,黄章。电气控制技术。M。化学工业出版社,2007 4王晓明。电动机的单片机控制。M。北京航天航天大学出版社,2007 5孟武胜,李亮。基于AT89C52单片机的步进电机控制系统的设计。J。测控技术,2006,25(11):45-47。 6王瑾,基于DSP和CAN总线的步进电机控制系统。J。电子测量技术,2009,31(1):112- 115 附录1

20、系统程序 ;相关参数定义 MAICHONG BIT P1.0 FANGXIANG BIT P1.1 FINISH BIT P1.7 R5 JUEDUIMAICHONG_L EQU R6 EQU JUEDUIMAICHONG_M R7 JUEDUIMAICHONG_H EQU 30H EQU DANGQIANWEIZHI_L 31H EQU DANGQIANWEIZHI_M 32H DANGQIANWEIZHI_H EQU 33H SHEDINGWEIZHI_L EQU 34H EQU SHEDINGWEIZHI_M 35H EQU SHEDINGWEIZHI_H JIASU_STEP_L EQ

21、U 36H JIASU_STEP_H EQU 37H HENGSU_STEP_L EQU 38H HENGSU_STEP_M EQU 39H HENGSU_STEP_H EQU 3AH JIANSU_STEP_L EQU 3BH JIANSU_STEP_H EQU 3CH DANGQIANSUDU EQU 3DH ORG 0000H AJMP MAIN ORG 000BH ;定时器0中断入口 LJMP TIME0_INT ;调用定时器0中断子程序 ORG 0040H MAIN:MOV R0,#00H DJNZ R0,$ ;等待系统电源稳定 MOV SP,40H ;指定堆栈指针 CLR FINI

22、SH ;清除完成标记 MOV DANGQIANSUDU,#0H ;标示当前转速 ;初始化定时器 MOV TMOD,#01H ;定时器0设定在工作方式1,最大定时周期65536uS MOV TH0,#3CH MOV TL0,#0B0H ;设定定时器0最大工作周期50mS MOV IE,#82H ;开定时器0中断 INIT_WEIZHI: ;手动设定当前位置和预定位置,模拟实际工作情况 CLR FINISH MOV DANGQIANWEIZHI_L,#80H MOV DANGQIANWEIZHI_M,#60H MOV DANGQIANWEIZHI_H,#98H MOV SHEDINGWEIZHI_

23、L,#80H MOV SHEDINGWEIZHI_M,#96H MOV SHEDINGWEIZHI_H,#98H LCALL INIT_JUEDUIMAICHONG ;计算绝对偏差脉冲数 LCALL INIT_JIAJIANSU ;计算加,恒,减速脉冲数 SETB TR0 JNB FINISH,$ JMP INIT_WEIZHI ;返回初始化绝对位置脉冲数 ; ORG INIT_JUEDUIMAICHONG: ;计算绝对偏差脉冲数 CLR C MOV A,SHEDINGWEIZHI_L SUBB A,DANGQIANWEIZHI_L ;计算绝对偏差脉冲数最低字节 JUEDUIMAICHONG_

24、L,A MOV MOV A,SHEDINGWEIZHI_M SUBB A,DANGQIANWEIZHI_M MOV JUEDUIMAICHONG_M,A ;计算绝对偏差脉冲数中间字节 MOV A,SHEDINGWEIZHI_H SUBB A,DANGQIANWEIZHI_H MOV JUEDUIMAICHONG_H,A ;计算绝对偏差脉冲数最高字节 JC QUFAN SETB FANGXIANG RET QUFAN: CLR C MOV A,JUEDUIMAICHONG_L CPL A ;取反 MOV JUEDUIMAICHONG_L,A ;计算绝对偏差脉冲数最低字节 MOV A,JUEDUI

25、MAICHONG_M CPL A ;取反 MOV JUEDUIMAICHONG_M,A ;计算绝对偏差脉冲数最低字节 MOV A,JUEDUIMAICHONG_H CPL A ;取反 MOV JUEDUIMAICHONG_H,A ;计算绝对偏差脉冲数最低字节 CLR FANGXIANG RET ; ORG INIT_JIAJIANSU: ;加减速脉冲数计算 CLR C CJNE JUEDUIMAICHONG_H,#01H,H_BUDENG ;判断绝对位置脉冲数最高字节 CJNE JUEDUIMAICHONG_M,#86H,M_BUDENG ;判断绝对位置脉冲数中间字节 CJNE JUEDUIM

26、AICHONG_L,#0A0H,L_BUDENG ;判断绝对位置脉冲数最低字节 MOV JIASU_STEP_H,#0C3H MOV JIASU_STEP_L,#50H ;设定加速脉冲数50000 MOV HENGSU_STEP_H,#0 MOV HENGSU_STEP_M,#0 MOV HENGSU_STEP_L,#0 ;设定恒速脉冲数0 MOV JIANSU_STEP_H,#0C3H MOV JIANSU_STEP_L,#50H ;设定减速脉冲数50000 H_BUDENG: JNC DAYU AJMP XIAOYU CLR C M_BUDENG: JNC DAYU XIAOYU AJMP

27、 L_BUDENG: JNC DAYU AJMP XIAOYU XIAOYU: MOV A,JUEDUIMAICHONG_M RRC A MOV JIASU_STEP_H,A ;设定加速脉冲数为绝对脉冲数的一半 ;设定减速脉冲数为绝对脉冲数的一半MOV JIANSU_STEP_H,A A,JUEDUIMAICHONG_L MOV A RRC JIASU_STEP_L,A MOV JIANSU_STEP_L,A MOV A,#0 MOV A,#0 ADDC HENGSU_STEP_H,#0 MOV HENGSU_STEP_M,#0 MOV MOV HENGSU_STEP_L,A ;设定恒速脉冲数

28、 RET DAYU: JIASU_STEP_H,#0C3H MOV ;设定加速脉冲数JIASU_STEP_L,#50H 50000 MOV JIANSU_STEP_H,#0C3H MOV ;设定减速脉冲数JIANSU_STEP_L,#50H 50000 MOV C CLR A,JUEDUIMAICHONG_L MOV A,#0A0H SUBB HENGSU_STEP_L,A MOV A,JUEDUIMAICHONG_M MOV A,#086H SUBB HENGSU_STEP_M,A MOV A,JUEDUIMAICHONG_H MOV A,#01H SUBB ;设定恒速脉冲数 MOV HEN

29、GSU_STEP_H,A RET ;定时器 TIME0_INT: 0中断子程序 TR0 CLR ;脉冲电平取反 MAICHONG CPL MAICHONG,HALF JB ;判断是否为上升沿,以实现一个周期 一个上升沿;下降沿则直接装入原时间常数完成一 LCALL REINIT_TIME0 个周期RETI HALF: MOV A,JIASU_STEP_L ;判断加速低脉冲数是否为0 ;为 0则转向加速高脉冲数判断 CJNE A,#0,JIASU1 ;判断加速低脉冲数是否为 MOV A,JIASU_STEP_H 0 ;为 CJNE A,#0,JIASU2 0则加速结束转向恒速脉冲数判断 MOV

30、A,HENGSU_STEP_L ;判断恒速低脉冲数是否为0 ;为0 则转向恒速中间脉冲数判断 CJNE A,#0,HENGSU1 ;判断恒速中间脉冲数是否为 MOV A,HENGSU_STEP_M 0 ;为0 则转向恒速高脉冲数判断 CJNE A,#0,HENGSU2 ;判断恒速高字节脉冲数是否为 MOV A,HENGSU_STEP_H 0 ;为 0则恒速区结束转向减速高脉冲数 CJNE A,#0,HENGSU3 判断;判断减速低脉冲数是否为 MOV A,JIANSU_STEP_L 0 ;为0则转向减速高脉冲数判断 CJNE A,#0,JIANSU1 ;判断减速高脉冲数是否为 0 A,JIAN

31、SU_STEP_H MOV ;为0A,#0,JIANSU2 则电机停止转动 CJNE ;P1.7 SETB FINISH 做为完成指示灯 RETI ;判断加速低脉冲数不为 0则减1 JIASU1: JIASU_STEP_L DEC ;重新装入定时常数 ACALL REINIT_TIME0 RETI JIASU2: ;判断加速高脉冲数不为0则减1 JIASU_STEP_H DEC ;判断加速低脉冲数减 1 DEC JIASU_STEP_L ;改变当前速度指针 INC DANGQIANSUDU ;重新装入定时常数 ACALL REINIT_TIME0 RETI HENGSU1: ;判断恒速低脉冲数

32、不为 HENGSU_STEP_L DEC 0则减1 ;重新装入定时常数 ACALL REINIT_TIME0 RETI HENGSU2: ;判断恒速低脉冲数不为0则减 HENGSU_STEP_M DEC 1 ;判断恒速低脉冲数减 1 DEC HENGSU_STEP_L ;重新装入定时常数 ACALL REINIT_TIME0 RETI HENGSU3: ;判断恒速低脉冲数不为0 DEC HENGSU_STEP_H 则减1 ;判断恒速低脉冲数减HENGSU_STEP_M DEC 1 ;判断恒速低脉冲数减DEC HENGSU_STEP_L 1 ;重新装入定时常数 ACALL REINIT_TIME

33、0 RETI JIANSU1: DEC JIANSU_STEP_L ;判断减速低脉冲数不为0则减1 ACALL REINIT_TIME0 ;重新装入定时常数 RETI JIANSU2: DEC JIANSU_STEP_L ;判断减速低脉冲数不为0则减1 DEC JIANSU_STEP_H ;判断减速低脉冲数减1 DEC DANGQIANSUDU ;改变当前速度指针 ACALL REINIT_TIME0 ;重新装入定时常数 RETI REINIT_TIME0: ;定时器0时间常数重装子程序 MOV A,DANGQIANSUDU ;取得当前速度指针位置 MOV DPL,A MOV DPH,#02H

34、 CLR A MOVC A,A+DPTR ;查表取出指针所对应的周期时间常数低字节 MOV TL0,A MOV DPH,#03H CLR A MOVC A,A+DPTR ;查表取出指针所对应的周期时间常数低字节 MOV TH0,A SETB TR0 ;重新启动定时器0;如果是对步进电机的转速,即周期有严格要求的情况下,应对时间常数进行校正 RET ;步进电机加减速时间常数表 ;当前数据表示电机运行频率10Hz2500Hz,可自行更改 ; 0 1 2 3 4 5 6 7 8 9 ORG 0200H SUDU_L: DB 0B0H,039H,00BH,092H,006H,08EH,074H,05A

35、H,096H,05EH DB 0D1H,005H,009H,0E8H,0A8H,050H,0E3H,067H,0DCH,045H DB 0A4H,0FBH,04AH,092H,0D5H,012H,04BH,07FH,0B0H,0DEH DB 008H,031H,056H,079H,09BH,0BAH,0D8H,0F4H,00FH,028H DB 040H,057H,06DH,082H,096H,0A9H,0BCH,0CDH,0DEH,0EEH DB 0FDH,00CH,01BH,028H,036H,043H,04FH,05BH,066H,072H DB 07CH,087H,091H,09BH,

36、0A4H,0ADH,0B6H,0BFH,0C7H,0CFH DB 0D7H,0DFH,0E7H,0EEH,0F5H,0FCH,003H,009H,00FH,016H DB 01CH,022H,027H,02DH,033H,038H,03DH,042H,047H,04CH DB 051H,056H,05AH,05FH,063H,068H,06CH,070H,074H,078H DB 07CH,080H,084H,087H,08BH,08EH,092H,095H,099H,09CH DB 09FH,0A2H,0A5H,0A8H,0ABH,0AEH,0B1H,0B4H,0B7H,0BAH 0BCH,

37、0BFH,0C2H,0C4H,0C7H,0C9H,0CCH,0CEH,0D0H,0D3H DB DB 0D5H,0D7H,0DAH,0DCH,0DEH,0E0H,0E2H,0E4H,0E6H,0E8H 0EAH,0ECH,0EEH,0F0H,0F2H,0F4H,0F6H,0F8H,0F9H,0FBH DB 0FDH,0FFH,000H,002H,004H,005H,007H,008H,00AH,00BH DB 00DH,00EH,010H,011H,013H,014H,016H,017H,019H,01AH DB 01BH,01DH,01EH,01FH,020H,022H,023H,024H,

38、025H,027H DB 028H,029H,02AH,02BH,02DH,02EH,02FH,030H,031H,032H DB 033H,034H,035H,036H,037H,038H DB 0 1 2 3 4 5 6 7 8 9 ; 0300H ORG DB SUDU_H: 03CH,0AAH,0C9H,0D7H,0E0H,0E5H,0E9H,0ECH,0EEH,0F0H 0F1H,0F3H,0F4H,0F4H,0F5H,0F6H,0F6H,0F7H,0F7H,0F8H DB 0F8H,0F8H,0F9H,0F9H,0F9H,0FAH,0FAH,0FAH,0FAH,0FAH DB 0F

39、BH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FCH,0FCH DB 0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH DB 0FCH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH DB 0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH DB 0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0F

40、EH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FEH,0FEH

41、,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH DB 0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB END 附录2 位置控制单片机程序如下:

42、POS: CPL P1.0 ;改变P1.0 电平状态 PUSH ACC ;累加器A进栈 PUSH PSW PUSH R0 ;R0进栈 JNB P1.0,POS4 ; P1.0=0时,半个脉冲,转到POS4 CLR EA ;关中断 JNB P1.1,POS1 ;反转,转到POS1 MOV R0,#32H ;正转。指向绝对位置低位32H INC R0 ;绝对位置加1 POS2 ;无进位则转向POS2 ,#00H, CJNE R0 INC R0 ;指向33H INC R0 ;(33H)+1 CJNE R0,#00H,POS2 ;无进位则转向 POS2 INC R0 ;指向34H INC R0 ;(3

43、4H)+1 CJNE R0,#00H,POS2 ;无越界,则转POS2 CLR TR0 ;发生越界,停定时器(停电动机) LCALL BAOJING ;调报警子程序 POS1: MOV R0,#32H ;反转。指向绝对位置低位32H DEC R0 ;绝对位置减1 ;无借位则转向POS2 POS2 CJNE R0,#FFH,;指向 INC R0 33H ;(33H)-1 DEC R0 ;无借位则转向 POS2 ,POS2 CJNE R0,#FFH;指向34H INC R0 ;(34H)-1 DEC R0 ;无越界,则转POS2 ,POS2 CJNE R0,#FFH;发生越界,停定时器(停电动机) CLR TR0 ;调报警子程序 LCALL BAOJING ;指向步数低位POS2:MOV R0,#35H 35H ;步数减 DEC R0 1 ;无借位则转向 POS3 ,POS3 #FFH CJNE R0,;指向36H INC R0 ;(36H DEC R0 )-1 ;开中断 POS3:SETB

温馨提示

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

评论

0/150

提交评论