基于51单片机的步进电机控制-设计报告(说明书)及源程序.docVIP

基于51单片机的步进电机控制-设计报告(说明书)及源程序.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于51单片机的步进电机控制步进电机控制系统 实验要求 本课程设计的内容是利用51单片机,达到控制步进电机的启动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2003A,ULN2003A具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 用单片机或DSP控制器控制一台四相六线步进电动机的正转、反转、加速、减速和停止。要求在控制电路板上用5个按钮控制电机的正反转、加减速和停止,并能显示是正转、反转还是停止,同时显示转速及转的圈数 (2)、相关参数设定: 这里采用四相六线步进电机,这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成A-AB-B-BC-C-CD-D-DA。所以其正转控制脉冲为:01h,09h,08h,0ch,04h,06h,02h,03h,00h;反转控制脉冲为:01h,03h,02h,06h,04h,0ch,08h,09h,00h。51系列单片机AT89C51为控制核心所设计的步进电机控制系统,从系统的硬件电路以及软件的设计方面实现了对步进电机的控制。 本文首先对步进电机进行了概述,然后就控制系统中芯片的选取做了详细的说明,本设计选择用L298N作为接口驱动芯片,用LM016L做显示芯片,在Proteus上设计出控制系统的硬件连接电路,并根据实情况考虑了电磁隔离和绕组的导通续流等。在硬件设计的基础上设计了系统运行过程的程序流程图并用C程序设计出控制系统的控制程序,并用Keil进行调试,然后在Proteus上进行仿真,实现了本次设计所需的各种功能。系统中采用并行控制,用单片机接口线直接去控制步进电机各相驱动线路。键盘作为一个外部中断源,设置了步进电机正转、反转、加减速、停止等功能,采用中断方法来调用中断服务程序,完成对步进电机的最佳控制,显示器及时显示正转、反转速度等状态,并且用定时器控制定位过程,在定位过程中简单设置了加减速过程的模拟阶梯曲线,来控制加减速的整个过程。 该设计的唯一不足是固化的加减速过程中的加减速时间,不能通用于各种不同的加速度控制系统,且在定位过程中由于脉冲漏发等出现小偏差时候不能进行检测,所以还有待进一步的将该系统完善成为具有传感器位置检测的闭环控制系统。 用软件代替环形分配器,通过对单片机的设定,用同一种电路实现了多相步进电机的控制和驱动,大大提高了接口电路的灵活性和通用性;本次设计虽然只是实现单一功能的应用,但是它可以作为一种通用模块应用,通过改变并行输出口可以满足多种不同的相数的步进电机控制,改变模拟阶梯曲线的参数可以满足多种不同应用条件下的定位。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域1 何丽民,《》,大学出版社; 2 沙占友,《单片机外围电路设计》,电子工业出版社; 3 童诗白,《模拟电子技术基础》,北京高等教育出版社; 4 康华光,《电子技术基础》,北京高等教育出版社; 北京航空航天大 #include AT89X51.h #include stdio.h #include math.h #define uc unsigned char #define ui unsigned int #define LCDPAGE 0xB8 //设置页指令。 #define LCDLINE 0x40 //设置列指令。 sbit E= P3^5; sbit RW=P3^4; sbit RS=P3^2; sbit L=P3^1; //左半平面 sbit R=P3^0; //右半平面 sbit Busy=P2^7;// //忙 判断位 uc scan_key1,scan_key2; //按键功能选择,00 停止,01 正转 10 反转 uc step1;step2; static step_index; ui count1,count2; //定时 uc butter; //按键 static speed; //速度参数 void iniLCD(void); void chkbusy(void); void wcode(uc cd) ; void wdata(uc dat); void disrow(uc page,uc col,uc *temp); void display( uc page,uc col,uc *temp); void ground(step);

文档评论(0)

文档分享 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档