颜色驱动电机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/**************************************************************************************


***************************************************************************************/

#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
typedef unsigned int uint;

sbit IN1=P3^7;
sbit ENA=P3^6;
sbit IN2=P3^5; //L
sbit ENB=P3^4; //L

sbit ENSER=P3^0;

uint time_temp=0;


/*******************************************************************************


*******************************************************************************/
void delay(u16 i)
{
while(i--);
}

void Speed_L(uint a) // ????0~100
{

ENB=1;
//ENB=1;
delay(a); // a??,????,????
ENB=0;
//ENB=0;// ???
delay(100-a);// ??
}

void Speed_R(uint a) // ????0~100
{

ENA=0;
//ENB=1;
delay(a);
ENA=1;

}
void Speed_SER(uint a) // ?0~100
{
switch(time_temp%2){
case 0:
ENSER=1;
delay(a);
ENSER=0;
delay(10-a);
break;
case 1:
ENSER=0;
delay(a);
ENSER=1;
delay(10-a);
break;
}
time_temp=time_temp+1;
}
/*******************************************************************************

*******************************************************************************/
void main()
{
while(1)
{
//led=0x00;
//delay(50000);
//led=0;//led2=0;
//delay(50000);


///////////*
/*IN2=1;
IN1=0;
Speed_L(98);
Speed_R(98);
Speed_SER(5); */
///////////*
IN2=0; //L //35
ENB=1;//34


}
}