单片机实验 步进电机控制_第1页
单片机实验 步进电机控制_第2页
单片机实验 步进电机控制_第3页
单片机实验 步进电机控制_第4页
全文预览已结束

下载本文档

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

文档简介

实验七步进电机控制实验目的了解步进电机控制的基本原理掌握步进电机转动编程方法实验说明步进电机的基本原理:步进电机是一种静电脉冲信号转换成相应角位移或是线位移的电磁机械装置。在没有超出负载的情况下,它能在一瞬间实现启动和停止。步进电机的转动速度只取决于外加脉冲信号的频率和脉冲数,而不受负载变化的影响。例如,给步进电机施加一个脉冲信号,步进电动机就会转过一个歩距角。步进电机既能控制转动方向也能控制转动速度。步进电机的驱动脉冲:步进电动机通过控制输入电流形成一个旋转磁场而工作,旋转磁场可以由1相励磁,2相励磁,3相励磁和5相励磁等方式产生。本次实验使用时小型2相励磁步进电动机有两组励磁线圈是和。应用时只需要在两组线圈的4个端口分别输入规定的环形脉冲信号(通过控制单片机的P0.0、P0.1、P0.2和P0.3这四个引脚的高低电平),就可以制定步进电动机的转动方向。2相励磁步进电机步数P0.0P0.1P0.2P0.3P0AB正转环形脉冲分配111000xfc201100xf6300110xf3410010xf9反转环形脉冲分配111000xfc210010xf9300110xf3401100xf6本次实验使用独立式键盘控制小型2相励磁步进电机,要求按下S1键,步进电机正传;按下S2键,步进电机反转;按下S3键,步进电机停转。绘制仿真原理图时,步进电机选用“MOTOR-STEPPER”,功率放大集成电路选用“ULN2003A”,逻辑部件选用“74LS04”。实验步骤先建立文件夹“ex7”,然后建立“ex7”工程项目,最后建立源程序文件“ex7.c”,输入如下源程序;//独立式键盘控制步进电机实验#include<reg51.h>//包含51单片机寄存器定义的头文件sbitS1=P1^4;//将S1位定义为P1.4引脚sbitS2=P1^5;//将S2位定义为P1.5引脚sbitS3=P1^6;//将S3位定义为P1.6引脚unsignedcharkeyval;//储存按键值unsignedcharID;//储存功能标号/*软件消抖延时(约50ms)*/voiddelay(void){unsignedchari,j; for(i=0;i<150;i++) for(j=0;j<100;j++);}/*步进电机转动延时,延时越长,转速越慢*/voidmotor_delay(void){unsignedinti;for(i=0;i<2000;i++);}/*步进电机正转*/voidforward(){ P0=0xfc;//P0口低四位脉冲1100 motor_delay(); P0=0xf6;//P0口低四位脉冲0110 motor_delay(); P0=0xf3;//P0口低四位脉冲0011 motor_delay(); P0=0xf9;//P0口低四位脉冲1001 motor_delay();}/*步进电机反转*/voidbackward(){ P0=0xfc;//P0口低四位脉冲1100 motor_delay(); P0=0xf9;//P0口低四位脉冲1001 motor_delay(); P0=0xf3;//P0口低四位脉冲0011 motor_delay(); P0=0xf6;//P0口低四位脉冲0110 motor_delay();}/*步进电机停转*/voidstop(void){P0=0xff;//停止输出脉冲}/*主函数*/voidmain(void){TMOD=0x01;//使用定时器T0的模式1EA=1;//开总中断ET0=1;//定时器T0中断允许TR0=1;//启动定时器T0TH0=(65536-500)/256;//定时器T0赋初值,每计数200次(217微秒)发送一次中断请求TL0=(65536-500)%256;//定时器T0赋初值keyval=0;//按键值初始化为0,什么也不做ID=0;while(1) { switch(keyval)//根据按键值keyval选择待执行的功能 { case1:forward();//按键S1按下,正转 break; case2:backward();//按键S2按下,反转 break; case3:stop();//按键S3按下,停转 break; } }}/*定时器T0的中断服务子程序:键盘扫描程序*/voidTime0_serve(void)interrupt1using1{TR0=0;//关闭定时器T0if((P1&0xf0)!=0xf0)//第一次检测到有键按下 { delay();//延时一段时间再去检测 if((P1&0xf0)!=0xf0)//确实有键按下 { if(S1==0)//按键S1被按下 keyval=1; if(S2==0)//按键S2被按下 keyval=2; if(S3==0)//按键S3被按下 keyval=3; } } TH0=(65536-200)/256;//定时器T0的高8位赋初值TL0=(65536-200)%256;//定时器T0的低8位赋初值TR0=1;//启动定时器T0}用Proteus软件仿真经过Keil软件编译通过后,可利用Proteus软件仿真。在ProteusISIS编辑环境中绘制仿真电路图。打开

温馨提示

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

最新文档

评论

0/150

提交评论