#include <reg52.h>
sbit SW_L=P3^0;
sbit SW_STOP=P3^1;
sbit SW_R=P3^2;
sbit SW_SLOW=P3^3;
sbit SW_MEDIUM=P3^4;
sbit SW_FAST=P3^5;
void RIGHT();
void LEFT();
void delay(int z)
{
int x;
for(x=0;x<z;x++);
}
void main()
{
P1=0;
if(SW_R==0)
{
RIGHT();
}
if(SW_L==0)
{
LEFT();
}
}
void RIGHT()
{
int l = 1000;
int m = 9000;
while(SW_STOP==1)
{
if(SW_SLOW==0)
{
l=2000;
m=3000;
}
if(SW_MEDIUM==0)
{
l= 4500;
m= 500;
}
if(SW_FAST==0)
{
l= 1000;
m= 50000;
}
P1=0xFD;
delay(l);
P1=0xFF;
delay(m);
}
}
void LEFT()
{
int l = 1000;
int m = 0000;
while(SW_STOP==1)
{
if(SW_SLOW==0)
{
l=2000;
m=3000;
}
if(SW_MEDIUM==0)
{
l= 4500;
m= 500;
}
if(SW_FAST==0)
{
l= 1000;
m= 50000;
}
P1=0xFE;
delay(l);
P1=0xFF;
delay(m);
}
}
(http://s15.postimg.org/njplqi293/2015_12_17_20_43_11.jpg) (http://postimg.org/image/njplqi293/)
(http://s22.postimg.org/6r8121y25/2015_12_17_20_43_11.jpg) (http://postimg.org/image/6r8121y25/)
1/Frequency จะได้ค่า Period ครับ ค่อยเอามาหาค่า duty กับ delay