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 timerout 0 這裡的bit本質上和char int一樣的 功能一樣,型別不一樣 char是8位,int是16位,bit是1位。每個位元組是8位,就可以包含8個bit,bit只有兩個值,1和0.bit timerout 0 bit keypress 就是定義兩個長度為1位的變數。bit... 第一個是在主程式中設定的定時計數器中斷相關引數設定,tmod 0x10 設定定時計數器的工作方式為方式1 16為計數器 也就是計數範圍為 0 65536 th1 65536 200 256 tl1 65536 200 256 設定計數器的初值為 200.ea 1 開總中斷,et1 1 開定時計數器1... 微控制器學習方法 網上微控制器資料很多 你上csdn上找吧 那上面多的是 這個網上的太多了。你搜一下,有很多 的。這種東西多得很,你應該先搜搜再提問 急求郭天祥 新概念51微控制器c語言教程 入門 提高 開發 拓展全攻略 pdf 這是郭天祥這本書最完整的pdf,是整本的,不是一部分。望採納 從入門到...bit用法 微控制器C語言,51微控制器C語言裡面,定義bit的方法,有哪些,請舉例,謝謝!
求助微控制器c語言程式問題,求助 微控制器C語言程式問題
求51微控制器c語言教程 ,求51微控制器c語言教程 pdf