Tài liệu Bài báo cáo vi điều khiển Robot do đường doc - Pdf 97

ĐỒ Á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 do đườ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
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ý
T2/P1.0
1
T2 EX/P1.1
2
P1.2
3
P1.3

19
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
P2.7/A15
28
PSEN
29
ALE/PROG
30
EA/VPP
31
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3

A6 A7
A0
A1
A2
A3
A4
A5
A6
A7
RN1
10K
RN2
10K
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
VCC
1
2
3
4
5
6
7
8

20
21
22
23
24
25
26
27
28
29
30
HDC1
DCR0
DCL0
+24V
VCC
DK0
C1
104
GND
PWM0
DCR1
DCL1
1
2
3
4
5
6
7

104
GND
PWM1
RN3
10K
R2
250
LR1
LED
VCC
GND
VCC
SW2
R3
47
C4
2200uF/16V
C6
104
C5
2200uF/16V
C7
104
VCC
GND
LD1
R4
270
1
2

1
GND
2
OUT
3
IC2
1
2
HD1
1
2
HD2
D1
BUT0
BUT1
21
3 4
SW1
21
3 4
SW2
GND GND
BUT0BUT1
3
Mạch in
5
5
1
2 3
4

3
4
2
1
1 2 3
2
1
2
1
1 2
8
6
4
3
2
1
5
7
9
8
6
4
3
2
1
5
7
9
8
6

17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1
2
3
4
5
6
7
8
9
10
1
2
3

18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

13
14
15
HD-MC1
CHAN CAM
DCR0
PWM0
DK0
VCC
DCL0
GND
+24V
LD4
LD3
LD2
LD1
R1
10K
R2
270
R3
270
R4
270
GND
PWM0
DK0
VCC
+24V
C1

12
V+
21
GND
1
Cur R
2
IN1
3
GLS1
4
OUT1
5
OUT2
13
GLS2
17
IN2
18
ST
19
WAKE
20
MC1
5
Mạch in
2
1
2
1

2
1
Mạch so sánh (“IC LM358”)
a. Mạch nguyên lý
6
7
5
6
IC1B
1
3
2
IC1A
VR1
100K
LD1
VR2
100K
GND VCC GND VCC
LD4 LD6LD2 LD3 LD5 LD7 LD8
7
5
6
IC2B
1
3
2
IC2A
VR3
100K

VCC
A0 A1
A2 A3
A4 A5
A6 A7
A0
A1
A2
A3
A4
A5
A6
A7
1
2
3
4
5
6
7
8
9
10
DD2
GND
VCC
LDED0 LDED1
LDED2 LDED3
LDED4 LDED5
LDED6 LDED7

GND
VCC
A0 A1
A2 A3
A4 A5
A6 A7
b. Mạch in
1
0
1 2 3 4 5
6 7 8 9 10
3
2
1
3
2
1
3
2
1
3
2
1
3
2
1
3
2
1
3

2
1
5
6
7
8
4
3
2
1
1 2 3 4 5
6 7 8 9 10
7
Mắt dò đường
Mạch nguyên lý
R3
10K
1
2
3
4
5
6
7
8
9
10
DD1
GND
VCC

GND
VCC
R1
10K
LDR1
GND
VCC
LDED0
R2
10K
LDR2
GND
VCC
LDED1 LDED2 LDED3 LDED4 LDED5 LDED6 LDED7
LD1
R9
1K
GND
VCC
LD2
R10
1K
GND
VCC
LD3
R11
1K
GND
VCC
LD4

1
2
1
2
1
2
1
2
1
2
1
2
1
2
1 1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2

#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<=a;i++);
}
//
//========== Đếm đường ngắt 0=================
void ngat0(void) interrupt 0
{
counter0++;
}
//

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;

//=============== 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);

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;

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 :

{

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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status