步进电机调速控制系统设计
C语言程序及说明
使用元器件:
单片机8051、步进电机17H185H-04A、128细分/3。0A步进电机驱动器、LED显示器。
实现控制功能:
以8051单片机为控制器,系统设四个按键:“工作/停止按键”、“加速按键"、“减速按键”、“正反向控制按键".系统上电后,按下“正反向控制按键”,控制电机正反转;每按一次“加速按键”后,步进电机由低向高加速一级,每按一次“减速按键”后,由高向低减速一级;按“工作/停止按键”后,电机停止转动,(以实际转速或等级表示).
程序清单及说明
#include<reg52。h>
sbit EN=P2^0; ﻩ //使能输出
sbit DIR=P2^1; ﻩ//方向控制
sbit PWM=P2^2; ﻩ//PWM输出
sbit zled=P2^6;ﻩﻩ//正转信号灯
sbit fled=P2^7;ﻩﻩ//反转信号灯
sbit sw1=P0^0;ﻩ //启停按钮
sbit sw2=P0^1;ﻩ //正反转按钮
sbit sw3=P0^2; //加速按钮
sbit sw4=P0^3;ﻩ //减速按钮
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;
void delay() //延时10ms
{
for(i=20;i>0;i——)
for(j=248;j〉0;j—-);
}
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=table[speed]; //启停
if(sw1==0) //判断启停键按下
ﻩ {
ﻩ delay(); //调用延时程序
ﻩ if(sw1==0) //再判断,启停键按下
{
while(sw1==0); //启停键按下,使能端取反
EN=~EN;
}
ﻩ }
ﻩ//正反转子程序
ﻩif(sw2==0) //判断换向键是否按下
ﻩ {
delay(
步进电机调速控制系统设计C语言程序及说明 来自淘豆网www.taodocs.com转载请标明出处.