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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3232|回復: 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 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲免费精品 | 91在线观看 | 黄网站涩免费蜜桃网站 | 成人国内精品久久久久一区 | 国产一二三视频在线观看 | 99在线精品视频 | 91在线电影| 亚洲美女一区 | 亚洲国产精久久久久久久 | 欧美性大战久久久久久久蜜臀 | 中文字幕韩在线第一页 | 在线观看中文字幕 | 日本偷偷操 | 黄色片在线观看网址 | 九九热最新地址 | 成人免费观看网站 | 欧美在线视频一区 | 亚洲精品一区二三区不卡 | 91精品国产一二三 | 国产成人精品一区二 | 欧美日韩高清在线一区 | 精品在线 | 欧美mv日韩mv国产网站91进入 | 91免费高清 | 日本精品久久 | 人人草人人干 | 久久久婷| 久久国产亚洲精品 | 欧美激情国产日韩精品一区18 | 久久久黑人 | 亚洲成人一区 | 99精品视频一区二区三区 | 亚洲国产精品第一区二区 | 欧美一二三区 | 成人免费在线观看 | 亚洲精品一区二区三区在线观看 | 免费v片在线观看 | www.99热.com| 欧美成人精品一区二区三区 | 一级黄色影片在线观看 | 日韩精品在线看 |