基于STC11F02E 步进电机电路验证程序 (1)
书接上文,本来是打算在MT6735 上直接写linux驱动,来驱动步进电机,但考虑到项目进度和android的调试繁琐,索性改了方案——直接使用外挂单片机形式,主模块通过uart发送指令驱动步进电机。 领导让我选型单片机,那有什么可选的基于成本最低就是51了,考虑易下功能就是,IO引脚够,还得能存储数据,那就STC11F02E -sop20了。应该RMB2.5吧不含税。好了废话不多少说了...
·
书接上文,本来是打算在MT6735 上直接写linux驱动,来驱动步进电机,但考虑到项目进度和android的调试繁琐,索性改了方案——直接使用外挂单片机形式,主模块通过uart发送指令驱动步进电机。
领导让我选型单片机,那有什么可选的基于成本最低就是51了,考虑易下功能就是,IO引脚够,还得能存储数据,那就STC11F02E -sop20了。应该RMB2.5吧不含税。好了废话不多少说了,直接上原理图,上程序。
#include <reg52.h>
#include <intrins.h>
sfr P0M0 = 0x94;
sfr P0M1 = 0x93;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xB1;
sfr P3M0 = 0xB2;
sfr P4M1 = 0xB3;
sfr P4M0 = 0xB4;
sfr P4 = 0xC0;
sbit K1=P1^6;
sbit K2=P1^5;
sbit K3=P1^4;
sbit K4=P1^3;
sbit K5=P1^2;
sbit K6=P1^1;
sbit K7=P1^0;
sbit K8=P3^7;
void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<125; k++)
{ }
}
}
void main()
{
int t=15; //控制速度
P1M1=0;P1M0=0;
P2M1=0;P2M0=0;
P3M1=0;P3M0=0;
while(1){
K1=1; K2=0; K3=0; K4=0;
K5=1; K6=0; K7=0; K8=0;
delay(t);
K1=1; K2=1; K3=0; K4=0;
K5=1; K6=1; K7=0; K8=0;
delay(t);
K1=0; K2=1; K3=0; K4=0;
K5=0; K6=1; K7=0; K8=0;
delay(t);
K1=0; K2=1; K3=1; K4=0;
K5=0; K6=1; K7=1; K8=0;
delay(t);
K1=0; K2=0; K3=1; K4=0;
K5=0; K6=0; K7=1; K8=0;
delay(t);
K1=0; K2=0; K3=1; K4=1;
K5=0; K6=0; K7=1; K8=1;
delay(t);
K1=0; K2=0; K3=0; K4=1;
K5=0; K6=0; K7=0; K8=1;
delay(t);
K1=1; K2=0; K3=0; K4=1;
K5=1; K6=0; K7=0; K8=1;
delay(t);
}
}
程序只是为了验证一下电路没问题。ldo升压5V没问题,并未加逻辑控制。稍后写完贴出带逻辑控制的,大概得下个月了,调完这个还得调android其他驱动部分,需要的留言。
更多推荐
已为社区贡献1条内容
所有评论(0)