您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 8255控制步进电机
微型计算机原理综合实验题目:步进电机控制学院电子信息工程学院学科门类工科专业电子科学与技术学号2006444019姓名张少雄指导教师高芳2008年12月21日装订线步进电机控制摘要:在本实验中,通过汇编语言对可编程I/O口扩展芯片8255编程,控制其输出信号。8255的输出端连接驱动电路,使驱动电路按照程序设定好的方式导通,来控制步进电机的转动。并且在程序中设定,由键盘控制步进电机的转向。关键词:步进电机、微处理器、8255、控制、转向。目录一.实验目的--------------------------------------2二.设计要求------------------------------2三、设计原理------------------------------3四.硬件工作原理--------------------------4五.程序框图------------------------------5六.总结与体会-----------------------------5参考文献----------------------------------6附录--------------------------------------7一.实验目的1.1掌握8255的使用方法掌握8255可编程I\O扩展芯片的编程方法,通过对工作方式的设定,使其能够对步进电机的驱动电路起到控制作用。1.2掌握步进电机的工作原理了解步进电机的工作原理,熟悉型号为30BYJ011的步进电机的性能参数和四相八拍工作方式的特点,1.3掌握模拟电路的基本知识通过对步进电机的驱动电路的设计,进一步掌握模拟电路在实际中的应用。二.设计要求2.1外设电路要求设计外设电路,使电路能够驱动步进电机的转动,符合步进电机的使用要求。本实验采用的步进电机型号为30BYJ011,工作方式为四相八拍,工作电压为DC12V。2.2程序要求使用汇编语言编写程序,使程序能够控制步进电机的转动,并且可以控制转动方向。三、设计原理3.1工作过程利用8255对四相步进电机进行控制。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(AB-BC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…)等。本实验中步进电机工作方式为四相八拍,其相序表如下:12345678驱动电路由工作在饱和区的NPN三极管9014构成,8255的输出端控制9014的基极电压,从而控制其导通状态。步进电机的绕组和集电极10K电阻并联,来获取工作电压。通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动。3.2器件简介3.2.18255引脚图Vcc++++++++A---B---C---D---3.2.2实验电机简介本实验使用30BYJ011型四项八拍电机,电压为DC12V,其励磁线圈及励磁顺序如下所示:四.硬件工作原理4.1需要的器件电阻10K欧4个,电阻10欧4个,三级管4个,导线若干4.2硬件电路4.2.1驱动电路图将8255输出的2.4V电压放大至12V,为步进电机供电。4.2.2实验线路框图如下M步进电机驱动电路图五.程序框图5.1.步进电机程序流图程序流程图如图所示。A’1B’3C’2D’4地555555555地PA0APA1BPA2CPA3D可编程I/O控制芯片(8255)驱动单元步进电机开始初始化8255入口判断相序置入YN出口判断退出转向或调速延迟控制六.总结与体会这次做的实验是一个比较综合的实验,实验中主要是微机原理的编程,但还涉及到步进电机的有关知识以及一些专业基础课的知识,所以要做好这次实验我们需要做的有很多。首先,在查找资料的过程中,我更加理解了8255在微型计算机中的重要作用,理解了8255的基本的编程结构和基本控制字的设计方法,也锻炼了自己的动手能力和创新意识。其次,就硬件而言,此次的硬件焊接与以往有着明显的不同,以前总是有现成的电路,只是按照电路排好器件,再焊接就完事了,这次的电路却是自己设计的。而就焊接而言,此次的焊接虽然简单但去不容失误,一个步骤错误就有可能导致最后产品的质量问题。所以说每一个步骤做到最好,才能把保重产品最终的质量。再次,在编写汇编程序过程中,由于早先对汇编语言学习的不扎实,我们遇到了很大的困难,但是随着对问题理解的逐渐深入,这些问题最终都一一化解了。通过这次步进电机控制代码的编写,让我有了一个更深刻的认识:要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。在这个过程中,不仅提高了实际动手操作能力,培养了治学严谨的态度,激发了我学习此专业课程的兴趣,而且让我们深刻的体验到理论知识与实践经验的密切联系,要成为一个高技术人才,必须理论与实践两手都要硬。在设计时,对不同方案的构思、分析、比较到最后的方案确定,这些工作,可以增强了我们分析、解决问题的能力,培养了我们的创新意识。参考文献[1]张欣,微机系统实验指导书.河北大学内部教材,2008年9月,13-14页[2]王克义,微机原理与接口技术教程,北京大学出版社,2004年12月,15-90页[3]陈春华,夏利,微机原理与接口技术教程,东北大学出版社,2004年1月,5-68页[4]王永山,微型计算机原理及应用,西安电子科技大学出版社,1999年12月附录实验程序:datasegmentbufdb'pressFtoForwardrotation',0dh,0ah,'pressRtoReverserotation',0dh,0ah,'pressStoStop',0dh,0ah,'pressEtoexit$'strdb'controlspeed1,2$'d1dw?pstadb08h,0ch,04h,06h,02h,03h,01h,09h;相序表正pstbdb01h,03h,02h,06h,04h,0ch,08h,09h;相序表反dataendscodesegmentassumecs:code,ds:datastart:movax,datamovdx,axshow:leadx,bufmovah,09hint21hmovdx,203hmoval,10000000boutdx,al;初始化8255first:movah,01hint21hcmpal,46h;入口判断jeforwardcmpal,66hjeforwardcmpal,52hjereversecmpal,72hjereversecmpal,53hjestopcmpal,73hjestopcmpal,45hjeexitcmpal,65hjeexitjmpshowforward:movdi,offsetpstajmpcircleReverse:movdi,offsetpstbjmpcirclecircle:movd1,560h;设置延迟初值reload:movsi,dimovcx,7;设8拍循环次数lop:moval,[si]movdx,200houtdx,al;将相序表送到控制口movbx,d1;延时数值delay1:movdx,800delay2:movah,01hint16hjnztimedecdxjnzdelay2decbxjnzdelay1;延时incsi;相序表+1deccxjnzlop;循环7次jmpreload;完成7次,重新赋值time:movah,01hint21hcmpal,31hjes1cmpal,32hjes2cmpal,46h;判断是否变换方向和速度jeforwardcmpal,66hjeforwardcmpal,52hjereversecmpal,72hjereversecmpal,53hjestopcmpal,73hjestopjmpexits1:movd1,01h;延迟(即速度控制),可以添加更多的延迟以达到精确控制jmpreloads2:movd1,02hjmpreloadstop:jmpshowexit:movah,4chint21hcodeendsendstart实验整体电路:
本文标题:8255控制步进电机
链接地址:https://www.777doc.com/doc-6446626 .html