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

標題: LPC2148+L293電機驅動模塊源程序 [打印本頁]

作者: SSX00    時間: 2020-3-31 18:47
標題: LPC2148+L293電機驅動模塊源程序
  1. /******************************************************
  2. **四相步進電機驅動范例,與LPC2148核心板接線如下**
  3. **P1.16--------------In1**
  4. **P1.17--------------In2**
  5. **P1.18--------------In3**
  6. **P1.19--------------In4**
  7. ******************************************************/
  8. #include <LPC214X.H>

  9. #include "Timer.h"
  10. #include "type.h"

  11. #define key  (1 << 16)                //P0.16接按鍵,控制電機正反轉
  12. #define LED  (1 << 24)      //P1.24控制LED

  13. INT8U direction;

  14. const INT8U phasic_tab[]={0x01,0x03,0x02,0x05,0x04,0x0c,0x08,0x09};        //四相八拍

  15. int main()
  16. {
  17.         INT8U i;
  18.         init_timer();           //定時器初始化
  19.         IO1DIR = 0x01ff0000;//P1.16-P1.24 使能輸出

  20.         while(1)
  21.         {
  22.                 IO1SET |= LED;
  23.                 if(! (IO0PIN & key))
  24.                 {
  25.                         delayms(20);        //延時去抖動
  26.                         if(! (IO0PIN & key))
  27.                                 direction ^= 0xff; //方向取反
  28.                         while(! (IO0PIN & key));
  29.                 }
  30.                 IO1PIN = (IO1PIN & 0xff00ffff) | (INT32U)(phasic_tab[i] << 16); //輸出脈沖
  31.                 if(direction)
  32.                 {  //正轉
  33.                         
  34.                         if(++i > 7)
  35.                                 i = 0;
  36.                 }
  37.                 else
  38.                 {  //反轉
  39.                         
  40.                         if(--i > 7 )
  41.                           i = 7;
  42.                 }
  43.                 IO1CLR |= LED;
  44.                 delayms(10); //延時的長短可控制電機轉速,不能超過步進電機的最高運行頻率
  45.                              //并且起動的時候不能超過步進電機的最高起動頻率,否則會失步
  46.         }
  47. }
復制代碼
  1. //文件名:Time.c
  2. //功能:  定時器Timer0的初始化以及定時器中斷函數和延時函數

  3. #include <LPC214X.H>                        

  4. #include "type.h"


  5. unsigned long volatile timeval;  //延時用的全局變量

  6. /************************************************************/
  7. /*  函數名稱 :   Tick                                       */
  8. /*  函數功能 : 定時器中斷函數,每進入一次中斷,timeval加1  */
  9. /*  參數     :  無                                          */
  10. /*  返回值   :  無                                          */
  11. /*----------------------------------------------------------*/

  12. void Tick (void) __irq  
  13. {
  14.           ++timeval;
  15.           T0IR        = 1;                            // 清除中斷標志
  16.           VICVectAddr = 0;                            // 對VICVectAddr執行寫操作,通知VIC中斷處理結束
  17. }


  18. /**********************************************************************/
  19. /*  函數名稱 :   init_timer                                           */
  20. /*  函數功能 : 定時器timer0的初始化,包括計數初值,設置中斷優先級等  */
  21. /*  參數     :  無                                                    */
  22. /*  返回值   :  無                                                    */
  23. /*--------------------------------------------------------------------*/
  24. void init_timer (void)
  25. {
  26.           T0MR0 = 15000;//1ms的計數初值,當前處理器的時鐘頻率為12 * 5 = 60M,具體設置見startup.s
  27.           T0MCR = 3;    // 設置T0MR0匹配后復位T0TC,并產生中斷標志
  28.           T0TCR = 1;    //啟動定時器                              
  29.           VICVectAddr0 = (INT32U)Tick;//設置中斷服務程序的地址         
  30.           VICVectCntl0 = 0x20 | 4;//分配timer0中斷到中斷向量0                    
  31.           VICIntEnable |= 1 << 0x00000004;//timer0中斷使能                 
  32. }


  33. /**********************************************************************/
  34. /*  函數名稱 :  delayms                                               */
  35. /*  函數功能 : 延時函數                                                                                          */
  36. /*  參數     :  ms,單位ms(毫秒)                                    */
  37. /*  返回值   :  無                                                    */
  38. /*--------------------------------------------------------------------*/
  39. void delayms (unsigned int ms)  
  40. {                             
  41.           unsigned long i;
  42.           i = timeval;
  43.           while ((i + ms) != timeval);                  
  44. }
復制代碼

全部資料51hei下載地址:
L293電機驅動模塊介紹.rar (764.57 KB, 下載次數: 13)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久国产精品一区二区三区 | 69精品久久久久久 | 一区二区三区视频在线观看 | 日韩精品一区二区在线观看 | 成人免费视屏 | 91视频在线 | 欧美日韩视频网站 | 久久99精品久久久久久国产越南 | 久久精品国产亚洲夜色av网站 | 欧美jizzhd精品欧美巨大免费 | 精品视频国产 | 日韩精品三区 | 夜夜爽99久久国产综合精品女不卡 | 欧美日韩亚洲一区 | 日本精品免费 | 色一级 | 中文字幕av色 | 成人午夜性成交 | 中文字幕高清免费日韩视频在线 | 国产 日韩 欧美 制服 另类 | 在线免费亚洲视频 | 久久网一区二区 | 亚洲精品一区二区三区在线观看 | 在线一区视频 | 超碰高清 | 欧美三级三级三级爽爽爽 | 精品久久久久久久久久久久久久 | 国产一区二区久久久 | 91久久国产 | 波多野结衣精品在线 | 成人性视频免费网站 | 国产线视频精品免费观看视频 | 国产成人精品一区 | 在线欧美一区 | 久久久精品视频免费看 | h视频免费在线观看 | 福利视频一二区 | 久久久久久久久久久91 | 69av片| 久久久精品视频免费看 | 国产精品久久久久久久久久久免费看 |