马达调速控制_第1页
马达调速控制_第2页
马达调速控制_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验八 马达调速控制一、实验目的掌握步进电机控制的接口设计和编程方法。直流电机的开启控制编程方法。二、实验仪器微机、单片机实验仪三、实验原理1单片机的P1 口输出脉冲信号,驱动步进电机旋转。引入开关,实现对步进 电机马达的启停、转向和速度控制。1旋转方向控制步进电机以四相四拍方式工作,假设按 心ABH BBH BL AA次序通电为正转,按AAH ABh BBh BAhaa次序通电为反转。2旋转速度控制每改变1次节拍,步进电机旋转18度。调节脉冲的周期就可以控制步进 电机的转速。2.直流电机的转动由DAC0800来控制,当DAC0800的输出为高电平时直流电机 开始转动,当DAC0800的输出为

2、低电平时直流电机停止转动。四、实验步骤1连线、编程步进电机的插头接 J3 ; BABD接89S52的P1.1P1.4 ;开关 K8接 P1.7,K1-K7 接 8051 的 P1.0-P1.6 ;DAC0800勺 B0-B7 口接 P2。DAC0800俞出接直流电机的输入。2、调试程序,观察步进电机运行情况启停开关K1步进电机开始转动,是正转2圈,反转2圈的循环运行。 启停开关K8直流电机开启,步进电机停止。调速开关K7K2供6转速,调速时开关翻开-关闭实现一次调速。K2,K4,K6调速时步进电机是正转,K3,K5,K7调速时步进电机是反转。五、实验数据记录与处理1、流程图和2、源程序/*本步

3、进电机步进角为7.5度.一圈360度,需要48个脉冲完成! */ /*程序名:main.c*功 能:步进电机正转,反转单位:湖南理工物电系创新基地All rights reserved *开始时间:2021.07.22*结束时间:2021.07.22*版本信息:口分别接单片机的 P1A1,P1A2,P1A3,P1A4备注;P0口接key1-key8八个开关并空制着八个转速备 注:控制直流电机的是 DAC0800.备 注:B0-B7接的是P2 口。输出接的是直流电机的输入*/#include<reg52.h>#define uchar unsigned char / 宏定义 方便使用

4、#define uint unsigned intvoid motor_move(uint);/ 函数的声明void motor_back(uint);void delay(uint);uint keyscan();void zhiliu();uchar a=0,key=0,key1,temp; / 变量定义/* 正转次序 : Aa 组-aB 组-Bb 组-bA 组 即一个脉冲 , 正转 7.5 度 */ /* 倒转次序 : bA 组-Aa 组-aB 组-Bb 组 即一个脉冲 , 正转 7.5 度 */ /* 开启开关时步进电机停止工作关闭开关时步进电机调好转速转动*/正转时序 7.5 度倒转

5、时序 7.5 度定义不同的时速const uchar time_move=0xe7,0xed,0xf9,0xf3; /const uchar time_back=0xe7,0xf3,0xf9,0xed; / const uchar time=0,5,10,20,40,60,80,100; / uint code table=0x00,0xff;/ 给直流电机的信号/ 主程序void main()while(1)P2=0x00;key=keyscan(); / 接受开关信号if(key=1)motor_move(2);/正转 2 圈 可自行调转圈数反转 2 圈 可自行调转圈数接受开关信号dela

6、y(100); motor_back(2); / delay(100);key=keyscan(); /else if(key=8) / 当开关翻开的是第八个时直流电机 启动,步进电机停止zhiliu();else if( (key!=0)&&(key!=8) /判断是否有开关信号key=keyscan(); / key1=key&0x11; / if(key1=0x00) / motor_move(1); /再次判断开关信号判断是否为偶数如果是偶数就正转正转 2 圈 可自行调转圈数else / 否那么就反转motor_back(1); /反转 2 圈 可自行调转圈/=

7、正转 n 圈( 每转一步 7.5 度)= void motor_move(uint n)uchar i;uint j;for(j=0;j<12*n;j+)for (i=0;i<4;i+)P1=0xe1; / 驱动 ds75452n 芯片 P1=time_movei; /delay(timekey);/=倒转 n 圈( 每转一步 7.5 度)= void motor_back(uint n)uchar i;uint j;for(j=0;j<12*n;j+)for (i=0;i<4;i+)P1=0xe1; / 驱动 ds75452n 芯片 P1=time_backi; /d

8、elay(timekey);/延时t毫秒,11.0592MHz时钟,延时约0.5msvoid delay(uint t)uint k;while(t-)for(k=0; k<60; k+);uint keyscan() / 接受开关信号并编码P0=0xff;temp=P0; temp=temp&0xff;while(temp!=0x00)/再次判断是否翻开开关delay(1); temp=P0; temp=temp&0xff;switch( temp) / 判断开关信号并将转速变量赋值 case 0x01: a=1; break;case 0x02: a=2; break; case 0x04: a=3; break;case 0x08: a=4; break;case 0x10: a=5; break;case 0x20: a=6; break;case 0x40: a=7; break;case 0x80: a=8; break;while(temp!=0x00) / 判断开关是否关闭 temp=P0;temp=temp&0xff;return(a); / 返回值可调转速void z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论