标题:
这个单片机程序为什么不能让电机转动呢?
[打印本页]
作者:
Maryzy
时间:
2020-4-3 19:09
标题:
这个单片机程序为什么不能让电机转动呢?
预想功能:上电后,温度传感器工作,按下按键,电机工作
现在的现象:下载程序后,温度正常显示,按下按键,蜂鸣器会响,按一下响一下,但是电机不转
单片机源程序如下:
#include "reg52.h"
#include "temp.h"
typedef unsigned int u16;
typedef unsigned char u8;
#define GPIO_MOTOR P1
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit L6=P2^5;
sbit beep=P1^5;
sbit k3=P3^2;
u8 displaydata[5];
u8 code wenduduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//ÏÔê¾0,1,2,3μè
unsigned char code FFS[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//·′×a
unsigned char code FFN[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//Õy×a
unsigned char Direction,Speed;
void Motor();
//Ñóê±oˉêy,i=1,Ñóê±10us
void delay(u16 i)
{
while(i--);
}
//ζè′|àíoˉêy
void dataprocess(int temp)
{
float tp,a;
if(temp<0)
{
displaydata[0]=0x40;
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
else
{
displaydata[0]=0x00;
tp=temp;
temp=tp*0.0625*100+0.5;
}
displaydata[1]=wenduduan[temp%10000/1000];
displaydata[2]=wenduduan[temp%1000/100]|0x80;
displaydata[3]=wenduduan[temp%100/10];//
displaydata[4]=wenduduan[temp%10/1];//
a=temp/100;
if(a>22.99)
{
L6=0;
}
else
{
L6=1;
}
}
//êyÂë1üÏÔê¾oˉêy
void wendudisplay()
{
u8 i;
for(i=0;i<5;i++)
{
switch(i)
{
case(0):
LSA=1;LSB=1;LSC=1;break;//ÏÔê¾μú0λ
case(1):
LSA=0;LSB=1;LSC=1;break;
case(2):
LSA=1;LSB=0;LSC=1;break;
case(3):
LSA=0;LSB=0;LSC=1;break;
case(4):
LSA=1;LSB=1;LSC=0;break;
// case(5):
// LSA=0;LSB=1;LSC=0;break;
}
P0=displaydata[i];//·¢Ëíêy¾Y
delay(100);
P0=0x00;//Ïûòt
}
}
void main()
{
Speed=10;
TMOD=0x10;
TH1=0x3C;
TL1=0xB0;
EA=1;
ET1=1;
TR1=0;
while(1)
{
dataprocess(DS18B20readtemp());
wendudisplay();
if(k3==0)
{
delay(1);
if(k3==0)
{
TR1=1;
Direction=1;
Speed=10;
beep=~beep;
Motor();
}
}
else
{
TR1=0;
}
}
}
void timer() interrupt 3
{
static u16 i;
TH1=0x3C;
TL1=0xB0;
i++;
if(i==100)
{
delay(5000);
delay(5000);
Direction=0;
Speed=10;
i=0;
}
Motor();
}
复制代码
作者:
liu5678
时间:
2020-4-3 20:41
看了看你写的主程序,应该没什么大问题。
1.看看工程文件中硬件驱动hardware里有没有添加电机驱动程序。step_moter.c文件记得要添加上。
2.看看驱动程序中对单片机的引脚分配有没有冲突,如果有,记得避免和其他硬件冲突。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1