首页 步进电机的单片机控制

步进电机的单片机控制

举报
开通vip

步进电机的单片机控制用MCS-51系列单片机作为控制器;采用两相双极性步进电机为控制对象;采用L297/298驱动芯片为步进电机驱动器;用加速、减速、正转、反转4个键进行相应的控制;用LCD显示步进的电机的工作状态。主程序:#include"LCD1602.h"sbits1=P1^0;//定义键与51单片机连接的引脚sbits2=P1^1;sbits3=P1^2;sbits4=P1^3;sbitP3_6=P3^6;sbitP3_7=P3^7;ucharSpeed;ucharSPEEDdis[4];//存放转换成液晶显示字符(ASIIC...

步进电机的单片机控制
用MCS-51系列单片机作为控制器;采用两相双极性步进电机为控制对象;采用L297/298驱动芯片为步进电机驱动器;用加速、减速、正转、反转4个键进行相应的控制;用LCD显示步进的电机的工作状态。主程序:#include"LCD1602.h"sbits1=P1^0;//定义键与51单片机连接的引脚sbits2=P1^1;sbits3=P1^2;sbits4=P1^3;sbitP3_6=P3^6;sbitP3_7=P3^7;ucharSpeed;ucharSPEEDdis[4];//存放转换成液晶显示字符(ASIIC)的数组voiddelayms(uintx)//延时子函数{uchari,j;for(i=x;i--;i>0)for(j=0;j<110;j++);}voiddisspeed()//显示子程序{unsignedchars=1000*8/Speed;SPEEDdis[0]=s/100+0x30;SPEEDdis[1]=s%100/10+0x30;SPEEDdis[2]=s%100%10+0x30;SPEEDdis[3]='\0';//最后一个字符是回车符号LCD_Prints(1,0,SPEEDdis);}voidmain(){IT0=1;EA=1;//开总中断EX0=1;//开外部中断0中断LCD_Initial();//初始化液晶while(1){delayms(Speed);P3_7=~P3_7;}}voidint0()interrupt0//按键中断{if(s1==0){if(Speed>50)//加速Speed=Speed-10;elseSpeed=50;s4=1;s2=1;s3=1;disspeed();}if(s2==0)//减速{if(Speed<150)Speed=Speed+10;elseSpeed=150;s1=1;s3=1;s4=1;disspeed();}if(s3==0){P3_6=1;//正转s1=1;s2=1;s4=1;LCD_Prints(5,1,"zhengzhuan");}if(s4==0){P3_6=0;//反转s1=1;s2=1;s3=1;LCD_Prints(5,1,"fanzhuan");}}LCD程序:#include#include//此头文件定义有_nop_()函数#include"LCD1602.h"ucharLCD_Wait(){LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();LcdEn=0;returnDBPort;}#defineLCD_COMMAND0//命令#defineLCD_DATA1//数据#defineLCD_CLEAR_SCREEN0x01//清屏#defineLCD_HOMING0x02//光标返回点voidLCD_Write(bitstyle,ucharinput){LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();LcdEn=1;_nop_();LcdEn=0;_nop_();LCD_Wait();}#defineLCD_SHOW0x04//显示开#defineLCD_HIDE0x00//显示关#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//光标闪动#defineLCD_NO_FLASH0x00//光标不闪动voidLCD_SetDisplay(ucharDisplayMode){LCD_Write(LCD_COMMAND,0x08|DisplayMode);}#defineLCD_AC_UP0x02//地址计数器递增的方式#defineLCD_AC_DOWN0x00//为缺省设置#defineLCD_MOVE0x01//画面可平移#defineLCD_NO_MOVE0x00//画面不可平移voidLCD_SetInput(ucharInputMode){LCD_Write(LCD_COMMAND,0x04|InputMode);}voidLCD_Initial(){LcdEn=0;LCD_Write(LCD_COMMAND,0x38);//8位数据端口,2行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);//此句不能省LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//开启显示,无光标LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);//AC递增,画面不动}voidLCD_Pos(ucharx,uchary){if(y==0)LCD_Write(LCD_COMMAND,0x80|x);if(y==1)LCD_Write(LCD_COMMAND,0x80|(x-0x40));}voidLCD_Prints(ucharx,uchary,uchar*str){LCD_Pos(x,y);while(*str!='\0'){LCD_Write(LCD_DATA,*str);str++;}}
本文档为【步进电机的单片机控制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
hyme16209
暂无简介~
格式:doc
大小:126KB
软件:Word
页数:6
分类:生活休闲
上传时间:2022-12-26
浏览量:0