|
//用的uln2003控制的一個直流電機(jī).
//燒錄進(jìn)去之后發(fā)現(xiàn)電機(jī)自顧自的轉(zhuǎn), 根本不受控制.
//下面是源代碼,求大神指點(diǎn).
#include<reg52.h>
typedef unsigned char u8;
sbit moto=P1^0;
sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
u8 flag=100;
u8 num;
u8 pwm;
void delay(u8 i)
{ while(i--);
}
void keyscanf()
{
if(k1==0)
{delay(10);
if(k1==0)
{ pwm=10;
while(!k1);}
}
if(k2==0)
{delay(10);
if(k2==0)
{pwm=40;
while(!k2);}
}
if(k3==0)
{delay(10);
if(k3==0)
{pwm=80;
while(!k3);}
}
}
void main()
{moto=0;
TMOD = 0x01;
TH0 = 0x0FC;
TL0 = 0x18;
EA = 1;
ET0 = 1;
TR0 = 1;
keyscanf();
while(1)
{
}
}
void T0_time() interrupt 1
{TR0=0;
TH0 = 0x0FC;
TL0 = 0x18;
TR0=1;
num++;
if(num=flag) num=0;
if(num<=pwm)
{moto=1;}
else
{moto=0;}
}
|
|