单片机步进电机.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
题目名称: 姓 名: 班 级: 日 期: 一.设计任务与要求 设计目的 1.了解步进电机控制的基本原理,掌握控制步进电机转动的编程方法。 2. 能实现电机正反转驱动控制。 3. 频率控制分四档:快速、中速、慢速、单步。 二.设计方案 步进电机原理 步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。 本实验使用的步进电机线圈由四相组成,驱动方式为二相激磁方式,如图所示。 步进电机原理图 首先使HA线圈和HB线圈有驱动电流,接着使HB和HC、HC和HD、HD和HA,又返回到HA和HB有驱动电流,按这种顺序切换,电机轴按顺时针方向旋转。 三.设计原理 用机控制步进电机原理系统图 单片机与步进电机的接口电路图1. 图中 K1、K2、K3、K4按钮分别控制步进电机正转、反转、加速、减速。 2. 因为我们讨论的是三相六拍的工作方式,所以P0.4和P0.6接高电平,P0.7接低电平。 3. P0.0输出步进脉冲。 4. P0.1控制步进电机的转向。步进电机的速度控制定时器法利用定时器进行工作,为了产生步进脉冲,要根据给定的脉冲频率和单片机的机器周期来计算定时常数,这个定时器决定了定时时间,当定时时间到而使定时器产生溢出时发生中断,在中断子程序中进行改变P1.0的电平状态的操作,这样就可以得到一个给定频率的方波输出,改变定时常数,就可以改变方波的频率,从而实现调速。 方向控制步进电机旋转方向与内部绕组的通电顺序相关。 三相六拍,通电顺序为: 正转: A(AB(B(BC(C(CA 反转: A(AC(C(CB(B(BA 改变通电顺序可以改变步进电机的转向 四.步进电机控制源代码 #include I2C.h #include ZLG7290.h #include absacc.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define PA8255 XBYTE[0x3ffc] //8255端口A的地址 #define PB8255 XBYTE[0x3ffd] //8255端口B的地址 #define PC8255 XBYTE[0x3ffe] //8255端口C的地址 #define COM8255 XBYTE[0x3fff] //8255命令字的地址 #define Tset 3000 //定时器0时间刻度,在600~60000设置可从高到低调节步进电机转速 sbit cs138=P1^6; //74HC138的选通端口 uchar clockflag; //CLK2时钟变换标志 uchar KeyValue,KeyPushFlag; //键值存放,按键标志位 void Timer0_init(); //定时器0初始化 void delay(uchar); /*********************************主函数***************************************/ void main(void) { cs138=0; //选通74HC138的使能端 COM8255=0x80; //8255的初始化,PA、PB和PC口为输出 Timer0_init(); //定时器0初始化 EA=1; //开总中断 IT1 = 1; //外部中断1的触发方式为下降沿触发 EX1 = 1; //允许外部中断1被响应(ZLG7290键盘中断) ET0=1; //T0中断允许 TR0=0; //关定时器0,无CLK2时钟输出 clockflag=1; //CLK2时钟初始化为高

文档评论(0)

精品天地 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档