1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

18 1,6K 6
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ án tốt nghiệp vi điều khiển robot dò đường
Chuyên ngành Điện tử - Vi điều khiển
Thể loại Đồ án tốt nghiệp
Định dạng
Số trang 18
Dung lượng 363,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐỒ ÁN TỐT NGHIỆPVI ĐIỀU KHIỂN ROBOT DÒ ĐƯỜNG... Bài báo cáo vi điều khiển Robot do đườngI... Mạch nguyên lý... Đồ án Robot dò đường dùng vi điều khiển 89S52 Thực hiên đồ án: Phạm Văn Lượ

Trang 1

ĐỒ ÁN TỐT NGHIỆP

VI ĐIỀU KHIỂN ROBOT DÒ ĐƯỜNG

Trang 2

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

Trang 3

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 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8

RESET 9

RXD/P3.0 10 TXD/P3.1 11 INT0/P3.2 12

INT1/P3.3 13

T0/P3.4 14 T1/P3.5 15 WR/P3.6 16 RD/P3.7 17

XTAL1 18 XTAL2 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 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32

IC1

DK0 DK1

PWM0 PWM1

1

2

3

4

5

6

7

8

9

10

DD1

GND VCC

A0 A1 A2 A3 A4 A5 A6 A7

10K

10K

SW0 SW1 SW2 SW3 SW4 SW5 SW6 SW7 VCC

1 2 3 4 5

6 7 8 9 10

DD2

GND VCC

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

HDC1

DCR0

DCL0

+24V

VCC DK0

C1 104

GND

PWM0

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

HDC2

DCR1

DCL1

+24V

VCC DK1

C2 104

GND

PWM1

RN3

R2 250

LR1 LED

VCC GND

R3 47 C4

2200uF/16VC6104

C5 2200uF/16V C7104

VCC

GND

LD1

R4 270

1

3

PNP1

+24V

VCC

X1 12Mhz Cx2 33pF

Cx1 33pF

GND

RES

R1 1K

C3 10uF

2 1 4

SW3

GND

1 2 3

JP1

1

2

HD3

1

2

HD4

IN 1

OUT 3

IC2

HD1

HD2

D1

BUT0 BUT1

2 1 4

SW1

2 1 4

SW2

BUT0 BUT1

Trang 4

Mạch in

5

5

1

4

1

2 3

4

1

2

1

2

2

1

1

2 2

1

2

1

2

2

3

2

1

2

1

2 1 2

1

1

2 3

4

2

1

2

1

2

1

8

6

4

3

2

1

5 7

9

8

6

4

3

2

1

5 7 9

8 6

4 3 2 1

5

7

9

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

20

19

18

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

4

5

6

7

8

9

10

2 1

2

1

1 2

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

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

2 1

2 1

Trang 5

Mạch điều khiển động cơ “ IC MC 33486”

Mạch nguyên lý

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

HD-MC1

CHAN CAM

DCR0

PWM0 DK0 VCC

DCL0

GND

LD3 LD2 LD1

R1 10K R2 270 R3 270 R4270

GND PWM0

DK0

VCC +24V

C1 47uF/50V

VCC

VCC

+24V

PWM0 DK0

GND

G 1 2

3 S

D Q1 IRF840

G 1 2

3 S

D Q2 IRF840

GND

GND

DCR0

DCL0 NC

10 NC 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

Trang 6

Mạch in

2

1 2

1 1

1

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

1 2 3

3 2 1

21

5 13

2 1

Mạch so sánh (“IC LM358”)

a Mạch nguyên lý

Trang 7

7 5

6

IC1B

1 3

2

IC1A

VR1 100K

LD1

VR2 100K

LD4 LD6 LD2 LD3 LD5 LD7 LD8

7 5

6

IC2B

1 3

2

IC2A

VR3 100K

VR4 100K

7 5

6

IC3B

1 3

2

IC3A

VR5 100K

VR6 100K

7 5

6

IC4B

1 3

2

IC4A

VR7 100K

VR8 100K

VCC

A A A A A A A A

1

3

5

6

8

10

DD2

GND

VCC

RN2

103

LDED0

LDED2

LDED4

LDED6

VCC

1

3

5

6

8

10

DD1

GND

VCC

b Mạch in

1 0

3

2

1

3

2

1

3 2 1

3 2 1

3 2 1

3 2 1

3 2 1

3 2 1

9 7 5

2

5 6 7 8

4

3

2

1

5 6 7 8

4 3 2 1

5 6 7 8

4 3 2 1

5 6 7 8

4 3 2 1

Trang 8

Mắt dò đường

Mạch nguyên lý

R3 10K

1

3

5

6

8

10

DD1

GND

VCC

LDR3

GND

VCC

R4 10K LDR4

GND

VCC

R5 10K LDR5

GND

VCC

R6 10K LDR6

GND

VCC

R7 10K LDR7

GND

VCC

R8 10K LDR8

GND

VCC

R1 10K LDR1

GND

VCC

LDED0

R2 10K LDR2

GND

VCC

LD1

R9 1K

GND

VCC

LD2

R10 1K

GND

VCC

LD3

R11 1K

GND

VCC

LD4

R12 1K

GND

VCC

LD5

R13 1K

GND

VCC

LD6

R14 1K

GND

VCC

LD7

R15 1K

GND

VCC

LD8

R16 1K

GND VCC

Mạch in

3

0

2

1 2

1 2

1 2

1 2

1 2

1 2

1 2

2

1 2

1 2

1 2

1 2

1 2

1 2

1

2

2 2

2 2

2 2

2 2

2 2

2 1

2 1

1 2

1 3 5 6 8 10

Trang 9

II CODE Robot dò đường

#include <REGX51.H>

//========= Đị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;

Trang 10

// -// 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++;

}

// -//================ Điều khiển bánh trái================== void banhtrai (unsigned char tocdo0,unsigned char chieu)

{

if (chieu==go)

{

TR0=1;

tocdo1=tocdo0;

dk1=1;

}

if (chieu==back)

{

TR0=1;

tocdo1=tocdo0;

dk1=0;

Trang 11

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

Trang 12

{

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;

Trang 13

}

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

Trang 14

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

Trang 15

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;

Trang 16

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!

=R5)||(INPUT!=R6)||(INPUT!=R7)||(INPUT!=L1)||(INPUT!=L2)||(INPUT!

Trang 17

{

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

}

Trang 18

}

 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

Ngày đăng: 20/01/2014, 11:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w