亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 雷賽55步進電機驅(qū)動器stm32單片機控制源程序 [打印本頁]

作者: tu_12    時間: 2018-5-3 22:48
標題: 雷賽55步進電機驅(qū)動器stm32單片機控制源程序
12864顯示坐標,按鍵輸入坐標電機移動xmm,精度誤差在1mm以內(nèi),原創(chuàng)程序

stm32單片機源程序如下:
  1. #include "sys.h"       
  2. #include "delay.h"       
  3. #include "led.h"
  4. #include "smotor.h"
  5. #include "keyb.h"
  6. #include "beep.h"
  7. #include "12864.h"
  8. #include "keym.h"
  9. #include "stmflash.h"

  10. //int datatemp[3]={0};

  11. int main(void)
  12. {
  13. //         u8 exit=0;
  14. //         int obuf[3]={1,0};
  15.     delay_init();   //延時初始化
  16.         LED_Init();    //初始化燈
  17.         BEEP_Init();   //蜂鳴器初始化
  18.         Init_key();   //初始化矩陣鍵盤
  19.     Init_Motor(); //初始化步進驅(qū)動器口
  20.         LCD_Init_12864(); //液晶初始化
  21.         while(1)
  22.         {
  23. //                 STMFLASH_Write(FLASHADDR,(u16*)obuf,3);
  24. //         STMFLASH_Read(FLASHADDR,(u16*)datatemp,3);
  25.                 keyscan(); //獲取鍵值輸入步數(shù)       
  26.             dis_step(); //顯示設(shè)置的向下轉(zhuǎn)步數(shù)
  27.                 read_flash();
  28.                 SET_XYZ(xm,ym,zm,XMSPEED);
  29.                
  30.         }
  31.          
  32. }

復(fù)制代碼

  1. #include "smotor.h"
  2. #include "delay.h"
  3. #include "12864.h"
  4. #include "keym.h"

  5. #define jiasu_time 10                //加速次數(shù) 即加速區(qū)段距離
  6. #define sudu_beilv 3                //加速倍率


  7. int m_x=0,m_y=0,m_z=0;    //初始坐標

  8. /****初始化PE0-8口作為驅(qū)動器DIR/PUL/EN口****/
  9. void Init_Motor(void)  
  10. {
  11.     GPIO_InitTypeDef  GPIO_InitStructure;
  12.        
  13.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);         //使能PD端口時鐘
  14.                
  15.          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|  \
  16.                                        GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  17.        
  18.          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
  19.          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  20.          GPIO_Init(GPIOD, &GPIO_InitStructure);                                         //根據(jù)設(shè)定參數(shù)初始化GPIO
  21. }
  22. void SET_XYZ(int x,int y,int z,u16 Speed)
  23. {
  24.     int tmp,j;
  25.         unsigned char M_speed,jiasu_step;
  26.         u8 runfast;
  27.         jiasu_step=Speed/(jiasu_time*sudu_beilv);//10mm,速度加一倍
  28.         if(jiasu_step<1)jiasu_step=1;

  29.         if(x!=m_x)
  30.         {
  31.                 if(x>m_x)         {        DIRX1; tmp=x-m_x;}
  32.                 else                {        DIRX0; tmp=m_x-x;}
  33.                 //--加速標志-------------------------------------------------
  34.                 if(tmp>11)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  35.                 M_speed=Speed;
  36.                 for(;tmp>0;tmp--)
  37.                 {       
  38.                         for(j=0;j<200/3;j++)                           //1毫米
  39.                         {
  40. //                                        if(x<m_x)                                       
  41. //                                                {m_x=0;break;}
  42.                                 PULX1;delay_us(M_speed*100);
  43.                                 PULX0;delay_us(M_speed*100);
  44.                         }
  45.                         if(runfast)
  46.                         {
  47.                                 if(tmp<10)                        //減速區(qū)長度
  48.                                         M_speed+=jiasu_step;                //減速
  49.                                 else
  50.                                 {
  51.                                         if(M_speed>Speed/sudu_beilv)                //速度最高限 us=900
  52.                                                 M_speed-=jiasu_step;                //加速                               
  53.                                 }
  54.                         }
  55.                 }
  56.                 m_x=x;
  57.         }
  58.         if(y!=m_y)
  59.         {
  60.                 if(y>m_y)         {        DIRY1; tmp=y-m_y;}
  61.                 else                {        DIRY0; tmp=m_y-y;}
  62.                 //--加速標志-------------------------------------------------
  63.                 if(tmp>11)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  64.                 M_speed=Speed;
  65.                 for(;tmp>0;tmp--)
  66.                 {
  67.                         for(j=0;j<200/3;j++)
  68.                         {
  69. //                                        if(y<m_y)                                       
  70. //                                                {m_y=0;break;}           //         Y_EN = 0;
  71.                                 PULY1;delay_us(M_speed*100);
  72.                                 PULY0;delay_us(M_speed*100);       
  73.                         }
  74.                         if(runfast)
  75.                         {
  76.                                 if(tmp<10)                        //減速區(qū)長度
  77.                                         M_speed+=jiasu_step;                //減速
  78.                                 else
  79.                                 {
  80.                                         if(M_speed>Speed/sudu_beilv)                //速度最高限
  81.                                         M_speed-=jiasu_step;                //加速                               
  82.                                 }
  83.                         }
  84.                 }
  85.                 m_y=y;
  86.         }
  87.         if(z!=m_z)
  88.         {
  89.                 if(z>m_z)         {        DIRZ1; tmp=z-m_z;}
  90.                 else                {        DIRZ0; tmp=m_z-z;}
  91.                 //--加速標志-------------------------------------------------
  92.                 if(tmp>11)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  93.                 M_speed=Speed;       
  94.                 for(;tmp>0;tmp--)
  95.                 {
  96.                         for(j=0;j<200/3;j++)
  97.                         {
  98. //                                        if(z<m_z)                                       
  99. //                                                {m_z=0;break;}
  100.                                 PULZ1;delay_us(M_speed*100);
  101.                                 PULZ0;delay_us(M_speed*100);
  102.                         }
  103.                         if(runfast)
  104.                         {
  105.                                 if(tmp<10)                        //減速區(qū)長度
  106.                                         M_speed+=jiasu_step;                //減速
  107.                                 else
  108.                                 {
  109.                                         if(M_speed>Speed/sudu_beilv)                //速度最高限
  110.                                         M_speed-=jiasu_step;                //加速                               
  111.                                 }
  112.                         }
  113.                 }
  114.                 m_z=z;
  115.         }
  116.        
  117. //        if(k!=m_k)
  118. //        {
  119. //                K_EN = 0;
  120. //                if(k>m_k)         {        K_CW = 1; tmp=k-m_k;}
  121. //                else                {        K_CW = 0; tmp=m_k-k;}
  122. //                //--加速標志-------------------------------------------------
  123. //                if(tmp>20)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  124. //                M_speed=Speed;       
  125. //                for(;tmp>0;tmp--)
  126. //                {
  127. //                        for(j=0;j<200*16/6;j++)
  128. //                        {
  129. //                                if(Kxianwei==0)
  130. //                                        if(k<m_k)                                       
  131. //                                                {m_k=0;K_EN = 1;break;}
  132. //                                K_CLK =1;delay_us(30);
  133. //                                K_CLK =0;delay_us(30);
  134. //                        }
  135. //                        if(runfast)
  136. //                        {
  137. //                                if(tmp<30)                        //減速區(qū)長度
  138. //                                        M_speed+=jiasu_step;                //減速
  139. //                                else
  140. //                                {
  141. //                                        if(M_speed>Speed/sudu_beilv)                //速度最高限
  142. //                                        M_speed-=jiasu_step;                //加速                               
  143. //                                }
  144. //                        }
  145. //                }
  146. //                K_EN = 1;
  147. //                m_k=k;
  148. //        }
  149.         
  150. }

  151. ……………………

  152. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
SMOTOR.rar (284.74 KB, 下載次數(shù): 213)



作者: wz_dpf    時間: 2018-9-20 09:07
東西挺好
作者: 小世界理論    時間: 2018-10-2 09:48
問下,是32什么型號的單片機

作者: shenxiaofei    時間: 2018-10-6 10:10
謝謝,正在寫這方面。可以作為參考。
作者: bruck    時間: 2018-10-31 10:48
謝謝提供!

作者: bushibuke    時間: 2018-11-5 17:35
謝謝,正在找這方面的資料,值得參考
作者: yuyunkang    時間: 2018-11-18 11:15
不錯哈!
作者: plj213    時間: 2019-6-23 09:18

正在搞這個,資料非常有用啊。。。
作者: 鵬博士PBs    時間: 2019-6-23 10:23
請問樓上所說的是AUTONICS KR-55MC步進電機驅(qū)動器嗎
作者: wis98    時間: 2019-6-24 10:48
正在找這方面的資料,值得參考
作者: zlljackx    時間: 2019-6-26 14:55
挺好的程序,很全用的stm32F1

作者: Valarmorghulis    時間: 2019-8-1 15:50
正要查找這方面的資料
作者: Valarmorghulis    時間: 2019-8-1 15:54
好東西,正要找這方面的資料
作者: yupengwei    時間: 2019-9-5 08:47
謝謝分享,可以學(xué)習一下這方面的
作者: hilam    時間: 2019-10-11 17:14
好資料,加上電機及絲桿參數(shù),就好玩了
作者: zhangjianhu    時間: 2019-10-18 10:58
資料非常有用,非常棒的程序。
作者: zhangjianhu    時間: 2019-10-18 13:09
我用的驅(qū)動器是DM542,非常適用。
作者: hoing1025    時間: 2020-4-18 21:33
謝謝!正好需要
作者: 7631001    時間: 2021-3-25 20:29
很好的代碼,學(xué)習了




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