步进电机调速控制系统设计C语言程序及说明.docx

上传人:牧羊曲112 文档编号:3603671 上传时间:2023-03-14 格式:DOCX 页数:4 大小:37.50KB
返回 下载 相关 举报
步进电机调速控制系统设计C语言程序及说明.docx_第1页
第1页 / 共4页
步进电机调速控制系统设计C语言程序及说明.docx_第2页
第2页 / 共4页
步进电机调速控制系统设计C语言程序及说明.docx_第3页
第3页 / 共4页
步进电机调速控制系统设计C语言程序及说明.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《步进电机调速控制系统设计C语言程序及说明.docx》由会员分享,可在线阅读,更多相关《步进电机调速控制系统设计C语言程序及说明.docx(4页珍藏版)》请在三一办公上搜索。

1、步进电机调速控制系统设计C语言程序及说明步进电机调速控制系统设计 C语言程序及说明 使用元器件: 单片机8051、步进电机17H185H-04A、128细分/3.0A步进电机驱动器、LED显示器。 实现控制功能: 以8051单片机为控制器,系统设四个按键:“工作/停止按键”、“加速按键”、“减速按键”、“正反向控制按键”。系统上电后,按下“正反向控制按键”,控制电机正反转;每按一次“加速按键”后,步进电机由低向高加速一级,每按一次“减速按键”后,由高向低减速一级;按“工作/停止按键”后,电机停止转动,系统回到等待状态。同时需要显示运行状态和转速。 程序清单及说明 #include sbit E

2、N=P20; sbit DIR=P21; sbit PWM=P22; sbit zled=P26; sbit fled=P27; sbit sw1=P00; sbit sw2=P01; sbit sw3=P02; sbit sw4=P03; /使能输出 /方向控制 /PWM输出 /正转信号灯 /反转信号灯 /启停按钮 /正反转按钮 /加速按钮 /减速按钮 unsigned char table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; unsigned char i,j,k,temp=0,zkb=5,zkb1=0,speed=0; v

3、oid delay /延时10ms for(i=20;i0;i-) void InitTimer0(void) /T0定时器初始化 TMOD = 0x00; /设置定时器方式0 TH0 = 0xef; /高8位送初值 TL0 = 0xdd; /低8位送初值 EA = 1; /开中断总允许 ET0 = 1; /开T0中断允许 TR0 = 1; /启动T0开始定时 void main /主程序 InitTimer0; EN=1; /初始使能端输出0 DIR=1; /方向端输出1 zled=0; /正传信号灯端口输出0,灯亮 fled=1; /反转信号灯输出1,灯不亮 while(1) P1=tab

4、lespeed; /启停 for(j=248;j0;j-); if(sw1=0) /判断启停键按下 delay; /调用延时程序 if(sw1=0) /再判断,启停键按下 while(sw1=0); /启停键按下,使能端取反 EN=EN; /正反转子程序 if(sw2=0) /判断换向键是否按下 delay; if(sw2=0) while(sw2=0); DIR=DIR; /换向键按下,方向端口取反 fled=fled; /正传指示灯控制端取反 zled=zled; /反转传指示灯控制端取反 /加速子程序 if(sw3=0) /判断加速键是否按下 delay; if(sw3=0) while

5、(sw3=0); /加速键按下 if(speed=5) /判断转速是否大于5 speed=5; /大于5,保持5级转速 else speed+; /小于5,加速一级 /减速子程序 if(sw4=0) /判断减速键是否按下 delay; if(sw4=0) while(sw4=0); /减速键按下 if(speed=1) /转速为1,保持1级转速 speed=1; else speed-; /转速不为1,减速1级 void Timer0Interrupt(void) interrupt 1 switch(speed) /加减速按键按下,对应选择T0初值,进入终端产生不同频率脉冲 TL0 = 0xdd; if(zkb1=10) zkb1=0; case 1:TH0=0XDD;break; case 2:TH0=0XE1;break; case 3:TH0=0XE5;break; case 4:TH0=0XEa;break; case 5:TH0=0xf0;break; zkb1+; if(zkb1=5) PWM=1; else PWM=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号