欢迎来到天天文库
浏览记录
ID:55169888
大小:17.00 KB
页数:5页
时间:2020-04-30
《步进电机驱动电路设计.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、步进电机调速控制系统设计C语言程序及说明使用元器件:单片机8051、步进电机17H185H-04A、128细分/3.0A步进电机驱动器、LED显示器。实现控制功能:以8051单片机为控制器,系统设四个按键:“工作/停止按键”、“加速按键”、“减速按键”、“正反向控制按键”。系统上电后,按下“正反向控制按键”,控制电机正反转;每按一次“加速按键”后,步进电机由低向高加速一级,每按一次“减速按键”后,由高向低减速一级;按“工作/停止按键”后,电机停止转动,系统回到等待状态。同时需要显示运行状态和转速(以实际转速或等
2、级表示)。程序清单及说明#includesbitEN=P2^0;//使能输出sbitDIR=P2^1;//方向控制sbitPWM=P2^2;//PWM输出sbitzled=P2^6;//正转信号灯sbitfled=P2^7;//反转信号灯sbitsw1=P0^0;//启停按钮sbitsw2=P0^1;//正反转按钮sbitsw3=P0^2;//加速按钮sbitsw4=P0^3;//减速按钮unsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x
3、82,0xF8,0x80,0x90};unsignedchari,j,k,temp=0,zkb=5,zkb1=0,speed=0;voiddelay()//延时10ms{for(i=20;i>0;i--)for(j=248;j>0;j--);}voidInitTimer0(void)//T0定时器初始化{TMOD=0x00;//设置定时器方式0TH0=0xef;//高8位送初值TL0=0xdd;//低8位送初值EA=1;//开中断总允许ET0=1;//开T0中断允许TR0=1;//启动T0开始定时}voidma
4、in()//主程序{InitTimer0();EN=1;//初始使能端输出0DIR=1;//方向端输出1zled=0;//正传信号灯端口输出0,灯亮fled=1;//反转信号灯输出1,灯不亮while(1){P1=table[speed];//启停if(sw1==0)//判断启停键按下{delay();//调用延时程序if(sw1==0)//再判断,启停键按下{while(sw1==0);//启停键按下,使能端取反EN=~EN;}}//正反转子程序if(sw2==0)//判断换向键是否按下{delay();if
5、(sw2==0){while(sw2==0);DIR=~DIR;//换向键按下,方向端口取反fled=~fled;//正传指示灯控制端取反zled=~zled;//反转传指示灯控制端取反}}//加速子程序if(sw3==0)//判断加速键是否按下{delay();if(sw3==0){while(sw3==0);//加速键按下if(speed>=5)//判断转速是否大于5speed=5;//大于5,保持5级转速elsespeed++;//小于5,加速一级}}//减速子程序if(sw4==0)//判断减速键是否按
6、下{delay();if(sw4==0){while(sw4==0);//减速键按下if(speed==1)//转速为1,保持1级转速speed=1;elsespeed--;//转速不为1,减速1级}}}}voidTimer0Interrupt(void)interrupt1switch(speed)//加减速按键按下,对应选择T0初值,进入终端产生不同频率脉冲{case1:TH0=0XDD;break;case2:TH0=0XE1;break;case3:TH0=0XE5;break;case4:TH0=0X
7、Ea;break;case5:TH0=0xf0;break;}TL0=0xdd;if(zkb1>=10)zkb1=0;zkb1++;if(zkb1<=5)PWM=1;elsePWM=0;}
此文档下载收益归作者所有