资源描述
数字控制技术实验指导书广东工业大学2014.2实验一 数控机床操作与编程一、 实验目的通过设计数控加工程序并仿真加工,熟悉G代码编程,掌握数控机床操作和编程方法,学习数控技术的应用。二、实验内容和要求1、设计数控加工程序2、调试程序并仿真加工三、实验主要仪器设备和材料:1、微型计算机2、GSK 928TE车床数控仿真软件四、实验方法、步骤 1 实验设备简介:系统可以输入、运行G代码及广州数控928TC的其它标准代码;,可以真实模拟928TC的车削效果。1.1 GSK 928TE车床数控系统操作面板说明:按下功能键完成相应功能,各键符号含义如下: 快速倍率增加 手动方式中增大快速移动速度倍率,自动运行中增大G00指令速度倍率。快速倍率减小 手动方式中减小快速移动速度倍率,自动运行中减小G00指令速度倍率。进给倍率增加 手动方式中增大进给速度倍率,自动运行中增大G01指令速度倍率。 进给倍率减小 手动方式中减小进给速度倍率,自动运行中减小G01指令速度倍率。 X轴回程序参考点 仅手动/自动工作方式下有效。Z轴回程序参考点 仅手动/自动工作方式下有效。 X轴回机床参考点 仅手动工作方式下有效。 (可由P12号参数的MZRO位选择回机床参考点功能有效与否) Z轴回机床参考点 仅手动工作方式下有效。 (可由P12号参数的MZRO位选择回机床参考点功能有效与否) 向前翻页:编辑/参数/刀偏工作方式中向前翻一页检索程序或参数,其他工作方式下,使液晶显示器亮度增大。向后翻页:编辑/参数/刀偏工作方式中向后翻一页检索程序或参数,其他工作方式下,使液晶显示器亮度减小循环启动键 自动运行中启动程序,开始自动运行。 进给保持键 手动或自动运行中电机减速停止,暂停运行。 快速/进给键 手动运行中进行快速移动速度与进给速度的相互切换。 手动步长选择 在手动单步/手轮工作方式中选择单步进给或手轮进给的各级步长。 X轴手轮选择 当配置有电子手轮时,选择X轴的移动由电子手轮控制。(当手轮控制有效时,与轴运动相关的其他控制键无效) 主轴正转 主轴按逆时针方向转动。(从电机轴向观察) 主轴停止 主轴停止运转。 主轴反转 主轴按顺时针方向运转。(从电机轴向观察) 主轴换档键 对安装有多速主轴电机及控制回路的机床,选择主轴的各档转速(最多16档)。 换刀键 选择与当前刀号相邻的下一个刀号的刀具。 系统复位键 系统复位时所有轴运动停止。辅助功能无效,呈初始上电状态。1.2 数控机床坐标 图1 XZ直角坐标系系统对可控制的两个坐标轴定义为X、Z轴,两个坐标轴相互垂直构成XZ平面直角坐标系.如图1X坐标:X坐标定义为与主轴旋转中心线相垂直,X正方向为刀具离开主轴旋转中心方向。Z坐标:Z坐标定义为与主轴旋转中心线重合,Z正方向为刀具远离主轴箱方向。 1.2.1 机械原点机械原点为机床上固定位置的一点,设置在 X 轴和 Z 轴的正方向最大行程处,并安装相应的机械原点开关。1.2.2 编程坐标 本系统编程可用绝对坐标(X、Z 字段),相对坐标(U、W 字段)或混合坐标(X/W、U/Z 字段)进行编程。对于X轴坐标,本系统使用直径编程(所有X轴方向的尺寸和参数均用直径量表示)。1.2.3 绝对坐标值 绝对坐标值是距坐标系原点的距离,也即是刀具移动终点的坐标位置,如图2。刀具从A点移动到B点,用B点坐标值表示其指令为: X50 Z701.2.4 相对坐标值相对坐标值是前一个位置到后一个位置的距离,即刀具实际移动的距离,如图3。刀具从A点移动到B点用相对坐标表示指令为:U-30 W-40(X方向为直径编程)图2 绝对坐标 图3 相对坐标值1.2.5 混合坐标根据编程中的计算方便以及编程者的习惯,系统允许相对坐标和绝对坐标混合使用但应注意同一个程序段中,同一坐标轴只能用一种表示方法,即可以使用 X、W 或 U、Z 表示,而不能使用 X、U 或 Z、W。刀具从图3中A点移动到B点X使用绝对坐标, Z使用相对坐标指令如下: X50 W-401.3 工件坐标系工件坐标系就是以工件上某一点作为坐标原点建立的坐标系。工件坐标系的坐标轴,分别与X、Z轴平行且方向相同。工件坐标系一旦建立,以后编程的所有绝对坐标值都是在工件坐标系中的坐标值。工件坐标系的Z轴设定在工件的旋转中心上,而工件坐标系的X轴则可根据习惯将其定义在卡盘端面或工件的端面如图4所示。在编程时根据实际情况,选定工件坐标系原点也即是工件图纸上的编程原点和数控系统指令的坐标原点。通过设置工件坐标即可建立工件坐标系。图4 工件坐标系1.4 参考点参考点即是操作者自己确定的一个安全、方便的位置。机床上的任何位置都可以设置成参考点。通常是将参考点设定在一个安全的位置。 参考点一旦确定,在手动与自动运行方式中,都可以使用回参考点功能使刀具回到参考点。即使断电,参考点仍然记忆有效。但如果使用驱动电机,则可能会因为重新上电因电机抖动而产生微小误差,为保证精度应执行一次回参考点操作。在数控系统第一次通电初始化后,没有设置程序参考点的情况下,参考点自动设置成X=150 Z=150。 图5 G26 返回参考点2. 指令代码及其功能功能代码 :功能定义为机床的运动方式,由字符及后面两位数字构成,GSK928TE数控系统所用功能代码如下表所示。注1:表中带 *指令为模态指令,即在没有指定其它G指令的情况下一直有效。 注2:表中指令在每个程序段只能有一个G04之外的G代码,仅G04指令可和其它G代码在同一程序段中出现。 注3:通电及复位时系统处于G00,G98状态。功能 辅助功能:来控制机床的加工程序的运行顺序,功能由地址符后跟两位整数构成,GSK928TE数控系统所使用功能如下所示注1每个程序段只能有一个M代码,前导0可省略。 注2在M指令与G指令同在一个程序段中时按以下顺序执行 M03、M04、M08优先于G指令执行 M00、M02、M05、M09、M20、M30后于G指令执行 M21、M22、M23、M24、M25、M92、M93、M94、M97、M98、M99 只能单独在一个程序段内不能与其它G指令或M指令共一段。 注3M91、M92、M93、M94指令中的地址P可以省略。T功能 刀具功能:本系统可控4工位电机刀架,设置换刀及刀具补偿功能。 指令格式: 其中 a:表示需要的刀具号范围为 。a为0时表示不换刀只进行刀具补偿。 对应四工位电动刀架上的四把刀。 B:表示刀具补偿的数据的编号。对应刀偏参数中的刀偏的组号。在T指令中如则表示撤消刀偏补偿。 在有刀具偏置情况下,回程序起点或执行G26、G27、G29指令时均撤消刀具偏置。 四实验方法1. 进入编辑工作方式按编辑键进入编辑工作方式,显示当前程序所存储的全部零件程序的程序名,当前程序所包含的字节数以及系统可用的存储器字节数等,显示画面如图6所示。 图 6 图 7 2. 新零件程序的建立 (1)在零件程序目录检索状态按输入键。(2)从键盘输入两位程序目录清单中不存在的程序号作为新程序号。如图6所示。 (3)按 Enter 键。系统自动进入程序编辑状态。如图7所示。3. 删除零件程序(1)在零件程序目录检索状态按输入键。 (2)从键盘输入需要删除的程序号。 (3)按删除键,系统显示确认? 按 Enter 键删除输入程序号的零件程序。(4)按其它任一键取消删除操作。 4. 选择零件程序(1)在零件程序目录检索状态按输入键。(2)从键盘输入需要选择的程序号,按 Enter 键。(3) 完成零件程序的选择并显示零件程序内容,进入编辑工作状态,如图8所示。图8实验步骤1. 输入新程序: 编辑输入键入程序号输入程序代码(程序会自动保存)2. 调用已有程序: 编辑输入键入已保存的程序号3. 仿真加工设置:设置毛胚尺寸、刀具、显示加工速度。4. 确定工件坐标系:1) 选择毛胚尺寸,在机床上装夹好工件,选择一把刀。2) 在手动方式下移动刀具,在工件上切出一个小台阶(参考工件图尺寸)。3) 测量所切出的台阶的直径,按“输入”键,屏幕显示“设置”再按X键显示“设置X” 输入测量出的直径值,按“回车”键,系统自动设置好X 轴方向的工件坐标。如按ESC 则取消设置。4) 在X 轴不移动的情况下手动移动刀具沿Z 方向将刀具移动到工件的外端面输入测量出Z的数据,按“回车” 键,系统自动设置Z 轴方向的工件坐标。不设置工件坐标系,则当前显示的坐标值与当前刀具实际位置会有偏差,在系统初始化后进行一次,以后可以不用设置。 5连续自动仿真加工时:自动 6单段仿真加工:自动 单段 ,每按一次运行一段程序此时,在屏幕上可查看到加工指令执行情况、刀具路径及加工过程。切削实例一(图9)图9N0000 G50 X100 Z10 ;设立工件坐标系,定义对刀点的位置N0010 G00 X16 Z2 M03 ;移到倒角延长线,Z轴2mm处N0020 G01 U10 W-5 F300 ;倒3x45角N0030 Z-48 ;加工26外圆N0040 U34 W-10 ;切第一段锥N0050 U20 Z-73 ;切第二段锥N0060 X90 ;退刀N0070 G00 X100 Z10 ;回 对刀点N0080 M05 ;主轴停N0090M30 ;主程序结束并复位切削实例二(图10)M98 M99 调用子程序切削示例:图10N 0010 G50 X100 Z50N0020 M03 S1N0030 G0 X50 Z1 F500N0040 M98 P0060 L5 ;调用子程序N0050 M97 P0130 ;程序转移N0060 G0 U-4 ;子程序N0070 G01 Z-10 F80N0080 U20 Z-25N0090 Z-35 N0100 G0 U2 Z1N0110 U-22 N0120 M99 N0130 G0 X100 Z50N0140 M05 N0150 M02 ;主程序结束执行到0040时调用子程序,执行006 00120五次,然后执行N0050 时,程序跳转到N0130,直到程序结束。五、实验报告要求 要求采用学校的实验报告(16开),如打印应采用实验报告书的版头(A4纸)。1实验目的与要求2实验方案3实验结果4结论5问题与讨论六、思考题如何修改实验参考程序,使得加工后的工件改变形状 实验二 数控编程生成仿真加工一、实验目的通过实验让学生学习数控系统自动编程的方法,有效地帮助学生在编制数控程序时利用微型计算机进行数据处理,增强对数控技术课程的知识的学习与应用,通过设计数控加工工件,仿真加工并生成3B代码或ISO-G代码的数控程序,掌握数控编程方法,学习数控技术的应用。二、 实验内容和要求1 设计数控加工工件2 软件仿真加工,生成数控程序。三、实验主要仪器设备和材料:1微机2数控仿真软件四、实验方法、步骤Super A P T软件的操作 Super APT系统在西文DOS下实现全汉字下拉式菜单,并配以弹出式信息交换窗口,在微机上都可以运行,界面友好,方便易用。 1Super APT软件功能组成 Super A P T系统的主菜单有七个菜单项,分别对应是子菜单输入、图形处理、编程、仿真加工、通讯、系统设置、退出等七大子功能。2 屏幕各区划分Super A P T系统把屏幕划分成几个区域,以方便操作,屏幕主要被划分成三个部分。屏幕顶部一行,为主菜单。屏幕底部一行为提示行。屏幕中部为显示绘图区,在显示图形数据、程序时为显示区,当处于绘图和雠仿真加工状态时为绘图区。当进行数据输入时,显示绘图左边作为数据显示区,右边作为数据输入区。3零件图的描述 程序要求只输入最低限度的数据,且尽可能直接采用设计图纸上绘出的数据,并要求这些数据能描述出唯一的几何图形。对于需要进行对称、平移和旋转处理的图形,只需要输入基本几何参数,再进行对称、平移和旋转处理即可。 Super APT软件在处理平面的几何图形时,将所有的二维几何图形看作是由一系列的过渡圆与公切线组成的。因此,只要将这些过渡圆圆心位置及半径(包括用正、负表示的顺逆方向)给定,这个图形就被唯一地确定下来。所有的交点认为是半径为零的圆,而圆圆相切则被认为是切线长度为零的特殊情况。所有圆的切线都不需要输入,只要把过渡圆弧的圆心座标、半径及顺逆方向输入即可,系统就会自动求出切线。另外,需要注意的是,两直线的交点、直线和圆的交点、圆和圆的交点应看作半径为零的过渡圆输入,不能遗漏。本系统约定,当输入过渡圆弧半径时,需要带有正负号,以表示此过渡圆弧的顺逆方向,其中, “正”表示逆时针走过的圆;“负”表示顾时针走过的圆。 在输入每个图形之前,都要按一定的切割路线,将所有过渡圆弧按次序先后缩排好序号,但这此序号可以是不按顾序连续输入的 由于系统支持非闭合曲线的自动编程,因此,某一闭合曲线,起始序号的过渡圆弧半径为零时,请在所有过渡圆弧之后,附加输入一个与起始序号圆弧一样的过渡圆弧。 4系统的启动在DOS操作系统提示符下键入:CSAPT 则可进入super APt系统,按Esc或F10键,可激活下拉菜单,再按一下,则返回。5输入图形的操作 激活菜单,选择输入新图,按Enter键。系统弹出数据转入框于屏幂右边,左边用于已输入的过渡圆的显示。编辑键功能如下: 左、右移动光标, 上、下切换不同字段。Home 移到字符串开头。End 光标移动到字符串结尾。Del 删除光标所在的字符。In8 插入、改写状态切换。Enter 结束本字段的输入。如果在要求输入序号时,按下Esc键,则系统退出输入状态,返回到显示和编辑状态。操作步骤 1)输入过渡圆弧序号:系统首先检查该过渡圆弧序号是否原来已经输入了数据,如果是,则弹出警告框,报告此情况,询问是否把原数据覆盖掉。如果回答“确定”,则删除原来的数据;如果回答“放弃”,则要求重新输入序号。2)选择输入方式:用6种不同的输入方式可以输入过渡圆弧的圆心座标。通过上、下光标键进行选择,Enter键进行确认,或者直接按下对应的数字键直接选择。3)输入参数:输入后,系统计算座标后,在屏幕的左边显示出过渡圆弧的圆心座标,圆弧半径。并要求输入下一个过渡圆弧的序号,如果输入已经完成,可按Esc键退出。这里要注意的是,输入圆弧半径时,要根据顺逆方向,带符号输入。当按Esc键退出输入状态后,系统处于翻滚显示及编辑状态,你可以看到在第一个过渡圆弧数据上的光条光标,按上、下光标键,可以移动光条。当按Del键时,光条所在的过渡圆弧数据将被删除。当按下Enter键时,系统重新回到输入状态。6图形输入过程的一些约定1) 过渡圆弧半径过渡圆半径输入时,要分清顺、逆方向。顺圈取负值,逆圆职正值。2) 其他圆的半径在求过渡圆圆心座标过程中线圆相交的圆圆相交的圆,输入半径时,不须区分顺圆和逆圆,半径取正值。3)I直线与圆的交点由于直线与圆相交有两个交点,要唯一确定一个交点,必须输入附件的信息本系统对这两个交点作左、右区分。交点的左右之分是从圆心沿法线方向向直线看去。左边的交点为左,右边的交点为右。如图8所示。4) 圆与圆的交点两圆相交的交点左右之分是由先输入的第一个圆的圆心向第二个圆的圆心看去,左边的交点为左,右边的交点为右。如图9所示。5) 直线的偏移量 如图l0所示,当向坐标轴正半轴偏移,取正值,否则取负值。 7图形输入的其他菜单项使用I) 数据显示 在下拉菜单中选择数据显示项,或直接按F4热键,系统进入翻滚显示及编辑状态。可以上下翻滚图形数据,并可以删除,插入,修改图形数据。按Esc键退出。2) 装入旧图 在下拉菜单中选择装入旧图,或直接按F3键,系统提示输入文件名,输入正确文件名后,系统装入存盘数据,并在屏幕上显示出来。3) 图形存盘 在下拉菜单中选择图形存盘,或直接按F2热键,输入文件名。 8图形处理的使用1)绘图从下拉式菜单中选择,或按F2进入绘图状态,系统先计算出每一段圆弧或直线的起点和终点,然后在屏幕上绘画出来,用以验证图形数据输入的正确性。 2)刀具补偿 在下拉菜单中选择刀具补偿,或按热键F7,系统提示输入刀具补偿半径,此值应输入总的补偿量,系统先用黄色绘出原零件形状,然后进行补偿运算,求出补偿后的图形数据,并用白色把补偿后的刀具中心轨迹绘制出来。对补偿结果是否满意,按Enter键,表示确认补偿则显示补偿后的图形数据。否则,放弃补偿结果。3)补偿数据 以下拉菜单选择,显示经过补偿后的数据,如未补偿,会显示出错误信息。9编程功能的使用 1)生成显示 系统默认为3B格式,如果设置按刀补后数据生成程序,则在使用此功能之前先进行刀具补偿,并必须确认补偿后才可使用。如果想生成G代码格式的程序,请用设置功能改变。 2)装入程序、程序存盘 此功能与装入和取回图形数据类似,但输入文件名时最好加入相应的扩展名,如3 B,G等,以示区别,也避免覆盖掉图形数据。10仿真加工 1) 仿真加工 本系统的仿真加工分为两种方式,其一是按刀补数据仿真加工;其二是按原始数据仿真加工。其设置直接取决于程序生成的方式。也就是说,仿真加工是程序的仿真运行。必须先进行刀具补偿后,才可以仿真加工。 仿真加工过程中,屏幕上以一个小圆球代表刀具的截面,留下运动过的包络线的轨迹,当仿真加工完成后,屏幕上就留下了以颜色表示的工件的切削部分。最后系统重新以原始图形数据,用黄色画出原工件形状,以核对加工的结果是否与图纸相符。仿真加工的比例也会因绘图比例的改变而放大或缩小。2)系统退出(i)暂时回到DOS选择退出可以暂时返回DOS,要返回自动编程时,键入“EXIT”即可。(ii)完全退出:选择完全退出,或按热键,Alt不放,再按x键退出系统。五、实验报告要求 1要求采用学校的实验报告书(16开)。如打印也应采用实验报告书的版头(A4纸)。2实验目的与要求3实验结果1)设计的工件图2)生成的G代码程序4问题与讨论实验三 数控系统设计综合实验一、实验目的掌握数控机床微机控制系统的结构原理,熟悉单片微机数控系统的外部扩展及步进电机的控制。二、实验内容和要求1设计数控系统接口框图2参考相应程序控制数控工作台。修改、调试程序改变数控工作台工作状态。三、实验主要仪器设备和材料:1AMC51单片机综合开发装置一台1 PC微机一台2 XY数控工作台,连接线若干四、实验方法、步骤实验方法1跳线设定串行显示: 1. J4: LED_DATARXD 2. J5: LED_CLOCKTXD2 功能模式 K1(P2.0) K2(P2.1) K3(P2.2) K4(P2.3) 模式1: Y_DN Y_UP X_DN X_UP (UP:正转,DN:反转)模式2: XY_DN XY_UP XU_YD XD_YU模式3: 步数加1 步数加10 步数加100 步数加1000K5:模式选择;(、2、3三种)K6:转速选择(共五档:1:2Hz;2:10Hz;3:50Hz;4:250Hz;5:500Hz。)3 控制位注释:XP,YP 为1时:X,Y轴反转,反之正转;XW,YW 为1时:X,Y转动,反之不转。4显示:4位数码管:显示设定步数(10进制)。5备注:扩展端口的输出选通:(74LS273脉冲上升沿选通)初始化:CLR P2.6 CLR P3.6 中断: CLR P2.6 (形成一脉冲上升沿) SETB P2.66. 硬件连线图:实验中用的是相步进电机。CP+:脉冲,CP-:接地,DIR+:(1:正转,0:反转)。DIR-:接地。实验步骤1、利用开发环境编译(参考单片机课程实验指导书)2、下载程序将调试好的程序下载到目标板上运行看结果。1)双击桌面的“Easy 51Pro”图标:进入Easy 51Pro V2.0操作界面。 2)单击操作栏的 “检测芯片”,如果操作正确,会提示:检测到芯片和编程电压。3)单击操作栏的 “(自动)打开文件”:马上弹出对话框。4)选择路径(选择要下载的HEX文件所在的文件夹),并更改“文件类型”为 “intel HEX文件”,并选中要下载的HEX文件。5)单击操作栏的 “自动完成”,把HEX文件下载到芯片。如果成功下载,则会提示0个错误。下载程序的过程中,下载开关旁边的红色LED将会发亮,表示正在下载程序。3、调试a:全速运行 b:单步 C:自动单步 d:设断点 在调试中,有时需要把程序分成几块来调试, 这时候就需用到断点。在“断点”窗口,或者在源文件窗口中光标所在行按右键设置,设置好以后,如全速运行,遇到断点停。4 程序调试先用K5调到Mode2按K1到K4设定要走的步数,转入Mode0或1按K1到K4选择步进电机工作台的运动方向(单向运动或复合运动),并利用K6进行调速。观察实验结果,修改程序调试并记录实验结果。参考源程序:DISP0 EQU 39H ;显示缓冲区0DISP1 EQU 3AH ;显示缓冲区1DISP2 EQU 3BH ;显示缓冲区2TCER EQU 40H ;2ms计数单元TCER1 EQU 41H ;100ms计数单元XSTAT EQU 52H ;X状态字YSTAT EQU 53H ;Y状态字SM_OUT EQU 55H ;输出状态SM_OUTX EQU 65H ;输出状态SM_OUTY EQU 75H ;输出状态SPEED EQU 56H ;速度档次SDATA EQU 57H ;速度值STEPH EQU 58H ;步数高位STEPL EQU 59H ;步数低位MODE EQU 60H ;模式状态STEPX EQU 61H ;步数值缓冲区STATE EQU 62H ;运动方向状态DIRLOP EQU 63H ;显示循环次数区XP EQU 02H ;X轴方向位YP EQU 03H ;Y轴方向位XW EQU 04H ;X轴工作YW EQU 05H ;Y轴工作RUN EQU 06H ;运行控制位ORG 0000HSTART: AJMP MAIN ORG 000BH ;定时器0中断 AJMP TINT0 ;驱动脉冲控制 ORG 001BH ;定时器1中断 AJMP TINT1 ;定时显示控制 ORG 0030H ;程序初始化MAIN: MOV R0,#39H MAIN_0: MOV R0,#0 INC R0 CJNE R0,#41H,MAIN_0 MOV XSTAT,#0 MOV YSTAT,#0 MOV SM_OUT,#0 MOV SM_OUTX,#0 MOV SM_OUTY,#0 MOV SDATA,#0 MOV STEPH,#0 MOV STEPL,#0 MOV SPEED,#0 MOV MODE,#0MOV TCER1,#0 MOV STATE,#0 CLR XW CLR YW CLR RUN CLR P2.6 ;关闭扩展端口 CLR P3.6 MOV TMOD,#11H ;设定两个计数器的工作方式 MOV IE,#10011010B ;设置中断 MOV SCON,#0 ;设置串口工作方式(显示) MOV IP,#02H ;设置T0为中断优先 MOV TH0,#0FCH ;让T0定时2ms MOV TL0,#18H MOV TH1,#0ECH ;让T0定时100ms MOV TL1,#78H SETB TR0 ;启动两个计数器 SETB TR1MAIN_1: ACALL KEY ;调用键盘子程序 NOP NOP SJMP MAIN_1TINT1: MOV TH1,#0ECH ;定时中断1程序,定时显示 MOV TL1,#78H PUSH ACC PUSH PSW ACALL TRANS ACALL DISP POP PSW POP ACC RETIKEY: MOV P2,#0FFH ;检测有否键按下NOPNOPJNB P2.0,K1JNB P2.1,K2JNB P2.2,K3JNB P2.3,K4JNB P2.4,K5JNB P2.5,K6GOKBACK: RETK6GO: LJMP K6K1: ACALL DL10MS ;K1键功能JB P2.0,KBACKJ1: JNB P2.0,J1MOV A,MODE ;在模式3时步数加1CJNE A,#2,K11MOV STEPX,#1LJMP ADD1K11: SETB RUN ;启动运行控制位CJNE A,#0,KEYB_1GO ;模式2时跳入键功能1LJMP KEYB_6 ;模式1时跳入键功能6KEYB_1GO:LJMP KEYB_1K2: ACALL DL10MS ;K2键功能JB P2.1,KBACKJ2: JNB P2.1,J2MOV A,MODE ;模式3时步数加10CJNE A,#2,K21MOV STEPX,#10LJMP ADD1K21: SETB RUNCJNE A,#0,KEYB_7GO ;模式2时跳入键功能7LJMP KEYB_4 ;模式1时跳入键功能4KEYB_7GO:LJMP KEYB_7K3: ACALL DL10MS ;K3键功能JB P2.2,KBACKJ3: JNB P2.2,J3MOV A,MODE ;模式3时步数加100CJNE A,#2,K31MOV STEPX,#100LJMP ADD1K31:SETB RUNCJNE A,#0,KEYB_3 ;模式2时跳入键功能3LJMP KEYB_8 ;模式1时跳入键功能8K4: ACALL DL10MS ;K4键功能JB P2.3,KBACKJ4: JNB P2.3,J4MOV A,MODE ;模式3时步数加1000CJNE A,#2,K41LJMP ADD2K41:SETB RUNCJNE A,#0,KEYB_9GO ;模式2时跳入键功能9LJMP KEYB_2 ;模式1时跳入键功能2KEYB_9GO: LJMP KEYB_9K5: ACALL DL10MS ;K5键功能JB P2.4,KBACKJ5: JNB P2.4,J5MOV STATE,#0 ;运动状态清零CLR RUN ;控制位清0MOV A,MODE ;改变控制模式ADD A,#1CJNE A,#2,K52 ;模式3时步数清零MOV STEPL,#0MOV STEPH,#0MOV STEPX,#0K52: CJNE A,#3,K51MOV A,#0K51: MOV MODE,A ;清空输出状态CLR XWCLR YWMOV SM_OUT,#0MOV SM_OUTX,#0MOV SM_OUTY,#0RETK6: ACALL DL10MS ;K6键功能JB P2.5,KBACK1J6: JNB P2.5,J6MOV A,SPEED ;改变转速ADD A,#1CJNE A,#5,K61MOV A,#0K61: MOV SPEED,AMOV DPTR,#TABSP ;查找转速定时控制值MOVC A,A+DPTRMOV SDATA,AKBACK1: RETKEYB_1: SETB XW ;X,Y轴都正向运动CLR XPSETB YWCLR YPMOV STATE,#5RET KEYB_2: CLR XW ;Y轴反向运动SETB YWSETB YPMOV STATE,#4RETKEYB_3: SETB XW ;X轴正向,Y轴反向运动CLR XPSETB YWSETB YPMOV STATE,#7RETKEYB_4: SETB XW ;X轴反向运动SETB XPCLR YWMOV STATE,#2RETKEYB_6: SETB XW ;X轴正向运动CLR XPCLR YWMOV STATE,#1RETKEYB_7: SETB XW ;X,Y轴都反向运动SETB XPSETB YWSETB YP MOV STATE,#6RETKEYB_8: CLR XW ;Y轴正向运动SETB YWCLR YPMOV STATE,#3RETKEYB_9: SETB XW ;X轴反向,Y轴正向运动SETB XPSETB YWCLR YPMOV STATE,#8RETADD1: MOV A,STEPL ;步数加法程序1(双字节)CLR CADD A,STEPXMOV STEPL,AMOV A,STEPHADDC A,#0MOV STEPH,ARETADD2: MOV A,STEPL ;步数加法程序2(双字节) CLR CADD A,#232MOV STEPL,AMOV A,STEPHADDC A,#3MOV STEPH,ARETDELAY: MOV 70H,#0FFH ;键盘防抖动延时子程序DELAY1: DJNZ 70H,DELAY1RETDL10MS: MOV 71H,#14H ;20ms延时程序DL10MS1: ACALL DELAYDJNZ 71H,DL10MS1RETTINT0: MOV TH0,#0FCH ;定时中断0程序 MOV TL0,#18H PUSH ACC PUSH PSW PUSH 01H CLR P2.6 ;扩展端口选通(输出低电平) CLR P3.6 ;74LS273需脉冲上升悬选通 INC TCER MOV A,TCER CJNE A,SDATA,TINT0R ;转速控制 MOV TCER,#0 JNB RUN,TINT0R ;判断控制位是否为1 MOV A,STEPL ;判断步数寄存器内容是否为1 JNZ TNT MOV A,STEPH JZ TINT0RTNT:DJNZ STEPL,MOTO ;步数寄存器内容减1并跳入电机驱动 MOV A,STEPH JZ MOTO MOV STEPL,#0FFH DJNZ STEPH,TNT ;检查步数寄存器高字节是否为0MOTO:JNB XW,TINT_1 ;判断进入步进电机驱动程序 ACALL XPD ;进入X轴驱动程序TINT_1: JNB YW,TINT0R ACALL YPD ;进入Y轴驱动程序TINT0R: MOV P1,SM_OUT ;输出驱动波形,并退出中断 MOV P0,SM_OUTNOP NOP NOP NOP NOP SETB P2.6 ;扩展端口选通(输出高电平) POP 01H POP PSW POP ACC RETIXPD: MOV R1,#XSTAT ;读出X轴状态 MOV C,XP ;读出X轴方向 AJMP PPDXYPD: MOV R1,#YSTAT ;读出Y轴状态 MOV C,YP ;读出Y轴方向 SJMP PPDY PPDX: JC PPD2X CJNE R1,#03H,PPD3X ;检查是否超步MOV R1,#0AJMP PPD3XPPD2X: CJNE R1,#00H,PPD4X MOV A,R1MOV R1,#02H MOV DPTR,#SM_TABX ;查表得驱动波形值 MOVC A,A+DPTR MOV SM_OUTX,A ADD A,SM_OUTY MOV SM_OUT,A RET PPD4X: MOV A,R1 ;反转驱动程序 DEC R1 MOV DPTR,#SM_TABX MOVC A,A+DPTR MOV SM_OUTX,A ADD A,SM_OUTY MOV SM_OUT,A RETPPD3X: MOV A,R1 ;正转驱动程序 INC R1 MOV DPTR,#SM_TABX MOVC A,A+DPTR MOV SM_OUTX,A ADD A,SM_OUTY MOV SM_OUT,A RETPPDY: JC PPD2Y CJNE R1,#03H,PPD3Y MOV R1,#0AJMP PPD3YPPD2Y: CJNE R1,#00H,PPD4Y MOV A,R1 MOV R1,#02H MOV DPTR,#SM_TABY MOVC A,A+DPTR MOV SM_OUTY,A ADD A,SM_OUTX MOV SM_OUT,A RET PPD4Y: MOV A,R1 DEC R1 MOV DPTR,#SM_TABY MOVC A,A+DPTR MOV SM_OUTY,A ADD A,SM_OUTX MOV SM_OUT,A RETPPD3Y: MOV A,R1 INC R1 MOV DPTR,#SM_TABY MOVC A,A+DPTR MOV SM_OUTY,A ADD A,SM_OUTX MOV SM_OUT,A RETTRANS: MOV R5,#16 ;二转十(BCD)码进制转换程序(双字节)MOV R6,STEPH ;步数寄存器高位存入R6MOV R7,STEPL ;步数寄存器低位存入R7CLR A ;清空步数显示缓冲器MOV DISP0,AMOV DISP1,AMOV DISP2,ALOOP: CLR C ;把步数寄存器的高位移到CMOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,DISP2 ;步数缓冲寄存器低位加C并乘2ADDC A,DISP2DA A ;模拟十进制加法MOV DISP2,AMO
展开阅读全文