欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    用单片机对步进电机进行控制.doc

    • 资源ID:2555495       资源大小:1.35MB        全文页数:21页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用单片机对步进电机进行控制.doc

    窗体底端用单片机对步进电机进行控制2009-05-16 20:21洪洞交警|分类:职业教育 | 浏览2198次我的BY设计 有的朋友请给小弟发到邮箱qiaoning1986yahoo.com.cn感激不尽2009-05-16 23:21提问者采纳呵呵 兄弟可以参考某些部分 呵呵 自己做的课程设计 还没有做完 完了发给你参考参考 题 目:单片机控制步进电机系统 摘 要很多工业控制设备对位移和角度的控制精度要求较高, 一般电机很难实现, 而步进电机可精确实现所设定的角度和转数。本设计主要是运用51 单片机控制六线4 相步进电机系统, 由单片机产生驱动脉冲信号, 控制步进电机以一定的转速向某一方向产生一定的转动角度。同时能够利用单片机实现电机的正、反转及速度控制,并能在数码管上显示出相应的速度。本文中给出了该系统设计的硬件电路,软件设计,人机交互等。并对各个功能模块进行了详细的说明。主要内容包括以下几个方面:单片机控制步进电机的一般原理。电机驱动及控制的实现。控制系统整体设计以及模块划分说明。原理图。代码。关键词:单片机;步进电机;系统;驱动AbstractMany Industrial control equipment have a highly requirement in displacement and angle with control accuracy, the most motor can't carry out .but the step motor can carry out the displacement and angle that you enactmented in accuracy. This design mainly used SCM to control step motor system.The step motor is formed six lines and four phasic.Through SCM generate the drive pulse signal.Control stepper motor through a certain speed in a direction to get a certain degree of rotation angle.At the same time, It can use SCM to realization of the motor is , reverse and speed control. and showed the speed in the digital tube. In this paper, given the design of the system hardware circuit,software design, human-computer interaction and so on.and it given the details description of each functional module.the main contents include the following: (1) The general principles of signal_chip controlling step motor. (2) The realization of motor driving and controlling (3) Control system overall design and description module division (4) Schematic Diagram (5) CodeKey Words:SCM; stepper motor; system; drive目录引言 41 单片机控制步进电机的一般原理 41.1 步进电机 41.1.1 步进电机介绍 41.1.2 步进电机分类 51.1.3 技术指标 51.1.4 步进电机工作原理 51.2 单片机 72 步进电机驱动实现 82.1简介 82.2驱动选择 83 系统硬件设计 93. 1 单片机控制电机 93.2 键盘 93.3 显示部分 10程序流程图 11总结 12致 谢 13参考文献 13附录 13C代码 13引言目前,在工业控制生产以及仪器上应用十分广泛。通常都要对一些机械部件平移和转动,对移动的位移和角度控制要求较高,一般的电机很难实现对位置和角度的精确控制,在一些智能化要求较高的场合,用模拟芯片控制器及信号发生器来控制有一定局限性。而用单片机控制步进电机可以改善性能,步进电机能实现精确的角度和转数,具有良好的步进特性,最适合数字控制。在工控设备中得到了广泛的应用。而单片机具有芯片体积小,兼容性强,低电压地,低功耗等特点,使单片机成为驱动步进电机的最佳空盒子单元。所以单片机控制步进电机系统控制精度高,运行稳定,得以广泛运用。1 单片机控制步进电机的一般原理1.1 步进电机1.1.1 步进电机介绍 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机、交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。1.1.2 步进电机分类永磁式(PM)。一般为二相,转矩和体积都很小,步距角一般为7.5或15°反应式(VR)。一般为三相,实现大转矩输出,步距角为1.5°。混合式(HB)。兼具永磁式和反应式的优点,分二相和五相,二相步距角为1.8°五相步距角为0.72°。1.1.3 技术指标 静态指标 相数 步距角 拍数 定位转矩 保持转矩 步进电机动态指标 步距角精度 失步 失调角 最大空载启动频率 最大空载运行频率 运行频距特性 电机共振点1.1.4 步进电机工作原理分析(步进电机展开图)以反应式步进电机为例,其典型结构图如图1所示。这是一个四相步进电机,当相控制绕组接通脉冲电流时,在磁拉力作用下使相的定、转子对齐,相邻的B 相和D 相的定、转子小齿错开。若换成B 相通电,则磁拉力使B 相定、转子小齿对齐(转过) ,而与B 相相邻的C 相和A 相的定、转子小齿又错开,即步进电机转过一个步距角。若按A B C D A 规律循环顺序通电,则步进电机按一定方向转动。若改变通电顺序为A D C B A ,则电机反向转动。这种控制方式称为四相单四拍。若按AB BC CD DA AB或A AB B BC C CD D DA A 顺序通电则称为四相双拍或四相单、双八拍。无论采用哪种控制方式,在一个通电循环内,步进电机的转角恒为一个齿距角。所以,可以通过改步进电机通电循环次序来改变转动方向,可以通过改变通电频率来改变其角频率。运用单片机的输出功能,通过编程实现输出四个信号分别给步进电机的四相A、B、C、D ,并通过输出时信号的循环次序,来设定步进电机的转动方向及输出信号的频率以便设定步进电机的转动频率。图1 反应式步进电机结构图实现原理采用单片机产生A、B、C、D 的四相信号,当采用单片机进行控制时,需要在单片机和步进电机中间设隔离电路以使强弱电分离。由于步进电机的驱动电流相对较大,可增设放大电路来提供步进电机的工作电流。系统电路由五部分组成,即单片机、隔离、放大、电源及步进电机。1.2 单片机功能特性描述 AT89S52是一种低功耗、高性能CMOS8位微控制器, 具有8K 在系统可编程Flash 存储器。使用Atmel 公 司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储 器在系统可编程,亦适于常规编程器。在单芯片上, 拥有灵巧的8 位CPU 和在系统可编程Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超 有效的解决方案。AT89S52具有以下标准功能:8k字 节Flash,256字节RAM,32 位I/O 口线,看门狗定时 器,2 个数据指针,三个16 位定时器/计数器,一个6 向量2级中断结构,全双工串行口,片内晶振及时钟电 路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU停止工作, 允许RAM、定时器/计数器、串口、中断继续工作。掉 电保护方式下,RAM内容被保存,振荡器被冻结,单 片机一切工作停止,直到下一个中断或硬件复位为止。2 步进电机驱动实现2.1简介 步进电机在单单仅给予电压时,电机是不会动作的,必须由脉冲产生器提供位置(脉波数)、速度的脉冲信号指令,以及驱动器驱动电流流过电机内部线圈、依顺序切换激磁相序的方式才能够让电机运 转。所以欲使步进电机动作的必要系统组成有: (1)脉冲产生器:给予角度(位置移动量)、动作速度及运转方向之脉冲信号的电机驱动指令。(2)步进驱动器:依控制器所投入的脉冲信号指令,提供电流来驱动步进电机动作。(3)步进电机:提供转矩动力输出来带动负载。所以步进电机系统构成简单,不需要速度感应器、位置传感器, 即能依照脉冲产生器所输入的脉冲来做到速度及位置的控制。2.2驱动选择步进电机可以选用专用的电机驱动模块,也可以自己构建驱动电路。一般有以下几种选择:专用驱动模块,如L298,FT5754等,这类驱动接口简单,这类可以驱动步进电机,直流电机等。达林顿驱动器ULN2803,这个芯片可以一次驱动八线步进电机。自己构建,通过三极管,74als04,等系列元件构成。但这样系统可靠性会降低,会另外给系统带来误差。3 系统硬件设计1 单片机控制电机 如图3说明:这个部分为单片机控制步进电机部分,80s52单片机通过达林顿驱动器ULN2803来驱动步进电机,80s52的P1.0-P1.4发送控制信号给驱动器,然后驱动器的四根线把信号传递给电机,使电机实现正反转等。电机部分接12V直流电源。3.2 键盘如图4说明: 本系统中采用了四个按键,分别与80s52的四个引脚相连,分别为LCDEN,RS,WR,RD;分别实现的功能是电机加速,减速,正反转。键盘一旦按下则表示向单片机发送了有效信号,单片机就相应的进行调节。对于键盘的键按下的时候分为几个步骤,当键盘按下的时候,接通电路,键盘扫描检测低电平,但检测到低电平之后不能够判断键是否被按下,因为抖动可能引起这个变化,所有大概延时510ms之后再进行检测。如果再次检测到低电平之后说明键被按下。这个过程就是所说的消除抖动。3.3 显示部分如图5说明:对于显示部分,因为这个系统只是显示转速,所以采用了LED共阳极数码管。并且用了74HC573锁存器,74HC573锁存器输出电流大,接口电路简单。本系统采用了两个74HC573锁存器,分别为段选和位选。段选为数码管的显示数字,位选为选中相应的数码管。程序流程图总结通过本次的课程论文,让我真实的感受到一个完整的系统设计过程。这次的的论文从开始的整体布局,排版,到内容中的系统设计直到最后完成。每个流程下来,都带给了我很多的新东西,特别在设计完系统之后做硬件部分中,先是用protel99se画图,好多图在库中找不到,找不到就自己画,然后封装,封装的时候还要用游标卡纸对买来的元件进行精确的测量,然后才能在封装的过程中保证精度。最后做完图之后还要布线,布线完成后再发到厂家去做。事实上这个过程我用买好的空板做的,因为元件不多。所以就买了相应的元件直接再PCB板上焊接好的。在焊接的过程中也会感受到很多东西,因为很多需要注意的。不过这个过程多多尝试就会有进步的。焊接完后就是代码调试阶段。最后就完成了这个小型系统的设计。致 谢在此,感谢我的老师以及周围的同学。本次的论文得益于同学们的帮助。最后还要感谢我的父母,是他们一直在背后支持着我。 谨以此文献给他们!参考文献 1 张永枫,王静霞,杨宏利. 单片机应用实训教程. 西安电子科技大学出版社,2005. 2 郭天祥. 51单片机C语言教程. 电子工业出版社 2008附录C代码单片机控制步进电机实现功能: 定时器中断:定时时间设置为30秒,首先给的初值每次中断为5ms,经过20次中断为1秒,半分钟三十秒则要中断600次,所有到达六百次后就把计数n中的值读取到数码管中显示出来。键盘检测:进行速度控制的时候按下相应的键则会对应的进行速度调节。数码管显示:驱动部分:#include <reg52.h>#define uchar unsigned charsbit dula=P26;sbit wela=P27;sbit jia_key=P36;sbit jian_key=P37;sbit zf_key=P35;sbit stop_key=P34;bit flag=0;uchar num1,n;uchar num=0,show_num=2,maichong=4,table_begin=0;uchar code table1=0x01,0x02,0x04,0x08,0x08,0x02,0x01;uchar code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;/ 延时部分void delay(uchar i) uchar j,k; for(j=i;j>0;j-) for(k=110;k>0;k-); / 显示部分void display() dula=0; P0=tableshow_num; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=table0; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5);/ 键盘检测部分void key() if(jia_key=0) delay(5); if(jia_key=0) num+; if(num=4) num=3; while(jia_key=0) if(jian_key=0) delay(5); if(jian_key=0) if(num!=0) num-; else num=0; while(jian_key=0); if(zf_key=0) delay(5); if(zf_key=0) flag=flag; while(zf_key=0); if(stop_key=0) delay(4); if(stop_key=0) show_num=0; maichong=0; while(stop_key=0) / 键盘检测结果void dispose() switch(num) case 0: maichong=5; break; case 1: maichong=4; break; case 2: maichong=3; break; case 3: maichong=2; break; if(flag=0) table_begin=0; else table_begin=4;/ 数码管驱动部分void qudong() uchar i,j; for(j=0+table_begin;j<4+table_begin;j+) P1=tablej; for(i=0;i<maichong;i+) dispaly(); / 主函数部分void main() while(1) init(); key(); dispose(); qudong(); n+; / 定时器中断初始化void init() TMOD=0x01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; / 开总中断 ET0=1;/ 开定时器0中断 TR0=1;/ 启动定时器0/ 定时器中断调用void T0_time() intterrupt 1 / T0中断 TH0=(65536-45872)/256; TL0=(65536-45872)%256; num1+; if(num1=600) show_num=n; num1=0; n=0; 第1章 步进电机概述1.1步进电机的特点:1) 一般步进电机的精度为步进角的3-5%,且不累积。2) 步进电机外表允许的温度高。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。3)步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。4)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。 1.2步进电机的工作原理: 步进电机是一种用电脉冲进行控制 ,将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度.脉冲的数量决定了旋转的总角度 ,脉冲的频率决定了电机运转的速度.当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。1.3 步进电机的技术参数:1.3.1 步进电机型号本次设计所采用的电机型号:28bjy-48四相五线微型步进电机实物如右图1.3.2步进电机的基本参数 第2章 方案的论证 2.1 控制方式的确定步进电机控制虽然是一个比较精确的,步进电机开环控制系统具有成本低、简单、控制方便等优点,在采用单片机的步进电机开环系统中,控制系统送控制字的间隔和送控制字的顺序实际上就是控制步进电机的运行速度。系统可用两种办法实现步进电机的速度控制。一种是延时,一种是定时。延时方法是在每次按键之后调用一个延时子程序,待延时结束后再次送控制字,这样周而复始就可发出一定频率的CP脉冲。该方法简单,占用资源少,全部由软件实现,调用不同的子程序可以实现不同速度和不同方向的运行。但占用CPU时间长,不能在运行时处理其他工作。因此只适合较简单的控制过程。定时方法是利用单片机系统中的定时器定时功能产生任意周期的定时信号,从而可方便的控制系统输出CP脉冲的周期。当定时器启动后,定时器从装载的初值开始对系统及其周期进行加计数,当定时器溢出时,定时器产生中断,系统转去执行定时中断子程序将电机换向子程序放在定时中断服务程序中,定时中断一次,电机换向一次,从而实现电机的速度控制。2.1.1 脉冲序列的生成 图4.2 脉冲的生成脉冲幅值:由数字元件电平决定。 TTL 0 5V CMOS 0 10V 接通和断开时间可用延时的办法控制。要求:确保步进到位。2.1.2 方向控制步进电机旋转方向与内部绕组的通电顺序相关。 四相八拍,通电顺序为: 正转: A&reg;AB&reg;B&reg;BC&reg;C&reg;CD&reg;D&reg;DA 反转: A&reg;AD&reg;D&reg;DC&reg;C&reg;CB&reg;B&reg;BA 改变通电顺序可以改变步进电机的转向 2.2 脉冲分配 实现脉冲分配(也就是通电换相控制)的方法有两种:软件法和硬件法。本次设计采用软件法。2.2.1 通过软件实现脉冲分配软件法是完全用软件的方式,按照给定的通电换相顺序,通过单片机的IO向驱动电路发出控制脉冲,下面以四相八拍为例上面提到了三相六拍工作方式通电换相得正序为A-AB-B-BC-C-CD-D-DA-A,,反序为A-AD-D-DC-C-CB-B-BA-A 图4.3 用软件实现脉冲分配的接口示意图注:P2.0:A相驱动P2.1:B相驱动P2.2:C相驱动P2.3:D相驱动三相六拍控制字如下表所示:表4.1 三相六拍工作方式的控制字通电状态 P2.3 P2.2 P2.1 2.0 控制字A 0 0 0 1 01HAB 0 0 1 1 03HB 0 0 1 0 02HBC 0 1 1 0 06HC 0 1 0 0 04HCD 1 1 0 0 0CHD 1 0 0 0 08HDA 1 0 0 1 09H注:0代表使绕组断电,1代表使绕组通电在程序中,只要依次将这8个控制字送到P2口,步进电机就会转动一个齿距角,每送一个控制字,就完成一拍,步进电机转过一个步距角。2.3 驱动方式的确定 用于步进电机的驱动一般有两种方法,一种是通过CPU直接来驱动,这种方法一般不宜采用,因为CPU的输出电流脉冲是特别小的它不能足以让步进电机的转动;别一种是通过CPU来间接驱动,就是把从CPU输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。固本次设计应采用CPU间接驱动步进电机。2.4 驱动电路的选择 由于单片机接口信号不够大需要通过ULN2803放大再连接到相应的电机接口,ULN2803属于高电压大电流8达林顿晶体管系列,该阵列系列中的八NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS/NMOS)和大电流高电压要求的灯、继电器、打印机锤和其他类似负载间的接口的理想器件。广泛用于计算机,工业消费类产品中。所用器件有集电极开路输出和用于瞬变抑制的续流钳位二极管。它与单片机和步进电机连接如下: 2.5 基本方案的确定因本次设计的要求,选用四相八拍步进电机,单片机选用89C51作为控制器。选取用4511来驱动LED段选,7406作为LED位选驱动以显示电机转速。选用2803作为步进电机的驱动芯片。系统原理框图如下所示: 第3章 硬件电路的设计3.1 单片机的选择本次设计以CPU选用89C5l作为步进电机的控制芯片89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上使用方便等优点,而且完全兼容MCS5l系列单片机的所有功能。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFAlsh ProgrAmmABle And ErAsABle ReAd Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案3.2 LED显示电路设计LED使用4511驱动,CD4511是一个用于驱动共阴极 LED(数码管)显示器的 BCD码七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。CD4511 是一片 CMOS BCD锁存/7 段译码/驱动器,引脚排列如图32 所示。其中a b c d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观 图3-1是 CD4511和AT89C51配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300的限流电阻。 图3-1 图3-28421 BCD 码对应的显示见下图 : 3.3 步进电机与微型机的接口电路 电路原理图如下: 1. 图中 自上而下K1、K2、K3、K4按钮和S1、S2开关分别控制步进电机停止、一档、二挡、三档、正转反转。 2. P1.0-P1.5 接控制按钮和开关,P0.0-P0.3送BCD码、P3.0-P3.3送LED段选,P2.0-P2.3送不及电机控制字。 第4章 程序设计4.1 程序框图 4.2 C程序#include <AT89X51.H>Unsigned char code table=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x00;unsigned char temp,temp_old;unsigned char key;unsigned char i,j,k,m,s;#include <stdio.h>#define uchar unsigned charuchar code tab3=0x02,0x07,0x03,0x08,0x08,0x01,0x08,0x02,0x01;void d10ms() int p,q; for(p=2;p>0;p-) for(q=40;q>0;q-);void delay(int i) int a; a=i-1; for(m=i;m>0;m-) P0=taba0; P3=0x01; d10ms(); P3=0x00; P0=taba1; P3=0x02; d10ms(); P3=0x00; P0=taba2; P3=0x04; d10ms(); P3=0x00; void saomiao() P1=0xff; if(P1_4=0) temp=P1; temp=temp&0x0f; if(temp!=0x0f) for(i=3;i>0;i-) for(j=80;j>0;j-); temp=P1; temp=temp&0x0f; if(temp!=0x0f) temp=P1; temp=temp&0x0f; switch(temp) case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=4; break; temp=P1; temp=temp&0x0f; while(temp!=0x0f) temp=P1; temp=temp&0x0f; P1=0xff; if(P1_5=0) temp=P1; temp=temp&0x0f; if(temp!=0x0f) for(i=3;i>0;i-) for(j=80;j>0;j-); temp=P1; temp=temp&0x0f; if(temp!=0x0f) temp=P1; temp=temp&0x0f; switch(temp) case 0x0e: key=8; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=7; break; temp=P1; temp=temp&0x0f; while(temp!=0x0f) temp=P1; temp=temp&0x0f; void main(void) while(1) saomiao(); if(key=1) P1=0; P2=0; saomiao(); if(key=2) temp_old=key; for(s=0;s<8;s+) P2=tables; delay(3); saomiao(); if(key=3) temp_old=key; for(s=0;s<8;s+) P2=tables; delay(2); saomiao(); if(key=4) temp_old=key; for(s=0;s<8;s+) P2=tables; delay(1); saomiao(); if(key=5) temp_old=key; for(s=9;s<17;s+) P2=tables; delay(3); saomiao(); if(key=6) temp_old=key; for(s=9;s<17;s+) P2=tables; delay(2); saomiao(); if(key=7) temp_old=key; fo

    注意事项

    本文(用单片机对步进电机进行控制.doc)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开