找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 932|回复: 4
收起左侧

单片机驱动电机不转动?附程序

[复制链接]
ID:1072529 发表于 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
回复

使用道具 举报

ID:1072529 发表于 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;                 }   } }
回复

使用道具 举报

ID:1034262 发表于 2023-4-23 16:50 | 显示全部楼层
示波器或万用表测量一下输入、输出电平。
回复

使用道具 举报

ID:94031 发表于 2023-4-23 20:04 | 显示全部楼层
你一直  ENA=0; 就是让电机不转,让ENA=1; 电机才可能转。
回复

使用道具 举报

ID:384109 发表于 2023-4-23 20:16 | 显示全部楼层
电机的EA为高
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表