标题: 单片机驱动电机不转动?附程序 [打印本页]

作者: bbbaddd    时间: 2023-4-23 15:27
标题: 单片机驱动电机不转动?附程序
大家帮忙看看哪里有问题,程序在下面

#include "STC15F2K60S2.h"
sbit IN1=P3^0;
sbit IN2=P3^1;
sbit ENA=P3^2;
unsigned char Flag_zhuan;
unsigned char Counter;



void main()
{        
         ENA=0;        
        IN1=0;        
        IN2=0;
        Timer0_Init();
        


        while (1)
        {        
        
        Flag_zhuan=0;

        }
}




void Timer0_Init(void)                //50毫秒@12.000MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xB0;                                //设置定时初始值
        TH0 = 0x3C;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
}

void INET0() interrupt 1
{
        TL0 = 0xB0;                                //设置定时初始值
        TH0 = 0x3C;
        Counter++;
        if(Counter==10)
        {
                Counter=0;
                if(Flag_zhuan)
                {
                IN1=1;IN2=0;
                }
                else
                {
                IN1=0;IN2=1;
                }
  }
}

51hei.png (20.9 KB, 下载次数: 36)

51hei.png

作者: bbbaddd    时间: 2023-4-23 16:26
改了一下还是不行   ,寻求帮助   #include "STC15F2K60S2.h" sbit IN1=P3^0; sbit IN2=P3^1; sbit ENA=P3^2; bit Flag_zhuan; unsigned char Counter;    void main() {                  ENA=0;                 IN1=0;                 IN2=0;         Timer0_Init();   ET0=1;EA=1;                 while (1)         {                          Flag_zhuan=0;          } }     void Timer0_Init(void)                //50毫秒@12.000MHz {         AUXR &= 0x7F;                        //定时器时钟12T模式         TMOD &= 0xF0;                        //设置定时器模式         TL0 = 0xB0;                                //设置定时初始值         TH0 = 0x3C;                                //设置定时初始值         TF0 = 0;                                //清除TF0标志         TR0 = 1;                                //定时器0开始计时 }  void INET0() interrupt 1 {                              Counter++;         if(Counter==10)         {                 Counter=0;                 if(Flag_zhuan)                 {                 IN1=1;IN2=0;                 }                 else                 {                 IN1=0;IN2=1;                 }   } }
作者: coody_sz    时间: 2023-4-23 16:50
示波器或万用表测量一下输入、输出电平。
作者: xuyaqi    时间: 2023-4-23 20:04
你一直  ENA=0; 就是让电机不转,让ENA=1; 电机才可能转。
作者: 人中狼    时间: 2023-4-23 20:16
电机的EA为高




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1