找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1194|回复: 0
打印 上一主题 下一主题
收起左侧

简单的PWM 电机调速器

[复制链接]
跳转到指定楼层
楼主
#include <reg51.h>
#include <stdio.h>
#define uchar unsigned char
uchar cycle=100;
uchar speed=50;
sbit IN1=P2^0;
sbit IN2=P2^1;
sbit ENA=P2^2;

void zz()
{
   IN1=1;
   IN2=0;
}
void fz()
{
   IN1=0;
   IN2=1;
}
void stop()
{
   IN1=0;
   IN2=0;
}
void to(void) interrupt 1 using 1
{
   if(cycle>100)
      cycle=0;
   if(cycle>speed)
      ENA=0;
   else
      ENA=1;
   cycle++;
}
void speedup()
{
   if(speed>99)
      speed=100;
   else
      speed++;
}
void speeddown()
{
   if(speed<1)
      speed=0;
   else
      speed--;
}
void main(void)
{
   EA=1;
   EX0=1;
   IT0=1;
   TMOD=0x12;
   TH0=0x06;
   TL0=0x06;
   TR0=1;
   ET0=1;
   PX0=1;
   P1=0xff;
   while(1)
   {

   }
}
void int0(void) interrupt 0 using 0
{
   switch(P1)
   {
      case 0xfe:zz();break;
      case 0xfd:fz();break;
      case 0xfb:stop();break;
      case 0xf7:speedup();break;
      case 0xef:speeddown();break;
      default:P1=0xff;break;
   }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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