|
#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; //定時(shí)器T1工作與計(jì)數(shù)器模式1,定時(shí)器T0工作于計(jì)數(shù)器模式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;
}
}
|
|