标题: 直流电机的PWM调速 [打印本页]

作者: 2713286758    时间: 2018-4-10 23:01
标题: 直流电机的PWM调速
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit DCOUT = P1^1;//定义电机信号输出端口
unsigned char PWM_ON;   //定义速度等级
#define CYCLE 100        //周期
void Init_Timer0(void);//定时器初始化
void main (void)
{                  
PWM_ON=95;
Init_Timer0();    //初始化定时器0,主要用于数码管动态扫描

while (1);         //主循环

}

void Init_Timer0(void)
{
TMOD |= 0x01;      //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响            
//TH0=0x00;          //给定初值
//TL0=0x00;
EA=1;            //总中断打开
ET0=1;           //定时器中断打开
TR0=1;           //定时器开关打开
}

void Timer0_isr(void) interrupt 1
{
static unsigned char count;
TH0=(65536-2000)/256;          //重新赋值 2ms
TL0=(65536-2000)%256;

if (count==PWM_ON)
    {
     DCOUT = 0;               //如果定时等于on的时间,
                         //说明作用时间结束,输出低电平
    }
  count++;
if(count == CYCLE)       //反之低电平时间结束后返回高电平
    {
    count=0;
    if(PWM_ON!=0)    //如果开启时间是0 保持原来状态
       DCOUT = 1;      

    }

}

作者: aifengdian    时间: 2018-4-11 08:40
谢谢分享!




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