導航:首頁 > 操作系統 > 單片機步進電機正反轉

單片機步進電機正反轉

發布時間:2022-01-12 03:07:46

單片機步進電機的,就是那個控制正轉反轉的代碼怎麼來的

這個看不懂。
用89S52的計數器2,設置為可編程時鍾輸出控制伺服或步進電機特方便
12M的晶振
振盪頻率/(4*(65536-初裝值))

匯編代碼:
MOV C9H,#00000010B ;定時器2設為時鍾輸出
MOV CAH,#F9H ;T2寄存器低8位裝入初值
MOV CBH,#FFH ;T2寄存器高8位裝入初值
MOV C8H,#00000100B ;開定時計數器T2
運行此代碼P1.0口輸出500k方波
改變初裝值改變速度
關閉脈沖輸出命令,電機停止轉動
MOV C8H,#00000000B ;關定時計數器T2

加入停止開關和運轉指示燈

MOV C9H,#00000010B ;定時器2設為時鍾輸出
MOV CAH,#F9H ;T2寄存器低8位裝入初值
MOV CBH,#FFH ;T2寄存器高8位裝入初值
MOV C8H,#00000100B ;開定時計數器T2
CLR P1.3 ;開指示燈
1: JB P1.5,1;檢測停止按鍵
MOV C8H,#00H ;關定時計數器T2
SETB P1.3 ;關指示燈

加入啟動、停止、方向轉化開關和運轉指示燈
;P1.0運行脈沖信號輸出
;P1.1方向信號
;P1.2(離線使能信號)不明白你要干什麼用
;P1.3運轉指示燈
;P1.4啟動按鍵開關
;P1.5停止按鍵開關
;P1.6方向按鍵開關
變初裝值 0000H—FFFFH輸出頻率50HZ—3MHZ之間自由設定

MOV C9H,#00000010B ;定時器2設為時鍾輸出
MOV CAH,#F9H ;T2寄存器低8位裝入初值
MOV CBH,#FFH ;T2寄存器高8位裝入初值
KGJC:
JNB P1.4,KS;檢測啟動按鍵
JNB P1.5,TZ;檢測停止按鍵
JNB P1.6,HX;檢測方向按鍵
AJMP KGJC
TZ:MOV C8H,#00H ;關定時計數器T2
SETB P1.3 ;關指示燈
AJMP KGJC
KS:MOV C8H,#03H ;開定時計數器T2
CLR P1.3 ;開指示燈
AJMP KGJC

㈡ 步進電機正反轉的單片機程序問題

到我的文庫里去下一個,你只需要在加個定時器T0/T1就行了

㈢ Proteus的51單片機控制步進電機,實現電機正反轉

Proteus的51單片機控制步進電機,一般是控制其相序分配的順逆從而控制正反轉,一般而言,步進電機相序分配可以做成一個數組比如step[]={0x03,0x06,0x0c,0x09},這樣來說可以假設P0口是步進電機控制口,那麼可以按如下方式來控制:
while(1)
{
for(i=0;i<4;i++)
{
if(fx==1)P0=step[i]; //正向
else P0=step[3-i]; //反向
delay(x); //x大小決定電機速度。

㈣ 單片機怎樣實現步進電機的正反轉c程序

不用按鍵的話,用個簡單的延時程序,時間到瞭然後取反就可以了。這個主要是對51埠的控制,很簡單的,自己試著寫一下。寫出來的東西才是自己的!

㈤ 高分求51單片機驅動步進電機正反轉程序

假如用P0口的P0.0,P0.2控制A'B相,使能用P0.3,p0口不控制其他的了吧
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar []={0x0}

{

}
先給你個視頻教程,我有時間再給你編寫,不好意思了http://v.youku.com/v_show/id_XMTkyNDMyNTEy.html

㈥ 單片機控制步進電機正反轉,步進電機42步進電機 驅動tb6560

用TPC8-8TD可以直接輸出信號到步進電機驅動器,實現步進電機的自動控制。採用表格設置漢字顯示方式設置需要的運行功能。下圖是接線原理圖:

這個控制比單片機方便多了,10分鍾即可設置一套基本的步進動作的控制。

㈦ 51單片機,步進電機怎麼實現循環正反轉

以下程序是我在實驗中自己編寫的,幾乎全部都有詳細注釋,相信學過單片機的同學完全可以輕易讀懂。
讀者可進行一些修改,比如我使用的都是跳轉指令,在進入加減速循環中讀者完全可以改成調用指令。電機速度也可修改為無上下限。
並且判斷按鍵過程也可有自己的方法,我的判斷按下松開可能會比較麻煩。
數表中我設置的是每個脈沖轉過9°,大家也可按照實際需要修改自己的數表。
這個程序我是參考了《單片機實用系統設計與模擬經典實例》(主編:周景潤 劉曉霞)的P25,讀者有興趣可以去圖書館借閱此書。

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV 30H,#05H ;加減速速度控制,控制延時循環次數(初值)
MOV DPTR,#TAB1 ;查表法對P2賦值
MOV R0,#03H ;P2初值
MOV R4,#00H ;查表指針值
MOV P2,R0 ;賦值
WAIT: MOV P0,#0FFH ;P0需先輸出一個1才可輸入
JNB P0.0,SONG3 ;檢測按鍵是否按下,SONG的意思是按鍵是否松開,否則程序會混亂
JNB P0.1,SONG4 ;程序中SONG均是上述意思
SJMP WAIT ;如果不按鍵就不啟動
SONG3: JB P0.0,ZHENG ;進入正轉
SJMP SONG3 ;
SONG4: JB P0.1,FAN ;進入反轉
SJMP SONG4 ;
ZHENG: MOV R4,#01H ;開始查表
LOOP1: JB P0.1,YUNXING1 ;檢測是否要反轉,如果未按反轉鍵就正常運行
SONG1: JNB P0.1,FAN ;按下反轉松開後進入反轉
SJMP SONG1 ;
YUNXING1:MOV A,R4 ;查表
MOVC A,@A+DPTR ;
MOV P2,A ;
ACALL DELAY ;進入延時程序控制電機速度
JB P0.3,COOL1 ;檢測是否按下減速按鍵,如果未按下再檢測是否按下加速按鍵
SONG5: JNB P0.3,DOWN1 ;按下後進入延時程序中修改循環次數
SJMP SONG5 ;
COOL1: JB P0.2,NOMAL1 ;檢測是否按下加速按鍵,未按下就正常運行
SONG6: JNB P0.2,UP1 ;按下加速鍵進入延時程序中修改循環次數
SJMP SONG6 ;
NOMAL1: INC R4 ;查下一個數據
CJNE R4,#09H ,LOOP1;表中數據查完一遍後將R4值復位,如未查完就不復位R4
SJMP ZHENG ;使正轉循環
FAN: MOV R4,#07H ;反轉R4初值
LOOP2: JB P0.0,YUNXING2 ;檢測是否按下正轉按鍵,如未按下正常運行反轉程序
SONG2: JNB P0.0,ZHENG ;按下正轉後松開按鍵進入正轉程序
SJMP SONG2 ;
YUNXING2:MOV A,R4 ;開始查表
MOVC A,@A+DPTR ;
MOV P2,A ;
ACALL DELAY ;進入延時程序控制電機速度
JB P0.3,COOL2 ;檢測是否按下減速按鍵如未按下就檢測是否按下加速按鍵
SONG7: JNB P0.3,DOWN2 ;按下後進入延時程序中修改循環次數
SJMP SONG7 ;
COOL2: JB P0.2,NOMAL2 ;檢測是否按下加速按鍵,未按下就正常運行
SONG8: JNB P0.2,UP2 ;按下後進入延時程序中修改循環次數
SJMP SONG8 ;
NOMAL2: DEC R4 ;循環查表
CJNE R4,#00H,LOOP2 ;數據查完一遍後復位重新查
SJMP FAN ;反轉循環
DELAY: MOV R6,#05H ;
DD1: MOV R5,#080H ;
DD2: MOV R7,#05H ;
DD3: DJNZ R7,DD3 ;
DJNZ R5,DD2 ;
DJNZ R6,DD1 ;固定延時
DJNZ R1,DELAY ;通過改變延時程序的循環次數來控制電機速度
SPEED: MOV R1,30H ;每次循環都將速度值放在R1中
SJMP BACK ;
DOWN1: INC 30H ;速度減,因為循環次數+1
CJNE R1,#10H,NOMAL1;速度下限10,如果不到10可繼續減速
MOV 30H,#10H ;如果達到下限,無法減速,始終是10
SJMP NOMAL1 ;返回正轉循環中
UP1: DEC 30H ;速度加,因為循環次數-1
CJNE R1,#01H,NOMAL1;速度上限1,如果不到1可繼續加速
MOV 30H,#01H ;如果速度到達上限,不可再加速,始終是1
SJMP NOMAL1 ;返回正轉循環
DOWN2: INC 30H ;速度減,因為循環次數+1
CJNE R1,#10H,NOMAL2;速度下限10,如果不到10可繼續減速
MOV 30H,#10H ;如果達到下限,無法減速,始終是10
SJMP NOMAL2 ;返回反轉循環中
UP2: DEC 30H ;速度加,因為循環次數-1
CJNE R1,#01H,NOMAL2;速度上限1,如果不到1可繼續加速
MOV 30H,#01H ;如果速度到達上限,不可再加速,始終是1
SJMP NOMAL2 ;返回反轉循環中
BACK: RET ;延時子程序返回
TAB1: DB 00H,02H,06H,04H
DB 0CH,08H,09H,01H,03H ;控制各項通電順序的數值表
END ;結束

㈧ 單片機控制步進電機正反轉程序

#includeunsignedchari[]={0x00,0x01,0x02,0x04,0x08};voiddelay(unsignedints){while(s--);}main(){while(1){unsignedchara;for(a=1;a0;a--){P2=i[a];delay(50000);}}}記得給好評吆、、、

㈨ 單片機中的五線四相步進電機可以通過編程,實現正反轉么

當然可以,abcd順序加電控制是正轉的話,adcb順序加電就是反轉了。任何步進電機都是如此控制正反轉的。

㈩ 51單片機控制步進電機正反轉原理

單片機控制步進電機正反轉原理,五一單片機的控制步進電機的正反轉是是根據你的需要空控制

閱讀全文

與單片機步進電機正反轉相關的資料

熱點內容
phpsql單引號 瀏覽:84
英雄聯盟壓縮壁紙 瀏覽:450
辦公app需要什麼伺服器 瀏覽:626
安卓伺服器怎麼獲得 瀏覽:806
空調壓縮機冷媒的作用 瀏覽:779
淘寶app是以什麼為利的 瀏覽:655
java提取圖片文字 瀏覽:922
我的世界手機版指令復制命令 瀏覽:33
java判斷字元串為數字 瀏覽:924
androidrpc框架 瀏覽:488
雲伺服器essd和ssd 瀏覽:522
家用網關的加密方式 瀏覽:1
怎麼從ppt導出pdf文件 瀏覽:971
換汽車空調壓縮機軸承 瀏覽:845
平板怎麼登錄安卓端 瀏覽:195
圖像拼接計演算法 瀏覽:255
怎麼打開飢荒伺服器的本地文件夾 瀏覽:291
usb掃描槍編程 瀏覽:673
博易大師手機app叫什麼 瀏覽:663
刮眼影盤解壓方法 瀏覽:966