找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1743|回復: 1
打印 上一主題 下一主題
收起左側(cè)

單片機步進電機

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:797798 發(fā)表于 2020-7-5 15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <reg52.h>

  2. unsigned char Flag;//定義正反轉(zhuǎn)和停止標志位
  3. sbit KEY = P3^3;


  4. unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正轉(zhuǎn)表格
  5. unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉(zhuǎn)表格
  6. /******************************************************************/
  7. /*                    延時函數(shù)                                    */
  8. /******************************************************************/
  9. void Delay(unsigned int i)//延時
  10. {
  11. while(--i);
  12. }
  13. /******************************************************************/
  14. /*                   主函數(shù)                                       */
  15. /******************************************************************/
  16. main()
  17. {

  18. unsigned char i;


  19.   EX1=1;         //外部中斷0開
  20.   IT1=1;         //邊沿觸發(fā)
  21.   EA=1;          //全局中斷開

  22. while(Flag==0)            
  23. {
  24.   P0=0x71;//顯示 F 標示正轉(zhuǎn)
  25.   for(i=0;i<4;i++)      //4相
  26.      {
  27.      P1=F_Rotation[i];  //輸出對應的相 可以自行換成反轉(zhuǎn)表格
  28.      Delay(500);        //改變這個參數(shù)可以調(diào)整電機轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
  29.          }
  30.   }
  31. while(Flag==1)
  32. {
  33.   P0=0x7C;//顯示 b 標示反轉(zhuǎn)
  34.   for(i=0;i<4;i++)      //4相
  35.      {
  36.      P1=B_Rotation[i];  //輸出對應的相
  37.      Delay(500);        //改變這個參數(shù)可以調(diào)整電機轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
  38.          }
  39.   }
  40. while(Flag==2)  //停止
  41. {
  42.   P0=0x6D;//   顯示 S
  43.   P1=0;
  44.   }
  45. }
  46. /******************************************************************/
  47. /*                   中斷入口函數(shù)                                 */
  48. /******************************************************************/
  49. void ISR_Key(void) interrupt 2 using 1
  50. {
  51. Delay(500);
  52. if(!KEY)
  53. {

  54. Flag++;         //s3按下觸發(fā)一次
  55. if(Flag==3)
  56.    Flag=0;
  57.   }
  58. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2020-7-7 01:28 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表