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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

按鍵控制步進電機并在數碼管顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:79544 發表于 2015-10-28 19:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
步進電機任意角度控制并顯示
  1. /*****************************************************
  2.                                     程序說明
  3.     通過改變脈沖個數改變步進電機的角度,通過按鍵可以讓步進
  4. 電機停在任意角度及正反轉 并在數碼管顯示,正轉顯示1,反轉顯示2

  5.         單片機        :STC12C5A60S2
  6.         晶振            :11.0592MHZ
  7.         步進電機驅動芯片:ULN2003A
  8.         作者            :蘇義江
  9.         時間            :2015年6月5日
  10.         八拍方式驅動    :順序為A AB B BC C CD D DA
  11. zhengzhuan[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
  12. fanzhuan[]  ={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};

  13. *****************************************************/
  14. #include<12c5a.H>
  15. //#include <reg52.h>
  16. //#define uchar unsigned char
  17. //#define uint unsigned int

  18. sbit key=P1^0; //按鍵控制步進電機的正轉方向  
  19. sbit key1=P1^1; //按鍵控制步進電機的反轉方向
  20. sbit dula  =P0^7;    //段鎖存使能
  21. sbit wela  =P0^6;    //位鎖存使能


  22. uchar code zhengzhuan[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
  23. uchar code fanzhuan[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
  24. //共陽段碼
  25. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
  26.                                 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,
  27.                                 0xa1,0x86,0x8e,0x89};

  28. uchar code tab_f[]={0x0c,0x06,0x03,0x09,
  29.                                                 0x0c,0x06,0x03,0x09};//2相勵磁 反傳
  30. uchar code tab_z[]={0x09,0x03,0x06,0x0c,
  31.                                                 0x09,0x03,0x06,0x0c};//2相勵磁 正傳

  32. void Delay( uint i)//延時
  33. {
  34.         uint x,y;
  35.         for(x=i;x>0;x--)
  36.         for(y=300;y>0;y--);

  37. }
  38. void display()
  39. {
  40.         wela=1;
  41.         P2=0xfe;
  42.         wela=0;       
  43.         dula  =1;
  44.         P2=0xf9;//正轉顯示1
  45.         Delay( 10);

  46.         P2=0xff;
  47.         dula  =0;
  48. }
  49. void display1()
  50. {
  51.         wela=1;
  52.         P2=0xf7;
  53.         wela=0;
  54.         dula  =1;
  55.         P2=0xa4;//反轉顯示2
  56.         Delay( 10);

  57.         P2=0xff;
  58.         dula  =0;
  59. }
  60. void main()  
  61. {
  62.    uint i,j;//j代表脈沖.i代表數據
  63.         P0M1=0;        //設置P0口為強推免輸出模式,下同
  64.         P0M0=0XFF;
  65.         while(1)
  66.         {
  67.        
  68.                 //j等于13個脈沖,電機旋轉一周。改變j的值就會改變電機的角度
  69.                 for(j=3;j>0;j--)//正轉4分之一周
  70.                 {
  71.                         for(i=0;i<8;i++)
  72.                           {
  73.                                 display();                               
  74.                                  P0=zhengzhuan[i];//正轉數組
  75.                                    Delay(5);//5秒旋轉一周 改變延時改變速度                                       
  76.                         }       
  77.                 }
  78.                 Delay(200);//正反轉之間延時
  79.                 for(j=3;j>0;j--)//反轉4分之一周
  80.                 {
  81.                         for(i=0;i<8;i++)
  82.                           {
  83.                                 display1();                               
  84.                                  P0=fanzhuan[i];//反轉數組
  85.                                    Delay(5);//5秒旋轉一周 改變延時改變速度                                               
  86.                         }       
  87.                 }
  88.                 Delay(200);               
  89.         }
  90. /********下面程序都正常控制步進電機狀態*****************/       
  91. /*        while(1)
  92.         {
  93.                 if(!key)
  94.                 Delay(10);
  95.                 {
  96.                         if(!key)
  97.                         {
  98.                                 display();
  99.                                 Delay(10);
  100.                                 for(j=7;j>0;j--)//j=7個脈沖,正轉半周
  101.                                 {
  102.                                         for(i=0;i<8;i++)
  103.                                           {
  104.                                          P0=zhengzhuan[i];//正轉數組
  105.                                                    Delay(10);       
  106.                                         }       
  107.                                 }
  108.                         }
  109.                         while(!key);       
  110.                 }

  111.                 if(!key1)
  112.                 Delay(10);
  113.                 {
  114.                         if(!key1)

  115.                         {
  116.                                 display1();
  117.                                 Delay(10);
  118.                                 for(j=7;j>0;j--)//j=7個脈沖,反轉半周
  119.                                 {
  120.                                         for(i=0;i<8;i++)
  121.                                           {
  122.                                          P0=fanzhuan[i];//反轉數組
  123.                                                    Delay(10);       
  124.                                         }       
  125.                                 }                               
  126.                         }
  127.                         while(!key1);       
  128.                 }
  129.                
  130.         }*/
  131. /*        while(1)
  132.         {
  133.        
  134.                 //j等于13個脈沖,電機旋轉一周。改變j的值就會改變電機的角度
  135.                 for(j=13;j>0;j--)//正轉一周
  136.                 {
  137.                         for(i=0;i<8;i++)
  138.                           {
  139.                                 display();                               
  140.                                  P0=zhengzhuan[i];//正轉數組
  141.                                    Delay(5);//6秒旋轉一周                                       
  142.                         }       
  143.                 }
  144.                 Delay(2000);
  145.                 for(j=13;j>0;j--)//反轉一周
  146.                 {
  147.                         for(i=0;i<8;i++)
  148.                           {
  149.                                 display1();                               
  150.                                  P0=fanzhuan[i];//反轉數組
  151.                                    Delay(5);//6秒旋轉一周                                       
  152.                         }       
  153.                 }
  154.                 Delay(2000);               
  155.         }
  156.         */
  157.        
  158. /*        while(1)
  159.         {
  160.        
  161.                 //j等于13個脈沖,電機旋轉一周。改變j的值就會改變電機的角度
  162.                 for(j=25;j>0;j--)//正轉二周
  163.                 {
  164.                         for(i=0;i<8;i++)
  165.                           {
  166.                                 display();
  167.                        
  168.                                  P0=zhengzhuan[i];//正轉數組
  169.                                    Delay(3);
  170.                                        
  171.                         }       
  172.                 }
  173.                 Delay(2000);
  174.                 for(j=25;j>0;j--)//反轉一周
  175.                 {
  176.                         for(i=0;i<8;i++)
  177.                           {
  178.                                 display1();
  179.                                
  180.                                  P0=fanzhuan[i];//反轉數組
  181.                                    Delay(3);
  182.                                        
  183.                         }       
  184.                 }
  185.                 Delay(2000);
  186.         }*/
  187.        
  188.        
  189. /*        while(1)
  190.         {
  191.        
  192.                 //j等于13個脈沖,電機旋轉一周。改變j的值就會改變電機的角度
  193.                 for(j=250;j>0;j--)//正轉二十周
  194.                 {
  195.                         for(i=0;i<8;i++)
  196.                           {
  197.                                 display();                               
  198.                                  P0=zhengzhuan[i];//正轉數組
  199.                                    Delay(6);        //延時控制轉速不能小于500
  200.                                
  201.                         }       
  202.                 }
  203.                 Delay(2000);
  204.                 for(j=250;j>0;j--)//反轉二十周
  205.                 {
  206.                         for(i=0;i<8;i++)
  207.                           {
  208.                                 display1();
  209.                                  P0=fanzhuan[i];//反轉數組
  210.                                    Delay(6);        //延時控制轉速不能小于500
  211.                                
  212.                         }       
  213.                 }
  214.                 Delay(20000);
  215.         }*/

  216. /* while(1)
  217.   {

  218.        
  219.            for(i=0;i<8;i++)
  220.           {
  221.                   if(key)       //按鍵未按下,正轉
  222.                  {
  223.                            P0=zhengzhuan[i];//正轉數組
  224.                            Delay(8);
  225.                    }
  226.            else      //按鍵按下,反轉
  227.                  {
  228.                           P0=fanzhuan[i];//反轉數組
  229.                            Delay(8);
  230.                   }
  231.             }   
  232.    }*/
  233. }
復制代碼


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:711365 發表于 2020-3-24 18:20 | 只看該作者
請問有沒有仿真圖呢?謝謝啦
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 雨宫琴音一区二区在线 | 亚洲免费三区 | 亚洲视频国产视频 | 国产精品中文字幕在线 | 亚洲一区 | 2019中文字幕视频 | 亚洲va欧美va人人爽午夜 | 亚洲精品久久久一区二区三区 | 日韩在线视频免费观看 | 国产精品久久久久aaaa九色 | 国产成人精品久久 | 中文字幕 亚洲一区 | 亚洲视频在线观看 | 你懂的免费在线 | 久久久久亚洲 | 欧美乱大交xxxxx另类电影 | 午夜影院普通用户体验区 | 国产成人一区二区 | 91精品国产色综合久久 | 韩日视频在线观看 | 欧美精品一区二区三区蜜桃视频 | 精品国产91久久久久久 | 精品欧美乱码久久久久久1区2区 | 一区二区免费 | 综合九九 | 91精品午夜窝窝看片 | 久久综合影院 | 免费精品视频在线观看 | 插插宗合网 | 免费在线一区二区三区 | 久久人体 | 久久久国产精品 | 国产成人精品a视频一区www | 午夜精品视频在线观看 | 日日操天天射 | 久久久久国产 | 在线视频99 | 日韩免费一二三区 | 国产线视频精品免费观看视频 | 成人日韩av| 精品乱码一区二区 |