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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6346|回復: 7
打印 上一主題 下一主題
收起左側

單片機控制28BYJ-48步進電機驅動源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:258021 發表于 2018-4-26 17:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機控制28BYJ-48步進電機驅動
單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>


  3. unsigned char CCW[8]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90};   //逆時鐘旋轉相序表
  4. unsigned char CW[8]={0x90,0x10,0x30,0x20,0x60,0x40,0xC0,0x80};    //正時鐘旋轉相序表
  5. //unsigned char tab[] = {0x0f};

  6. sbit K1 = P3^0;  //反轉按鍵
  7. sbit K2 = P3^1;  //正轉按鍵
  8. sbit K3 = P3^2;  //停止按鍵
  9. sbit K4 = P3^3;  //  蜂鳴器

  10. unsigned char K1_Flag=0,K2_Flag=0,K3_Flag=0,K4_Flag=0;

  11. void delay_ms(unsigned int z)                //@11.0592MHz
  12. {
  13.         unsigned char i, j;
  14.    do
  15.    {
  16.         _nop_();
  17.         _nop_();
  18.         _nop_();
  19.         i = 11;
  20.         j = 190;
  21.         do
  22.         {
  23.                 while (--j);
  24.         } while (--i);
  25.         }while (--z);
  26. }

  27. void delay_us(unsigned int z)                //@11.0592MHz
  28. {
  29.         do
  30.         {
  31.                 _nop_();
  32.                 _nop_();
  33.                 _nop_();
  34.         }while(--z);
  35. }


  36. void main(void)
  37. {
  38.         unsigned char i;
  39.         while(1)
  40.         {
  41.                 if(K1 == 0)
  42.                 {
  43.                         delay_ms(5);
  44.                         {
  45.                                 if(K1 == 0)
  46.                                 {
  47.                                         K1_Flag = ~K1_Flag;
  48.                                         K2_Flag = 0;
  49.                                         K3_Flag = 0;
  50.                                         K4_Flag = 0;
  51.                                 }
  52.                                 while(K1 == 0);
  53.                         }
  54.                 }
  55.                 else if(K2 == 0)
  56.                 {
  57.                            delay_ms(5);
  58.                         {
  59.                                 if(K2 == 0)
  60.                                 {
  61.                                         K2_Flag = ~K2_Flag;
  62.                                         K1_Flag = 0;
  63.                                         K3_Flag = 0;
  64.                                         K4_Flag = 0;
  65.                                 }
  66.                                 while(K2 == 0);
  67.                         }
  68.                 }
  69.                 else if(K3 == 0)
  70.                 {
  71.                         delay_ms(5);
  72.                         {
  73.                                 if(K3 == 0)
  74.                                 {
  75.                                         K3_Flag = ~K3_Flag;
  76.                                         K1_Flag = 0;
  77.                                         K2_Flag = 0;
  78.                                         K4_Flag = 0;
  79.                                 }
  80.                                 while(K3 == 0);
  81.                         }
  82.                 }
  83.                 else if(K4 == 0)
  84.                 {
  85.                            delay_ms(5);
  86.                         {
  87.                                 if(K4 == 0)
  88.                                 {
  89.                                         K4_Flag = ~K4_Flag;
  90.                                         K1_Flag = 0;
  91.                                         K2_Flag = 0;
  92.                                         K3_Flag = 0;
  93.                                 }
  94.                                 while(K4 == 0);
  95.                         }
  96.                 }
  97.                 if(K1_Flag)
  98.                 {
  99.                         for(i=0;i<8;i++)  //旋轉45度
  100.                         {
  101.                                 P2=CW[i];
  102.                                 delay_us(80);   //調節轉速
  103.                         P0 = 0XC6;
  104.                         P2 &= 0XF0;
  105.                         P2 |= 0X02;
  106.                         P0 = 0XF9;
  107.                         P2 &= 0XF0;
  108.                         P2 |= 0X04;
  109.                         }
  110.                 }
  111.                 else if(K2_Flag)
  112.                 {
  113.                         for(i=0;i<8;i++)  //旋轉45度
  114.                         {
  115.                                 P2=CW[i];
  116.                                 delay_us(200);   //調節轉速
  117.                         }
  118.                         P0 = 0XC6;
  119.                         P2 &= 0XF0;
  120.                         P2 |= 0X02;
  121.                         P0 = 0Xa4;
  122.                         P2 &= 0XF0;
  123.                         P2 |= 0X04;
  124.                 }
  125.                 else if(K3_Flag)
  126.                 {
  127.                           for(i=0;i<8;i++)  //旋轉45度
  128.                         {
  129.                                 P2=CW[i];
  130.                                 delay_ms(1);   //調節轉速
  131.                         }
  132.                         P0 = 0XC6;
  133.                         P2 &= 0XF0;
  134.                         P2 |= 0X01;
  135.                         P0 = 0XB0;
  136.                         P2 &= 0XF0;
  137.                         P2 |= 0X02;
  138.                 }
  139.                 else if(K4_Flag)
  140.                 {
  141.                          for(i=0;i<8;i++)  //旋轉45度
  142.                         {
  143.                                 P2=CW[i];
  144.                                 delay_ms(5);   //調節轉速
  145.                         }
  146.                         P0 = 0XC6;
  147.                         P2 &= 0XF0;
  148.                         P2 |= 0X01;
  149.                         P0 = 0X99;
  150.                         P2 &= 0XF0;
  151.                         P2 |= 0X02;
  152.                 }
  153.         }
  154. }
復制代碼

所有資料51hei提供下載:
28BYJ-48步進電機驅動.rar (30.14 KB, 下載次數: 77)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:190659 發表于 2018-4-26 21:35 | 只看該作者
有實物圖嗎
回復

使用道具 舉報

板凳
ID:258021 發表于 2018-4-27 09:59 | 只看該作者

有的奧   不過這只是一個簡單的demo  可以自己搭建的奧
回復

使用道具 舉報

地板
ID:190659 發表于 2018-4-27 13:06 | 只看該作者
P0 = 0XC6;
                        P2 &= 0XF0;
                        P2 |= 0X02;
                        P0 = 0XF9;
                        P2 &= 0XF0;
                        P2 |= 0X04;
是什么意思啊
回復

使用道具 舉報

5#
ID:258021 發表于 2018-5-3 16:16 | 只看該作者
TopZhou 發表于 2018-4-27 13:06
P0 = 0XC6;
                        P2 &= 0XF0;
                        P2 |= 0X02;

這是做的一個數碼管顯示,P2口做數碼管的位選,P0口做段選。不好意思,最近沒有登陸網站,沒有及時的回復你。
回復

使用道具 舉報

6#
ID:294123 發表于 2020-1-26 18:03 | 只看該作者
你的逆時鐘旋轉相序表怎么來的哦?我怎么查的是0x03,0x06,0x0c,0x09正轉 5.625°
回復

使用道具 舉報

7#
ID:197635 發表于 2020-3-17 23:09 | 只看該作者
好東西感謝
回復

使用道具 舉報

8#
ID:298663 發表于 2023-9-11 10:01 | 只看該作者
TopZhou 發表于 2018-4-27 13:06
P0 = 0XC6;
                        P2 &= 0XF0;
                        P2 |= 0X02;

這是配置STC的IO口驅動能力, 比如上拉,下拉
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美一区二区三区四区 | 日韩综合| 色婷婷久久综合 | 成人欧美一区二区三区 | 免费国产视频在线观看 | 国产精品爱久久久久久久 | 中文字幕一区二区三区精彩视频 | 天天射视频 | 久久国产精品无码网站 | 伊人伊成久久人综合网站 | 看片91| 国产精品7777777 | 国产在线h| 一区二区三区四区av | 日韩欧美黄色 | 国产亚洲精品久久19p | 成人一区二区三区在线观看 | 成人毛片一区二区三区 | 九九热国产精品视频 | 91高清免费| 91亚洲精选 | 国产精品极品美女在线观看免费 | 狠狠的日| 久久久这里都是精品 | 久久99这里只有精品 | a毛片| 99视频| 国产精品久久影院 | 久久国产精品一区二区三区 | 人妖无码 | 91精品一区 | 国产成人精品一区二区三区在线 | 亚洲一区二区三区 | 美女三区 | 成人国产精品久久 | 精品欧美一区二区精品久久 | 日韩精品在线一区 | 粉嫩国产精品一区二区在线观看 | 日本a在线| 韩日一区| 久久精品一级 |