久久久久久久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://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久毛片 | 国产a久久麻豆入口 | 亚洲欧美日本在线 | 国产毛片毛片毛片 | 亚洲高清在线播放 | 午夜在线免费视频 | 免费av一区二区 | 亚洲精品久久久久久久久 | 视频一二三区 | 亚洲第二页 | 中文字幕在线免费观看视频 | 婷婷久久五月 | 中文字幕在线免费看线人 | 中文字幕国产在线 | 亚洲一区二区av | 国内精品一区二区 | 中文字幕精品在线观看 | 黑人操亚洲女人 | 福利网站在线观看 | 欧美在线视频一区 | 亚洲精品1区 | 中文字幕免费观看视频 | 亚洲综合区 | 国产精品视频免费看 | 天天澡天天狠天天天做 | 免费福利片 | 亚洲国产成人在线 | www黄色| 国产成人精品一区二区 | 黑人巨大精品欧美一区二区 | 欧美亚洲在线观看 | www色| 午夜天堂在线 | 日韩福利片 | 懂色av | 久久综合久色欧美综合狠狠 | 午夜天堂网 | 天堂在线免费观看 | 伊人久久av | 婷婷综合网| 欧美精品综合 |