標(biāo)題: 單片機(jī)步進(jìn)電機(jī) [打印本頁(yè)]

作者: CDW0510    時(shí)間: 2020-7-5 15:35
標(biāo)題: 單片機(jī)步進(jìn)電機(jī)
  1. #include <reg52.h>

  2. unsigned char Flag;//定義正反轉(zhuǎn)和停止標(biāo)志位
  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í)函數(shù)                                    */
  8. /******************************************************************/
  9. void Delay(unsigned int i)//延時(shí)
  10. {
  11. while(--i);
  12. }
  13. /******************************************************************/
  14. /*                   主函數(shù)                                       */
  15. /******************************************************************/
  16. main()
  17. {

  18. unsigned char i;


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

  22. while(Flag==0)            
  23. {
  24.   P0=0x71;//顯示 F 標(biāo)示正轉(zhuǎn)
  25.   for(i=0;i<4;i++)      //4相
  26.      {
  27.      P1=F_Rotation[i];  //輸出對(duì)應(yīng)的相 可以自行換成反轉(zhuǎn)表格
  28.      Delay(500);        //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
  29.          }
  30.   }
  31. while(Flag==1)
  32. {
  33.   P0=0x7C;//顯示 b 標(biāo)示反轉(zhuǎn)
  34.   for(i=0;i<4;i++)      //4相
  35.      {
  36.      P1=B_Rotation[i];  //輸出對(duì)應(yīng)的相
  37.      Delay(500);        //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(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. }
復(fù)制代碼

作者: admin    時(shí)間: 2020-7-7 01:28
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1