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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4118|回復: 0
收起左側

單片機人體紅外傳感器驅動步進電機源程序 帶詳細的注釋

[復制鏈接]
ID:512281 發表于 2019-5-21 19:59 | 顯示全部樓層 |閱讀模式
本人剛學沒多久,求各位大佬幫忙看一下,看看有沒有錯誤,歡迎大家指正
步進電機驅動模塊為ULN2003,人體紅外傳感器為HC-SR501

單片機源程序如下(有注釋):
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. /*********************
  5. +  ----  +4.5-20v  //正極輸入電壓在+4.5v到20v之間
  6. out ---  P10       //輸出接到P10端口
  7. -   ---  GND       //負極接地
  8. IN1 ---- P00       //IN1接 P00端口 (電機驅動模塊)
  9. IN2 ---- P01       //IN2接 P01端口 (電機驅動模塊)
  10. IN3 ---- P02       //IN3接 P02端口 (電機驅動模塊)
  11. IN4 ---- P03       //IN4接 P03端口 (電機驅動模塊)
  12. +   ---- +5V       //正極接正5v
  13. -   ---- GND       //負極接地
  14. *********************/
  15. sbit out=P2^0 ;        //對輸出out進行位定義,定義單片機I/O口 P1.0的偽名稱叫out
  16. sbit led1=P1^3;
  17. sbit led2=P1^7;
  18. #define MotorData P0    //對步進電機的控制接口進行定義
  19. #define time 500        //控制正反轉的角度'

  20. uchar phasecw[4] ={0x08,0x04,0x02,0x01};//正轉 電機導通相序 D-C-B-A
  21. uchar phaseccw[4]={0x01,0x02,0x04,0x08};//反轉 電機導通相序 A-B-C-D

  22. //ms 延時函數封裝
  23. void Delay_xms(uint x)         //定義一個無符號整數 x (x是什么?)  帶參函數
  24. {
  25.   uint i,j;                     //uint等價于unsigned int,無符號整數 ;定義兩個無符號整數 i和 j  
  26.   for(i=0;i<x;i++)              //令 i的初始值為 0,當 i<x的時候,i=i+1
  27.   for(j=0;j<112;j++);           //令 j的初始值為 0,當 i<112的時候,j=j+1
  28. }

  29. //順時針轉動函數封裝
  30. void MotorCW(void)             //void MotorCW(void) 不能輸入參數
  31. {
  32.   uchar i;                      //定義一個無符號字符型 i
  33.   for(i=0;i<4;i++)              //令 i的初始值為 0,當 i<4的時候,執行{}內的程序段,然后進行 i=i+1再禁入循環
  34.    {
  35.     MotorData=phasecw[i];       //步進電機的控制接口輸出正轉且電機導通相序 D-C-B-A 的信號驅動步進電機工作
  36.     Delay_xms(4);               //延時函數,調節轉速 (意思是延時4毫秒嗎?)
  37.    }
  38. }

  39. //逆時針轉動函數封裝
  40. void MotorCCW(void)
  41. {
  42.   uchar i;                      //定義一個無符號字符型 i
  43.   for(i=0;i<4;i++)              //令 i的初始值為 0,當 i<4的時候,執行{}內的程序段,然后進行 i=i+1再禁入循環
  44.    {
  45.     MotorData=phaseccw[i];      //步進電機的控制接口輸出反轉且電機導通相序 A-B-C-D 的信號驅動步進電機工作
  46.     Delay_xms(4);               //延時函數,調節轉速(意思是延時4毫秒嗎?)
  47.    }
  48. }

  49. //停止轉動函數封裝
  50. void MotorStop(void)
  51. {
  52.   MotorData=0x00;               //步進電機的控制接口輸出置 0信號 ,使步進電機停止工作
  53. }

  54. //程序主函數
  55. void main(void)
  56. {
  57.   uint i;                       //定義一個無符號整型 i
  58.   Delay_xms(50);                //延時函數(意思是延時4s嗎?)(目的是啥?等系統穩定是嗎?)
  59.   while(1)                      // 不斷循環
  60. {
  61.       led1=1;
  62.       led2=1;
  63.    if(out == 1)                       //如果out等于1的話,那么執行{}內的程序
  64.   {   
  65.        for(i=0;i<time;i++)        //對于i=0,當i<time值時,執行順時針轉動函數,然后i=i+1后重新進入循環           
  66.    {
  67.           led1=0;
  68.     MotorCW();            //順時針轉動函數,驅動步進電機順時針轉動,直到i等于time值時結束循環
  69.          
  70.       }
  71.        MotorStop();               //停止轉動函數,是步進電機停止轉動
  72.      
  73.     Delay_xms(1000);           //延時函數,延時1000毫秒的意思是嗎?
  74.   
  75.     if(out == 0)               //如果out等于0的話,那么執行{}內的程序
  76.           {
  77.          for(i=0;i<time;i++)   //對于i=0,當i<time值時,執行逆時針轉動函數,然后i=i+1后重新進入循環
  78.            {
  79.              led2=0;
  80.        MotorCCW();       //逆時針轉動函數,驅動步進電機逆時針轉動,直到i等于time值時結束循環
  81.               }
  82.          MotorStop();          //停止轉動函數,使步進電機停止轉動  
  83.        }
  84.         }
  85.    }
  86. }
復制代碼


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色免费网 | 日韩国产在线观看 | 亚洲一一在线 | 国产中文字幕在线 | 五月天婷婷激情 | www.yw193.com | 国产成在线观看免费视频 | 欧美激情欧美激情在线五月 | 国产精品欧美一区二区三区 | 日韩欧美天堂 | 国产成人综合一区二区三区 | 欧美日本高清 | 日韩国产精品一区二区三区 | 欧美成人精品一区二区男人看 | 亚洲欧洲视频 | 操操网站| 一级a性色生活片久久毛片 一级特黄a大片 | 国产91精品久久久久久久网曝门 | 欧洲亚洲一区 | 日韩av一区二区在线观看 | 亚洲在线视频 | 久久亚洲精品国产精品紫薇 | 免费人成激情视频在线观看冫 | 亚洲欧美视频在线观看 | 欧美视频三区 | 精品视频一区二区 | 日韩精品在线免费观看视频 | 亚洲欧美aⅴ | 蜜桃一区二区三区在线 | 亚洲国产一区在线 | 国产成人高清视频 | 久久久久久成人 | 成人在线观看免费 | 中文字幕一区二区三区精彩视频 | 特一级黄色毛片 | 欧美日韩视频网站 | 欧区一欧区二欧区三免费 | 日韩电影一区 | 成人自拍视频网站 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 亚洲国产欧美一区 |