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

ĐỒ ÁN ROBOT - CHƯƠNG 7 pps

8 296 1
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 670,42 KB

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

Nội dung

Sơ đồ trên thay thế led 7 thanh bằng LCD .Nhìn chung dung LCD để hiển thị chiến thuật thi đấu chuyên nghiệp hơn vi hiển thị được cả chữ tuy nhiên , dung LCD khá tốn kém và không thật sự

Trang 1

// bat nga tu

if ((out_left==vach)&&(out_right==vach))

{

while ((LEFT==vach)&&(RIGHT==vach))

{

d++;

if (d==100)

{

dem++;

d=0;

if (dem<songatu)

{ h_thi(dem); motor(forward); delay(1200);}

break;//thoat khoi while

}//if

}// while

if (dem==songatu) {h_thi(dem);motor(stop);dem=0;break;}

}

// chinh lech nhieu

}//end of while (1)

}//end of golong_ngatmo

Trong khi thi đấu ,có rất nhiều các tính huống xảy ra Do đó người lập trình cần phải xây dựng nhiều chiến thuật thi đấu khác nhau để đảm bảo có thể xử

lý kịp thời mọi tình huống có thể có trên sân

đẻ hiển thị chiến thuật thi đấu ,bạn có thể dung led 7 thanh hay màn hình LCD ,một hệ thống các phím bấm để điều khiển ,để lựa chọn các giải pháp thi đấu.Thực chất ,ở phần này chúng ta đã quy về bài toán lập trình giao tiếp

vi điều khiển với bàn phím và màn hình LCD ,led 7 thanh

Trang 2

7.1.Sơ đồ nguyên lý

a)Giao tiếp với led 7 thanh

T1

5V

Rp2 470

L _

at2

A3

/INT1

PO2

PO5

5V

Rp3 470

L _

at3

5V

SW1

B2

/INT0

P30(RXD)

R7 R R4

R R5

R

R6 R8

PO6

R9

5V

5V

Rp4 470

L _

at4

U16 SN7447

D0 7 D1 1 D2 2 D3 6

BI/

R B O

4 R

BI 5 L 3

D 10 E 9 F 15 A 13 B 12 C 11 G 14

V C

1

G D 8

Led_Phat6 PO0

a

g

d

c

e

U17

. 2

. 1

. 9

. 7

. 6

. 4

. 5

.

8

D

P

1

Vc

3

PO2

B3

Y 1

11.509Mhz

PO3

P31(TXD)

P31(TXD)

Rp5 470

L _

at5 5V

Rs1

10k

5V B4

5V

Cta1 30p

5V

Rp6 470

L _

at6

PO4 Start

P30(RXD)

ISP_program

CON10AP

Led_Thu1

B5

PO5

Led_Thu2

PO0

Cs1

100uF

PO6

Led_Thu3

Cta230p

PO1

Vidieukhien6

Led_Thu4

PO7

PO2 P

O7

Led_Thu5

Vidieukhien5

Connecter_sensor

CON16AP

11 12 13 14

SELECT_PRO

PO3 PO1

R_24V 10

PO1

Led_Thu6

Vidieukhien4

PO4

RST

5V

Led_Phat1

Vidieukhien3

PO5

5V

Vidieukhien2

PO6

Led_Phat2

Vidieukhien1

PO7

int

CON10

1 3 5 7 9 10

Led_Phat3

Rsip1

10k

4

6

8

/INT0

A5 5V

5V

Led_Phat4

A4

/INT1

CL1 104

Led_Phat5

Rp1 470

B1

PO0

T1 A1

5V

MASTER

P89V51RD2

RST

9 XTAL2

18 XTAL1 19

G D

2

PSEN 29 ALE/PROG 30

EA/VPP 31

V C

4 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8

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 P3.0/RXD 10 P3.1/TXD 11 P3.2/INTO 12 P3.3/INT1 13 P3.4/TO 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 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

T0

L _

at1

A2

PO4

Ở sơ đồ trên ,ta sử dụng 1 led 7 thanh để hiển thị các chiến thuật thi đấu 1 ,2 ,3.v.v.2 phím bấm choice và start để lựa chọn chiến thuật.Một led 7 thanh

có thể hiển thị được 10 chiến thuật thi đấu tương ứng với các số từ 0 đến 9.Ngoài ra ,led 7 thanh còn được dùng để hiển thị số ngã tư

7.2.Mã nguồn

void main()

{

unsigned char tam=0;

Trang 3

init();

P2_6=0;

P2_7=0;

h_thi(tam);

selection();

switch (select)

{

case 0:

{

hanhtrinh0();

}

break;

case 1:{

hanhtrinh1();

}

break;

case 2:{

hanhtrinh2();

}

break;

case 3:{

hanhtrinh3();

}

break;

case 4:{

hanhtrinh4();

}

break;

case 5:{

hanhtrinh5();

}

break;

case 6:{

hanhtrinh6();

}

break;

case 7:{

Trang 4

hanhtrinh7();

}

break;

case 8: {

hanhtrinh8();

}

break;

case 9:{

hanhtrinh9();

}

break;

}//end of swith

delay(50000);

h_thi(tam);

}

/* cac ham chuc nang */

void selection()

{

P2_6=0;

P2_7=0;

while (P2_7==0)

{

while (P2_6==1)

{

select++;

if (select>9) select=0;

h_thi(select);

delay(12000);

}

}

}//end

void h_thi(unsigned char so)

{

if (so==0) {P0_3=0;P0_2=0;P0_1=0;P0_0=0;}

else if (so==1) {P0_3=0;P0_2=0;P0_1=0;P0_0=1;}

else if (so==2) {P0_3=0;P0_2=0;P0_1=1;P0_0=0;}

else if (so==3) {P0_3=0;P0_2=0;P0_1=1;P0_0=1;}

Trang 5

else if (so==4) {P0_3=0;P0_2=1;P0_1=0;P0_0=0;}

else if (so==5) {P0_3=0;P0_2=1;P0_1=0;P0_0=1;}

else if (so==6) {P0_3=0;P0_2=1;P0_1=1;P0_0=0;}

else if (so==7) {P0_3=0;P0_2=1;P0_1=1;P0_0=1;}

else if (so==8) {P0_3=1;P0_2=0;P0_1=0;P0_0=0;}

else if (so==9) {P0_3=1;P0_2=0;P0_1=0;P0_0=1;}

}

b) Sơ đồ dùng LCD

P2.0

P0.4

P2.1

P0.6

P2.2

VCC

C_nhieu 104

IR

Enter

Choice

le

d

o

g

SW2_cong

SW3_tru

le d ru

P3.3

Jum_cong

D0 D2 P0.7

P0.6 P0.5

le d

nte

le d h ic e

VCC

P0.5 P0.7

P2.3

U1

AT89S8252

RST

18 XTAL1 19

G D

2

PSEN 29 ALE/PROG 30

EA/VPP 31

VCC 40

P1.0/T2 1 P1.1/T2-EX 2

P1.2 3 P1.3 4 P1.4/SS 5 P1.5/MOSI 6 P1.6/MISO 7 P1.7/SCK 8

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 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17

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

P2.4 P2.6

EA

RX TX P1.0

P1.2

VCC

P1.4 P1.6

C _

RE E 47u

P1.7

R_RESET 1

o m

RST

SW_reset

P0 .4 P

2.0 VCC

P

2.1

P2 .2 P

2.3 P

2.4

P2 .5

C1_ZTA 33

P2 .6 P

2.7 VCC

C2_ZTA

33

LCD Display 2x16

D1

LCD2x16

G

D

1

Vd

2

V E

3

RS 4 R W 5 E 6 D 0 7

D1 8

D2 9

D3 1 D 4

1

D5 1

D6 1 D 7

1

A

15

K

16

P0 .3

ZTA 12M

R_SIP10

RESISTOR SIP 10

1 2

4 6 8 10

VCC

Jum_tru

EA P0.7 P0.5 P0.3 P0.1

VCC

P0.0 P0.2

Trang 6

Sơ đồ trên thay thế led 7 thanh bằng LCD Nhìn chung dung LCD để hiển thị chiến thuật thi đấu chuyên nghiệp hơn (vi hiển thị được cả chữ ) tuy nhiên , dung LCD khá tốn kém và không thật sự hiệu quả Vì thế ,tốt nhất là các bạn nên sử dụng led 7 thanh để hiển thị chiến thuật thi đấu

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

// LCD

void lenh ()

{

RS=0; EN=1; delay (50); EN=0; delay (100);

}

void ghi ()

{

RS=1; EN=1; delay (50); EN=0; delay (100); }

void LCDwrite(unsigned char c)

{

P2=c;

ghi();

}

void LCDputs(unsigned char *s,unsigned char row)

{

unsigned char len;

if(row==1)

{ P2=0x80;lenh (); }

else { P2=0xC0; lenh ();}

len=strlen(s);

while(len!=0)

{

LCDwrite(*s);

s++;

len ;

}

}

void LCDcontrol(unsigned char dk)

Trang 7

{

P2=dk; lenh ();

}

void init_LCD ()

{

delay(400);

LCDcontrol(0x38); //LCD 2 dong _ 5x7

LCDcontrol(0x0C); //bat hien thi, tat con tro

LCDcontrol(0x01); //xoa man hinh

}

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

void keyboard()

{

unsigned char key=0;

unsigned char test=0;

LCDcontrol(0x01);

choice=enter=1;

LCDputs("Robot Ready",1);

delay(100000);

LCDcontrol(0x01);

LCDputs("1:Golong 2:Around ",1);

LCDputs("3:Turn left 4:Turn right",2);

delay(100000);

LCDcontrol(0x01);

while(1)

{

LCDputs("1: 2: 3: 4:”,2);

while(choice==0)

{

delay(10000);

key++;

LCDcontrol(0x01);

if (key==1)LCDputs("1 ",1);

if (key==2)LCDputs("2 ",1);

if (key==3)LCDputs("3 ",1);

if (key==4)LCDputs("4 ",1);

LCDputs("1:C 2:S 3:D 4:E",2);

if (key>4) { LCDputs("0 ",1);key=0;}

Trang 8

}

if (key==1)while(enter==0) golongr();

if (key==2)while(enter==0) Around();

if (key==3)while(enter==0) left();

if (key==4)while(enter==0) test=1;

if (test==1) break;

}//while(1)

} // keyboard

Ở bài này ,chúng ta sẽ hoàn thiện một robot hoàn chỉnh để thi đấu

Chúng ta sử dụng robot như hình dưới đây

Ngày đăng: 27/07/2014, 02:20

TỪ KHÓA LIÊN QUAN

w