<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機控制步進(jìn)電機系統

單片機控制步進(jìn)電機系統

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò ) 收藏
學(xué)習了單片機在的基本輸入輸出和在數據采集領(lǐng)域的應用,接著(zhù)學(xué)習了單片機在控制領(lǐng)域的應用。在控制系統中,通常要控制機械部件的平移和轉動(dòng),這些機械部件的驅動(dòng)大都采用交流電機、直流電機和步進(jìn)電機等,其中步進(jìn)電機最適合與數字控制。因此在了解單片機在控制系統中的應用時(shí),首先了解了單片機控制步進(jìn)電機的設計。

本文引用地址:http://dyxdggzs.com/article/201611/315965.htm

主要器件:

1、AT89C52單片機芯片,用與接受鍵盤(pán)輸入和控制步進(jìn)電機。

2、4相步進(jìn)電機驅動(dòng)芯片STK672-040,內含有硬件脈沖分配電路和功率驅動(dòng)動(dòng)能。

3、4×4行列式鍵盤(pán)。

試驗流程圖:



試驗電路圖:

試驗程序代碼:
//Stepper.h程序

#ifndef_STEPPER_H//防止Stepper.h被重復引用

#define_STEPPER_H

#include

#define uchar unsigned char

#define uint unsigned int

#define T 10000// 10ms定時(shí)常量宏定義

sbit M1=P2^0;

sbit M2=P2^1;

sbit M4=P2^2;

sbit M5=P2^3;

sbit EN=P2^4;

sbit CWB=P2^5;

sbit RET=P2^6;

sbit CLK=P2^7;

#endif

//Stepper.c程序

#include "Stepper.h"

/*定時(shí)器0服務(wù)子程序*/

void time0() interrupt 1 using 1//用定時(shí)器0中斷來(lái)產(chǎn)生CLK時(shí)鐘

{

/*定時(shí)10ms,產(chǎn)生20ms周期的時(shí)鐘,也就是50Hz的時(shí)鐘*/

TH0 = -T/256;

TL0 = -T%256;

CLK = ~CLK;

}

/*鍵消抖延時(shí)函數*/

void delay(void)

{

uchar i;

for (i=300;i>0;i--);

}

/*鍵掃描函數*/

uchar keyscan(void)

{

uchar scancode,tmpcode;

P1 = 0xf0;//發(fā)全0行掃描碼

if ((P1&0xf0)!=0xf0)//若有鍵按下

{

delay();//延時(shí)去抖動(dòng)

if ((P1&0xf0)!=0xf0)//延時(shí)后再判斷一次,去除抖動(dòng)影響

{

scancode = 0xfe;

while((scancode&0x10)!=0)//逐行掃描

{

P1 = scancode;//輸出行掃描碼

if ((P1&0xf0)!=0xf0)//本行有鍵按下

{

tmpcode = (P1&0xf0)|0x0f;

/*返回特征字節碼,為1的位即對應于行和列*/

return((~scancode)+(~tmpcode));

}

else scancode = (scancode<<1)|0x01;//行掃描碼左移一位

}

}

}

return(0);//無(wú)鍵按下,返回值為0

}

/*主程序*/

void main()

{

uchar key;

TMOD = 0x01;//設置定時(shí)器0工作模式

EA = 1;

ET0 = 1;

/*設置為2相激勵*/

M1 = 0;

M2 = 0;

/*設置為環(huán)形轉向軌跡*/

M4 = 1;

M5 = 1;

EN = 0;//切斷驅動(dòng)輸出

RET = 0;//歸位輸入無(wú)效

CWB = 1;//初始設置為順時(shí)針?lè )较?/p>

while(1)

{

key = keyscan();//調用鍵盤(pán)掃描函數

switch(key)

{

case 0x11:// 0行0列,啟動(dòng)鍵

EN = 1;//打開(kāi)驅動(dòng)輸出

TH0 = -T/256;//改變T可以改變步進(jìn)電機轉動(dòng)速度

TL0 = -T%256;

TR0 = 1;//定時(shí)器0開(kāi)始計數

break;

case 0x21:// 0行1列,停止鍵

TR0 = 0;//定時(shí)器0停止計數

EN = 0;//切斷驅動(dòng)輸出

break;

case 0x41:// 0行2列,切換轉向按鍵

CWB = ~CWB;

break;

case 0x81:// 0行3列,歸位鍵

RET = 1;

delay();

RET = 0;

break;

default:break;

}

}

}



評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>