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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3118|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

LPC2148+L293電機(jī)驅(qū)動(dòng)模塊源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:719621 發(fā)表于 2020-3-31 18:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. /******************************************************
  2. **四相步進(jìn)電機(jī)驅(qū)動(dòng)范例,與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接按鍵,控制電機(jī)正反轉(zhuǎn)
  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();           //定時(shí)器初始化
  19.         IO1DIR = 0x01ff0000;//P1.16-P1.24 使能輸出

  20.         while(1)
  21.         {
  22.                 IO1SET |= LED;
  23.                 if(! (IO0PIN & key))
  24.                 {
  25.                         delayms(20);        //延時(shí)去抖動(dòng)
  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.                 {  //正轉(zhuǎn)
  33.                         
  34.                         if(++i > 7)
  35.                                 i = 0;
  36.                 }
  37.                 else
  38.                 {  //反轉(zhuǎn)
  39.                         
  40.                         if(--i > 7 )
  41.                           i = 7;
  42.                 }
  43.                 IO1CLR |= LED;
  44.                 delayms(10); //延時(shí)的長(zhǎng)短可控制電機(jī)轉(zhuǎn)速,不能超過(guò)步進(jìn)電機(jī)的最高運(yùn)行頻率
  45.                              //并且起動(dòng)的時(shí)候不能超過(guò)步進(jìn)電機(jī)的最高起動(dòng)頻率,否則會(huì)失步
  46.         }
  47. }
復(fù)制代碼
  1. //文件名:Time.c
  2. //功能:  定時(shí)器Timer0的初始化以及定時(shí)器中斷函數(shù)和延時(shí)函數(shù)

  3. #include <LPC214X.H>                        

  4. #include "type.h"


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

  6. /************************************************************/
  7. /*  函數(shù)名稱 :   Tick                                       */
  8. /*  函數(shù)功能 : 定時(shí)器中斷函數(shù),每進(jìn)入一次中斷,timeval加1  */
  9. /*  參數(shù)     :  無(wú)                                          */
  10. /*  返回值   :  無(wú)                                          */
  11. /*----------------------------------------------------------*/

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


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


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

全部資料51hei下載地址:
L293電機(jī)驅(qū)動(dòng)模塊介紹.rar (764.57 KB, 下載次數(shù): 13)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人免费在线观看 | 欧美日韩国产免费 | 欧美一级淫片免费视频黄 | 在线亚洲免费视频 | 国产精品综合一区二区 | 久久黄网| 在线视频一区二区三区 | 成人在线视频免费播放 | 亚洲黄色av | 在线观看国产视频 | 成人在线精品视频 | 日韩和的一区二区 | 日韩国产精品一区二区三区 | 欧美精品一区二区三区蜜桃视频 | 1区2区视频| .国产精品成人自产拍在线观看6 | 欧美二区乱c黑人 | 国产精品一区二区视频 | 中文字幕一区二区三区在线观看 | 亚洲精品av在线 | 成人欧美一区二区三区白人 | 亚洲精品视频在线 | 亚洲精品白浆高清久久久久久 | 国产婷婷在线视频 | 在线国产视频观看 | 国产视频在线一区二区 | 国产一区二区久久久 | 成人精品视频免费 | 草草视频在线观看 | 国产免费一区二区 | 国产精品久久久久久网站 | 国产japanhdxxxx麻豆 | 亚洲精品久久久一区二区三区 | 亚洲久久在线 | 亚洲三级在线 | 亚洲精品久久区二区三区蜜桃臀 | 天天躁日日躁狠狠的躁天龙影院 | 国产综合av| 99精品欧美一区二区三区综合在线 | 久久99网| 日韩a在线 |