#include "reg52.h" //定義51單片機特殊功能寄存器
//#include "intrins.h"
sbit IN1 = P0^0;
sbit IN2 = P0^1;
sbit ENA = P0^2;
sbit IN3 = P0^3;
sbit IN4 = P0^4;
sbit ENB = P0^5;
void delay(unsigned int z);
void delay_us(unsigned int aa);
void main()
{
while(1)
{
unsigned int i,cycle = 0,T = 2048;
IN1 = 1;
IN2 = 0;
for(i = 0;i < 200;i++)
{
delay(10);
ENA = ~ENA;
}
IN3 = 1;
IN4 = 0;
for(i = 0;i < 200;i++)
{
delay(10);
ENB = ~ENB;
}
IN1 = 0;
IN2 = 1;
for(i = 0;i < 100;i++)
{
delay(10);
ENA = ~ENA;
}
IN3 = 0;
IN4 = 1;
for(i = 0;i < 200;i++)
{
delay(10);
ENB = ~ENB;
}
IN1=1; //自動加速正轉
IN2=0;
IN3 = 1;
IN4 = 0;
while(cycle!=T)
{
ENA=1;
ENB=1;
delay_us(cycle++);
ENA=0;
ENB=0;
delay_us(T-cycle);
}
IN1=0; //自動減速反轉
IN2=1;
IN3 = 0;
IN4 = 1;
while(cycle!=T)
{
ENA=0;
ENB=0;
delay_us(cycle++);
ENA=1;
ENB=1;
delay_us(T-cycle);
}
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x = z;x > 0;x--)
for(y = 110;y > 0;y--);
}
void delay_us(unsigned int aa)
{
while(aa--);
}
|