51控制步进电机并显示转速

51控制步进电机并显示转速

ID:8801679

大小:30.00 KB

页数:4页

时间:2018-04-08

51控制步进电机并显示转速_第1页
51控制步进电机并显示转速_第2页
51控制步进电机并显示转速_第3页
51控制步进电机并显示转速_第4页
资源描述:

《51控制步进电机并显示转速》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、#include#defineucharunsignedchar#defineuintunsignedintsbitdua=P2^6;//定义锁存使能端口段锁存sbitwei=P2^7;//位锁存ucharshi,ge;unsignedcharcodetabledua[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9unsignedcharcodetablewei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf

2、,0xbf,0x7f};//分别对应相应的数码管点亮,即位码unsignedcharTempData[8];//存储显示值的全局变量sbitA1=P1^0;//定义步进电机连接端口sbitB1=P1^1;sbitC1=P1^2;sbitD1=P1^3;#defineCoil_AB1{A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电#defineCoil_BC1{A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电#defineCoil_CD1{A1=0;B1=0;C1=1;D1=1;}//CD

3、相通电,其他相断电#defineCoil_DA1{A1=1;B1=0;C1=0;D1=1;}//D相通电,其他相断电#defineCoil_A1{A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电#defineCoil_B1{A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电#defineCoil_C1{A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电#defineCoil_D1{A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电#defineCoil_OFF{A

4、1=0;B1=0;C1=0;D1=0;}//全部断电unsignedcharSpeed;voidDisplay(unsignedcharFirstBit,unsignedcharNum);voidinit();voiddelay(uintz){uintx,y;for(x=20;x>0;x--)for(y=z;y>0;y--);}voidmain(){unsignedinti=512;//旋转一周时间init();//EA=1;//全局中断开//EX0=1;//外部中断0开//IT0=1;//1表示边沿触发Speed=3;shi=

5、Speed/10;ge=Speed%10;wei=1;P0=tablewei[0];wei=0;dua=1;P0=tabledua[shi];dua=0;delay(5);wei=1;P0=tablewei[1];wei=0;dua=1;P0=tabledua[ge];dua=0;delay(5);//TempData[0]=dofly_DuanMa[Speed/10];//分解显示信息,如要显示68,//TempData[1]=dofly_DuanMa[Speed%10];//则68/10=668%10=8Coil_OFFwh

6、ile(i--)//正向{Coil_A1delay(Speed);Coil_AB1//遇到Coil_AB1用{A1=1;B1=1;C1=0;D1=0;}代替delay(Speed);//改变这个参数可以调整电机转速,//数字越小,转速越大,力矩越小Coil_B1delay(Speed);Coil_BC1delay(Speed);Coil_C1delay(Speed);Coil_CD1delay(Speed);Coil_D1delay(Speed);Coil_DA1delay(Speed);}}voidinit(){TMOD

7、=0

8、x01;TH0=(65536-20000)/256;TL0=(65536-20000)%256;//使用模式1,16位定时器,使用"

9、"符号可以在使用多个定时器时不受影响EA=1;//总中断打开ET0=1;//定时器中断打开TR0=1;//定时器开关打开PT0=1;//优先级打开}/*------------------------------------------------定时器中断子程序------------------------------------------------*/voidTimer0()interr

10、upt1{Speed++;if(Speed==50){Speed=3;shi=Speed/10;ge=Speed%10;wei=1;P0=tablewei[0];wei=0;dua=1;P0=tabledua[shi];dua=0;delay(5);wei=1;

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

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

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