计算机控制课程设计逐点比较插补原理的实现.doc
《计算机控制课程设计逐点比较插补原理的实现.doc》由会员分享,可在线阅读,更多相关《计算机控制课程设计逐点比较插补原理的实现.doc(39页珍藏版)》请在三一办公上搜索。
1、微型计算机控制技术课程设计报告课题名称:逐点比较插补原理的实现姓 名: 班 级: 学 号: 指导老师: 东华理工大学机械与电子工程学院2016年6月目录目录1一 设计任务和要求3二、任务分析4(1)动态显示4(2)按键功能4(3)硬件系统设计4(4)插补算法实现4三、总体方案设计53.1 硬件总体方案设计53.2 软件总体方案设计5四、硬件系统设计64.1 方案论证64.2 单片机与8255的接口74.3电机硬件接线原理图84.4元件清单94.5、键盘显示硬件设计94.5.1键盘输入电路94.5.2 动态显示电路104.5.3 所用元器件10五 软件系统设计115.1 软件设计原理115.1.
2、1逐点比较法圆弧插补原理115.1.2 步进电机工作原理125.2 8255的初始化编程145.3 步进电机走步控制程序145.3.1 NR1程序流程图155.3.2 走步控制汇编程序代码165.3.3 NR4程序流程图175.4 键盘显示程序设计185.4.1、键盘与I/O接口 表5键盘接口185.4.2、键盘显示程序流程图185.4.3 六个功能键:195.5主程序195.5.1 主程序流程图195.4.2 源程序代码20六 系统调试206.1 系统安装调试206.2 结果验证20七 课程设计总结22八、参考文献22附录一 芯片资料23附录二 源程序24一 设计任务和要求设计一个计算机控制
3、步进电机系统,该系统利用89C51(或89C52、89S52)机的Px口输出控制信号,其信号驱动、控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出各种曲线。在第一象限,X(10)、Y(10)最大坐标值。其他坐标值任意定,但插补计算不得小于8步。要求:1)在显示器上显示任意四位十进制数;a、定义键盘按键:10个为数字键09;6个功能键:设置SET、清零CLR、确认、开始START、暂停、停止;b、显示器上第一位显示次数,后三位显示每次行走的角度;c、通过键盘的按键,设置X、Y轴插补的起始值;按START键启动步进电机开始转动,按SET键进行数据设置、按CLR键清零。2)设计硬件系统
4、,画出电路原理框图(要求规范);3)定义步进电机转动的控制字;(不设计步进电机驱动电路与驱动程序)。4)推导出用逐点比较法插补绘制出下面曲线的算法;5)编写算法控制程序;6)撰写设计说明书。选择曲线如下:图1 目标曲线二、任务分析(1)动态显示采用四位共阳极LED显示器动态显示,不断扫描显示。采用44键盘作为输入模块,接单片机P1口,采用线反转法进行编程,线反转法的工作原理和查键步骤:求按键的列线值:行线作为输出线,列线作为输入线,即可得到列线值。求按键的行线值:行线作为输入线,列线作为输出线,即可得到行线值。求按键的特征码:把行线值和列线值合并,组合成为按键的特征码。查找键码:通过查表就可以
5、得到与特征码对应的顺序码,就可以得知是哪个按键按下。表中若没有该特征码以无效键处理,并与没有按键(0FF)等同看待。(2)按键功能程序主体要按照,先扫描按键,待设置完成,按下启动按钮,才能进行插补运算,并且,把走过的步数,输出显示。通过数字键,输入起点坐标,暂存数据,待按下启动按钮,把数据输入X,Y对应存储单元。(3)硬件系统设计采用AT89C51单片机作为主控制器,44键盘作为设置键,P0口作为显示和控制字输出口,在驱动步进电机时,数据通过74LS373进行锁存,通过8255PA口输入,PB、PC口输出,经过驱动电路,驱动步进电机工作。在显示时通过74HCT573进行数据锁存,用4位数码管对
6、输出数据进行显示。(4)插补算法实现由图可知,在图像第一象限内为一个半圆,必须进行坐标变换,转化为两个第一、第四象限的逆圆弧插补。然后按照第一、第四象限的插补算法进行插补计算。坐标变换(X-5,Y-6)就可以得到相对坐标,第四象限内,起点绝对坐标为(5,2),相对坐标为(0,-4),终点绝对坐标为(9,6),相对坐标为(4,0)。第一象限内起点绝对坐标为(9,6),相对坐标为(4,0),终点绝对坐标为(5,10),相对坐标为(0,4)。插补的圆心为(5,6),半径为4。三、总体方案设计电源模块3.1 硬件总体方案设计数码显示驱动电路 PB0 PB1 PB28255 PC0 PC1 PC2P0口
7、89C51P1口M1驱动电路键盘模块M2电源模块图2 硬件系统方框图3.2 软件总体方案设计首先调键盘输入子程,对按键进行扫描,当设置键有效时,通过数字键对X、Y进行赋初值,通过功能键进行清零,通过STRAT键,开始启动插补程序,进行插补。插补过程中,分别调用不同象限的插补程序,实现不同方向的进给。同时把步进次数,输出显示。四、硬件系统设计4.1 方案论证单片机的接口电路可以是锁存器,也可以是专门的接口芯片,本设计采用可编程接口芯片8255。由于步进电机需要的驱动电流比较大,所以单片机和步进电机的连接还要有驱动电路,如何设计驱动电路成了问题的关键。设计方案一如图3所示,当某相上驱动信号变为高电
8、平时,达林顿管导通,从而使得该相通电。图3 驱动电路方案一设计方案二如图4所示,在单片机与驱动器之间增加一级光电隔离,当驱动信号为高电平时,发光二极管发光,光敏三极管导通,从而使达林顿管截止,该相不通电;当驱动信号为低电平时,则步进电机的该相通电。图4 驱动电路方案二综合比较两种设计方案可知,方案二有抗干扰能力,且可避免一旦驱动电路发生故障,造成高电平信号进入单片机而烧毁器件。所以,本设计选择方案二。4.2 单片机与8255的接口MCS-51单片机可以和8255直接连接而不需要任何外加逻辑器件,接口示意图如图5所示。因为8255的B口和C口具有驱动达林顿管的能力,所以将采用B口和C口输出驱动信
9、号。图5 单片机与8255的接口4.3电机硬件接线原理图图6 系统硬件接线原理图单片机控制步进电机的硬件接线如图6所示。因为8255的片选信号接单片机的地址线P2.7,A1、A0通过地址锁存器接到了8051单片机的地址线P0.1和P0.0,由硬件接线图可以清楚地知道,8255的各口地址为:A口地址: 7FFCHB口地址: 7FFDHC口地址: 7FFEH控制口地址:7FFFH同时,B口和C口都作为输出口,8255工作在方式0。下面以8255的B口输出端PB0为例说明控制的工作原理。若PB0输出0,经反相器74LS04后变为高电平,发光二极管正向导通发光。在光线的驱动下,光敏三极管导通,+5V
10、的电压经三极管引入地线而不驱动达林顿管。因而,达林顿管截止,X轴上步进电机的C相不通电。若PB0输出1,反相后变为低电平,发光二极管不导通。从而光敏三极管截止,+5V 电压直接驱动达林顿管导通,X轴上步进电机的C相有从电源流向地线的电流回路,即C相得电。4.4元件清单表1 元件清单表名称位号型号数量单片机80511地址锁存器74LS3731并行接口芯片8255A1反相器74LS046电阻R1R241K24光电三极管U1U34N253达林顿管Q1Q6NPN DAR6二极管D1D6IN400164.5、键盘显示硬件设计4.5.1键盘输入电路图7 键盘输入电路4.5.2 动态显示电路 图8 动态显示
11、电路4.5.3 所用元器件图9 所用器件五 软件系统设计5.1 软件设计原理5.1.1逐点比较法圆弧插补原理(1)加工一个圆弧,很容易令人想到用加工点到圆心的距离与该圆弧的名义半径相比较来反映加工偏差。设要加工图3-1所示的第一象限逆时针走向的圆弧AB,半径为R,以圆点为圆心,起点坐标为A(,),在xy坐标平面第一象限中,点的加工偏差 有以下3种情况。 图10 圆弧插补若加工点正好落在圆弧上,则下式成立,即若加工点落在圆弧外侧,则,即若加工点落在圆弧内侧,则,即将上面各式分别改写为下列形式,即 (在圆弧上) (在圆弧外侧) (在圆弧外侧)取加工偏差判别式为若点在圆弧外侧或圆弧上,则满足的条件时
12、,向轴发出一负向运动的进给脉冲;若点在圆弧内测,即满足条件的条件时,则向轴发出一正向运动的进给脉冲。为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。设加工点在圆弧外侧或圆弧上,则加工偏差为故轴必须向负方向进给一步,移动到新的加工点,其加工偏差为 (5-1)设加工点在圆弧的内测,则。那么y轴须向正向进给一步,移到新的加工点,其加工偏差为(5-2)根据式(3-)及式(3-)可以看出,新的加工点的偏差值可以用前一点的偏差值递推出来。递推法把圆弧偏差运算式由平方运算化为加法和乘2运算,而对二进制来说,乘2运算是容易实现的。(2)圆弧插补的象限处理表2 xy平面内逆圆插补的进给方向与偏差计
13、算线型偏差偏差计算进给方向与坐标NR1FF+2x+1xx+1NR1NR2FF-2x+1xx-1NR2NR3FF+2y+1yy+1NR3NR4FF-2y+1yyx-15.1.2 步进电机工作原理步进电机有三相、四相、五相、六相等多种,本设计采用三相步进电机的三相六拍工作方式,其通电顺序为:各相通电的电压波形如图8所示。图11 三相六拍工作的电压波形当步进电机的相数和控制方式确定之后,PB0PB2和PC0PC2输出数据变化的规律就确定了,这种输出数据变化规律可用输出字来描述。为了便于寻找,输出字以表的形式存放在计算机指定的存储区域。表3、4给出了三相六拍正反转控制方式的输出字表。表3 三相六拍控制
14、方式正转输出字表控制位工作状态控制字表C相B相A相1001A01H2011AB03H3010B02H4110BC06H5100C04H6101CA05H表4 三相六拍控制方式反转输出字表控制位工作状态控制字表C相B相A相1001A01H2011CA05H3010C04H4110BC06H5100B02H6101AB03H5.2 8255的初始化编程由前面的分析知道,8255工作在方式0,控制口地址为 7FFFH,控制字为90H。所以,8255的初始化编程如下。MOV DPTR, #7FFFH ;控制口地址送DPTRMOV A, #90H ;PA口输入,PB、PC口输出,方式0MOVX DPTR
15、, A ;将控制字写入控制口5.3 步进电机走步控制程序 图12 目标曲线分段为了实现如图所示曲线,我们将坐标原点移到D点,其余坐标进行变换,图示D点为(0,0),A点为(0,-4),B点为(4,0),C点为(0,4),划分为两段圆弧,NR1即BC段,NR4即AB段。5.3.1 NR1程序流程图 开始初始化X0X,Y0Y,0F,NEF=0 N Y-X方向走一步+Y方向走一步F=F-2X+1F=F+2Y+1X=X-1Y=Y+1E=E-1E=0? N Y结束 图13 NR1步进电机走步控制程序流程图5.3.2 走步控制汇编程序代码以下为第一象限X轴上步进电机为例,Y轴上步进电机算法类似XCOTRO
16、L: MOV DPTR, #ADXP /(#ADXN) ;将控制字表地址赋给DPTH MOV A, R2 ;表首偏移量送A MOVC A, A+DPTR ;读取当前步进电机的控制字 MOV DPTR, #7FFDH ;PB口地址送DPTR MOVX DPTR, A ;将步进电机的控制字传送到PB口 CJNE A, #05H/(03H), LOOP3 ;若未到表尾,转LOOP3 MOV R2, #00H ;表首偏移量清零 SJMP DELAY1LOOP3: INC R2 ;未到表尾,表首偏移量加1 DELAY1: MOV R0, #FFH ;延时 DJNZ DELAY1RET ;返回ADXP:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机控制 课程设计 比较 原理 实现

链接地址:https://www.31ppt.com/p-4194619.html