找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2529|回復(fù): 3
收起左側(cè)

基于51單片機(jī)的控制四線步進(jìn)電機(jī)仿真設(shè)計(jì)

[復(fù)制鏈接]
ID:554216 發(fā)表于 2022-1-16 23:00 | 顯示全部樓層 |閱讀模式
一、硬件設(shè)計(jì)
硬件使用了51單片機(jī),L297和L298。

CW/CWW是控制電機(jī)方向,高電平正轉(zhuǎn),低電平反轉(zhuǎn)。

CLOCK是時(shí)鐘信號(hào),給一個(gè)脈沖,便會(huì)有一個(gè)步進(jìn)。

HALF/FULL是選擇一次半步進(jìn)還是全步進(jìn)。假如電機(jī)步進(jìn)一次90°,那么半步進(jìn)就是45°。

仿真圖

仿真圖


二、軟件設(shè)計(jì)
使用定時(shí)器來(lái)進(jìn)行精確的定時(shí),然后在定時(shí)器中斷中改變步進(jìn)電機(jī)狀態(tài)。
  1. #include <reg52.h>
  2. #include "main.h"

  3. sbit DIR1 = P1^0;
  4. sbit CLK1 = P1^1;

  5. #define CW   0
  6. #define CCW  1
  7. #define STOP 2

  8. u8 motorState = 0;

  9. void Timer0Init(void)                //5毫秒@12.000MHz
  10. {        
  11.         TMOD = 0x01;                //設(shè)置定時(shí)器模式
  12.         TL0  = 0x78;                //設(shè)置定時(shí)初始值
  13.         TH0  = 0xEC;                //設(shè)置定時(shí)初始值
  14.         TF0  = 0;                    //清除TF0標(biāo)志
  15.         TR0  = 1;                    //定時(shí)器0開始計(jì)時(shí)
  16.         ET0  = 1;
  17.         EA   = 1;
  18. }

  19. void main()
  20. {
  21.         Timer0Init();
  22.         motorState = CCW;        
  23.         while(1)
  24.         {
  25.         }
  26. }

  27. void Timer0() interrupt 1
  28. {
  29.         static int counts = 0;
  30.         TL0 = 0x78;                    //設(shè)置定時(shí)初始值
  31.         TH0 = 0xEC;                    //設(shè)置定時(shí)初始值
  32.         counts++;
  33.         if(counts>10)//每隔10*5*2ms電機(jī)轉(zhuǎn)動(dòng)一個(gè)步距
  34.         {
  35.                 if(motorState == CW)
  36.                 {
  37.                         DIR1 = 1;
  38.                         CLK1 = !CLK1;
  39.                 }else if(motorState == CCW)
  40.                 {
  41.                         DIR1 = 0;
  42.                         CLK1 = !CLK1;
  43.                 }else
  44.                 {
  45.                         CLK1=0;
  46.                 }
  47.                 counts=0;
  48.         }
  49. }
復(fù)制代碼

若有收獲,就點(diǎn)個(gè)贊吧


評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1003125 發(fā)表于 2022-1-22 20:52 | 顯示全部樓層
有創(chuàng)意,我就要這種資料
回復(fù)

使用道具 舉報(bào)

ID:977804 發(fā)表于 2022-2-26 09:50 來(lái)自觸屏版 | 顯示全部樓層
你好,我的步進(jìn)電機(jī)也是4線,不知道能不能也按你的方案
回復(fù)

使用道具 舉報(bào)

ID:276663 發(fā)表于 2022-2-26 10:04 | 顯示全部樓層
怎么研究細(xì)分
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表