請求 微控制器控制步進電機C語言程式設計

2022-02-25 17:45:27 字數 1598 閱讀 8961

1樓:匿名使用者

你描述的要求不是很明瞭,應該分步描述,每一步的要求分步寫出來,大家容易看懂.

明白你的意思了!

只有兩個口控制步進電機的話,需要外加步進電機驅動器.

p1.0控制方向,p1.0是1(0)電機向前,p1.0是0(1)步進電機向後

p1.1控制步數和速度,用一個pwm就可以了,直接用定時器來控制.pwm頻率越高速度越快,但要用在定時器中斷裡面計算步進的步數來確定走了多遠.

至於你說的中斷訊號,可以用迴圈掃描的方法,在程式中掃描輸入中斷訊號,當檢測到訊號後改變p1.5的電平,即可點亮led

2樓:學術科技

一樓說的步進電機驅動器對外接需要一個時鐘,一個正反轉控制訊號,用這樣的晶片自然簡單,其實用微控制器自己產生步進電機驅動訊號也可以,之需要加電晶體驅動電路(加大驅動功率的作用),為了精確運動距離,首先得根據螺距算出要總共要轉過的角度(多少圈領多少個脈衝)

至於中斷訊號可以將其設定成下降沿觸發(電平觸發會導致多次相應),不進電機驅動訊號產生就用主函式中的主迴圈實現(設定好迴圈次數等固定資訊)。

求微控制器控制步進電機簡單的c程式

3樓:瑞嫚書香天

幾相的步進電機啊?用不用驅動晶片?用的話選什麼型號的驅動晶片?你要說具體點啊!

先給你三相的,個不用驅動晶片的步進電機程式。(驅動電路自己做)#include

#define

uchar

unsigned

char

#define

uint

unsigned

intuint

time

void

timer1(void)

interrupt

1using

1void

delay(uint

n)void

delay(uint

dtime)

void

moto(bit

cf,uchar

n,uint

dtime);

uchar

idata

fpai[4]=;

uchar

i,l=0;

if(cf==0)

//正轉,a-b-c-a

for(i=0;i

else}}

void

main()

}改為四相了,你看看吧。不懂再問吧。

4樓:神經火光

給你一段簡單的程式**,控制步進電機的,不過你要好好看看程式的編寫,以適應你的硬體(主要是連線),你可以在實現這個的基礎上實現你所說的目標,個人覺得你參考這個程式然後自己實現你所說的功能比較好:

#include

unsigned char code f_rotation[4]=;//正轉**

unsigned char code b_rotation[4]=;//反轉**

void delay(unsigned int i)//延時main()}}

5樓:

讓步進電機一秒轉幾圈不大可能

bit用法 微控制器C語言,51微控制器C語言裡面,定義bit的方法,有哪些,請舉例,謝謝!

bit timerout 0 這裡的bit本質上和char int一樣的 功能一樣,型別不一樣 char是8位,int是16位,bit是1位。每個位元組是8位,就可以包含8個bit,bit只有兩個值,1和0.bit timerout 0 bit keypress 就是定義兩個長度為1位的變數。bit...

求助微控制器c語言程式問題,求助 微控制器C語言程式問題

第一個是在主程式中設定的定時計數器中斷相關引數設定,tmod 0x10 設定定時計數器的工作方式為方式1 16為計數器 也就是計數範圍為 0 65536 th1 65536 200 256 tl1 65536 200 256 設定計數器的初值為 200.ea 1 開總中斷,et1 1 開定時計數器1...

求51微控制器c語言教程 ,求51微控制器c語言教程 pdf

微控制器學習方法 網上微控制器資料很多 你上csdn上找吧 那上面多的是 這個網上的太多了。你搜一下,有很多 的。這種東西多得很,你應該先搜搜再提問 急求郭天祥 新概念51微控制器c語言教程 入門 提高 開發 拓展全攻略 pdf 這是郭天祥這本書最完整的pdf,是整本的,不是一部分。望採納 從入門到...