1、计算机控制课程设计逐点比较法直线插补原理的实现之令狐文艳创作课程设计任务书令狐文艳学生姓名: 专业班级:指导教师: 工作单位:题 目: 逐点比较插补原理的实现初始条件:设计一个计算机控制步进电机系统,该系统利用PC机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出如下曲线。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1设计硬件系统,画出电路原理框图;2定义步进电机转动的控制字;3推导出用逐点比较法插补绘制出下面曲线的算法;4编写算法控制程序,参数由键盘输入,显示器同时显示曲线;5. 撰写设计说明书。课程设计说明
2、书应包括:设计任务及要求;方案比较及认证;系统滤波原理、硬件原理,电路图,采用器件的功能说明;软件思想,流程,源程序;调试记录及结果分析;参考资料;附录:芯片资料,程序清单;总结。时间安排:6月22日6月23日 查阅和准备相关技术资料,完成整体方案设计6月24日6月25日 完成硬件设计6月26日6月27日 编写调试程序6月28日6月29日 撰写课程设计说明书6月30日提交课程设计说明书、图纸、电子文档指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要本文主要讨论利用逐点比较法实现第一象限的直线插补。所谓逐点比较插补,就是刀具或绘图笔每走一步都要和给点轨迹上的坐标值进行比较,看
3、这点在给点轨迹的上方还是下方,从而决定下一步的进给方向。对于本设计所要求的直线轨迹,如果该点在直线的上方,则控制步进电机向+X方向进给一步,如果该点在直线的下方,那么控制步进电机向+Y轴方向进给一步。如此,走一步、看一看,比较一次,决定下一步的走向,以便逼近给定轨迹,即形成逐点比较插补。插补计算时,每走一步,都要进行以下四个步骤的计算过程,即偏差判别、坐标进给、偏差计算、终点判断。设计具体算法时,首先根据直线轨迹参数,计算出偏差计算公式及递推公式。由程序判断出偏差的正负号,从而决定坐标的进给方向,再根据递推公式计算出坐标进给后的偏差,若未到达终点,则返回偏差判别,如此循环。可以根据起点和终点的
4、坐标位置,计算出总的进给步数Nxy,X或Y的坐标每进给一步,这个值就减一,若Nxy=0,就到达了终点,这就是终点判别的方法。关键词:逐点比较法、直线插补、步进电机、坐标进给、源程序。1 设计任务和要求12 设计步骤12.1 硬件设计12.1.1 接口示意图12.1.2 方案论证22.1.3 单片机与8255的接口32.1.4 硬件接线原理图32.1.5 元件清单42.2 软件设计52.2.1 软件设计原理52.2.2 8255的初始化编程62.2.3 步进电机走步控制程序72.2.4 主程序82.3 运行调试92.3.1 系统安装调试92.3.2 结果验证93 课程设计体会10参考文献10附录
5、一芯片资料11附录二源程序12逐点比较插补原理的实现1 设计任务和要求设计一个微型计算机控制步进电机系统,该系统利用微型机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补原理绘制出如下图所示的目标曲线。图1 目标曲线2 设计步骤本设计大致可分为三个步骤:硬件设计、软件设计和系统的运行调试。2.1 硬件设计2.1.1接口示意图 两台三相步进电机控制接口如图2所示。图2 系统接口示意图2.1.2 方案论证单片机的接口电路可以是锁存器,也可以是专门的接口芯片,本设计采用可编程接口芯片8255。由于步进电机需要的驱动电流比较大,所以单片机和步进电机的连接还要有驱
6、动电路,如何设计驱动电路成了问题的关键。设计方案一如图3所示,当某相上驱动信号变为高电平时,达林顿管导通,从而使得该相通电。图3 驱动电路方案一设计方案二如图4所示,在单片机与驱动器之间增加一级光电隔离,当驱动信号为高电平时,发光二极管发光,光敏三极管导通,从而使达林顿管截止,该相不通电;当驱动信号为低电平时,则步进电机的该相通电。图4 驱动电路方案二 综合比较两种设计方案可知,方案二有抗干扰能力,且可避免一旦驱动电路发生故障,造成高电平信号进入单片机而烧毁器件。所以,本设计选择方案二。2.1.3 单片机与8255的接口 MCS-51单片机可以和8255直接连接而不需要任何外加逻辑器件,接口示
7、意图如图5所示。因为8255的B口和C口具有驱动达林顿管的能力,所以将采用B口和C口输出驱动信号。图5 单片机与8255的接口2.1.4 硬件接线原理图图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,经反相器
8、74LS04后变为高电平,发光二极管正向导通发光。在光线的驱动下,光敏三极管导通,+5V 的电压经三极管引入地线而不驱动达林顿管。因而,达林顿管截止,X轴上步进电机的C相不通电。若PB0输出1,反相后变为低电平,发光二极管不导通。从而光敏三极管截止,+5V 电压直接驱动达林顿管导通,X轴上步进电机的C相有从电源流向地线的电流回路,即C相得电。2.1.5 元件清单表1 元件清单表名称位号型号数量单片机80511地址锁存器74LS3731并行接口芯片8255A1反相器74LS046电阻R1R241K24光电三极管U1U34N253达林顿管Q1Q6NPN DAR6二极管D1D6IN400162.2
9、软件设计2.2.1 软件设计原理2.2.1.1 直线插补原理逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给。图7 第一象限直线如图7所示,设直线的起点为坐标原点,终点坐标为A(,),点m (,)为加工点(动点)。定义偏差公式为。若=0,表明点m在OA直线段上;若0,表明点m在OA直线段上方,即点m 处;若0,表明点m在OA直线段下方,即点m处。由此可得第一象限直线逐点比较法插补的原理是:从直线的起点出发,当0时,沿+x轴方向走一步;当0时,沿+y轴方向走一步;当两方向所
10、走的步数与终点坐标(,)相等时,发出终点到信号,停止插补。可以将上面所定义的偏差公式进一步简化,推导出偏差的递推公式。1当0时,沿+x轴方向进给一步, (1)当0时,沿+y轴方向进给一步, (2) 式(1)和式(2)是简化后偏差的计算公式,在公式中只有一次加法或减法运算,新加工点的偏差都可由前一点偏差和终点坐标相加或相减得到。2.2.1.2 步进电机工作原理步进电机有三相、四相、五相、六相等多种,本设计采用三相步进电机的三相六拍工作方式,其通电顺序为各相通电的电压波形如图8所示。图8 三相六拍工作的电压波形当步进电机的相数和控制方式确定之后,PB0PB2和PC0PC2输出数据变化的规律就确定了
11、,这种输出数据变化规律可用输出字来描述。为了便于寻找,输出字以表的形式存放在计算机指定的存储区域。表2给出了三相六拍控制方式的输出字表。表2 三相六拍控制方式输出字表步序控制位工作状态控制字表C相B相A相1001A01H2011AB03H3010B02H4110BC06H5100C04H6101CA05H2.2.2 8255的初始化编程由前面的分析知道,8255工作在方式0,控制口地址为 7FFFH,控制字为90H。所以,8255的初始化编程如下。MOV DPTR, #7FFFH ;控制口地址送DPTRMOV A, #90H ;控制字送寄存器AMOVX DPTR, A ;将控制字写入控制口2.
12、2.3 步进电机走步控制程序2.2.3.1 程序流程图图9 步进电机走步控制程序流程图2.2.3.2 汇编程序代码以下为X轴上电机的步进控制算法,Y轴上步进电机算法类似。XCOTROL: MOV DPTR, #ADX ;将控制字表地址赋给DPTHMOV A, R2 ;表首偏移量送A MOVC A, A+DPTR ;读取当前步进电机的控制字 MOV DPTR, #7FFDH ;PB口地址送DPTR MOVX DPTR, A ;将步进电机的控制字传送到PB口 CJNE A, #05H, LOOP3 ;若到表尾,转LOOP3 INC R2 ;未到表尾,表首偏移量加1 SJMP DELAY1LOOP3
13、: MOV R2, #00H ;表首偏移量清零 SJMP DELAY1DELAY1: MOV R0, #FFH ;延时 DJNZ DELAY1RET ;返回2.2.4主程序2.2.4.1 主程序流程图图10 主程序流程图2.2.4.2 源程序代码首先分配各变量的地址为,NXY: 4FH, 50H; XE: 4DH, 4EH; YE: 4BH, 4CH; FM: 49H,4AH,高位存高地址,地位存进低地址。源程序代码见附录二。2.3 运行调试2.3.1 系统安装调试 按照硬件接线图将系统安装好后,装入程序,执行后查看步进电机的走步轨迹。2.3.2 结果验证若终点坐标(,)为(4,3),插补计算
14、过程如表3所示。表3 直线插补计算过程步数偏差判别坐标进给偏差计算终点判别起点=0=71+X=0-3=-3=62+Y=-3+4=1=53+X=1-3=-2=44+Y=-2+4=2=35+X=2-3=-1=26+Y=-1+4=3=17+X=3-3=0=0 根据上表,可作出步进电机的走步轨迹如图11所示。若输入的参数为XE=4,YE=3,系统走步轨迹与下图比较,可判断出设计的正确性。图11 步进电机走步轨迹3 课程设计体会通过一个多星期的课程设计,我对这门课有了进一步的了解。学习过程中在老师的耐心指导下,有意识的培养和建立了我的思维能力,使我真正建立数据及信息流的概念,以便在控制应用中,能够使软件
15、和硬件有机地结合。通过单片机对步进电机的控制系统设计,让我真正的掌握了微型计算机软件和硬件相结合的设计方法。工业控制是计算机的一个重要应用领域,计算机控制正是为了适应这一领域的需要而发展起来的一门专门技术,它主要研究如何将计算机技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。而当代,随着微型计算机的高度发展。它的应用在人们的工作和日常生活中越来越普遍了。工业过程控制是计算机的一个重要应用领域。现在可以好不夸张的说,没有微型计算机的仪器不能乘为先进的仪器,没有微型计算机的控制系统不能称其为现代控制系统的时代已经到来。微型计算控制技术正为了适应这一领域的需要而发展起来的一门技
16、术。绝大多数自动控制都是使用计算机来实现的;微型计算机控制技术的发展,使得以微型计算机为控制器核心的微机测控装置与系统,渗透到了国民经济的各行各业,已经无时无处不在影响每个现代人的生活。只有态度认真的对待这门学科才能真正掌握其中的精髓,在将来的工作中或许起着至关重要的作用。参考文献1贺亚茹.汇编语言程序设计.北京:科学出版社,20052卜艳萍、周伟.汇编语言程序设计教程.北京:清华大学出版社,20043温玉杰.Intel汇编语言程序设计(第四版).北京:电子工业出版社,20044郑学坚、周斌.微型计算机原理与应用.北京:清华大学出版社,20005于海生.微型计算机控制技术.北京:清华大学出版社
17、,19986沈美明、温冬婵.IBM-PC汇编语言程序设计.北京:清华大学出版社,20027何立民.单片机应用系统设计.北京:北京航空航天大学出版社,2003附录一 芯片资料图11 8051单片机引脚图图12 可编程芯片8255A引脚图附录二 源程序 ORG 0100HMOV DPTR, #7FFFH ;控制口地址送DPTRMOV A, #90H ;控制字送寄存器AMOVX DPTR, A ;将控制字写入控制口,初始化8255MOV 4EH, ? ;XE的低8位存入4EHMOV 4DH, ? ;XE的高8位存入4DHMOV 4CH, ? ;YE的低8位存入4CHMOV 4BH, ? ;YE的高8
18、位存入4BHMOV A, 4EHADD A, 4CH ;XE与YE低8位相加MOV 50H, A ;低位之和存入NXY低8位MOV A, 4DHADDC A, 4BH ;XE与YE的高8位带进位相加MOV 4FH, A ;和存入NXY高8位MOV 4AH, #00H ;将FM置零MOV 49H, #00HCLR R2 ;表ADX偏移量清零CLR R3 ;表ADY偏移量清零LOOP1: MOV A, 49H ;取偏差的高8位 JB ACC.7, YCONTROL ;若FM0,转到YCONTROL ACALL XCONTROL ;否则,调XCONTROLCLR C ;进位寄存器清零MOV A, 4
19、AHSUBB A, 4CH ;FM与YE的低8位相减MOV 4AH, A ;结果存入FM低8位MOV A, 49HSUBB A, 4BH ;FM与YE的高8位相减MOV 49H, A ;结果存入FM高8位LOOP2: CLR C MOV A, 50H SUBB A, #01H ;NXY低位值减1 MOV 50H, A ;结果存入NXY的低位 MOV A, 4FH SUBB A, #00H ;考虑低位字节借位 MOV 4FH, A ;减去借位后存入NXY的高位 ORL A, 50H ;判断NXY是否为零 JNZ LOOP1 ;不为零则转到LOOP1 LJMP 8000HXCOTROL: MOV
20、DPTR, #ADX ;将控制字表地址赋给DPTH MOV A, R2 ;表首偏移量送A MOVC A, A+DPTR ;读取当前步进电机的控制字 MOV DPTR, #7FFDH ;PB口地址送DPTR MOVX DPTR, A ;将步进电机的控制字传送到PB口 CJNE A, #05H, LOOP3 ;若到表尾,转LOOP3 INC R2 ;未到表尾,表首偏移量加1 SJMP DELAY1 LOOP3: MOV R2, #00H ;表首偏移量清零SJMP DELAY1DELAY1: MOV R0, #FFH ;延时 DJNZ DELAY1RET ;返回YCOTROL: MOV DPTR,
21、#ADY ;将控制字表地址赋给DPTHMOV A, R3 ;ADY表首偏移量送A MOVC A, A+DPTR ;读取当前步进电机的控制字 MOV DPTR, #7FFEH ;PC口地址送DPTR MOVX DPTR, A ;将步进电机的控制字传送到PC口 CJNE A, #05H, LOOP4 ;若到表尾,转LOOP4 INC R3 ;未到表尾,表首偏移量加1 SJMP DELAY2 LOOP4: MOV R3, #00H ;表首偏移量清零 SJMP DELAY2DELAY2: MOV R0, #FFH ;延时 DJNZ DELAY2CLR C ;进位寄存器清零MOV A, 4AHADD A
22、, 4EH ;FM与XE低8位相加MOV 4AH, A ;结果存入FM低位MOV A, 49HADDC A, 4DH ;FM与XE高8位带进位相加MOV 49H, A ;结果存入FM高8位SJMP LOOP2 ;无条件转到LOOP2ORG 8000HEND ;程序结束ADX: DB 01H ;X轴步进电机控制字表 DB 03H DB 02H DB 06H DB 04H DB 05HADY: DB 01H ;Y轴步进电机控制字表 DB 03H DB 02H DB 06H DB 04H DB 05H本科生课程设计成绩评定表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:问题1、问题2、成绩评定依据:序号评定项目评分成绩1选题合理、目的明确(10分)2设计方案正确,具有可行性、创新性(20分)3设计结果(例如:硬件成果、软件程序)(25分)4态度认真、学习刻苦、遵守纪律(15分)5设计报告的规范化、参考文献充分(不少于5篇)(10分)6答辩(20分)总分最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:2008年 1 月 25 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1