找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機AT89C51 正反轉(zhuǎn)可控的步進電機

[復(fù)制鏈接]
ID:127163 發(fā)表于 2016-10-15 23:17 | 顯示全部樓層 |閱讀模式
單片機AT89C51 正反轉(zhuǎn)可控的步進電機
捕獲.PNG

單片機源程序:
  1. /***************   writer:shopping.w   ******************/
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar code FFW[]=
  6. {
  7.         0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
  8. };

  9. uchar code REV[]=
  10. {
  11.         0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
  12. };

  13. sbit K1 = P3^0;
  14. sbit K2 = P3^1;
  15. sbit K3 = P3^2;

  16. void DelayMS(uint ms)
  17. {
  18.         uchar i;
  19.         while(ms--)
  20.         {
  21.                  for(i=0;i<120;i++);
  22.         }
  23. }

  24. void SETP_MOTOR_FFW(uchar n)
  25. {
  26.         uchar i,j;
  27.         for(i=0;i<5*n;i++)
  28.         {
  29.                  for(j=0;j<8;j++)
  30.                 {
  31.                          if(K3 == 0)        break;
  32.                         P1 = FFW[j];
  33.                         DelayMS(25);
  34.                 }
  35.         }
  36. }

  37. void SETP_MOTOR_REV(uchar n)
  38. {
  39.         uchar i,j;
  40.         for(i=0;i<5*n;i++)
  41.         {
  42.                  for(j=0;j<8;j++)
  43.                 {
  44.                          if(K3 == 0)        break;
  45.                         P1 = REV[j];
  46.                         DelayMS(25);
  47.                 }
  48.         }
  49. }

  50. void main()
  51. {
  52.         uchar N = 3;
  53.         while(1)
  54.         {
  55.                  if(K1 == 0)
  56.                 {
  57.                          P0 = 0xfe;
  58.                         SETP_MOTOR_FFW(N);
  59.                         if(K3 == 0) break;
  60.                 }
  61.                 else if(K2 == 0)
  62.                 {
  63.                          P0 = 0xfd;
  64.                         SETP_MOTOR_REV(N);
  65.                         if(K3 == 0) break;
  66.                 }
  67.                 else
  68.                 {
  69.                          P0 = 0xfb;
  70.                         P1 = 0x03;
  71.                 }
  72.         }
  73. }
復(fù)制代碼

0.png

正反轉(zhuǎn)可控的步進電機.rar

29.32 KB, 下載次數(shù): 75, 下載積分: 黑幣 -5

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:309029 發(fā)表于 2018-5-9 22:16 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:337516 發(fā)表于 2019-8-24 09:23 | 顯示全部樓層
不錯的文章,學(xué)習(xí)中。
回復(fù)

使用道具 舉報

ID:803622 發(fā)表于 2020-7-15 13:24 | 顯示全部樓層
不錯的文章,學(xué)習(xí)中。
回復(fù)

使用道具 舉報

ID:495287 發(fā)表于 2020-7-17 22:37 | 顯示全部樓層
樓主好,
請問這個uln2003A的COM口供電和89C51電壓相同嗎?
謝謝解答。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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