Xem mẫu
- ĐỒ ÁN TỐT NGHIỆP
VI ĐIỀU KHIỂN ROBOT DÒ ĐƯỜNG
1
- MỤC LỤC
MỤC LỤC ......................................................................................................................2
Bài báo cáo vi điều khiển Robot dò đường ......................................................................3
I. Mạch............................................................................................................................3
Mạch điều khiển 89S52 ...................................................................................................3
Mạch nguyên lý...............................................................................................................3
Mạch in ...........................................................................................................................4
Mạch điều khiển động cơ “ IC MC 33486”......................................................................5
Mạch nguyên lý...............................................................................................................5
Mạch in ...........................................................................................................................6
Mạch so sánh (“IC LM358”) ...........................................................................................6
Mắt dò đường..................................................................................................................8
Mạch nguyên lý...............................................................................................................8
Mạch in ...........................................................................................................................8
II. CODE Robot dò đường...............................................................................................9
TR0=1;.......................................................................................................................... 10
TR0=1;.......................................................................................................................... 10
TR1=1;.......................................................................................................................... 11
TR1=1;.......................................................................................................................... 11
TR1=1;.......................................................................................................................... 11
TR1=0;.......................................................................................................................... 12
TR1=1;.......................................................................................................................... 12
TR0=0;.......................................................................................................................... 12
TL0=256-tocdo1; ..........................................................................................................12
TR0=1;.......................................................................................................................... 12
TR0=0;.......................................................................................................................... 12
TR0=1;.......................................................................................................................... 12
TR0=0;.......................................................................................................................... 17
TR1=0;.......................................................................................................................... 17
IT0=1; ........................................................................................................................... 17
IP=0; ............................................................................................................................. 17
III. Đồ án Robot dò đường dùng vi điều khiển 89S52 ...................................................18
2
- Bài báo cáo vi điều khiển Robot do đường
I. Mạch
Mạch điều khiển 89S52
Mạch nguyên lý
1 16 1 16
2 DCR0 17 2 DCR1 17
A0 A1 SW0 SW1
2
1
2
1
5 10 5 10 3 18 3 18
A2 A3 SW2 SW3
4 9 4 9 4 19 4 19
A4 A5 SW4 SW5
3 8 3 8 5 DCL0 20 HD1 5 DCL1 20 HD2
A6 A7 SW6 SW7
2 7 2 7 6 21 6 21
D CL 0
D CR0
D CL 1
D CR1
1 6 1 6 7 22 7 22
8 +24V 23 8 +24V 23
DD1 DD2
9 24 C1 9 24 C2
VCC VCC
10 25 10 25
GND GND
11 GND 26 11 GND 26
12 27 104 12 27 104
13 VCC 28 13 VCC 28
14 DK0 29 14 DK1 29
15 PWM0 30 15 PWM1 30
A0 1 39 HDC1 HDC2
T2/P1.0 P0.0/AD0
A1 2 38 BUT1 1 2 BUT0 1 2
T2 EX/P1.1 P0.1/AD1 3 4 3 4
A2 3 37
P1.2 P0.2/AD2 SW1 SW2
A3 4 36
P1.3 P0.3/AD3
RN 1
A4 5 35
P1.4 P0.4/AD4
A5 6 34
P1.5 P0.5/AD5
A6 7 33
P1.6 P0.6/AD6 GND GND
A7 8 32
P1.7 P0.7/AD7
VCC RN3 C3 R1
10K SW0 10 21 PWM0 RES
RXD/P3.0 P2.0/A8 VCC GND
SW1 11 22 DK0
TXD/P3.1 P2.1/A9 10uF 1K
SW2 12 23 PWM1
INT0/P3.2 P2.2/A10
SW3 13 24 DK1
RN 2
INT1/P3.3 P2.3/A11 1 2
SW4 14 25
10K
3 4
T0/P3.4 P2.4/A12
SW5 15 26 SW3
T1/P3.5 P2.5/A13
SW6 16 27 BUT1
WR/P3.6 P2.6/A14
SW7 17 28 BUT0
RD/P3.7 P2.7/A15
10K LR1 VCC
RES 9 31 R2 3
Cx1 33pF RESET EA/VPP VCC SW2
VCC 2
GND
18 30 250 LED 1
X1 XTAL1 ALE/PROG
GND 19 29 JP1
12Mhz XTAL2 PSEN
IC1
Cx2 33pF
1 PNP1 3
+24V
HD3
1
2 D1 R3
2
1 3
GND
1 IN OUT VCC
2 47 R4
HD4 270
2
C4 C6 C5 C7
2200uF/16V104 IC2 2200uF/16V 104 LD1
GND
3
- Mạch in
1
1
2
0 0
2
1
2 3 1
1 2
1
2
2 5
2 1 2 3
2
1
1
1 2 1
1 2
2
21 20
2
9
30 15 30 15 9
2
22 19
1
8
29 14 29 14 8 1 6
23 1 18
7
28 13 28 13 7 2 7
1
24 2 17
6
27 12 27 12 6 3 8
25 16
5
26 11 26 11 5 4 9
26 15
2
4
25 10 25 10 4 5 10
27 14
3
24 9 24 9 3
28 13
2
23 8 23 8 2
29 12
4 1
1 1
22 7 22 7 1
30 11
21 6 21 6
31 10
20 5 20 5 1 2 2 3
32 9 1
19 4 19 4
33 8 2
18 3 18 3
34 7 3
1 6
17 2 17 2
35 6 4
2 7
16 1 16 1
36 5 5
2
3 8
37 4 6
4 9
38 3 7
5 10
39 2 8
1 2 1 2
1
40 1 9
1 2 1 2
1 3 1 3 3
1 2 2
5
4 2 4 2 1
4
- Mạch điều khiển động cơ “ IC MC 33486”
Mạch nguyên lý
+24V R1
HD-MC1 10K
1 LD1
DCR0 VCC R2
2 270
3
PWM0 R3 LD2 GND
4 270
DCL0
5
6 DK0 R4 LD3
270
7
+24V LD4
8
9
10
GND
11
VCC 19 5 DCR0
12 ST OUT1
VCC PWM0 3 D 2 Q1
13 IN1
DK0 DK0 18 4 G
IRF840
14 IN2 GLS1
PWM0 VCC 20 1
15 WAKE
2 S 3
CHAN CAM Cur R GND
12
NC
+24V 21 13 DCL0
V+ OUT2
C1 10 D 2 Q2
NC
47uF/50V GND 1 GND GLS2
17 G
IRF840
1
MC1 S 3
GND
5
- Mạch in
2 1 2 1 2 1 2 1
15
2 2 2 2
14
1 1 13 1 1
13
1 12
2 11
21
3 10
9
8
5
1
7
2
6
5
4
3
3
2
2
1
1
Mạch so sánh (“IC LM358”)
a. Mạch nguyên lý
6
- RN1 102
VCC
LD1 LD2 LD3 LD4 LD5 LD6 LD7 LD8
A0 A1
A0
A1
A2
A3
A4
A5
A6
A7
5 10
A2 A3
4 9
A4 A5
3 8
A6 A7
2 7
1 6
DD1
VCC
GND VR1 VR2
GND VCC GND VCC
0 5 1 3
100K
7 A0 100K 1 A1
LDED0 6 LDED1 2
IC1B IC1A
LDED0 LDED1
5 10
LDED2 LDED3 VR3 VR4
4 9
LDED4 LDED5
3 8 GND VCC GND VCC
LDED6 LDED7
2 7 2 5 3 3
100K
1 6 7 A2 100K 1 A3
LDED2 6 LDED3 2
DD2
VCC
IC2B IC2A
GND
VR5 VR6
RN2 GND VCC GND VCC
LDED0
100K 4 5 5 3
LDED1
7 A4 100K 1 A5
LDED2
LDED4 6 LDED5 2
LDED3
LDED4
IC3B IC3A
LDED5
LDED6 VR7 VR8
LDED7 GND VCC GND VCC
VCC 6 5 7 3
103 100K 7 A6 100K 1 A7
LDED6 6 LDED7 2
IC4B IC4A
b. Mạch in
0 6 7 8 9 10
1 2 3 4 5
9 8 7 6 5 4 3 2 1
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
1 8 1 8 1 8 1 8
2 7 2 7 2 7 2 7
3 6 3 6 3 6 3 6
4 5 4 5 4 5 4 5
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
1 2 3 4 5 6 7 8 9
6 7 8 9 10
1 2 3 4 5 1
7
- Mắt dò đường
Mạch nguyên lý
VCC VCC VCC VCC VCC VCC VCC VCC
LDED0 LDED1 LDR1 LDR2 LDR3 LDR4 LDR5 LDR6 LDR7 LDR8
5 10
LDED2 LDED3
4 9
LDED4 LDED5
3 8
LDED6 LDED7
2 7 LDED0 LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7
1 6
R1 R2 R3 R4 R5 R6 R7 R8
DD1 10K 10K 10K 10K 10K 10K 10K 10K
VCC
GND
GND GND GND GND GND GND GND GND
VCC VCC VCC VCC VCC VCC VCC VCC
R9 R10 R11 R12 R13 R14 R15 R16
1K 1K 1K 1K 1K 1K 1K 1K
LD1 LD2 LD3 LD4 LD5 LD6 LD7 LD8
GND GND GND GND GND GND GND GND
Mạch in
10 9 8 7 6
3 0
5 4 3 2 1
1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2
1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1
2
8
- II. CODE Robot dò đường
#include
//========= Định nghĩa chiều quay bánh==========
#define go 1
#define back 0
//-------------------------------------------------------------------
#define out 0xFF // 0B11111111
//============= Định nghĩa mắt dò================
#define R7 0x7F // 0B01111111
#define R6 0x3F // 0B00111111
#define R5 0xBF // 0B10111111
#define R4 0x9F // 0B10011111
#define R3 0xDF // 0B11011111
#define R2 0xAF // 0B11001111
#define R1 0xEF // 0B11101111
#define TT 0xE7 // 0B11100111
#define L1 0xF7 // 0B11110111
#define L2 0xF3 // 0B11110011
#define L3 0xFB // 0B11111011
#define L4 0xF9 // 0B11111001
#define L5 0xFD // 0B11111101
#define L6 0xFA // 0B11111100
#define L7 0xFE // 0B11111110
//-----------------------------------------------------------------
// =========== Định nghĩa Pin xung PWM, Pin điều khiển=======
sbit xung=P2^0;
sbit dk1=P2^1;
sbit dk2=P2^3;
sbit xung2=P2^2;
//------------------------------------------------------------------------------------
9
- // khai báo
unsigned char tocdo1,tocdo2 ;
unsigned char x=0,y=0;
unsigned long int counter0=0;
unsigned char INPUT;
// ==============Hàm tạo trễ===============
void delay(unsigned long int a)
{
unsigned long int i;
for (i=0;i
- //-----------------------------------------------------------------------------------
// =============== Điều khiển bánh phải==================
void banhphai (unsigned char tocdo0,unsigned char chieu)
{
if (chieu==go)
{
TR1=1;
tocdo2=tocdo0;
dk2=1;
}
if (chieu==back)
{
TR1=1;
tocdo2=tocdo0;
dk2=0;
}
}
//-----------------------------------------------------------------------------------
//============ Tao Xung PWM bánh phải =============
void ngatt1 (void) interrupt 3
{
y++;
if( y==1)
{ TR1=0;
TL1=256-tocdo2;
xung2=1;
TR1=1;
}
if (y==2)
11
- {
TR1=0;
TL1=256-(100-tocdo2);
xung2=0;
TR1=1;
y=0;
}
}
//-----------------------------------------------------------------------
//============ Tao Xung PWM bánh trái =============
void ngatt0 (void) interrupt 1
{
x++;
if (x==1)
{
TR0=0;
TL0=256-tocdo1;
xung=1;
TR0=1;
}
if (x==2)
{
TR0=0;
TL0=256-(100-tocdo1);
xung=0;
TR0=1;
x=0;
}
12
- }
//-----------------------------------------------------------------------
//=============== Hàm do đường ================
void doduong(unsigned long int cm)
{
unsigned char nhotrai,nhophai;
unsigned char INPUT;
counter0=0;
while((100*cm)>=(counter0*18))
{
INPUT=P1; // mắt dò đượng nhận vào bằng PORT 1.
switch (INPUT)
{
case TT:
{
banhphai(50,go);
banhtrai(50,go);
nhophai=0;
nhotrai=0;
break;
}
case L1:
{
banhphai(55,go);
banhtrai(45,go);
nhophai=0;
nhotrai=0;
break;
}
case L2:
{
banhphai(60,go);
banhtrai(40,go);
nhophai=0;
13
- nhotrai=0;
break;
}
case L3:
{
banhphai(65,go);
banhtrai(35,go);
nhophai=0;
nhotrai=0;
break;
}
case L4:
{
banhphai(70,go);
banhtrai(30,go);
nhophai=0;
nhotrai=0;
break;
}
case L5:
{
banhphai(75,go);
banhtrai(25,go);
nhophai=1;
nhotrai=0;
break;
}
case L6:
{
banhphai(80,go);
banhtrai(20,go);
nhophai=1;
nhotrai=0;
break;
}
case L7:
{
banhphai(85,go);
banhtrai(15,go);
nhophai=1;
14
- nhotrai=0;
break;
}
case R1:
{
banhphai(45,go);
banhtrai(55,go);
nhophai=0;
nhotrai=0;
break;
}
case R2:
{
banhphai(40,go);
banhtrai(60,go);
nhophai=0;
nhotrai=0;
break;
}
case R3:
{
banhphai(35,go);
banhtrai(65,go);
nhophai=0;
nhotrai=0;
break;
}
case R4:
{
banhphai(30,go);
banhtrai(70,go);
nhophai=0;
nhotrai=0;
break;
}
case R5:
{
banhphai(25,go);
banhtrai(75,go);
nhophai=0;
15
- nhotrai=1;
break;
}
case R6:
{
banhphai(20,go);
banhtrai(80,go);
nhophai=0;
nhotrai=1;
break;
}
case R7:
{
banhphai(15,go);
banhtrai(85,go);
nhophai=0;
nhotrai=1;
break;
}
case out:
{
if (nhotrai == 1)
{
banhphai(90,go);
banhtrai(10,back);
}
if (nhophai == 1)
{
banhphai(10,back);
banhtrai(90,go);
}
break;
}
default :
{
if(((INPUT!=R1)||(INPUT!=R2)||(INPUT!=R3)||(INPUT!=R4)||(INPUT!=R
5)||(INPUT!=R6)||(INPUT!=R7)||(INPUT!=L1)||(INPUT!=L2)||(INPUT!=L3
16
- )||(INPUT!=L4)||(INPUT!=L5)||(INPUT!=L6)||(INPUT!=L7)||(INPUT!=out)
));
{
banhphai(50,go);
banhtrai(50,go);
}
break;
}
}
}
}
//------------------------------------------------------------------------------
//================ Hàm Stop===============
void stop(void)
{
TR0=0;
TR1=0;
xung=0;
dk1=0;
dk2=0;
xung2=0;
}
//------------------------------------------------------------------
// Hàm chính
void main (void)
{
TMOD=0x22;
IE=0x8B;
IT0=1;
IP=0;
while(1)
{
doduong(300); // dò đường 3m dừng.
stop();
while(1);
17
- }
}
Bài sử dụng các tài nguyên của 89S52 như sau:
o Timer 0,1 chế đỗ 8bit tạo xung dùng ngắt 1,3
o Ngắt ngoài 0 để đếm đường bằng Encoder
o PORT 1 để nhận tín hiệu từ mắt dò
o Và Pin I/O điều khiển
III. Đồ án Robot dò đường dùng vi điều khiển 89S52
Thực hiên đồ án: Phạm Văn Lượng
Lê Xuân Định
Nguyễn Trần Cường
Lớp: CDT- K9
18
nguon tai.lieu . vn