找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2372|回复: 1
收起左侧

直流电机的PWM调速

[复制链接]
ID:305552 发表于 2018-4-10 23:01 | 显示全部楼层 |阅读模式
#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;      

    }

}

评分

参与人数 2黑币 +58 收起 理由
aifengdian + 8 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:291837 发表于 2018-4-11 08:40 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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