步进电机源程序

步进电机源程序

ID:37550822

大小:46.00 KB

页数:7页

时间:2019-05-25

步进电机源程序_第1页
步进电机源程序_第2页
步进电机源程序_第3页
步进电机源程序_第4页
步进电机源程序_第5页
资源描述:

《步进电机源程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/***************************************************************************程序功能:通过遥控控制步进电机转动的圈数作者:Sun制作日期:2011年7月16日相关说明:采用uPD6121G芯片发射码格式,用单片机AT89S52实现解码晶振频率:11.0592MHz,步进电机为28BYJ-48在数码管上同步显示当前转动的圈数***************************************************************************/#include

2、eg51.h>//51芯片管脚定义头文件#include//内部包含延时函数_nop_()#defineucharunsignedchar#defineuintunsignedintucharcodeFFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转相序编码ucharcodeREV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转相序编码ucharcodeYK_code[]={0xfc,0xf8,0xf4,0xf0,0xec,0xe8,0x

3、e4,0xe0,0xdc,0xd8};//遥控器解码对应的编码“0-9”ucharcodes8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管显示“0-9”ucharcodePM[2]={0xff,0xbf};//数码管显示正反转ucharcodeSW[2]={0xbf,0x7f};//数码管位显示sbitIR=P3^2;//定义红外接收器控制端口sbitBEEP=P3^6;//定义蜂鸣器控制端口uintLowTime,HighTime;//储存高低电平宽度uchara[4];//储存四位用

4、户码和数据码ucharkey=10;//储存检测到的键值,预先置为无效位ucharcount=1;//数码管显示转动圈数的计数标识位bitflag=0;//正转反转的标志位bitwbs=0;//数码管显示位的标识位/**************************************************函数功能:实现n毫秒延时入口参数:n**************************************************/voiddelaynms(uinti){ucharj;while(i--){for(j=0;j<114;j++)//1

5、ms基准延时程序{;}}}/**************************************************函数功能:蜂鸣器发出响声**************************************************/voidbeep(void){uchari;for(i=0;i<80;i++){BEEP=~BEEP;delaynms(1);//延时}BEEP=1;//关闭蜂鸣器}/**************************************************函数功能:步进电机正转并在数码管上显示出来****

6、**********************************************/voidmotor_ffw(void){uchari,j;for(j=0;j<8;j++)//内部转轴转一圈{if(wbs==0)//控制数码管显示P0=PM[flag];elseP0=s8[count];P2=SW[wbs];wbs=~wbs;for(i=0;i<8;i++)//一个周期转四十五度{P1=FFW[i];//取数据delaynms(1);//调整速度}P2=0xff;}}/*******************************************

7、*******函数功能:步进电机反转并在数码管上显示出来**************************************************/voidmotor_rev(void){uchari,j;for(j=0;j<8;j++)//内部转轴转一圈{if(wbs==0)//控制数码管显示P0=PM[flag];elseP0=s8[count];P2=SW[wbs];wbs=~wbs;for(i=0;i<8;i++)//一个周期转四十五度{P1=REV[i];//取数据delaynms(1);//调整速度}P2=0xff;}}/*********

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。