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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC89C52RC單片機控制步進電機仿真與程序源碼及實物圖

  [復制鏈接]
跳轉到指定樓層
樓主
本單片機是STC89C52RC,本程序應用于step motor--28BYJ,小型步進電機,
  供電電壓DC5V,可直接接于單片機通過ul2003驅動芯片驅動,數碼管是共陰極接口,
控制步進電機啟動/停止,正反轉,加減速,并有運行,及轉換狀態顯示。
是初學者的好例程。


實物圖:


大家好,我是智成電子DIY,我會不定時寫一下簡單實用的源碼分享給大家,
當然是分享給初學單片機的,大神請自覺飄過。原創首發的當然會在我們的《51黑電子論壇》網址:http://www.zg4o1577.cn/bbs/ 偶爾也會發到我的新浪博客(附件里面有地址)


仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




單片機源程序如下:

  1. /*本單片機是STC89C52RC,本程序應用于step motor--28BYJ,小型步進電機,
  2.    供電電壓DC5V,可直接接于單片機通過ul2003驅動芯片驅動,數碼管是共陰極接口,*/


  3. #include <STC89C5xRC.H>
  4. #define uchar unsigned char//數據宏定義
  5. #define uint unsigned int
  6. #define A P10 //
  7. #define _A P11 //步進電機脈沖接口
  8. #define B P12 //
  9. #define _B P13 //步進電機脈沖接口
  10. uchar su_du=0;       //轉速
  11. bit fang_xiang=0;    //方向
  12. bit qi_dong=0;       //啟動標志
  13. /********************************************************************/

  14. #include <intrins.h>//包含移位標準庫函數頭文件


  15. sbit DU = P2^6;//數碼管段選
  16. sbit WE = P2^7;//數碼管段選


  17. //共陰數碼管段選表0-9
  18. uchar  code shu_ma[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
  19. /*********************************************************************/
  20. /*====================================
  21. 函數    : delay(uint z)
  22. 參數    :z 延時毫秒設定,取值范圍0-65535
  23. 返回值    :無
  24. 描述    :12T/Fosc11.0592M毫秒級延時
  25. ====================================*/
  26. void delay(uint z)
  27. {
  28.     uint x,y;
  29.     for(x = z; x > 0; x--)
  30.         for(y = 114; y > 0 ; y--);         
  31. }

  32. /*====================================
  33. 函數    :display(uchar i)
  34. 參數    :i 顯示數值,取值范圍0-255
  35. 返回值    :無
  36. 描述    :三位共陰數碼管動態顯示
  37. ====================================*/
  38. void display(uchar i)                         //數據處理
  39. {
  40.     uchar bai, shi, ge;
  41. //    bai = i / 100; //236 / 100  = 2
  42. //    shi = i % 100 / 10;    //236 % 100 / 10 = 3
  43.     ge  = i;// % 10;//236 % 10 =6
  44.    
  45. /*  第一位數碼管         
  46.     P0 = 0XFF;//清除斷碼
  47.     WE = 1;//打開位選鎖存器
  48.     P0 = 0XFE; //1111 1110
  49.     WE = 0;//鎖存位選數據
  50.    
  51.     DU = 1;//打開段選鎖存器
  52.     P0 = shu_ma[bai];//
  53.     DU = 0;//鎖存段選數據
  54.     delay(5);

  55.     //第二位數碼管
  56.     P0 = 0XFF;//清除斷碼
  57.     WE = 1;//打開位選鎖存器
  58.     P0 = 0XFD; //1111 1101
  59.     WE = 0;//鎖存位選數據
  60.    
  61.     DU = 1;//打開段選鎖存器
  62.     P0 = shu_ma[shi];//
  63.     DU = 0;//鎖存段選數據
  64.     delay(5);*/

  65. /*********    第三位數碼管 */
  66.     P0 = 0XFF;//清除斷碼
  67.     WE = 1;//打開位選鎖存器
  68.     P0 = 0XFB; //1111 1011
  69.     WE = 0;//鎖存位選數據
  70.    
  71.     DU = 1;//打開段選鎖存器
  72.     P0 = shu_ma[ge];//
  73.     DU = 0;//鎖存段選數據
  74.     delay(5);
  75. }
  76. void yanshi2(uint a)      //延時程序
  77. {
  78.     while(a--);
  79. }
  80. uchar an_jian()     //按鍵檢測,P3.0,P3.1,P3.2,P3.3分別接4個按鍵
  81. {
  82.     if((P3&0x0f)!=0x0f)//判斷 P3只要有一個按鍵按下,就延時返回按鍵值。
  83.     {
  84.         yanshi2(20000);
  85.         if((P3&0x0f)!=0x0f)
  86.         {
  87.             return P3&0x0f;
  88.         }
  89.     }
  90.     return P3&0x0f;
  91. }

  92. void yanshi()            //步進電機延時時間
  93. {
  94.     uint sd1=0;
  95.     sd1=8000+5753*(10-su_du);//    su_du值越大,周期越短,頻率越高
  96.     while(sd1--)
  97.     {
  98.         if((P3&0x0f)!=0x0f)return;  //在延時里面判斷有沒有按鍵按下,有就直接返回主函數
  99.     }
  100. }
  101. void bu_jin()             //每調用一次步進電機向指定方向走一步
  102. {
  103.     static char j=1;     //把起始速度設置為1。
  104.     if(fang_xiang)         //判斷方向位,為1則按正相序循環,
  105.     {
  106.         j++;
  107.         if(j==5)j=1;
  108.     }
  109.     else
  110.     {
  111.         j--;
  112.         if(j==0)j=4;     //否則,按反相序循環
  113.     }
  114.     switch(j)             //根據拍數選擇不同的電壓組合
  115.     {
  116.         case 1:
  117.             A=1;B=1;_A=0;_B=0;yanshi(); //ab  1100
  118.         break;
  119.         case 2:
  120.             A=0;B=1;_A=1;_B=0;yanshi(); //a~b 0110
  121.         break;
  122.         case 3:
  123.             A=0;B=0;_A=1;_B=1;yanshi(); //a~b~0011
  124.         break;
  125.         case 4:
  126.             A=1;B=0;_A=0;_B=1;yanshi(); //ab~ 1001
  127.         break;
  128.     }
  129. }



  130.    

  131. void main()
  132. {
  133.     P14=0;//方向標志
  134.     P15=0;//啟動 標志
  135.     while(1)
  136.     {
  137.         switch(an_jian())             //按鍵處理
  138.         {
  139.             case 0x0e:                   //第一個按鍵按下按鍵狀態取反,啟動/停止
  140.                 qi_dong=!qi_dong;
  141.                 P15=qi_dong;            //狀態指示
  142.             break;
  143.             case 0x0d:                    //第二個按鍵按下,速度加
  144.                 if(su_du<9)
  145.                     su_du++;         //速度加
  146.             break;
  147.             case 0x0b:                   //第三個按鍵按下,速度減
  148.                 if(su_du>0)
  149.                     su_du--;         //速度減
  150.             break;
  151.             case 0x07:                     //第四個按鍵按下按鍵狀態取反,方向轉換
  152.                 fang_xiang=!fang_xiang;      
  153.                 P34=fang_xiang;            //方向指示燈
  154.             break;
  155.         }
  156.    
  157.         if(qi_dong)                         //啟動按鈕為1
  158.         {
  159.             bu_jin();                    //步進電機
  160.         }
  161.         else P1=0X0F;                    //停止狀態,脈沖輸出端口全部停止輸出

  162.            display(su_du); //數碼管顯示函數
  163.     }
  164.    
  165. }
復制代碼
下面插個小廣告:
在這里會有精彩有趣的單片機DIY套件產品和優質原創的源碼。
包括淘寶最低價的微型激光雕刻機支持脫機打印的,用51單片機打造(原創哦)。
6足4足蜘蛛仿生機器人,同樣是用51單片機打造,控制18路舵機完成各個動作
還可以手機wifi控制,提供所有資料(單片機源碼,APP源碼,電路,PCB等)
還會有其他強大有趣的設計,如解魔法機器人,智能小車等。
您有好的想法也可以聯系我,我們一起開發更多有用的產品!

此附件由于多人回帖說代碼有錯誤,已經被管理員刪除,無法下載
單片機控制步進電機.rar (361.69 KB, 下載次數: 301)
此附件由于多人回帖說代碼有錯誤,已經被管理員刪除,無法下載,請論壇搜索"步進電機" 或移步http://www.zg4o1577.cn/bbs/dpj-146064-1.html


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:328476 發表于 2018-5-30 18:57 | 只看該作者
不好使
回復

使用道具 舉報

板凳
ID:482513 發表于 2019-3-3 10:24 | 只看該作者
代碼有錯誤
回復

使用道具 舉報

地板
ID:234344 發表于 2019-3-11 21:09 | 只看該作者
不錯,運行成功了,就是發熱量太大了,運行2分鐘就燙手
回復

使用道具 舉報

5#
ID:490006 發表于 2019-3-13 15:24 | 只看該作者
謝謝大神的指導!!!
回復

使用道具 舉報

6#
ID:497548 發表于 2019-3-25 19:30 | 只看該作者
感謝樓主啊的
回復

使用道具 舉報

7#
ID:424386 發表于 2019-4-27 20:36 | 只看該作者
謝謝樓主分享,很有用。
回復

使用道具 舉報

8#
ID:16806 發表于 2019-5-7 19:03 | 只看該作者
感謝分享,正好能用到。
回復

使用道具 舉報

9#
ID:530732 發表于 2019-5-10 09:48 | 只看該作者
感謝分享
回復

使用道具 舉報

10#
ID:261318 發表于 2019-5-13 10:44 | 只看該作者
cjn1411714511 發表于 2019-3-11 21:09
不錯,運行成功了,就是發熱量太大了,運行2分鐘就燙手

為什么我不能運行
回復

使用道具 舉報

11#
ID:525685 發表于 2019-5-14 13:32 | 只看該作者
感謝樓主、
回復

使用道具 舉報

12#
ID:549774 發表于 2019-5-29 13:26 | 只看該作者
這個電路圖怎么還沒連上啊
回復

使用道具 舉報

13#
ID:549774 發表于 2019-5-29 13:35 | 只看該作者
敵對的 發表于 2019-4-27 20:36
謝謝樓主分享,很有用。

在嗎,你是怎么運行成功的,還需要連線嗎
回復

使用道具 舉報

14#
ID:399229 發表于 2019-12-4 22:47 | 只看該作者
謝謝樓主分享,需要提醒各位朋友。樓主的仿真那塊,把按鍵引腳和(A+ A- B+ B-)畫反了,看代碼就知道怎么調換了。
回復

使用道具 舉報

15#
ID:219115 發表于 2019-12-5 10:48 | 只看該作者
感謝分享
回復

使用道具 舉報

16#
ID:666279 發表于 2019-12-17 14:55 | 只看該作者
大佬厲害了。
回復

使用道具 舉報

17#
ID:396513 發表于 2019-12-17 16:20 | 只看該作者
程序  寫的很爛  直接對引腳操作  變量聲明很不規范
回復

使用道具 舉報

18#
ID:671439 發表于 2019-12-23 16:02 | 只看該作者
不錯,運行成功了,就是發熱量太大了,運行2分鐘就燙手
回復

使用道具 舉報

19#
ID:679523 發表于 2020-1-2 12:14 來自手機 | 只看該作者
王試試33 發表于 2019-12-23 16:02
不錯,運行成功了,就是發熱量太大了,運行2分鐘就燙手

你好,請問是怎么成功的啊
回復

使用道具 舉報

20#
ID:272776 發表于 2020-3-15 22:12 | 只看該作者
樓主厲害嘛,分享出來的東西既改電路還改程序。
回復

使用道具 舉報

21#
ID:750010 發表于 2020-5-12 16:40 | 只看該作者
亂七八糟的,跟程序對應的電路圖也不說下,IO口就對不上哪個是哪個,都不知道運行出來的人是怎么運行的?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本中文字幕一区 | 韩国精品一区 | 精品96久久久久久中文字幕无 | 国产91丝袜| 成人免费精品 | 九色综合网 | 99久久婷婷 | 九九久久99| 密色视频 | 特黄色毛片 | 亚洲一区二区在线视频 | 日韩国产欧美视频 | 亚洲精品亚洲人成人网 | 久久亚洲精品国产精品紫薇 | 91一区二区三区在线观看 | 久久久久久国产精品 | 日韩精品 电影一区 亚洲 | 91毛片网| 精品久久一区二区三区 | 国产精品久久久久久婷婷天堂 | 成人深夜福利 | 日韩精品免费在线观看 | 国产精品永久在线观看 | 欧美精产国品一二三区 | 99re视频精品 | 很黄很污的网站 | 放个毛片看看 | 一区二区av在线 | 亚洲一区二区电影网 | 日韩精品免费视频 | 99精品一区二区 | 五月天天丁香婷婷在线中 | 最近日韩中文字幕 | 久久国产婷婷国产香蕉 | 欧美精品久久久 | 在线视频91 | а天堂中文最新一区二区三区 | 国产精品一区二区视频 | 在线看亚洲| 精品一区二区三区中文字幕 | 国产精品视频网 |