驱动硬盘电机

准备工作:
材料:





驱动模块L298
两节19650电源(8v左右)
杜邦线若干
51单片机系统板
硬件接线





把电机的4根线接驱动模块的OUT1-4。
用的电源是2节18650串联8V左右,接驱动模块的12V(宽电压输入)和GND,GND处再引出一根线接系统板的GND,再从驱动模块的5V引出一根线接系统板的5V。再用4跟杜邦线从系统板的P1^1-P1^4(对应自己设定的IO口)接驱动模块的IN1-4。
程序部分

搞软件部分,在电脑上用KEIL5编写程序文件:
#include <reg52.h>
sbit In1 = P1^1;
sbit In2 = P1^2;
sbit In3 = P1^3;
sbit In4 = P1^4;
sbit LED = P1^6;
unsigned int dm_time = 10;
void system_init(void)
{
EA = 1; //使能总中断
TMOD = 0x01; //设置 T0 为模式 1
TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
TL0 = 0x67;
ET0 = 1; //使能 T0 中断
TR0 = 1; //启动 T0
}
void dianji(void)
{
static char t = 0;
if(t==0)
{
In2 = 1;In3 = 1;In4 = 0;
}
else if(t==1)
{
In2 = 0;In3 = 1;In4 = 1;
}
else if(t==2)
{
In2 = 1;In3 = 0;In4 = 1;
}
t++;
if(t>=3) t=0;
}
void main(void)
{
system_init();
LED = 0;
while(1)
{
}
}
void com_isr() interrupt 4
{
}
void InterruptTimer0() interrupt 1
{
static unsigned int cnt = 0;
TH0 = 0xFC; //T0计时器定时1毫秒 高字节
TL0 = 0x67; //T0计时器定时1毫秒 低字节
cnt++;
if(cnt==dm_time)
{
dianji();
cnt=0;
LED = ~LED;
}
}
测试



用STCAI-ISP软件把编译好的执行文件烧入到51系统板中。上电测试。









