迷失的小羊 发表于 2013-7-22 20:31:10

智能车 PWM控制直流电机

看了很多文章,才想出来的这个,希望大家指点下,新手上路,渴望指点

/*
* author:        肆意年华-1
* function: PWM 控制电机速度
* date;2013-7-22 11:05:55
* 版本: vertion 1.0
*/
# include<reg52.h>

sbit IN1 = P1^0;                           //驱动电机信号的输出端口
sbit IN2 = P1^1;
sbit ENA = P1^2;                    //PWM 输出端

void int1_init();                        //定时器1初始化        声明

/*
*函数名称:主函数
*
*/
void main()
{
        IN1 = 1;                        //电机逆时针转
        IN2 = 0;
        int1_init();       //定时器1初始化          
        while(1);                   //死循环
       
}

/*
*函数名称:中断函数
*
*/

void int1_interrupt() interrupt 3
{
        static unsigned char M_count;       //        定义半个周期 M_count

        ENA = 0;         
        M_count++;
        if(M_count == 2)// 半个周期               ---占空比 %50
                {
                        ENA = ~ENA;                  
                        M_count = 0;             //重新计时   
                }
       TH1 = (65536-2000)/256; //高电平持续的时间
       TL1 = (65536-2000)%256;
}

void int1_init()
{
        TMOD = 0X10;                           // Timer1同时配置模式1,16位计数模式
        TH1 = (65536-2000)/256;           //定时时间 2ms
        TL1 = (65536-2000)%256;
        TR1 = 1;                                  //打开定时器1
        ET1 = 1;                              //允许定时器1溢出中断
        EA = 1;                                          //打开中断       
}

longfeix86 发表于 2013-7-22 21:16:30

定时器产生的?有些单片机自带PWM,比如AVR

迷失的小羊 发表于 2013-7-23 09:50:19

longfeix86 发表于 2013-7-22 21:16 static/image/common/back.gif
定时器产生的?有些单片机自带PWM,比如AVR

是哈,用51做的,

qq511153186 发表于 2013-9-4 19:57:20

这靠谱?

迷失的小羊 发表于 2013-9-11 08:11:21

我试过了,肯定靠谱

vc9181 发表于 2014-5-26 16:26:30

mark{:smile:}
页: [1]
查看完整版本: 智能车 PWM控制直流电机