?? moter.c
字號:
/******************************************************************/
/*****************************************************************/
/*
/* 步進電機加減速運行程序
/* 步進電機啟動時,轉速由慢到快逐步加速。
/* 步進電機勻速運行
/* 步進電機由快到慢逐步減速到停止
/*
/******************************************************************/
#include <reg52.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
uchar code FFW[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正轉數組
uchar code REV[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//反轉數組
uchar rate ;
/********************************************************/
/*
/* 延時
/* 11.0592MHz時鐘,
/*
/********************************************************/
void delay()
{
uchar k;
uint s;
k = rate;
do
{
for(s = 0 ; s <100 ; s++) ;
}while(--k);
}
void delay2(uchar k)
{
uchar s;
for(s = 0 ; s <k ; s++) ;
}
/********************************************************/
/*
/*步進電機正轉
/*
/********************************************************/
void motor_ffw()
{
uchar i;
for (i=0; i<8; i++) //一個周期轉30度
{
P0 = FFW[i];//取數據
delay(); //調節轉速
}
}
/********************************************************/
/*
/*步進電機反轉
/*
/********************************************************/
void motor_rev()
{
uchar i;
for (i=0; i<8; i++) //一個周期轉30度
{
P0 = REV[i]; //取數據
delay(); //調節轉速
}
}
/********************************************************
*
*步進電機運行
*
*********************************************************/
void motor_turn()
{
uchar x;
rate=0x30;//轉動速度,越小越快
x=0xf0;//同一速度運行時間
do
{
motor_ffw(); //正轉加速
rate--;
}while(rate!=0x0a);
do
{
motor_ffw(); //正轉勻速
x--;
}while(x!=0x01);
do
{
motor_ffw(); //正轉減速
rate++;
}while(rate!=0x30);
do
{
motor_rev(); //反轉加速
rate--;
}while(rate!=0x0a);
do
{
motor_rev(); //反轉勻速
x--;
}while(x!=0x01);
do
{
motor_rev(); //反轉減速
rate++;
}while(rate!=0x30);
}
/********************************************************
*
* 主程序
*
*********************************************************/
main()
{
P0=0xf0;
while(1)
{
P0 = 0x00;//ULN2003輸出高電平
delay2(255);
motor_turn();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -