久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2257|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

步進(jìn)電機(jī)不能反轉(zhuǎn)?附單片機(jī)程序電路

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:678280 發(fā)表于 2021-11-23 11:18 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用Proteus仿真沒(méi)提示有問(wèn)題,但步進(jìn)電機(jī)只能順時(shí)針旋轉(zhuǎn),請(qǐng)教各位了謝謝。仿真接線圖如下:



完整代碼如下:
#include<reg52.h>
sbit A1=P2^1;
sbit B1=P2^2;
sbit C1=P2^3;
sbit D1=P2^4;

#define C_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通電,其他相斷電。
#define C_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通電,其他相斷電。
#define C_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通電,其他相斷電。
#define C_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通電,其他相斷電。
#define C_A1  {A1=1;B1=0;C1=0;D1=0;}//A相通電,其他相斷電。
#define C_B1  {A1=0;B1=1;C1=0;D1=0;}//B相通電,其他相斷電。
#define C_C1  {A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電。
#define C_D1  {A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電。
#define C_OFF {A1=0;B1=0;C1=0;D1=0;}//全部斷電。

unsigned char speed;
bit Flag;

void delayus(unsigned char t)
{  while(--t); }

void delayms(unsigned char t)
{
  while(t--)
  {
    delayus(245);
    delayus(245);  }}

main()
{
  unsigned int i=512; //旋轉(zhuǎn)一周時(shí)間。
  EA=1;
  EX0=1;
  IT0=1;
  speed=10;
  while(i--)
  {
    C_OFF
    while((i--)&&Flag) //正向。
    {
      C_A1
      delayms(speed);
      C_AB1
      delayms(speed);
      C_B1
      delayms(speed);
      C_BC1
      delayms(speed);
      C_C1
      delayms(speed);
      C_CD1
      delayms(speed);
      C_D1
      delayms(speed);
      C_DA1
      delayms(speed);
    }
    C_OFF
    i=512;
    while((i--)&&(!Flag)) //反向。
    {
      C_A1
      delayms(speed);
      C_DA1
      delayms(speed);
      C_D1
      delayms(speed);
      C_CD1
      delayms(speed);
      C_C1
      delayms(speed);
      C_BC1
      delayms(speed);
      C_B1
      delayms(speed);
      C_AB1
      delayms(speed);
    }
  }
}

void zhang0(void)interrupt 0
{
  if(!INT0)
  {
    delayms(10); //延時(shí)防抖。
    if(!INT0)
    {  Flag=!Flag; }
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:235200 發(fā)表于 2021-11-23 13:55 | 只看該作者
正向相序是A AB B BC C CD D DA,而反向是A AD D DC C CB B BA,程序中未定義反向的相序
回復(fù)

使用道具 舉報(bào)

板凳
ID:678280 發(fā)表于 2021-11-23 16:39 | 只看該作者
csmyldl 發(fā)表于 2021-11-23 13:55
正向相序是A AB B BC C CD D DA,而反向是A AD D DC C CB B BA,程序中未定義反向的相序

按你說(shuō)的我修改了,應(yīng)該是還有錯(cuò)誤,仿真時(shí)仍舊只看到順時(shí)針旋轉(zhuǎn)。

#include<reg52.h>
sbit A1=P2^0;
sbit B1=P2^1;
sbit C1=P2^2;
sbit D1=P2^3;

#define C_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通電,其他相斷電。
#define C_AD1 {A1=1;B1=0;C1=0;D1=1;}//AD相通電,其他相斷電。
#define C_BA1 {A1=1;B1=1;C1=0;D1=0;}//BA相通電,其他相斷電。
#define C_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通電,其他相斷電。
#define C_CB1 {A1=0;B1=1;C1=1;D1=0;}//CB相通電,其他相斷電。
#define C_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通電,其他相斷電。
#define C_DA1 {A1=1;B1=0;C1=0;D1=1;}//DA相通電,其他相斷電。
#define C_DC1 {A1=0;B1=0;C1=1;D1=1;}//DC相通電,其他相斷電。

#define C_A1  {A1=1;B1=0;C1=0;D1=0;}//A相通電,其他相斷電。
#define C_B1  {A1=0;B1=1;C1=0;D1=0;}//B相通電,其他相斷電。
#define C_C1  {A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電。
#define C_D1  {A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電。
#define C_OFF {A1=0;B1=0;C1=0;D1=0;}//全部斷電。

unsigned char speed;
bit Flag;

void delayus(unsigned char t)
{  while(--t); }

void delayms(unsigned char t)
{
  while(t--)
  {
    delayus(245);
    delayus(245);  }}

main()
{
  unsigned int i=512; //旋轉(zhuǎn)一周時(shí)間。
  EA=1;
  EX0=1;
  IT0=1;
  speed=10;
  while(i--)
  {
    C_OFF
    while((i--)&&Flag) //正向。
    {
      C_A1
      delayms(speed);
      C_AB1
      delayms(speed);
      C_B1
      delayms(speed);
      C_BC1
      delayms(speed);
      C_C1
      delayms(speed);
      C_CD1
      delayms(speed);
      C_D1
      delayms(speed);
      C_DA1
      delayms(speed);
    }
    C_OFF
    i=512;
    while((i--)&&(!Flag)) //反向。
    {
      C_A1
      delayms(speed);
      C_AD1
      delayms(speed);
      C_D1
      delayms(speed);
      C_DC1
      delayms(speed);
      C_C1
      delayms(speed);
      C_CB1
      delayms(speed);
      C_B1
      delayms(speed);
      C_BA1
      delayms(speed);
    }
  }
}

void zhang0(void)interrupt 0
{
  if(!INT0)
  {
    delayms(10); //延時(shí)防抖。
    if(!INT0)
    {  Flag=!Flag; }
  }
}
回復(fù)

使用道具 舉報(bào)

地板
ID:139866 發(fā)表于 2021-11-23 18:00 | 只看該作者
為什么不定義個(gè)數(shù)組用循環(huán),一條一條寫(xiě)不覺(jué)得很麻煩嗎
  1. char A[] = {1, 1, 0, 0, 0, 0, 0, 1, 0};
  2. char B[] = {0, 1, 1, 1, 0, 0, 0, 0, 0};
  3. char C[] = {0, 0, 0, 1, 1, 1, 0, 0, 0};
  4. char D[] = {0, 0, 0, 0, 0, 1, 1, 1, 0};

  5. for(char i = 0; i < 8; i++){
  6.     A1=A[i];
  7.     B1=B[i];
  8.     C1=C[i];
  9.     D1=D[i];
  10.     delayms(speed);
  11. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:983939 發(fā)表于 2021-11-23 19:32 | 只看該作者
B B BC C CD D DA,而反向是A AD D DC C CB B BA,程序中未定義反向的相序
回復(fù)

使用道具 舉報(bào)

6#
ID:678280 發(fā)表于 2021-11-23 22:30 | 只看該作者
天ノ憶 發(fā)表于 2021-11-23 18:00
為什么不定義個(gè)數(shù)組用循環(huán),一條一條寫(xiě)不覺(jué)得很麻煩嗎

好主意,謝謝啦
回復(fù)

使用道具 舉報(bào)

7#
ID:678280 發(fā)表于 2021-11-24 17:29 | 只看該作者
我笨,兩天了也沒(méi)弄明白。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级大黄 | 国产99久久 | 国产日韩免费视频 | 日韩三级在线 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 看a网站 | 精品国产一区二区三区久久久蜜月 | 成人一区在线观看 | 日韩在线精品视频 | 精品国产99| 国产精品成av人在线视午夜片 | 三级视频国产 | 黑人精品欧美一区二区蜜桃 | 精品在线观看一区二区 | 欧美freesex黑人又粗又大 | 精品视频免费 | 精产国产伦理一二三区 | 亚洲免费视频网址 | 中文字幕 亚洲一区 | 亚洲成人一二区 | 日本一区二区在线视频 | 91av免费观看 | 99精品一级欧美片免费播放 | 黄色香蕉视频在线观看 | 欧美色专区 | 中文字幕成人免费视频 | 国产精品美女久久久 | 亚洲电影专区 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 最新中文在线视频 | 欧美黄在线观看 | www久久久 | 久久久久久久久99 | 五月天综合影院 | 久久久久久91 | 日本精品视频 | 国产一区二区视频免费在线观看 | 精品一区二区三区电影 | 亚洲精久 | 精品一区二区久久 | 91精品国产91久久久久久最新 |