毕业设计:步进电机正反转设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
步进电机正反转设计 1 设计目的 步进电机若加入适当的脉冲信号时,转子则会以一定的步数转动。如果加入连续的脉冲信号,步进电机就会连续转动,转动的角度与脉冲频率成正比,正、反转可由脉冲的顺序来控制。 2 硬件介绍  (1)80c51单片机简介 首先我们来介绍一下单片机的引脚图及引脚功能(如下图所示), 引脚的具体功能将在下面详细介绍 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端; 时钟:TAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ① ALE功能:用来锁存P0口送出的低8位地址 ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。⑵ PSEN:外ROM读选通信号。① RST(Reset)功能:复位信号输入端。② VPD功能:在Vcc掉电情况下,接备用电源。⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。 ① EA功能:内外ROM选择端。② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线:80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 ULN2003简介 ULN2003的内部结构和功能ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。 ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。 3 实验程序 /*************** writer:shopping.w ******************/ #include reg52.h #define uint unsigned int #define uchar unsigned char uchar code FFW[]= { 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 }; uchar code REV[]= { 0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01 }; sbit K1 = P3^0; sbit K2 = P3^1; sbit K3 = P3^2; void DelayMS(uint ms) { uchar i; while(ms--) { for(i=0;i120;i++); } } void SETP_MOTOR_FFW(uchar n) { uchar i,j; for(i=0;i5*n;i++) { for(j=0;j8;j++) { if(K3 == 0) break; P1 = FFW[j]; DelayMS(25); } } } void SETP_MOTOR_REV(uchar n) { uchar i,j; for(i=0;i5*n;i++) { for(j=0;j8;j++) { if(K3 == 0) break; P1 = REV[j]; DelayMS(25); } } } void main() { uchar N = 3; while(1) { if(K1 == 0) { P0 = 0xfe; SETP_MOTOR_FFW(N); if(K3 == 0) break; } else if(K2 == 0) { P0 = 0xfd; SETP_MOTOR_REV(N); if(K3 == 0) break; } else { P0 = 0xfb; P1 = 0x03; } } 4 实验图形 5 心得体会 在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机

您可能关注的文档

文档评论(0)

好老师 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档