You are on page 1of 36

TRNG I HC LC HNG

KHOA IN IN T

TI LIU MN HC

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

BIN HA, THNG 11/2011

MC LC

PHN I : GII THIU PHN MM KEIL C ................................................. 1


1.1.

Mn hnh lm vic ca Keil C............................................................... 1

1.2.

Cc bc to d n mi ........................................................................ 2

1.3.

Debug chng trnh............................................................................... 5

PHN II : GII THIU THIT B ................................................................. 12


2.1.

S nguyn l kit th nghim ........................................................... 12

2.2.

Cc khi chc nng trn kit th nghim .............................................. 13

2.2.1.

Khi ngun .......................................................................................... 13

2.2.2.

Khi np chng trnh ........................................................................ 13

2.2.3.

Khi MCU ........................................................................................... 14

2.2.4.

Khi led n ........................................................................................ 15

2.2.5.

Khi led 7 on ................................................................................... 15

2.2.6.

Khi hin th LCD ............................................................................... 17

2.2.7.

Khi nt nhn ...................................................................................... 17

2.2.8.

Khi Stand_by LED/Interrupt input.................................................... 18

2.2.9.

Khi thu hng ngoi ............................................................................ 18

2.2.10.

Khi Buzzer......................................................................................... 18

2.2.11.

Khi Opto Triac .................................................................................. 19

2.2.12.

Khi giao tip UART ......................................................................... 19

PHN III : THC HNH ................................................................................. 20


3.1.

iu khin khi LED n ................................................................... 20

3.2.

iu khin khi Buzzer ....................................................................... 22

3.3.

Giao tip vi nt nhn n .................................................................. 23

3.4.

iu khin khi hin th LED 7 on ................................................. 25

3.5.

iu khin khi hin th LCD ............................................................. 28

3.6.

Truy xut IC real time DS12887 ......................................................... 30

PHN IV : BI TP M RNG ..................................................................... 34

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN


PHN I

GII THIU PHN MM KEIL C

Hin nay c kh nhiu trnh bin dch ngn ng C cho 8051 nh Mikro C, IAR,
SDCC, Reads 51
Vision l mi trng pht trin tch hp (IDE: Integrated Development
Environment) (trnh son tho ngn ng C, trnh bin dch v debug) ca cng ty Keil
Software, v thng c gi l Keil C.
Keil C l mi trng pht trin kh mnh v c s dng rng ri hin nay.
N h tr ta vit chng trnh cho cc chip vi iu khin li 8051 v ARM ca tt c
cc hng trn th gii
1.1.

Mn hnh lm vic ca Keil C


Mn hnh lm vic ca Keil C bao gm cc thanh cng c pha trn cng v 3

vng chnh nh trong hnh 1.1

Hnh 1.1 Mn hnh lm vic ca Keil C


Vng 1: L v tr ca cc ca s Project, cho php ta qun l cc tp tin trong
d n, v ca s Function, cho php ta qun l cc chng trnh con.
Trang 1

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

Vng 2: Vng son tho. y l ni ta s son tho chng trnh.


Vng 3: Ca s Build Output. Hin th cc thng tin trong qu trnh bin dch
chng trnh
1.2.

Cc bc to mt d n mi
Bc 1: thun tin trong vic qun l cc d n, ta nn to tng th mc

ring cho mi d n, vi tn th mc l tn d n km theo ngy lp d n . Km


theo , ta nn thm mt file text, c ni dung ghi li nhng thay i ca d n, vo
th mc ca d n .
Bc 2: Vo menu Project\New uVision Project to project mi. Nhp
ng dn v tn project vo hp thoi. Nhn OK.
Bc 3: Chn loi vi iu khin cn s dng trong hp thoi Select device
(Hnh 1.2). Nhn OK. Sau , chn Yes trong hp thoi Copy Standard 8051
xut hin tip theo.
Bc 4: To mt file mi : File\New v lu li vi nh dng *.c hoc *.h.
Bc 5: Add file va to vo project:
Right click vo mc Source Group 1 v chn Add file to Group
Source Group 1 (hnh 1.3)
Chn file va to. Nhn Add ri nhn Close. Lc ny, trong ca s
Project, pha tri mn hnh, s xut hin thm tp tin m ta va add.
Bc 6: Thit lp cho Keil C xut ra file .hex, ta m hp thoi Option for
Group 1 (Hnh 1.4). Click chn vo checkbox Create HEX file trong tab Output
(Hnh 1.5). Nhn OK
n y, ta hon tt cc bc thit lp cho mt d n mi. Cc bc trn ch
cn thc hin mt ln khi to d n mi.

Trang 2

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

Hnh 1.2 Hp thoi Select Device

Hnh 1.3 Menu Add Files to Group

Trang 3

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

(a) M menu Project

(b) Bm chut phi vo Target 1

(c) Bm nt Target Options trn thanh cng c


Hnh 1.4 Cc cch m hp thoi Options for Target

Hnh 1.5 Hp thoi Options for Target

Trang 4

TH NGHIM VI IU KHIN
1.3.

BIN SON: BNH NGUYN

Debug chng trnh


Sau khi son tho chng trnh xong, ta bin dch chng trnh bng cch vo

menu Project\Build target hoc nhn nt Build trn thanh cng c (hnh 1.6) hoc ta
cng c th nhn phm F7

Hnh 1.6 Thanh cng c Build


Sau khi chng trnh tin hnh bin dch chng trnh, nu khng c li xy ra,
ta s nhn c thng bo 0 Error(s), 0 Warning(s) trong ca s Buid Output sau khi
qu trnh bin dch hon tt (hnh 1.7)

Hnh 1.7 Thng bo qu trnh bin dch hon tt


Trong qu trnh pht trin mt chng trnh, s c hai loi li c th xy ra:
Li c php (Syntax error): Li ny l cc sai st trong cu trc cu lnh
nh thiu tham s, sai t kha Cc li ny s c trnh bin dch t
ng pht hin trong qu trnh bin dch.
Li lun l (Li Logic): Li ny l cc sai st trong gii thut chng
trnh, lm cho chng trnh chy khng ng ban u ca lp trnh
vin. Li ny ch c th do chnh lp trnh vin pht hin v sa cha.
Cc IDE khng th trc tip pht hin cc li logic, n ch cung cp cho
ngi dng cc cng c h tr cho qu trnh pht hin v sa cha loi
li ny.
Keil C ngoi vic h tr ta son tho v bin dch chng trnh, n cn h tr ta
mt cng c g ri (Debug) chng trnh ht sc hiu qu.
Trang 5

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

chy debug mt chng trnh sau khi bin dch thnh cng, ta nhn c
th kch hot chc nng debug bng mt trong cc cch sau:
Nhn nt Debug trn thanh cng c (Hnh 1.8)
Nhn t hp phm Ctrl + F5.
M menu Debug-Start/Stop Debug Session

Hnh 1.8 Nt Debug


Mun tt chc nng Debug, ta lm li thao tc trn mt ln na.
Sau khi kch hot chc nng Debug, ca s Keil C c dng nh hnh 1.9. Nu
c ca s no khng xut hin, ta c th vo menu View bt ca s ln.

Hnh 1.9 Ca s Keil C sau khi kch hot chc nng Debug
Trong ca s ny, c 4 vng chnh:
1: Ca s th hin cc thanh ghi ca vi iu khin
2: Ca s lnh son tho, cha chng trnh ang c debug

Trang 6

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

3: Cho php ta theo di gi tr ca mt bin no bng cch nhp tn


bin

4: Ca s Watches cho php ta theo di gi tr ca tt c cc bin cha


trong chng trnh. Mun bit gi tr ca bin no, ta chn ca s ny v
nhn phm F2, sau nhp tn ca bin cn theo di. Lc ny, ca s s
hin th tn bin cng nh gi tr hin ti ca bin .
Ngoi ra, ta cn c th kch hot thm mt s ca s nh:
Ca s Disassembly (Hnh 1.10) : Cho ta bit chnh xc mt lnh Keil C
c vit bng hp ng nh th no. Kch hot ca s ny bng cch
vo menu View/Disassembly.
Ca s Memory (Hnh 1.11): Kch hot bng menu View/Memory. Cho
php xem ni dung b nh chng trnh v b nh d liu:
Mun xem b nh chng trnh bt u t mt a ch no , ta
nhp C: a ch vo Address.
Mun xem b nh RAM bt u t mt a ch no , ta nhp D:
a ch vo Address.
Ca s Registers: Cho php ta quan st gi tr cc thanh ghi ca vi iu
khin nh cc thanh ghi R0-R7, PSW, DPTR

Hnh 1.10 Ca s Disassembly

Trang 7

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

Hnh 1.11 Ca s Memory


Ta c th bit c mt on chng trnh thc hin mt bao nhiu thi
gian bng cch quan st mc sec trong ca s Registers hoc trn thanh status bar
(Hnh 1.12). Tuy nhin, c thi gian tng ng chng trnh debug v trn mch
thc t, ta phi thc hin mt s bc hiu chnh nh sau:
M hp thoi Options for Target (Hnh 1.4)
Chn th Target.
Nhp tn s thch anh m ta mun s dng trn mch thc t vo Xtal
(MHz) (Hnh 1.13)

Hnh 1.12 Thi gian chy chng trnh

Trang 8

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

Hnh 1.13 Th Target trong hp thoi Options for Target


Tin ch cho php quan st thi gian chy chng trnh ny cho php ta xc
nh chnh xc thi gian ca mt hm delay m ta nh s dng, v n cng gip ch
cho chng ta khi lp trnh vi nhng bi ton c lin quan n thi gian thc, chng
ta c th tm ra c mt gii thut ngn nht v nhanh nht.
Ta cng c th quan st trng thi cc Port, cc Timer, ngt bng cch vo
menu Peripherals, chn cc i tng cn quan st (Hnh 1.14).
Keil C cng h tr ta quan st cc ng ra di dng xung. kch hot chc
nng ny, chng ta chn biu tng Analysis Window (Hnh 1.15). Tip theo chng
ta chn mc Setup > ca s Setup Logic Analyzer xut hin > chn mc New (Insert)
v nhp Port cn quan st (VD: P0.0, P1.2). Ngoi ra ta c th chn mu hin th ti
mc Color. Sau khi thit t y cc chn cng nh mu sc, ta chn Close
kt thc phn Setup. Khi khng cn quan st mt tn hiu no , ta c th chn tn
hiu trong hp thoi Setup ny v nhn nt Delete, hoc nhn nt Kill All loi
b tt c tn hiu c chn trc .

Trang 9

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

Hnh 1.14 Menu Peripherals

Hnh 1.15 Thit t cho Analysis Window

Trang 10

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

Hnh 1.16 Ca s Logic Analysis


Sau khi kch hot y cc ca s cn thit, ta bt u cho chy debug
bng cch chn mt trong cc nt trn thanh cng c Debug (Hnh 1.17):
Nt Reset: Reset chng trnh v trng thi ban u
Run (F5): Thc thi chng trnh
Step (F11): Thc thi tng dng lnh, c nhy vo hm con.
Step over (F10): thc thi tng dng lnh, khng nhy vo hm con.
Step out (Ctrl + F11): Nhy ra khi hm con
Run to Cursor line (Ctrl + F10): Thc thi chng trnh t u cho n v
tr con tr

Hnh 1.17 Thanh cng c Debug

Trang 11

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

PHN II

GII THIU THIT B


S NGUYN L KIT NGHIM

2.1.

VCC_5V

R1

U11

R8 100
R9 100

A1
A2
A3
A4
A5
A6
A7
A8

VOUT

VC C_5V

2
J3
18
17
16
15
14
13
12
11

Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8

J15

3
1
4
2

2
1

D 11 LED_POWER

U13

LM7805/TO
C7

12V AC

C8
104

VIN

2200uF 35V

SPI PROGRAM

VOUT

C9
104

C 10
2200uF 35V

R34
330

10

LPT PORT

G1
G2

BRIDGE

GND

2
3
4
5
6
7
8
9

VIN

R7 1K

D10

74HC 541
VC C

6
5
4
3
2
1

1
19

GN D

R2 100

1
ADAPTER 12V
1

20
5
4
3
2
J2

LM7805/TO

J13
U2

GND

VCC _5V

4K7

VCC _5V

VCC_5V
J7

VCC_5V
J8

D1
LED

1
2

SPI PROGR AM

D2
LED

D3
LED

D4
LED

D5
LED

D6
LED

D7
LED

D8
LED

MOSI
MISO
SC K
RESET

R18
4K7

VCC_5V

5V GND
R20
330

R21
330

R22
330

R23
330

R 24
330

R25
330

R 26
330

U7

J9
4
3
2
1

1
2
3
4
5
6
7
8

RXD
TXD

R S232

P1.0/T2
P1.1/T2EX
P1.2
P1.3
P1.4/SS
P1.5/MOSI
P1.6/MISO
P1.7/SCK

VCC _5V

VCC

40

R19
330

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

9
8
7
6
5
4
3
2

4
3
2
1

J10

AT89S52
39
38
37
36
35
34
33
32

8
7
6
5
4
3
2
1
VCC_5V

10
11
12
13
14
15

STAN D_BY LED/P3.3

P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1

104

P3.6/WR
P3.7/RD
ALE/PROG
P2.7/A15

D9

R30 330

VC C_5V

VC C_5V
2
1

31
R27 100
SW1
R ESET

PSEN

C3

U9
15
17
14
13

R /W
DS
AS
CS

29

RESET

4
5
6
7
8
9
10
11

AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7

DS12887

10uF
9

AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7

RST

SQW
IRQ

23
19

1
12

INTERRUPT 1

16
17
30
28

EA/VPP

STAND _BY LED


J 12

C2
18
24

RXD
TXD
INFR A RED EY E/P3.2
STAND_BY LED/P3.3
BU ZZER/P3.4
AC LAMP/P3.5

RST
VCC

SC K

MOT
GND

MOSI

AD 0
AD 1
AD 2
AD 3
AD 4
AD 5
AD 6
AD 7

DATA LED/D0-D7
MISO

J11
AC LAMP/P3.5

R 28

P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11

8K2
VC C_5V

1
2
3
4

J 14

27
26
25
24

C6

U12
R32
4K7

104

R33
330

R31
330

D12

A1-G-A2

LCD CONTROL/LED CON TROL

C 4 33p
18

XTAL2

CRYSTAL
11.0592
19

MOC 3020

XTAL1

LED

GND

3
2
1

23
22
21

P2.2/UP
P2.1/MODE
P2.0/DOWN

20

C 5 33p

P2.2/A10
P2.1/A9
P2.0/A8

U1

VCC _5V

U8

VCC
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7

A
K
15
16

7
8
9
10
11
12
13
14

4
5
6

1
2
3

P2.2/UP
SW3

MODE

P2.1/MODE
VCC _5V

BUZZ ER/P3.4

8
7
6
5
4
3
2
1
R17 330

1
2
3
4
J6
LCD CONTROL

J1
VCC_5V
LED4

VCC_5V

Q1
A1013

LED3

R3 4K7

Q2
A1013

VCC_5V
LED2

R4 4K7

Q3
A1013

VC C_5V
LED1

R5 4K7

Q4
A1013
R6 4K7

a
f
g

E
D
C
DP
B
A
F
G

a
f
g

E
D
C
DP
B
A
F
G

a
f
g

E
D
C
DP
B
A
F
G

a
f
g

1
2
4
5
6
7
9
10

3
e
d
c

VCC

1
2
4
5
6
7
9
10

3
e
d
c

VCC

1
2
4
5
6
7
9
10

e
d
c

VCC

1
2
4
5
6
7
9
10

VCC

e
d
c

VCC

g
f
a
b
e
d
c

VCC

R 10 330
1
2
3
4
5
6
7
8

VCC

VCC

LED CONTROL

J4

E
D
C
DP
B
A
F
G

DATA LED
U3 LED 7

U4 LED 7

IN FRA RED RECIEVER


R 29 4K7

Q5
A1013

LED1
LED2
LED3
LED4

INFRA RED EYE/P3.2

2
DOWN
Q6
A1013

4
3
2
1

VCC_5V
C1
104

SW4
P2.0/DOWN

D0-D 7

VCC
GND

VC C_5V
J5

OUT

U10
BUZZER

UP
GND

RS
RW
E

VSS
VD D
VEE

SW2

U5 LED7

U6

LED7

Hnh 2.1 S kit th nghim

Trang 12

TH NGHIM VI IU KHIN
2.2.

BIN SON: BNH NGUYN

CC KHI CHC NNG TRN KIT TH NGHIM

2.2.1. Khi ngun

Hnh 2.2 S khi ngun


Khi ny nhn in p 12Vac, nn, lc thnh in mt chiu. Sau a qua
7805 n nh in p ng ra 5Vdc. in p ny c cung cp cho cc khi khc
trn kit.
2.2.2. Khi np chng trnh :

VCC_5V

R1
VCC_5V
U4

6
5
4
3
2
1
LPT PORT

R3 100

1
19

R4 1K

2
3
4
5
6
7
8
9

R5 100
R6 100

A1
A2
A3
A4
A5
A6
A7
A8

74HC541
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8

18
17
16
15
14
13
12
11

J4
3
1
4
2
SPI PROGRAM

10

R7 100

G1
G2

GND

J3

VCC

5
4
3
2

20

4K7

Hnh 2.3 S khi np chng trnh


y l s mch np i km vi phn mn SPI Programmer 3.7 ,cho php ta
np chng trnh cho cc chip 89Sxx ca hng Atmel. Chng trnh c np ni tip
thng qua cc chn MOSI, MISO, SCK v RESET ca chip.

Trang 13

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

2.2.3. Khi MCU :


VCC _5V

1
2
3
4
5
6
7
8

P1.0/T2
P1.1/T2EX
P1.2
P1.3
P1.4/SS
P1.5/MOSI
P1.6/MISO
P1.7/SCK

VC C

40

U7

P0.0/AD 0
P0.1/AD 1
P0.2/AD 2
P0.3/AD 3
P0.4/AD 4
P0.5/AD 5
P0.6/AD 6
P0.7/AD 7

VCC_5V
R18

AT89S52
39
38
37
36
35
34
33
32

2
3
4
5
6
7
8
9

RXD
TXD
I NFR A RED EY E/P3.2
STAN D_BY LED/P3.3
BU ZZER/P3.4
AC LAMP/P3. 5

AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7

4K7
10
11
12
13
14
15

P3.0/R XD
P3.1/TXD
P3.2/I NT0
P3.3/I NT1
P3.4/T0
P3.5/T1
P3.6/W R
P3.7/R D
ALE/PROG
P2.7/A15

VC C_5V
31

R /W
RD
ALE
A15

EA/VPP

R27 100
SW 1
RESET

16
17
30
28

PSEN

C3

29

10uF
9

R ESET

R ST
J 11

R28

P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11

8K2

27
26
25
24

1
2
3
4
LC D CONTR OL/LED C ONTR OL

C4 33p
XTAL2

Y1
11.0592

C5 33p

XTAL1

P2.2/A10
P2.1/A9
P2.0/A8

23
22
21

P2.2/U P
P2.1/MODE
P2.0/D OW N

20

19

GND

18

Hnh 2.4 S khi MCU


Khi ny bao gm vi iu khin AT89S52 v cc khi ph tr, gip cho vi iu
khin hot ng c:
Khi Auto Reset bao gm R28, C3: gip t ng reset vi iu khin khi
va bt ngun.
Khi Manual Reset bao gm SW1, R27: cho php reset vi iu khin
bng tay. Khi ny khng bt buc phi c mt nu khng c nhu cu
reset vi iu khin bng tay.
Khi dao ng bao gm: Y1, C4, C5: Kt hp vi cc khi khc bn
trong vi iu khin to ra xung nhp cho vi iu khin hot ng.

Trang 14

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

in tr ko ln R18: Do cc chn trn port 0 ca vi iu khin l cc


chn c cc thu h nn khi mun giao tip vi iu khin vi cc IC s
khc, ta cn c mt in tr ko ln xc lp mc in p.
2.2.4. Khi led n
VCC_5V

D1
LED

D2
LED

R19
330

D3
LED

R20
330

D4
LED

R21
330

D5
LED

R22
330

D6
LED

R23
330

D7
LED

R24
330

D8
LED

R25
330

R26
330

Hnh 2.5 S khi led n


Cc ng iu khin c kt ni trc tip vi port 1 ca vi iu khin. Mun
led sng, ta s phi xut mc thp ra chn vi iu khin.
2.2.5. Khi led 7 on
J1
4
3
2
1

VC C_5V

LED1
LED2
LED3
LED4

LED4

VC C_5V

Q1
A1013

LED3

R 3 4K7

VC C_5V

Q2
A1013

LED2

R 4 4K7

VCC _5V

Q3
A1013

LED 1

R 5 4K7

Q4
A1013
R6 4K7

a
f
g

E
D
C
DP
B
A
F
G

a
f
g

E
D
C
DP
B
A
F
G

a
f
g

E
D
C
DP
B
A
F
G

a
f
g

1
2
4
5
6
7
9
10

3
e
d
c

VC C

1
2
4
5
6
7
9
10

3
e
d
c

VC C

1
2
4
5
6
7
9
10

e
d
c

VC C

1
2
4
5
6
7
9
10

VC C

e
d
c

VC C

g
f
a
b
e
d
c

VC C

R 10 330
1
2
3
4
5
6
7
8

VC C

J4

VC C

LED C ONTROL

E
D
C
DP
B
A
F
G

DATA LED
U 3 LED7

U 4 LED7

U 5 LED7

U6

LED 7

Hnh 2.6 S khi led 7 on


Khi ny bao gm bn led 7 on c thit k theo phng php a hp
(phng php iu khin qut led). Tt c cc on (kathod) ca cc LED c ni
chung vo nhau vo mt port iu khin cn anode ca tt cc led c ni vo mt
port iu khin khc v c cp tn hiu qut led mt cc tun t (ti mt thi im

Trang 15

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

ch c mt led c cp ngun). Lu gii thut qut led c th hin trong hnh


2.7, trong N_max l tng s led 7 on cn c qut.

Hnh 2.7 Lu gii thut qut led 7 on

Trang 16

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

2.2.6. Khi hin th LCD

15
16

A
K

DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
7
8
9
10
11
12
13
14

4
5
6

1
2
3

RS
RW
E

VSS
VDD
VEE

U1

8
7
6
5
4
3
2
1

VCC_5V

VCC_5V
J5

D0-D7

R17 330

1
2
3
4

Q5
A1013

J6
LCD CONTROL

Hnh 2.8 S khi LCD


LCD c thit k trn kit l loi LCD 2 dng, 16 ct. Module ny c thit
k cho mc ch th nghim iu khin LCD. J5 l ng vo nhn d liu (DATA) hoc
lnh (COMMAND) ca LCD. J6 l ng vo iu khin LCD
2.2.7. Khi nt nhn
SW2
UP

P2.2/UP
SW3

MODE

P2.1/MODE
SW4

DOWN

P2.0/DOWN

Hnh 2.9 S khi nt nhn


Khi ny c thit k cho cc bi th nghim nt nhn n. Bao gm ba nt
c kt ni vo cc chn P2.0,P2.1,P2.2 v tch cc mc thp

Trang 17

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

2.2.8. Khi Standby LED/Interrupt input


STAND_BY LED/P3.3
D9

R30 330

2
1

VCC_5V
STAND_BY LED
J12
INTERRUPT 1

Hnh 2.10 S khi Standby LED/ Interrupt input


Stand_by LED c kt ni vo chn P3.3, ng thi y cng l ng vo ngt
ngoi 1 v tch cc mc thp.
2.2.9. Khi thu hng ngoi
U8
OUT
VCC
GND

INFRA RED EYE/P3.2

VCC_5V

C1
104

INFRA RED RECIEVER

Hnh 2.11 S khi thu hng ngoi


Ng ra ca b thu tn hiu hng ngoi c kt ni vo chn P3.2. Tn hiu
hng ngoi t Remote khi qua b thu s b o mc tch cc .
2.2.10.Khi Buzzer

VCC

VCC_5V

GND

U10
BUZZER

R29 4K7
Q6
A1013

BUZZER/P3.4

Hnh 2.12 S khi Buzzer


Buzzer l mt loa nh, dng to m thanh. Trong kit th nghim ny, buzzer
c iu khin thng qua transistor A1013 v c kt ni vo chn P3.4.

Trang 18

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

2.2.11.Khi Opto Triac


AC LAMP/P3.5
VCC_5V

3
2
1

J14
C6
104

U12
R32
4K7

R33
330

D12

R31
330

2
MOC3020
LED

A1-G-A2

Hnh 2.13 S khi Opto Triac


Khi Opto Triac dng iu khin thit b 220V AC bn ngoi thng qua
mch m rng, chn iu khin c kt ni vo chn P3.5 v tch cc mc thp.
2.2.12.Khi giao tip UART
J9
4
3
2
1

RXD
TXD

RS232
VCC_5V

Hnh 2.14 S khi giao tip UART


Khi giao tip UART dng giao tip ni tip vi cc thit b ngoi vi hoc
vi cc MCU khc thng qua port ni tip (TxD, RxD) hoc kt ni thm mch ngoi
giao tip theo chun RS232.

Trang 19

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

PHN III

THC HNH
3.1.

IU KHIN KHI LED N

3.1.1. Mc ch, yu cu:


Gip cho sinh vin lm quen vi vic iu khin LED n nh tt, m, dch
LED sang tri, dch LED sang phi, sng dn, nhp nhy.
Sinh vin phi bit s dng Timer to Delay v bit cch s dng cc ton t
lin quan nh ton t thao tc bit, ton t logic
3.1.2. Chng trnh tham kho
#include <p89v51rx2.h>
// khai bao prototype
void delay (unsigned int time);
void nhap_nhay (void);
void dem_nhi_phan (void);
void dich_trai (void);
//chuong trinh chinh
void main (void)
{
while (1)
{
nhap_nhay();
delay(500);
dem_nhi_phan();
delay(500);
dich_trai();
delay(500);
}
}
//cac chuong trinh con
void nhap_nhay (void)
{
unsigned char i;
for (i = 0; i < 10; i ++)
{

Trang 20

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

P1 = 0;
delay (500);
P1 = 0xff;
delay (500);
}
}
void dem_nhi_phan (void)
{
unsigned char i;
for (i = 0; i < 255; i ++)
{
P1 = ~i;
delay (300);
}
}
void dich_trai (void)
{
unsigned char i, j;
for (j = 0; j < 5; j ++)
{
for (i = 0x01; i > 0; i <<= 1)
{
P1 = ~i;
delay (300);
}
}
}
void delay (unsigned int time)
{
while (time--)
{
TMOD = 0x01; //timer0 che do 16 bit
TH0 = 0xFF; //nap gia tri cho timer
TL0 = 0x00;
TR0 = 1; //khoi dong bo dinh thoi
while (!TF0); //cho co TF = 1
TF0 = 0 ; //xoa co TF
TR0 = 0; //dung bo dinh thoi
}
}

Trang 21

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

3.1.3. Bi tp m rng
1.

Vit chng trnh dch mt led qua phi

2.

Vit chng trnh 8 led sng dn.

3.
S dng ngt timer vit chng trnh iu khin sao cho 8 LED n
mi LED chp vi mt tn s khc nhau.
3.2.

IU KHIN KHI BUZZER

3.2.1. Mc ch, yu cu
Gip sinh vin lm quen vi vic iu khin Buzzer to ra chui m beep
vi cc tn s khc nhau cho cc ng dng nh nhn phm, bo thc
3.2.2. Chng trnh tham kho
#include <p89v51rx.h>
#define BUZZER P3_4 //khai bao chan dieu khien Buzzer
// khai bao prototype
void delay (unsigned int time);
void beep (void);
//chuong trinh chinh
void main (void)
{
while (1)
{
beep();
delay (1000);
}
}
// cac chuong trinh con
void beep (void)
{
unsigned char i;
for (i = 0; i < 20; i ++)
{
BUZZER = 0;
delay (1);
BUZZER = 1;
delay (1);

Trang 22

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

}
}
void delay(unsigned int time)
{
while(time--)
{
TMOD = 0x01;
TH0 = 0xFF;
TL0 = 0xBA;
TR0 = 1;
while(!TF0);
TF0 = 0 ;
TR0 = 0;
}
}
3.2.3. Bi tp m rng
1.

Vit chng trnh iu khin Buzzer pht m thanh cho ng h bo

2.

Vit chng trnh iu khin Buzzer gi lp m thanh ca ci xe cu ha

thc.

3.3.

GIAO TIP VI NT NHN N

3.3.1. Mc ch, yu cu
Gip sinh vin lm quen vi thao tc kim tra nt nhn n trong cc ng dng
nhp d liu, hiu chnh thng s,ci t
3.3.2. Chng trnh tham kho
Chng trnh kim tra ln lt ba nt UP, MODE, DOWN, nu mt trong ba
nt c nhn th iu khin pht m beep thng bo phm c nhn, ng
iu khin tt hoc m LED tng ng.
#include <p89v51rx2.h>
//khai bao cac chan dieu khien
#define BTN_UP
#define BTN_DOWN
#define BTN_MODE

P2_2
P2_0
P2_1

#define LED0
#define LED1
#define LED2

P1_0
P1_1
P1_2

#define BUZZER

P3_4 //chan dieu khien Buzzer

Trang 23

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

// khai bao prototype


void delay (unsigned char time);
void beep (void);
//chuong trinh chinh
void main (void)
{
while (1)
{
if (BTN_UP == 0)
{
delay (200); //delay chong doi
if (BTN_UP == 0)
{
beep();
while (BTN_UP == 0); //cho nha nut
UP
LED0 = ~LED0;
}
}
if (!BTN_DOWN)
{
delay (200); //delay chong doi
if (!BTN_DOWN)
{
beep();
while (!BTN_DOWN); //cho

nha

nut

nha

nut

DOWN
LED1 = ~LED1;
}
}
if (!BTN_MODE)
{
delay (200); //delay chong doi
if (!BTN_MODE)
{
beep();
while (!BTN_MODE); //cho
MODE
LED2 = ~LED2;
}
}

Trang 24

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

}
}
//cac chuong trinh con
void beep (void)
{
unsigned char i;
for (i = 0; i < 20; i ++)
{
BUZZER = 0;
delay (1);
BUZZER = 1;
delay (1);
}
}
void delay(unsigned char time)
{
while (time--)
{
TMOD = 0x01; //timer0 che do 16 bit
TH0 = 0xFF; //nap gia tri cho timer
TL0 = 0xBA;
TR0 = 1; //khoi dong bo dinh thoi
while(!TF0); //cho co TF = 1
TF0 = 0 ; //xoa co TF
TR0 = 0; //dung bo dinh thoi
}
}
3.3.3. Bi tp m rng
Vit chng trnh iu khin sao cho nu nt Up nhn 8 LED n s dch t
tri sang phi, nt Down nhn dch t phi sang tri, nt Mode nhn th nhp nhy c 8
LED, mi kiu sng lp li 5 ln. Sau chng trnh tr li kim tra 3 nt nh ban
u.
3.4.

IU KHIN KHI HIN TH LED 7 ON

3.4.1. Mc ch, yu cu
Gip sinh vin lm quen vi vic iu khin hin th d liu trn LED 7 on
trong cc ng dng nh m sn phm, n giao thng, ng h bo gi
Sinh vin phi nm c k thut qut LED, k thut s dng ngt timer, bit
cch kt ni phn cng (kt ni header Data LED / D0 D7 (P0), LCD control / LED

Trang 25

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

control khi MCU vi header Data LED v LED control khi hin th LED 7 on
).
3.4.2. Chng trnh tham kho
Chng trnh sau m t 0 100 hin th ra led 7 on
#include <at89x52.h>
#define BTN_PRESSED
1
#define BTN_NOT_PRESSED 0
#define btnUp
#define btnDown
#define buzz

P2_0

#define ledUnits
#define ledTens
#define ledHundress

P2_3

P2_1
P3_4

P2_4
P2_5

unsigned char code code_7seg [] = {0x81, 0xed, 0x43,


0x49, 0x2d, 0x19, 0x11, 0xcd, 0x01, 0x09};
unsigned char code code_scan [] = {0xf7, 0xef, 0xdf};
unsigned
unsigned
unsigned
bit on =

char scrBuffer[3];
char count = 0;
char pos = 0;
0;

void init (void);


void delay (unsigned int time);
void decode (unsigned char tmpCount);
void main (void)
{
init();
while(1)
{
count ++;
if (count > 100) count = 0;
decode(count);
delay(200);
}
}
void delay (unsigned int time) //chuong trinh delay
{
unsigned int i,j;
Trang 26

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

for(i = 0; i < time; i ++)


for(j = 0; j < 100; j ++);
}
void decode (unsigned char tmpCount)
{
scrBuffer[0] = code_7seg[tmpCount % 10];
tmpCount /= 10;
scrBuffer[1] = code_7seg[tmpCount % 10];
tmpCount /= 10;
scrBuffer[2] = code_7seg[tmpCount % 10];
}
void init (void) // khoi tao timer0
{
TH0 = 0x94;
TL0 = 0x00;
TF0 = 0;
TR0 = 1; // cho phep dem
ET0 = 1; // cho phep ngat
EA = 1;
decode(count);
}
void isrTmr0 (void) interrupt 1
{
TH0 = 0x94;
TL0 = 0x00;
if (on ==
{
P2 =
P0 =
on =
}
else
{
P0 =
P2 =

0)
0xff; //turn off all led
0xff; //clear data
1;

scrBuffer[pos]; // output data


code_scan[pos]; // turn appropriate led

on
if (++ pos == 3) pos = 0;
on = 0;
}
}

Trang 27

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

3.4.3. Bi tp m rng
1.
hnh led.

Vit chng trnh hin th ch HELLO chy t phi qua tri trn mn

2.
Vit chng trnh iu khin ban u hin th s 0, nu nt UP c
nhn th tng gi tr hin th ln mt n v, nu nt DOWN c nhn th gim mt
n v, nt MODE c nhn th mch t ng m ln t gi tr hin hnh n 100
ri tr v 0 v tip tc m ln, nu nhn nt MODE ln na th dng li, lp li qu
tnh kim tra ba nt nh ban u.C m nhn phm, trong qu trnh tng t ng hai
nt UP v DOWN vn c tc dng.
3.5.

IU KHIN KHI HIN TH LCD

3.5.1. Mc ch, yu cu
Gip sinh vin lm quen vi vic iu khin hin th d liu trn mn hnh LCD
trong cc ng dng nh m sn phm, ng h bo gi, hin th chui thong bo
Sinh vin phi nm c cu to v cch thc iu khin hin th trn mn hnh
LCD.
3.5.2. Chng trnh tham kho
Chng trnh iu khin hin th hai dng Text ra mn hnh LCD sau di
chuyn hai dng text qua tri, qua phi.
#include <AT89x52.h>
//khai bao macro
#define LCD_DATA_PORT
#define LCD_E
#define LCD_RW
#define LCD_RS

P0
P2_5
P2_4
P2_3

#define lcd_char(chr)
#define lcd_cmd(cmd)

lcd_send_byte(1, chr)
lcd_send_byte(0, cmd)

//khai bao prototype


void lcd_waitms (unsigned int time);
void lcd_send_byte (bit cmd, unsigned char byte);
void lcd_init (void);
void lcd_string(unsigned char *str);
//chuong trinh chinh
void main (void)
{
unsigned char i, j;

Trang 28

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

lcd_init();
lcd_string ("Dai hoc Lac Hong");
lcd_cmd(0xC0); //di chuyen con tro ve dong thu 2
lcd_string (Welcome !!!);
while (1)
{
for (i = 0; i < 16; i ++)
{
lcd_send_byte(0,0x18);
lcd_waitms(1000);
}
for (i = 0; i < 16; i ++)
{
lcd_send_byte(0,0x1C);
lcd_waitms(1000);
}
}
}
//chuong trinh con
void lcd_send_byte(bit cmd, unsigned char byte)
{
LCD_RW = 0;
//write mode
LCD_RS = cmd;
// cmd = 0 send command, cmd =
1 send data
LCD_DATA_PORT = byte;
LCD_E = 1;
LCD_E = 0;
lcd_waitms(1);
}
void lcd_string(unsigned char *str)
{
while(*str != '\0') // lap lai cho den khi ket
thuc chuoi
{
lcd_char(*str); // ghi ky tu len man hinh
str ++; // ky tu tiep theo
}
}
void lcd_init(void)
{
lcd_waitms(15);

//wait for about 15ms

Trang 29

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

lcd_cmd(0x38);

// two line, size of char

lcd_cmd(0x01);
lcd_cmd(0x06);
lcd_cmd(0x0C);

// clear lcd
// move cursor to right
// lcd on, cursor off

5x7 dot

}
void lcd_waitms (unsigned int time)
{
unsigned int x, y;
for (x = 0; x <= time; x ++)
{
for (y = 0; y <= 121; y ++);
}
}
3.5.3. Bi tp m rng
Vit chng trnh iu khin hin th dng text ra mn hnh LCD kt hp vi
nt nhn v Buzzer. Nu nt c nhn th Buzzer pht ra m Beep bo nhn phm,
v mn hnh hin th dng text th nht, tng t nu tip tc nhn th dng text khc
s xut hin trn mn hnh LCD.
3.6.

TRUY XUT IC DS12887

3.6.1. Mc ch, yu cu
Gip sinh vin lm quen vi vic truy xut d liu thi gian t IC real time cho
cc ng dng yu cu thi gian thc nh ng h bo gi
Sau bi tp ny, sinh vin phi nm c cc im sau:
Cch khai bo ng dn n th vin.
Cch truy xut b nh ngoi bng Keil C
S dng c IC DS12887 cho cc ng dng cn c thi gian thc
3.6.2. Chng trnh tham kho
Chng trnh ng h bo gi, pht, giy bng cch truy xut d liu thi gian
t DS12887, cho php khi to li DS12887.
#include <AT89x52.h>
#include "lcd_lib.h"

unsigned char code my_signature[] = "plain";


unsigned char code strDOW[7][4] =
{

Trang 30

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"


};
//---------location of date/time data--------------unsigned char xdata sec

_at_ 0x0000;

unsigned char xdata sec_alarm

_at_ 0x0001;

unsigned char xdata min

_at_ 0x0002;

unsigned char xdata min_alarm

_at_ 0x0003;

unsigned char xdata hour

_at_ 0x0004;

unsigned char xdata hour_alarm

_at_ 0x0005;

unsigned char xdata DOW

_at_ 0x0006;

unsigned char xdata date

_at_ 0x0007;

unsigned char xdata month

_at_ 0x0008;

unsigned char xdata year

_at_ 0x0009;

unsigned char xdata century

_at_ 0x0032;

//--------------------------------------------------

//-------location of control register--------------unsigned char xdata reg_A

_at_ 0x000A;

unsigned char xdata reg_B

_at_ 0x000B;

unsigned char xdata reg_C

_at_ 0x000C;

unsigned char xdata reg_D

_at_ 0x000D;

//--------------------------------------------------

//--------location of signature--------------------unsigned char xdata signature[5] _at_ 0x000E;


//--------------------------------------------------

bit check_DS12C887 (void);


void init_DS12C887 (void);

Trang 31

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

void main (void)


{
if (check_DS12C887()) init_DS12C887();
lcd_init();

while (1)
{
lcd_1st_line;
lcd_string(strDOW[0]);
lcd_char(',');
lcd_write_dec(date);
lcd_char('/');
lcd_write_dec(month);
lcd_char('/');
lcd_write_dec(year);

lcd_2nd_line;
lcd_write_dec(hour);
lcd_char(':');
lcd_write_dec(min);
lcd_char(':');
lcd_write_dec(sec);
}
}

bit check_DS12C887 (void)


{
unsigned char i;
for (i = 0; i < 5; i ++){
if (signature[i] != my_signature[i])

Trang 32

TH NGHIM VI IU KHIN
return

BIN SON: BNH NGUYN


1;

//

new

installed

IC

or

battery was empty


}
return 0; // IC's working properly
}

void init_DS12C887 (void)


{
unsigned char i;

// write signature into Dalas


for (i = 0; i < 5; i ++){
signature[i] = my_signature[i];
}
// init the registers
reg_A = 0x20;
reg_B = 0x86; // SET bit = 1

// init the time


hour = 3;
min = 9;

reg_B = 0x06; // SET bit = 0


}
3.6.3. Bi tp m rng
Vit chng trnh ng h hin th gi bng mn hnh LCD, cho php ngi s
dng chnh thi gian bng ba nt MODE, UP, DOWN.
Vit chng trnh ng h bo thc.

Trang 33

TH NGHIM VI IU KHIN

BIN SON: BNH NGUYN

PHN IV

BI TP M RNG
Bi 1: Vit chng trnh iu khin n giao thng s dng khi LED n v
khi LED 7 on. Cho php thay i gi tr thi gian bng cch s dng khi nt
nhn, kt hp vi khi Buzzer pht m nhn phm.
Bi 2: Vit chng trnh chung vui hc cho 3 i chi, s dng khi
LED n, khi nt nhn v Buzzer.
Bi 3: Vit chng trnh gii m tn hiu Remote TV Philips hoc TV Sony,
bng cch s dng khi Infrared Reciver v khi LED 7 on. Hin th gi tr phm
nhn c 0-9 ra LED 7 on.
Bi 4: Vit chng trnh ng h hin th bng mn hnh LCD cho php ngi
s dng hiu chnh thi gian v ci t thi gian chung. Hiu chnh bng khi nt
nhn v bo chung bng khi Buzzer.
Bi 5: Vit chng trnh ng h hin th bng mn hnh LCD cho php ngi
s dng hiu chnh thi gian v ci t thi gian chung. Hiu chnh bng Remote
TV v bo chung bng khi Buzzer.
Bi 6: Vit chng trnh kt hp Remote TV vi khi hin th LCD cho php
ngi s dng nhp on text vo bng cc phm trn Remote sau cho php to ra
cc hiu ng di chuyn on text bng cc nt iu khin trn Remote TV.

Trang 34

You might also like