51单片机控制步进电机硬件图及C语言编程(共12页)_第1页
51单片机控制步进电机硬件图及C语言编程(共12页)_第2页
51单片机控制步进电机硬件图及C语言编程(共12页)_第3页
51单片机控制步进电机硬件图及C语言编程(共12页)_第4页
51单片机控制步进电机硬件图及C语言编程(共12页)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、51单片机控制步进电机硬件图#include /51芯片管脚定义头文件#include /内部包含延时函数 _nop_();#include#define uchar unsigned char#define uint unsigned intuchar code FFW8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /四相八拍正转编码uchar code REV8=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01; /四相八拍反转编码sbit P14=P14; /将P14位定义为P1.4引脚sbit P15=P15; /将P

2、15位定义为P1.5引脚sbit P16=P16; /将P16位定义为P1.6引脚sbit P17=P17; /将P17位定义为P1.7引脚sbit P20=P20;/将P20位定义为P2.0引脚sbit P21=P21;/将P21位定义为P2.1引脚sbit P22=P22;/将P22位定义为P2.2引脚sbit P23=P23;/将P23位定义为P2.3引脚sbit P24=P24; /将P24位定义为P2.4引脚sbit P25=P25; /将P25位定义为P2.5引脚sbit P26=P26; /将P26位定义为P2.6引脚sbit P27=P27; /将P27位定义为P2.7引脚sb

3、it P34=P34; /将P34位定义为P3.4引脚sbit P35=P35; /将P35位定义为P3.5引脚sbit P36=P36; /将P36位定义为P3.6引脚sbit P37=P37; /将P37位定义为P3.7引脚sbit P30=P30; /将P30位定义为P3.0引脚sbit P31=P31; /将P31位定义为P3.1引脚sbit BEEP=P32; /蜂鸣器bit on=0; bit off=1; /运行与停止标志bit zdirection=0; /方向标志bit fdirection=0; /方向标志uchar h,l,k;/定义行键值/定义列键值uchar idat

4、a count3; /0-9数值储存unsigned char code Tab =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /数字09的段码uchar keyval=0; /定义变量储存按键值uchar dat=0; /按键值uint run_i=0;uchar count_i=0;uint run=0;/需要运行的步数uint drun=0; /当前运行的步数bit flag; uint x=60;uint y=60;uint z=0;/*uint k=0; /调速按键次 */ /*/void led_delay1(void) u

5、nsigned char j;for(j=0;j52;j+) ; void beep() uchar j; for (j=0;j200;j+) led_delay1(); BEEP=!BEEP; /BEEP取反 BEEP=1; /关闭蜂鸣器 /*函数功能:数码管动态扫描延时*/void led_delay(void) unsigned char j;for(j=0;j200;j+) ; /*/*函数功能:软件延时去抖动子程序*/ void delay20ms(void) unsigned char i,j;for(i=0;i70;i+) for(j=0;j=0)&(dat=9)&(on=0)&

6、(off=1) countcount_i=dat;if(count0!=0)count_i+;if(count_i=3)&(on=0)&(off=1)count_i=0;if(count_i=0)&(on=0)&(off=1) if(count0=0)run=0; else run=count0*100+count1*10+count2;if(count_i=1)&(on=0)&(off=1)run=count0;if(count_i=2)&(on=0)&(off=1) run=count0*10+count1; if(dat=0)&(on=1)off=1;if(dat=16);flag=0;

7、 /*if(run!=0)*/ ddisplay(drun); dddisplay(); display(run);/* */ /调用按键值的数码管显示子程序if(run=drun)&run!=0)on=0;off=1;beep(); drun=0; run=0;count0=0; /显示清零count1=0;count2=0;count_i=0; /* 外部中断键盘扫描键值保存在dat中 */ void Interrupt1() interrupt 2 using 3 flag=1; /*/ void Interrupt2() interrupt 1 using 1 TR0=0; EX1=1

8、; TH0=0xec; TL0=0x78; x-; if(x=0) if(zdirection=1)&(fdirection=0)&(on=1)&(off=0)P1=FFWrun_i;fdirection=0; led_delay(); /动态扫描延时 led_delay(); /动态扫描延时 led_delay(); /动态扫描延时 led_delay(); /动态扫描延时 drun+;run_i+;if(run_i=8)run_i=0;if(run=drun)on=0;off=1; if(zdirection=0)&(fdirection=1)&(on=1)&(off=0)P1=REVrun_i; led_delay(); /动态扫描延时 led_delay(); /动态扫描延时 led_delay(); /动态扫描延时

温馨提示

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

评论

0/150

提交评论