DKS GROUP http://www. dks.com.vn
Nguyen Manh Truong Mobi : 0988857861
62
// 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ó rt nhiu các tính hung xy ra .Do đó người lp trình
cn phi xây dng nhiu chiến thut thi đấu khác nhau để đảm bo có th x
lý kp thi mi tình hung có th có trên sân.
đẻ hin th chiến thut thi đấu ,bn có th dung led 7 thanh hay màn hình
LCD ,mt h thng các phím bm để điu khin ,để la chn các gii pháp
thi đấu.Thc cht , phn này chúng ta đã quy v bài toán lp trình giao tiếp
vi điu khin vi bàn phím và màn hình LCD ,led 7 thanh
DKS GROUP http://www. dks.com.vn
Nguyen Manh Truong Mobi : 0988857861
63
7.1.Sơ đồ nguyên lý
a)Giao tiếp vi led 7 thanh
T1
5V
Rp2
470
L
e
d
_
P
h
a
t
2
A3
/INT1
PO2
PO5
5V
Rp3
470
L
e
d
_
P
h
a
t
3
5V
SW1
B2
/INT0
P30(RXD)
R7
R
R4
R
R5
R
R6
R8
PO6
R9
5V
5V
Rp4
470
L
e
d
_
P
h
a
t
4
U16
SN7447
D0 7
D1 1
D2 2
D3 6
B
I
/
R
B
O
4
R
B
I
5
L
T
3
D
10
E
9
F
15
A
13
B
12
C
11
G
14
V
C
C
1
6
G
N
D
8
Led_Phat6
PO0
PO1
a
g
fb
d
c
e
U17
.2
.1
.9
.7
.6
.4
.5
.
8
D
P
1
0
V
c
c
3
PO2
PO3
B3
Y1
11.509Mhz
PO3
P31(TXD)
P31(TXD)
Rp5
470
L
e
d
_
P
h
a
t
5
5V
Rs1
10k
5V
B4
5V
Cta1 30p
5V
Rp6
470
L
e
d
_
P
h
a
t
6
PO4 Start
P30(RXD)
ISP_program
CON10AP
1 2
3 4
5 6
7 8
910
Led_Thu1
B5
PO5
Led_Thu2
PO0
Cs1
100uF
PO6
Led_Thu3
Cta230p
PO1
Vidieukhien6
Led_Thu4
PO7
PO2
P
O
7
Led_Thu5
Vidieukhien5
Connecter_sensor
CON16AP
1 2
3 4
5 6
7 8
910
11 1213 14
15 16
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
2
3
4
5
6
7
8
9
10
Led_Phat3
Rsip1
10k
1 2
3
4
5
6
7
8
9
/INT0
A5
5V
5V
Led_Phat4
A4
/INT1
CL1
104
Led_Phat5
Rp1
470
B1
PO0
T1
A1
5V
RST T0
MASTER
P89V51RD2
RST
9XTAL2
18 XTAL1
19
G
N
D
2
0
PSEN 29
ALE/PROG 30
EA/VPP
31
V
C
C
4
0
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
e
d
_
P
h
a
t
1
A2
PO4
sơ đồ trên ,ta s dng 1 led 7 thanh để hin th các chiến thut thi đấu 1
,2 ,3.v.v.2 phím bm choice và start để la chn chiến thut.Mt led 7 thanh
có th hin th được 10 chiến thut thi đấu tương ng vi các s t 0 đến
9.Ngoài ra ,led 7 thanh còn được dùng để hin th s ngã tư.
7.2.Mã ngun
void main()
{
unsigned char tam=0;
DKS GROUP http://www. dks.com.vn
Nguyen Manh Truong Mobi : 0988857861
64
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:{
DKS GROUP http://www. dks.com.vn
Nguyen Manh Truong Mobi : 0988857861
65
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;}
DKS GROUP http://www. dks.com.vn
Nguyen Manh Truong Mobi : 0988857861
66
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
l
e
d
_
c
o
n
g
SW2_cong
SW3_tru
l
e
d
_
t
r
u
P3.3
Jum_cong
1 2
D0
D1
D2
D3
P0.7
P3.3
P0.6
P0.5
l
e
d
_
e
n
t
e
r
l
e
d
_
c
h
o
i
c
e
VCC
P0.5
P0.7
P2.3
U1
AT89S8252
RST
9XTAL2 18
XTAL1 19
G
N
D
2
0
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.5
P2.6
P2.7
EA
RX
TX
P1.0
P1.1
P1.2
P1.3
VCC
P1.4
P1.5
P1.6
C
_
R
E
S
E
T
47u
P1.7
R_RESET
1
0
0
o
m
RST
SW_reset
P
0
.
4
P
2
.
0
VCC
P
2
.
1
P
2
.
2
P
2
.
3
P
2
.
4
P
2
.
5
C1_ZTA
33
P
2
.
6
P
2
.
7
VCC
C2_ZTA
33
LCD Display 2x16
D1
LCD2x16
G
N
D
1
V
d
d
2
V
E
E
3
R
S
4
R
W
5
E
6
D
0
7
D
1
8
D
2
9
D
3
1
0
D
4
1
1
D
5
1
2
D
6
1
3
D
7
1
4
A
15
K
16
P
0
.
3
ZTA
12M
R_SIP10
RESISTOR SIP 10
12
3
4
5
6
7
8
9
10
VCC
Jum_tru
1 2
EA
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
VCC
P0.0
P0.1
P0.2
P0.3