📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 用ULN2803驱动步进电机运行
//-----------------------------------------------------------------
// 说明: 本例运行时,按下K1时电机正转3圈,按下K2时反转3圈,
// 按下K3时停止.在进行相应操作时,对应LED将被点亮.
//
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 1000000UL
//本例四相步进电机工作于八拍方式
//正转励磁序列为A->AB->B->BC->C->CD->D->DA
const INT8U FFW[] = {0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};
//反转励磁序列为A->AD->D->CD->C->BC->B->AB
const INT8U REV[] = {0x01,0x09,0x08,0x0C,0x04,0x06,0x02,0x03};
//按键定义
#define K1_DOWN() (RB0 == 0) //K1:正
#define K2_DOWN() (RB3 == 0) //K2:反
#define KX_DOWN() (RB0 == 0 || RB3 == 0 || RB5 == 0) //KX:任意键按下
//LED定义
#define LED1 0
#define LED2 3
#define LED3 5
//-----------------------------------------------------------------
// 步进电机正转或反转n圈(本例步进电机在8拍方式下每次步进45度角)
//-----------------------------------------------------------------
void STEP_MOTOR_RUN(INT8U Direction,INT8U n)
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
INT8U r = 3; //转动圈数
TRISB = 0xFF; RBPU = 0; //RB端口按键输入,内部弱上拉
TRISC = 0x00; PORTC = ~(1<<LED3);//LED输出,初始时停止指示灯LED3点亮
TRISD = 0x00; //PORTD = FFW[0]; //电机控制输出,电机归位
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -