html模版



立即點擊


標題

急~~! 關於步進馬達程式 20點


問題


各位大大您好在下想要做一個8051步進馬達控制的電路目前照著課本作但課本提供的程式似乎有問題IO埠不會輸出信號(自己手動輸出信號可以動作)想請各位大大提供P2.0~P2.3會輪流輸出1的程式(EX:0001>0010>0100>1000)轉200次後(迴圈25次後)在反轉同樣200次(也就是步進馬達正轉一圈後再反轉一圈)拜託各位大大們幫忙一下因為目前確定是課本提供的程式有錯但自己又不知道要怎麼改而且時間不多所以很急需要用以上懇請大大們幫忙了


最佳解答


我在猜你們的達零頓推動電流可能不夠 還是你們直接用8051輸出直接輸出到步進馬達?? START: MOV R0,#0 ;R0=#0,步進數 MOV R1,#00000001B ;R1=#00000001B,單相推動線 LOOP: MOV P2,R1 ;P0=R1,推動步進馬達 MOV A,R1 ;A=R1 RL A ;A=A<-A,左移一位 CJNE A,#00010000B,NEXT1 ;若A<>#00010000B,則跳至NEXT1 MOV A,#00000001B ;A=#00000001B NEXT1: MOV R1,A ;R1=A,得新單相推動線 ACALL DELAY10MS ;呼叫延遲10毫秒 INC R0 ;R0=R0+1 CJNE R0,#201,LOOP ;若R0<>N+1,則跳至LOOP S2: MOV R0,#0 ;R0=#0,步進數 MOV R1,#00001000B ;R1=#00001000B,單相推動線 LOOP2: MOV P2,R1 ;P0=R1,推動步進馬達 MOV A,R1 ;A=R1 RR A ;A=A->A,右移一位 CJNE A,#10000000B,NEXT2 ;若A<>#10000000B,則跳至NEXT1 MOV A,#00001000B ;A=#00001000B NEXT2: MOV R1,A ;R1=A,得新單相推動線 ACALL DELAY10MS ;呼叫延遲10毫秒 INC R0 ;R0=R0+1 CJNE R0,#201,LOOP2 ;若R0<>N+1,則跳至LOOP JMP START ;原地跳躍


其他答案





以上文章來自奇摩知識家,如有侵犯請留言告知


https://tw.answers.yahoo.com/question/index?qid=20101221000016KK00041

263EE75ACB693161

文章標籤

創作者介紹
創作者 p39dl77j 的頭像
p39dl77j

時刻表10

p39dl77j 發表在 痞客邦 留言(0) 人氣()