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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LPC2148+L293電機驅動模塊源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:719621 發表于 2020-3-31 18:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  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)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲一区二区精品 | 伊人网在线看 | 一区二区三区四区在线 | 日韩中文字幕在线免费 | 日韩中文一区二区三区 | 国产精品一区二区三区在线 | 久久久久一区 | 成人免费视频播放 | 中文字幕在线视频观看 | 日韩精品在线观看视频 | 美女在线观看国产 | 精品在线一区二区三区 | 日韩在线日韩 | 国产特一级黄色片 | av香港经典三级级 在线 | 污免费网站 | 亚洲精品第一国产综合野 | 欧美v免费 | 精品亚洲一区二区 | 亚洲一区在线观看视频 | 精品电影 | 精久久久久 | 国产精品高潮呻吟久久av野狼 | 99精品久久久 | 国产高清视频在线观看 | 亚洲人人| 免费在线观看av网站 | 伊人焦久影院 | 伊人伊人| 日本二区在线观看 | 一区2区 | 狠狠狠干| 欧洲精品视频一区 | 国产一区91精品张津瑜 | 日韩中文字幕av | 日韩欧美一区二区三区免费观看 | av黄色在线观看 | 久草网址 | 亚洲成人综合社区 | www.久久精品 | 国产乱人伦精品一区二区 |