新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)串口通信控制步進(jìn)電機(jī)

單片機(jī)串口通信控制步進(jìn)電機(jī)

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
這是一個(gè)來(lái)自單片機(jī)開(kāi)發(fā)板的源程序,原理圖的下載地址:http://www.51hei.com/f/ks51.pdf

下面是源代碼:
/**
*************************************************************************************************
* @file main.c
* @author xr
* @date 2014年3月18日20:00:03
* @note 步進(jìn)電機(jī)的參數(shù):減速比:1:64步進(jìn)角:5.625/64 啟動(dòng)頻率:>=550 啟動(dòng)時(shí)間最?。?.08ms
* @brief 串口通信控制步進(jìn)電機(jī)單片機(jī)STC89C52RC MCU晶振11.0592MHZ
*************************************************************************************************
*/

#include

本文引用地址:http://m.butianyuan.cn/article/201612/324613.htm

typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned long ulong;

//步進(jìn)電機(jī)八拍模式相值編碼 A-AB-B-BC-C-CD-D-DA
uchar code table[] = {
0xE, 0xC, 0xD, 0x9, 0xB, 0x3, 0x7, 0x6
};
uint tmp = 0;
bit dir = 0;
ulong beats = 0;//拍數(shù)
uchar angle = 0;//圈數(shù)

void timer0_Config();
void motor_Config(ulong angle);
void Uart_Config(uint baud);

void main()
{
timer0_Config();//啟動(dòng)時(shí)間設(shè)定為2ms
Uart_Config(9600);
while (1)
{
switch (angle)
{
case 2:
{
motor_Config(2*360);
angle = 0;
break;
}
case 3:
{
motor_Config(3*360);
angle = 0;
break;
}
case 4:
{
motor_Config(4*360);
angle = 0;
break;
}
case 5:
{
motor_Config(5*360);
angle = 0;
break;
}
case 6:
{
motor_Config(6*360);
angle = 0;
break;
}
case 7:
{
motor_Config(7*360);
angle = 0;
break;
}
case 8:
{
motor_Config(8*360);
angle = 0;
break;
}
case 9:
{
P1 |= 0x0F;
beats = 0;
angle = 0;
break;
}
default:
break;
}
}
}


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉