找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机闭环控制2电机速度一致

[复制链接]
跳转到指定楼层
楼主
ID:82781 发表于 2015-6-13 19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>

#define uint unsigned int
#define uchar unsigned char
#define uong unsigned long
sbit motor=P0^0;
sbit motor1=P0^1;
bit OVER;
uint dt,dc;
uchar NUM;
void Delay(uint ms)
{
while(--ms);
}
////////
void initial()//初始化
{
TMOD=0x55; //定时器T1工作与计数器模式1,定时器T0工作于计数器模式1
RCAP2H=-(10248%256);
RCAP2L=-(10248%256);
ET2=1;
EA=1;
}
////////
void timer2() interrupt 5
{
TF2=0;
NUM++;
if(NUM>=10)
{
TR0=0;
TR1=0;
TR2=0;
OVER=1;
}
}
uint CK(void)
{
uint number;
motor=1;
OVER=0;
NUM=0;
TH1=0;
TL1=0;
TR2=1;
TR1=1;
Delay(dt);
motor=0;
while(!OVER);
OVER=0;
number=TH1*256+TL1;
return(number);
}
////
uint CK1(void)
{
uint number1;
motor1=1;
OVER=0;
NUM=0;
TH0=0;
TL0=0;
TR2=1;
TR0=1;
Delay(dc);
motor1=0;
while (!OVER);
OVER=0;
number1=TH0*256+TL0;
return(number1);
}
//////
void main(void)
{

uint a,b,c;
dt=10000;
dc=10000;
c=10000;
initial();
while(1)
{
  a=CK();
  b=CK1();
while(a!=b)
{
if(a>b)
c++;
if(a<b)
c--;
}
dt=c;
}

}


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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