芯片解密LPC2148+L293电机驱动模块源程序
- 芯片解密/******************************************************
- 芯片解密**四相步进电机驱动范例,与LPC2148核心板接线如下**
- **P1.16--------------In1**
- **P1.17--------------In2**
- **P1.18--------------In3**
- **P1.19--------------In4**
- ******************************************************/
- #include <LPC214X.H>
- #include "Timer.h"
- #include "type.h"
- #define key (1 << 16) //P0.16接按键,控制电机正反转
- #define LED (1 << 24) //P1.24控制LED
- INT8U direction;
- const INT8U phasic_tab[]={0x01,0x03,0x02,0x05,0x04,0x0c,0x08,0x09}; //四相八拍
- int main()
- {
- INT8U i;
- init_timer(); //定时器初始化
- IO1DIR = 0x01ff0000;//P1.16-P1.24 使能输出
- while(1)
- {
- IO1SET |= LED;
- if(! (IO0PIN & key))
- {
- delayms(20); //延时去抖动
- if(! (IO0PIN & key))
- direction ^= 0xff; //方向取反
- while(! (IO0PIN & key));
- }
- IO1PIN = (IO1PIN & 0xff00ffff) | (INT32U)(phasic_tab[i] << 16); //输出脉冲
- if(direction)
- { //正转
-
- if(++i > 7)
- i = 0;
- }
- else
- { //反转
-
- if(--i > 7 )
- i = 7;
- }
- IO1CLR |= LED;
- delayms(10); //延时的长短可控制电机转速,不能超过步进电机的最高运行频率
- //并且起动的时候不能超过步进电机的最高起动频率,否则会失步
- }
- }

芯片解密