欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    步进电机的控制程序.docx

    • 资源ID:246192       资源大小:75.88KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    步进电机的控制程序.docx

    mega16的,16和32管脚兼容,只不过flash大小不一样,不过中断向量号也不一样,你看下自己改改.时钟频率:内部RCIM芯片:ULN2003键值:O小角度快正转.1小角度快倒.2大角度快转.3大角度快倒.4小角度正慢转.5小角度倒慢转.6大角度正1¾7角到'慢*m*m*m*mn*m*m*/#include<iom16v.h>#include<macros.h>#defineucharunsignedchar#defineuintunsignedintuchara=0,b=0;ucharKEY_num=0xe1;unsignedintm=9000;constucharf1=0x02,0x06,0x04,OxOc,0x08,OxO9QxO1Qx03;正转时序3.75度constUCharf2=0x04,0x06,0x02,0x03,0x01,0x09,0x08,0x0c;倒转时序3.75度constucharf30=OxO1,0x02,0x04,0x08;正转时序7.5度constucharf4Q=0x01,0x08,0x04,0x02;倒转时序7.5度voiddelay(intk)延时inti;for(i=0;i<k;i+);voiddelay_10ms(uintdata)uintm=2;while(data)data-;m=2;while(m)m-;voidZhengZhUanI(VOid)正转3.75度unsignedcharj;for(j=0;j<8;j+)P0RTC=f1;delay(m);voiddaozhuan1(void)倒转3.75度unsignedcharj;for(j=0;j<8;j+)P0RTC=f2j;delay(m);voidZhengZhUan2(Void)正转7.5度unsignedcharj;for(j=0;j<4;j+)PORTC=f3j;delay(m);voiddaozhuan2(void)/倒转7.5度unsignedcharj;for(j=0;j<4;j+)P0RTC=f4j;delay(m);voidport_int()初始化端口PORTB=OxfO;DDRB=OxOF;DDRC=Oxff;PRTC=0x01;voidinit_devices(void)CLI();/禁止所有中断MCUCR=0x00;MCUCSR=0x80;/禁止JTAGGICR=0x00;portjnt();SEi();开全局中断按键键值读取程序返回按键键值,如果没有按键那么返回0.voidKYY.read()定义按键值存放内存PoRTB=OXfO;/行全部送高电平PORTB=OxfO;if(PINB&OxfO)!=OXf0)有按键delayjms;延时消抖if(PINB&OxfO)!=OxfO)确定有按键按下PORTB=Oxfe;扫描第一行PORTB=Oxfe;if(PINB&OxfO)!=OxfO)KEY_num=(PINB&OxfO)+1;a=9;PoRTB=Oxfd;扫描第二行PORTB=Oxfd;if(PINB&OxfO)!=OxfO)KEY_num=(PINB&0xf0)+2;PoRTB=Oxfb;扫描第三行PORTB=Oxfb;if(PINB&OxfO)!=OxfO)KEY_num=(PINB&0xf0)+4;PORTB=Oxf7;扫描第四行PORTB=Oxf7;if(PINB&OxfO)!=OxfO)KEY_num=(PINB&0xf0)+8;没有按键返回0按键执行程序送如参数:按键键值KEY_do(uchardata)ucharKEY_number=data;switch(KEY_number)case0xe1:a=0;b=0;daozhuan1();m=5000;break;case0xd1:a=0;b=1;daozhuan1();m=6000;break;case0xb1:a=0;b=2;daozhuan1();m=7000;break;case0x71:a=0;b=3;daozhuan1();m=8000;break;case0xe2:a=0;b=4;daozhuan2();m=5000;break;case0xd2:a=0;b=5;daozhuan2();m=6000;break;case0xb2:a=0;b=6;daozhuan2();m=7000;break;case0x72:a=0;b=7;daozhuan2();m=8000;break;case0xe4:a=0;b=8;zhengzhuan1();m=5000;break;case0xd4:a=0;b=9;zhengzhuan1();m=6000;break;case0xb4:a=1;b=0;zhengzhuan1();m=7000;break;case0x74:a=1;b=1;zhengzhuan1();m=8000;break;case0xe8:a=1;b=2;zhengzhuan2();m=5000;break;case0xd8:a=1;b=3;zhengzhuan2();m=6000;break;case0xb8:a=1;b=4;zhengzhuan2();m=7000;break;case0x78:a=1;b=5;zhengzhuan2();m=8000;break;default:b=O;break;)voidmain(void)主程序init_devices();while(1)KYY_read();KEY_do(KEY_num);)/include<reg51.h>/51芯片管脚定义头文件#include<intrins.h>"内部包含延时函数JIOP_();#definecharunsignedchar#defineuintunsignedintucharcodeFFW8=0xf1,0xf3,0xf2,0xf6,0xf410xfc,0xf8,0xf9;ucharcodeREV8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x.;sbitK1=P3A4;"正转SbitK2=P3A5;反转sbitK3=P3A6;停止sbitK4=P3A7;sbitBEEP=P0A6;蜂鸣器*厂延时t毫秒尸11.0592MHZ时钟,延时约ImS*7void delay(uint t)mmintk;while(t-)(for(k=0;k<125;k+)()VoiddlsyB(uchsr)/x*014MSchari;while(x-)for(i=0;i<13;i+)()voidbeep()uchari;for(i=0;i<180;i+)delayB(5);BEEP=!BEEP;Z/BEEP取反关闭蜂鸣器BEEP=1;*步进电机正转voidmotor_ffw()uchari;uintj;forG=0;j<12;j+)if(K4=0)转1*n圈退出此循环程序break;一个周期转30度for(i=0;i<8;i+)取数据PO=FFWi;delay(15);/*步进电机反转voidmotor_rev()uchari;转IXn圈退出此循环程uintj;for(j=0;j<12;j+)if(K4=0)break;for(i=0;i<8;i+)一个周期转30度取数据调节转Po=REVi;速delay(15);)*主程序main()(/N步进电机运转圈数ucharr,N=5;while(1)P2=0xDF;(if(K1=0)beep();for(r=0;r<N;r+)motor_ffw();"电机正转if(K4=0)beep();break;退出此循环程序elseif(K2=0)beep();for(r=0;r<N;r+)motojrev();电机反转if(K4=O)beep();break;退出此循环程序elsePO=OxTO;r*WWW*W*W*W*WWW*W*WW*WULN2803是8路NPN达林顿连接晶体管系列,特别适用于低逻辑电平数字电路,如:TTL,COMS或PMOS/NMOS,和较高的电压/电流要求之间的接口,广泛应用与计算机、打印机、继电器、灯等类似负载中.所有器件具有集电极开路输出和续流箱位二极管,用于抑制跃变.ULN2803的设计与标准TTL系列兼容.28BYJ48是一款五线四相八拍步进电机,可以采用4-1-2相驱动.电压为DC5V-DC12V.当对步进电机施加一系列连续不断的限制脉冲时,它可以连续不断地转动.每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角).当通电状态的改变完成一个循环时,转子转过一个齿距.四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A.),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-.),八拍(A-AB-B-BC-C-CD-D-DA-A.)具体驱动方式如下表,红色为电源引脚,始终接电源橙黄粉蓝十八制10000x081100OxOc01000x0401100x0600100x0200110x0300010x0110010x09电机电机至群龙小电机和单片机使用网电源,可以断兄边跣然弁在”业机电源G、D-播入苴他也小邛.狸岩电机供电广电源,电机电可i单片机目L电源电机和驱动板连接示意图:6V-PAOPAIPA2PA3-PD3PD2-PDlOCNDPDAVR范例程序如下:芯片使用ATMegaI6,晶振使用12M#includeunsignedcharkey=。;IL匕机的方向unsignedcharspeed=5;步进电机的转速八拍方式驱动,顺序为AABBBCCCDDDAunsignedcharclockWise=0x01,0x03,0x02,0×06,0x04,0×0c,0x08,0x09);voiddelay(unsignedcharz)unsignedcharx;unsignedinty;for(x=0;x<z;x+)(for(y=0;y<750;y+)</z;x+)void.unsignedch

    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

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

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开