微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > l298n芯片的电机PWM控制问题

l298n芯片的电机PWM控制问题

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit s1=P2^0;
sbit s2=P2^1;
sbit in1=P1^0;
sbit in2=P1^1;
sbit ena=P1^2;
uchar NUM;
uchar PWM;
void delay(uint t)
{
  uint x,y;
  for(x=t;x>0;x--)
     for(y=120;y>0;y--);   
}
void keyscan()
{
  if(s1==0)
    {
       if(PWM!=0x20)   
                {
                 PWM++;
                delay(250);
                }
                else
                PWM=PWM;
     }
  if(P2^1==0)
    {
       if(PWM!=0x01)   
                {
                 PWM--;
                delay(250);
                }
                else
                PWM=PWM;
     }
}
void init_t0()
{
        TMOD=0x01;
        TH0=(65536-500)/256;
        TL0=(65536-500)%256;
        EA=1;
        ET0=0;
        TR0=1;
}
void t0() interrupt 1
{
        TR0=0;
    TH0=(65536-500)/256;
        TL0=(65536-500)%256;
        NUM++;
        if(NUM==33)
        {
                 NUM=0;
        }
         if(NUM>PWM)
                {
                ena=0;
                }
        else
               ena=1;
              in1=1;
                in2=0;
           TR0=1;       
}
void main()
{   
    PWM=16;
    NUM=0;
    init_t0();
        while(1)
        {
            keyscan();
        }
}
这是我所用程序,在仿真过程中P1口始终未高电平,这是为什么呢?
[img]file:///C:\Users\men\AppData\Roaming\Tencent\Users\821340984\QQ\WinTemp\RichOle\~J)NHOX~SU2XB~V]U53][RL.jpg[/img]



仿真图


L298的端口没有控制

谢谢分享,运行可以

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top