51單片機驅動步進電機__終極(完整版)
在這里介紹一下用51單片機驅動步進電機的方法。 這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!!! 該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。 采用51驅動ULN2003的方法進行驅動。 ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。 ;******************************************************************************;************************* 步進電機的驅動*************************************** ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19 ;--------------------------------------------------------------------------------- ; 步進電機的驅動信號必須為 脈沖信號!!! 轉動的速度和脈沖的頻率成正比!!! ; 本步進電機步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!!! ;--------------------------------------------------------------------------------- ; A組線圈對應 P2.4 ; B組線圈對應 P2.5 ; C組線圈對應 P2.6 ; D組線圈對應 P2.7; 正轉次序: AB組--BC組--CD組--DA組 (即一個脈沖,正轉 7.5 度) ;---------------------------------------------------------------------------------- ;----------------------------正轉-------------------------- ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV R3,#144 正轉 3 圈共 144 脈沖 START: MOV R0,#00H START1: MOV P2,#00H MOV A,R0MOV DPTR,#TABLE MOVC A,@A+DPTRJZ START 對 A 的判斷,當 A = 0 時則轉到 START MOV P2,ALCALL DELAY INC R0DJNZ R3,START1MOV P2,#00H LCALL DELAY1;-----------------------------反轉------------------------MOV R3,#144 反轉一圈共 144 個脈沖 START2:MOV P2,#00H MOV R0,#05 START3: MOV A,R0MOV DPTR,#TABLE MOVC A,@A+DPTR JZ START2 MOV P2,A CALL DELAY INC R0DJNZ R3,START3 MOV P2,#00HLCALL DELAY1 LJMP MAINDELAY: MOV R7,#40步進電機的轉速M3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3RETDELAY1: MOV R4,#20 2S 延時子程序 DEL2: MOV R3,#200 DEL3: MOV R2,#250 DJNZ R2,$ DJNZ R3,DEL3 DJNZ R4,DEL2 RET TABLE:DB 30H,60H,0C0H,90H 正轉表 DB 00 正轉結束DB 30H,90H,0C0H,60H 反轉表 DB 00 反轉結束 END 51單片機控制四相步進電機拿 到步進電機,根據以前看書對四相步進電機的了解,我對它進行了初步的測試,就是將5伏電源的正端接上最邊上兩根褐色的線,然后用5伏電源的地線分別和另外 四根線(紅、蘭、白、橙)依次接觸,發現每接觸一下,步進電機便轉動一個角度,來回五次,電機剛好轉一圈,說明此步進電機的步進角度為 360/(4×5)=18度。地線與四線接觸的順序相反,電機的轉向也相反。此步進電機,則只需分別依次給四線一定時間的脈沖電流,電機便可連續轉動起來。通過改變脈沖電流的時間間隔,就可以實現對轉速的控制;通過改變給四線脈沖電流的順序,則可實現對轉向的控制。所以,設計了如下電路圖:C51程序代碼為: 代碼一#include static unsigned int count; static unsigned int endcount; void delay(); void main(void) { count = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; //允許CPU中斷 TMOD = 0x11; //設定時器0和1為16位模式1 ET0 = 1; //定時器0中斷允許 TH0 = 0xFC; TL0 = 0x18; //設定時每隔1ms中斷一次 TR0 = 1; //開始計數 startrun: P1_3 = 0; P1_0 = 1; delay(); P1_0 = 0; P1_1 = 1; delay(); P1_1 = 0; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay(); goto startrun; } //定時器0中斷處理 void timeint(void) interrupt 1 { TH0=0xFC; TL0=0x18; //設定時每隔1ms中斷一次 count++; }void delay(){ endcount=2; count=0; do{}while(count 關鍵詞:
51單片機步進電
您可能也感興趣:
為您推薦
保險業協會將圍繞七方面加強消保工作力度 提升行業整體水平
保險公司推出“電信詐騙險” 市民仍須提高防騙意識
天津:做好失業保險穩崗返還工作 實行“免申即享”經辦模式
排行
最近更新
- 51單片機驅動步進電機__終極(完整版)
- 2022清明祭英烈丨弘揚英模精神 渝中青年民警清明祭英烈
- 為網絡直播設“紅綠燈”很有必要
- 品牌打造
- 迅速躥紅的“求職私教”,真能包你進“大廠”嗎?
- 北京朝陽區新增5名陽性人員 為專營韓國服裝的店員和同住人
- 梅龍鐵路4標段首個千米長隧順利貫通
- 且待新情 共放紙鳶 ——天龍山石窟博物館開展主題文化活動
- 全球債券2022年平均跌幅超過18%歷史對應都是特殊時期
- 北京順義區新增1名核酸檢測陽性人員
- 活人真的會被尿憋死?不是嚇唬你,還真有人因為憋尿出人命
- 世界上唯一可用疫苗預防的癌癥!男性要不要打?
- 鮮花終于不用再背鍋了,春季花粉過敏的罪魁禍首竟然是它!
- 絕非危言聳聽!喝酒越多,大腦越少?
- 凱格爾運動是怎么回事
- 茭白忌諱和什么菜搭配
- 修好生物醫藥通往產業化的“高速公路”——探訪河南省中試基...
- 浙江制定新規劃 對職業病危害嚴重的重點行業持續開展監測
- 安徽多地組織醫療隊抵達上海(多圖)
- 千萬別碰!千萬別碰!近期廣東高發!寄生蟲可多達6000條
- 大B細胞淋巴瘤治療有新藥物
- 2022年4月3日0時至24時山東省新增本土確診病例4例、本土無癥...
- 4月3日12時至24時青島市新型冠狀病毒肺炎疫情情況
- 男子挖野菜不慎墜入8米深地窖 消防救援人員利用三腳架助其脫險
- 新華全媒+丨糧食生產有“管家”、蔬菜運輸綠色通行,看這里疫...
- 齊魯潮評|追春光“齊”心“魯”力,促發展爭分奪秒|追春光...
- 【3·15投資者保護】圖解《債券交易規則》之五|債券交易賬戶...
- 轉債退市價格
- 越熬夜,越清醒?——熬夜的危害(上)
- 巴西松子營養價值高嗎