You are on page 1of 25

n mn hc I : iu khin v tr ng c

Li ni u !
T chic my tnh u tin do Pascal pht minh ra n nhng chic my
tnh by gi l mt qu trnh pht trin v cng to ln ca khoa hc k
thut , nht l trong nhng thp nin gn y, s pht trin cng mau l.
Trong , mt trong nhng ht nhn ca qu trnh pht trin l cng
ngh in t. Nhng chic my tnh by gi c th dng lm nhng vic
m con ngi trc kia b ra hng nm thc hin xong , gi c th ch trong
nhy mt.
Trong k thut mi thi gian khng cn c tnh bng giy na , m l
micr giy , thm ch cn nh hn na . Mt b iu kin t ng c th thay
th cho nhiu cng nhn , nhiu k s, thm ch lm nhng vic m t mnh ,
con ngi khng th lm ni.
L mt sinh vin k thut , ngnh t ng , ang chp chng bc vo
mt lnh vc to ln y , th vic hc tp , vn ng nhng iu hc vo
trong thc tin , trao i kin thc l chuyn ng nhin. V n t ng
1, c th l cng trnh u tin ca nhiu bn sinh vin cng ngnh lm ,
nh u s hin in u tin ca mnh trong lnh vc ny.
Trn con ng trao di , hc tp tr thnh k s thc , ngoi bn thn
ca mnh , cn l s gip , y ca cc thy c gio. V vy em xin chn
thnh cm n thy hng n , cc thy cc c trong trng , cho em nhng
kin thc c th hon thnh c n ny.
Vn bit cn nhiu thiu st , em rt mong thy c gip , cho kin ,
cho em nhng hiu bit su sc hn , thc hin tt hn n mn hc 2 sp
ti .
Em xin chn thnh cm n!

-1-

n mn hc I : iu khin v tr ng c

A/ S LC VI IU KIN P89V51Rx2:
1. Khi qut cc tnh nng:
+ Khi qut:
P89V51RD2 l vi iu khin 80C51 c 64kB Flash v 1024bytes<1kB> b nh d
liu RAM.
Tnh nng c bit ca P89V61RD2 l ch hot ng mode x2. Ngi thit k chn
chy ng dng ca mnh ch ny nng i tc khi hot ng cng tn s
dao ng<mt chu k my=6 chu k xung nhp>
B nh chng trnh Flash cho php lp trnh ISP hoc/v song song. Ch lp
trnh song song c a ra thch ng vi tc cao, gim thi gian v gi thnh.
IAP/ISP.
+Cc tnh nng:
CPU 80C51.
Hot ng 5VDC trong tm tn s dao ng n 40MHz.
64kB ISP.
SPI
5 PCA vi chc nng PWM/capture/compare 16bits.
4 cng xut nhp.
3 Timers/Couters 16bits.
Watchdog Timer c th lp trnh c.
8 ngun ngt.
2 thanh ghi DPTR.
Tng thch mc logic TTL v CMOS.
Pht hin ngun yu <Brownout Detect>
Ch Low-power, Power down, Idle.

-2-

n mn hc I : iu khin v tr ng c

S khi ca MCU P89V51RD2:

S qua v cc chn ca vi iu khin:


Port 0, Port 1, Port 2, Port 3: Nh cu trc 8051 kinh in.
Port 0: l port c hai chc nng cc chn t 32-39 . Trong cc thit k c nh khng
dng b nh m rng n c chc nng nh cc ng vo ra.
Port 2:l mt port cc chn t 21-28 c dng cho chc nng IO port hoc l byte a
ch cao ca Bus a ch .
Port 3: l port c tc dng kp , t chn 10-17. Cc chn ca port ny ngoi IO , cn c
nhiu chc nng c bit .
Port 1:
Ngoi chc nng IO port , P89V51Rx2 cn c thm nhiu chc nng mi:
P1.0 - T2: Ng vo Counter cho Timer/Counter 2 hoc ng ra cho Counter/Timer2.
P1.1 - T2EX: iu khin hng v cnh kch chc nng Capture cho timer/Counter 2.
-3-

n mn hc I : iu khin v tr ng c

P1.2 ECI: Ng vo xung nhp. Tn hiu ny l ngun xung nhp ngoi cho chc nng
PCA.
P1.3 CEX0: ng vo xung nhp cho chc nng Capture/Compare modul 0.
P1.4:
o SS: Chn cng ph vo cho SPI.
o CEX1: ng vo xung nhp cho chc nng Capture/Compare modul 1.
P1.5:
o MOSI: phc v SPI
o CEX2: ng vo xung nhp cho chc nng Capture/Compare modul 2.
P1.6:
o MISO: phc v SPI
o CEX3: ng vo xung nhp cho chc nng Capture/Compare modul 3.
P1.7:
o SCK: phc v SPI
o CEX4: ng vo xung nhp cho chc nng Capture/Compare modul 4.
PSEN: Cho php dng b nh chng trnh ngoi. Khi MCU s dng b nh chng trnh
trong chip, PSEN khng tch cc. Khi s dng b nh chng trnh ngoi, PSEN
thng mc tch cc 2 ln trong mi chu k my. S chuyn mc cao sang thp trn
PSEN cng bc t bn ngoi khi ng vo RST ang mc cao trong hn 10 chu k
my s a MCU vo ch lp trnh host t bn ngoi.
RST: Khi ngun dao ng ang hot ng, mc cao trn chn RST trong t nht 2 chu
k my s Reset li h thng. Nu chn PSEN chuyn mc trong khi RST vn cn
mc cao, MCU s vo ch lp trnh host t bn ngoi, nu khng, s hot ng
bnh thng.
EA: Cho php s dng b nh chng trnh ngoi.
o EA=0 :B nh ngoi.
o EA=1:B nh trong chip.
ALE/PROG: Cho php kha a ch<Nh 8051 c in> ngoi ra, chn ny cn c dng
a vo ch lp trnh FLASH

GND

P0.0/AD0
P2.0/A8
P0.1/AD1
P2.1/A9
P0.2/AD2 P2.2/A10
P0.3/AD3 P2.3/A11
P0.4/AD4 P2.4/A12
P0.5/AD5 P2.5/A13
P0.6/AD6 P2.6/A14
P0.7/AD7 P2.7/A15
P1.0
P3.0/RXD
P1.1
P3.1/TXD
P1.2
P3.2/INT0
P1.3
P3.3/INT1
P1.4
P3.4/T0
P1.5
P3.5/T1
P1.6
P3.6/WR
P1.7
P3.7/RD
XTAL1
ALE/PROG
XTAL2
PSEN
EA/VPP
RST
20

39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
19
18
31
9

VCC

U1

40

S chn ca IC:
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
30
29

-4-

n mn hc I : iu khin v tr ng c

B/ PHN CHNG TRNH THC HIN


I/ THIT K PHN CNG :
Phn cng gm hai khi chnh :
+
+

Khi iu kin : kt iu kin


Khi cng sut : Ngun , cu H , v ng c

My tnh
RS232

Ngun 24VDC

Kt iu kin :
P89V51RX2

ng c
Cu H

Encoder

Khi iu kin:

Khi chp hnh

Khi iu kin :
Ngun 5V , IC , cng com RS-232, hin th lcd , hin th led,
led 7 on

-5-

n mn hc I : iu khin v tr ng c

+ Ngun cho kit vxl:


D17
7805
-

1 IN

2
1

OUT 3
470

BRIDGE

5V

GND

2200uF

J12
1
2

0.1uF

D18
LED

CON2

0
+ Khi x l ca kit:
5V

CON8
J4

8
7
6
5
4
3
2
1

p2.0
p2.1
p2.2
p2.3
p2.4
p2.5
p2.6
p2.7

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

5V

RESISTOR
SIP 9
R13

p3.0
p3.1
p3.2
p3.3
p3.4
p3.5
p3.6
p3.7

8
7
6
5
4
3
2
1 J16

CON8

CON8
1

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

5V
ZTA

RESISTOR SIP 9
8
7
6
5
4
3
2
1

2
C1

Y1

1
1n

p0.0
p0.1
p0.2
p0.3
p0.4
p0.5
p0.6
p0.7

39
38
37
36
35
34
33
32
p1.0
1
p1.1
2
p1.2
3
p1.3
4
p1.4
5
p1.5
6
p1.6
7
p17
8
19
18
5V
31
9

C2
1 1n

P0.0/AD0 P2.0/A8
P0.1/AD1 P2.1/A9
P0.2/AD2 P2.2/A10
P0.3/AD3 P2.3/A11
P0.4/AD4 P2.4/A12
P0.5/AD5 P2.5/A13
P0.6/AD6 P2.6/A14
P0.7/AD7 P2.7/A15
P1.0
P3.0/RXD
P1.1
P3.1/TXD
P1.2
P3.2/INT0
P1.3
P3.3/INT1
P1.4
P3.4/T0
P1.5
P3.5/T1
P1.6
P3.6/WR
P1.7
P3.7/RD
XTAL1 ALE/PROG
XTAL2
PSEN
EA/VPP
RST
AT89C51

R1
R

C3
C

CON8

J15

40

U1

VCC

p1.0
p1.1
p1.2
p1.3
p1.4
p1.5
p1.6
p1.7

J1

21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
30
29

p2.0
p2.1
p2.2
p2.3
p2.4
p2.5
p2.6
p2.7
p3.0
p3.1
p3.2
p3.3
p3.4
p3.5
p3.6
p3.7

GND

CON8
J3

8
7
6
5
4
3
2
1

R12

20

J2

0
SW44

5V

Khi gm c cc gic cm c , xut port, giao tip bn ngoi


Bn nt bm , v nt sw44 reset lai vxl
Vi x l s t ng reset khi c ngun nh t C3
Thch anh 12Mhz s to ngun xung cho chn 18,19
-6-

1
2
3
4
5
6
7
8
CON8 SW1

SW4

n mn hc I : iu khin v tr ng c

+ Khi hin th:


- Hin th led 7 on:

5V

7447

13
12
11
10
9
15
14

A
B
C
D
E
F
G

A
B
C
D
E
F
G

R23 330
R24 330
R27 330
R28 330
R29 330
R30 330
R31 330

Q2
R32 1K
R33 1K
U9
U10
A 7 A
A 7 A
B 6 B
B 6 B
C 4 C
C 4 C
D 2 D
D 2 D
E 1 E
E 1 E
F 9 F
F 9
G 10 G DP 5 G 10 FG

5V
5V
O7
C1815
C1815
Q3
Q4
Q5
R34 1K
R35 1K
U12
U13
A 7 A
A 7 A
B 6 B
B 6 B
C 4 C
C 4 C
D 2 D
D 2 D
E 1 E
E 1 E
F 9 F
F 9 F
G
G 10 G DP 5
5
10
5
DP
G DP
O6

LED7.1

LED7.2

LED7.3

LED7.4

- Khi gm IC nng 74LS245 , c tc dng nng dng cho port iu kin.


- 4 led 7 on , 4 BJT C1815 c tc ng chn led s ng cho qut led-.
- IC gii m 7447 , gii m BCD sang cc chn ca led hin th s.
+LCD:

J7

CON16

R26 5V

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

1
2
3
4
5
6
7
8

J9

J8
1
2
3

5V

5V

R25

0
-

Khi gm c : git cm ci 16 chn cho LCD


Git 8 chn dnh cho bus d liu
Git 3 chn dnh cho 3 chn iu kin
in tr r28 hn dng cho led trong LCD
Bin R25 chnh tng phn cho LCD

-7-

3
T 8
L

U3
D0
D1
D2
D3
LT
RBI
BI/RBO

C1815

3
T 8
L

7
1
2
6
3
5
4

O5

3
T 8
L

O0
O1
O2
O3

5V

C1815

3
T 8
L

16

5V

5V

20

VCC

5V
O4

GND

CON8

O7
O6
O5
O4

8
7
6
5
4
3
2
1

U11
19 G
1 DIR
2 A1O0 B1 18
3 A2O1 B2 17
4 A3O2 B3 16
5 A4O3 B4 15
6 A5O4 B5 14
7 A6O5 B6 13
8 A7O6 B7 12
9 A8O7 B8 11
74LS245
GND

5V
J10

5V

10

n mn hc I : iu khin v tr ng c

Mch hin th led:

J5

5V
1
2
3
4
5
6
7
8

20

R2

R9

10

CON8

G
DIR
A1 B1 18
A2 B2 17
A3 B3 16
A4 B4 15
A5 B5 14
A6 B6 13
A7 B7 12
A8 B8 11
74LS245

1
2
3
4
5
6
7
8

19
1
2
3
4
5
6
7
8
9

5V
VCC

0 U6

J13
CON8

D1

GND

D8

VCC

R15

D9

R22

D16

CON8

10

GND

J6

0 U7
19 G
5V 1 DIR
1 p1.02 A1 B1 18
2 p1.13 A2 B2 17
3 p1.24 A3 B3 16
4 p1.35 A4 B4 15
5 p1.46 A5 B5 14
6 p1.57 A6 B6 13
7 p1.68 A7 B7 12
8 p1.79 A8 B8 11
74LS245

J11
CON8
1
2
3
4
5
6
7
8

20

5V

xut led , gm 2 IC nng dng 74LS245, cc gic cm c a ra ngoi.


Mt dy led hin th.

+ Khi giao tip:


- RS-232:

C5

R1IN R1OUT 12
T1OUT T1IN 11
T2OUT R2OUT 910
R2IN
T2IN
C1+
C1V+ 2
C2+
C2V- 6

p3.0
p3.1
C7
5V

GND

C4

13
14
7
8
1
3
4
5

MAX232_1

C6

15

1
6
2
7
3
8
4
9
5

VCC

U2
P1

16

5V

0
o Mch c cng DB9 , v IC max232
-8-

n mn hc I : iu khin v tr ng c

o IC max232 v cc t lm nn mch chuyn mc p TTL sang 232


o Cp ngun cho max232 l 5v, mch trong IC v cc t s to ra ngun +10V
- Ma trn phim:
SW26

P0.0

SW27

SW28

SW29

SW32

SW33

SW30

P0.1

SW35

SW36

SW34

SW37

P0.2

SW38

SW39

SW40

SW41

P0.3

SW31

P0.7

P0.6

P0.5

P0.4

o Mch gm 8 chn ni vi port 1 .


o Khi qut phim . Nu nt nhn c mt chn c a vo mc cao, mt
chn mc thp , khi nhn phim , th c hai chn u mc thp , v vi
iu kin c th nhn ra s thay i.

S khi Kit:
Ngun 5v

Khi x l

Khi hin th

Khi giao tip

-9-

n mn hc I : iu khin v tr ng c

S Ton Kt:

8
7
6
5
4
3
2
1

p3.0
p3.1
p3.2
p3.3
p3.4
p3.5
p3.6
p3.7

9
8
7
6
5
4
3
2

R13
CON8

5V

CON8

RESISTOR SIP 9
ZTA
2
C1

Y1

1
1n

C2
1 1n

40

P0.0/AD0 P2.0/A8
P0.1/AD1 P2.1/A9
P0.2/AD2 P2.2/A10
P0.3/AD3 P2.3/A11
P0.4/AD4 P2.4/A12
P0.5/AD5 P2.5/A13
P0.6/AD6 P2.6/A14
P0.7/AD7 P2.7/A15
P1.0
P3.0/RXD
P1.1
P3.1/TXD
P1.2
P3.2/INT0
P1.3
P3.3/INT1
P1.4
P3.4/T0
P1.5
P3.5/T1
P1.6
P3.6/WR
P1.7
P3.7/RD
XTAL1 ALE/PROG
XTAL2
PSEN
EA/VPP
RST
AT89C51

R1
R

CON8

p2.0
p2.1
p2.2
p2.3
p2.4
p2.5
p2.6
p2.7
p3.0
p3.1
p3.2
p3.3
p3.4
p3.5
p3.6
p3.7

21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
30
29

1
2
3
4
5
6
7
8

SW31
SW35

SW33

SW30

P0.1

SW36

SW34

SW37

P0.2

CON8

20

D1

R2

R9

D8

CON8 SW1
SW38

SW39

SW40

P0.3

SW41

P0.7

P0.6

P0.5

J11
CON8

5V

P0.4
J6

SW4

0 U7
19 G
5V 1 DIR
1 p1.02 A1 B1 18
2 p1.13 A2 B2 17
3 p1.24 A3 B3 16
4 p1.35 A4 B4 15
5 p1.46
B5 14
6 p1.57 A5
B6 13
7 p1.68 A6
A7 B7 12
8 p1.79 A8
B8 11
74LS245

CON8

SW44

C3
C

G
DIR
A1 B1 18
A2 B2 17
A3 B3 16
A4 B4 15
A5 B5 14
A6 B6 13
A7 B7 12
A8 B8 11
74LS245

1
2
3
4
5
6
7
8

19
1
2
3
4
5
6
7
8
9

VCC

SW32

5V
1
2
3
4
5
6
7
8

J5

GND

39
38
37
36
35
34
33
32
p1.0
1
p1.1
2
p1.2
3
p1.3
4
p1.4
5
p1.5
6
p1.6
7
p17
8
19
18
5V
31
9

SW29

1
2
3
4
5
6
7
8

p2.0
p2.1
p2.2
p2.3
p2.4
p2.5
p2.6
p2.7

p0.0
p0.1
p0.2
p0.3
p0.4
p0.5
p0.6
p0.7

SW28

10

8
7
6
5
4
3
2
1

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

P0.0

SW27

20

8
7
6
5
4
3
2
1 J16

SW26

J15

VCC

RESISTOR SIP 9

CON8
J4

5V
U1

J1

5V

J13
CON8

5V

R15

D9

R22

D16

GND

J3

0 U6

10

CON8

R12

VCC

9
8
7
6
5
4
3
2

GND

p1.0
p1.1
p1.2
p1.3
p1.4
p1.5
p1.6
p1.7

8
7
6
5
4
3
2
1

20

J2

5V

7447

LED7.1

LED7.2

LED7.3

LED7.4

CON16

0
-

1 IN

OUT 3
R36
R

J9

J8
1
2
3

5V

5V

C4

C5

VCC

1
6
2
7
3
8
4
9
5

R1IN R1OUT 12
T1OUT T1IN 11
T2OUT R2OUT 910
R2IN
T2IN
C1+
C1V+ 2
C2+
C2V- 6

MAX232_1

R25

BRIDGE
2
1

1
2
3
4
5
6
7
8

13
14
7
8
1
3
4
5

5V

GND

U2
P1

D17
U15

J14

R26 5V

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

J12
1
2

C8
C9

CON2

C10

D18
LED

CON2

Khi Cng sut:


+ Mch cu h , Ngun 24v
- Mch cu H:
R13

M2
R1

R14 560

1
2

U2

D2

R4

R3
1k

R16
24V

1k
R17
1k

1k

5V
24V
J6

1
2

NGUON 24V

D3
D13
1
2
D14
2
1

2
1

CON3

M1

1k

3
2
1

J2

24V

U1

1
2

2200uF

M3
D1

R5
1k

0.1uF

J3
CON2

R7
10k

R6

M4

1k
R8
10k

o Mch c bn IC FET chu ng ln ,hai led bit chiu ng c.


- 10 -

p3.0
p3.1
C7
5V

GND

T
L

3
8

R32 1K
R33 1K
U9
U10
A 7 A
A 7 A
B 6 B
B 6 B
C 4
C 4 C
D 2 CD
D 2 D
E 1 E
E 1 E
F 9 F
F 9
G 10 G DP 5 G 10 FG

3
8

A
B
C
D
E
F
G

T
L

A
B
C
D
E
F
G

R23 330
R24 330
R27 330
R28 330
R29 330
R30 330
R31 330

3
8

13
12
11
10
9
15
14

C1815

3
8

U3
D0
D1
D2
D3
LT
RBI
BI/RBO

O5

Q2

T
L

16

5V

7
1
2
6
3
5
4

5V

O0
O1
O2
O3

C1815

5V
5V
O7
O6
C1815
C1815
Q3
Q4
Q5
R34 1K
R35 1K
U12
U13
A 7 A
A 7 A
B 6 B
B 6 B
C 4
C 4 C
D 2 CD
D 2 D
E 1 E
E 1 E
F 9 F
F 9 F
DP 5 G 10 G DP 5 G 10 G DP 5

T
L

O4

5V

J7

5V

C6

15

5V

GND

20

VCC
GND

O7
O6
O5
O4

CON8

8
7
6
5
4
3
2
1

10

J10

5V
U11
19 G
1 DIR
O0
2
B1 18
3 A1
B2 17 O1
O2
4 A2
A3 B3 16
O3
5 A4
B4 15
O4
6
B5 14
7 A5
13
B6 12 O5
O6
8 A6
A7
B7
9 A8 B8 11 O7
74LS245

16

5V

0
5V

D4

n mn hc I : iu khin v tr ng c

o Hai opto c nhim v cch ly ngun in ca vi iu kin vi b cng sut


o Cc zener bo v mch , v x khi c dng hi t ng c v -v mch
ngun l cu diof , khng x c.o T lc gai cho ng c khi chy
o Nguyn tc chng trng n : khng th kch ( mc cao) cho 2 ng vo
cng lc
- Ngun 24VDC:
1

Q1

J1

2
1

R1

D8

C1
2200uF

270
C5
470uF

zener 24v

D7
D2
D10D1

J2
1
2
24VDC

24VAC

C4
0.1uF

R2
2.2k

0
+ Mch c cu diof chnh lu. T ha C4 lc phng thng thp . T C4 lc thng
cao , BJT cng sut 2N3005.
+ diof gn i zener b li in th mt do BJT. V R1 duy tr ng cho zener . T
C5 lc .

II> CHNG TRNH THC HIN:


THNH PHN , S , GII THUT TNG QUT:
Thnh phn :
+ Gm c 2 phn chng trinh chinh:
Chng trnh trn my tnh , vit bng Visual basic
Chng trnh trn vi x l , vit bng hp ng
S v gii thut chnh:
+ Chng trnh Visual Basic:

GIAO IN:
- Hin th
- Nhn lnh

X L :
- Phn mm
PID, c chnh
sa
- Ngt timer
thc hin k,
v xut kt qu

- 11 -

GIAO TIP VXL:


- Nhn
liu t vxl
- Truyn
lnh ti vxl

Vi iu
kin

n mn hc I : iu khin v tr ng c

+ Chng trnh hp ng :
My tnh

Timer 2 to
xung uart

Giao tip
my tnh

- Nhn m lnh M lnh


T my tnh

iu xung
PWM
ng c

Timer1: qut gi gi tr
encoder ln my tnh

Gt encoder

m gi tr
encode

CHI TIT CHNG TRNH:


o CHNG TRNH TRN VB:
Visual basic:Giao din VB:

Timer1
MSComm
<Name: gt>

Timer2
Cmdketnoi
Labecd
Labsovong
Labvantoc
Cmddung

Cmdtien
H_vantoc

cmdlui

txtvitri
Cmdchay
Cmdclr_ecd

txtvantoc

Cmd_dungvitri
- 12 -

encoder

n mn hc I : iu khin v tr ng c

Giao din gm c:
-

Nt kt ni vi iu khin
Khung iu khin tin li:
Nt tin ng c
Li ng c
ng ng c
TextBox nhp gi tr iu xung
Thanh trt , to gi tr iu xung
Khung iu khin v tr ng c:
TextBox nhp v tr chy ti
Nt start qu trnh.
Nt clear gi tr encoder
Nt dng chc nng.
Khung hin th :
Label- Hin th gi tr encoder tuyt i (c offset )
Label- Hin th s vng tng ng ( 400 xung / vng )
Label- Vn tc ng c ( c chng nhy do thay i qu nhanh )

MSComm : < name : gt > : cng c giao tip vi ngoi vi thng qua cng com
Timer1: lin tc ly gi tr trung bnh ca vn tc , chng nhy khi hin th
Timer2: To ngt trong khong thi gian 10ms , phc v iu khin v tr ca ng
c
M ca chng trnh:
Phn khai bo u chng trnh:
Option Explicit
Dim ht As Double
Dim D_tt As Double
Private e_p As Double
Private e_tichluy As Long
Private dblvitridat As Double
Private intvt As Integer
Private ht_p As Double
Private d_p(20) As Double
Private dang_load As Boolean
Private thu_tu As Byte
Private ecd(4) As Long
Private trang_thai As Byte
Dim P As Double
Dim I As Double
Dim D As Double
- 13 -

'v tr encoder lay ve


vn tc tc thi ca ng c
sai s ca v tr ng c_gi li
Sai s tch ly , dng cho thng s KI
bin lu tr v tr xc lp
bin lu vn tc ng c
bin lu li gi tr trc ca encoder
Bin lu li chui vn tc tc thi
nh u v tr bt u ca chui ly v
th t ca tn hiu a v
chui gi tr encoder ly v t vi x l
Trng thi : tin , li , dng ca ng c
H s P ca b PID-v tr
H s I
H s D

n mn hc I : iu khin v tr ng c

X l cc s kin:

Kt ni vi my tnh:
Private Sub cmdketnoi_Click()
On Error Resume Next
gt.Settings = "28800,N,8,1"
tc 28,8 k
gt.CommPort = 1
gt.RThreshold = 1
gt.PortOpen = True
gt.InputLen = 1
cmddung.Enabled = True
Khi cha kt ni cc nt bm
cmdtien.Enabled = True
cha c kch hot , chng
cmdlui.Enabled = True
li cho chng trnh
cmdchay.Enabled = True
cmdclr_ecd.Enabled = True
cmd_dungvitri.Enabled = True
lab_trangthai.Caption = "da ket noi !"
hin th gc di , phi
End Sub
Khi to gi tr ban u
Private Sub Form_Load()
Timer1.Interval = 10
ngt mi ln l10ms
Timer1.Enabled = True
kch hot timer 1
Timer2.Interval = 10
Timer2.Enabled = False cm timer 2
P = 0.282
Cc thng s b PID
D = 1.125
Cc gi tr c tm bng
i = 0.0187
PP Zeigler-Nichols
intvt = 0
thu_tu = 0
trang_thai = 0
End Sub
X l nhn k t:
Private Sub gt_OnComm()
Dim a As Integer
Dim b As Double
Select Case gt.CommEvent
Nhn bit s kin
Case comEvReceive
Nhn d liu
Dim buffer As Variant
b m thu
buffer = gt.Input
a = Asc(buffer)
chuyn k t ra m ascii
lab.Caption = a & " ;" & buffer hin th gc cui phi
buffer = ""
xa tin theo di
If dang_load = True Then
Nu nhn c im
- 14 -

n mn hc I : iu khin v tr ng c

thu_tu = thu_tu + 1
bt u th np d liu
ecd(thu_tu) = a
If thu_tu = 3 Then
dang_load = False
thu_tu = 0
End If
Else
If a = 99 Then
k t gc bt u np
dang_load = True
ht = ecd(3) * 256 * 256 + 256 * ecd(2) + ecd(1) - 8388608
Gi tr encoder tuyt i tr i gi tr offset
b = ht / 400
s vng
labsovong.Caption = Format(b, "00000.0000")
labecd.Caption = ht
End If
End If
End Select
X l cc nt bm tin , li , dng:
Private Sub cmdtien_Click()
intvt = Val(txtvantoc)
trang_thai = 1
If intvt >= 256 Then
MsgBox ("gia tri phai nho hon 256")
Exit Sub
End If
Call chay(intvt)
End Sub

gi tr iu xung max

Private Sub cmdlui_Click()


intvt = Val(txtvantoc)
trang_thai = 2
If intvt >= 256 Then
MsgBox ("gia tri phai nho hon 256")
Exit Sub
End If
Call chay(-intvt)
End Sub
Private Sub cmddung_Click()
trang_thai = 0
gt.Output = Chr(3)
gi k t c m l 3
- 15 -

n mn hc I : iu khin v tr ng c

End Sub
S kin thanh trt:
Private Sub H_vantoc_Change()
txtvantoc = H_vantoc.Value
intvt = Val(txtvantoc)
Select Case trang_thai
Case 1:
Call chay(intvt)
chy ti
Case 2:
Call chay(-intvt)
chy lui
End Select
End Sub
Cc nt bm cn li , k v tr ng c
Private Sub cmd_dungvitri_Click()
Call cmddung_Click
e_tichluy = 0
Timer2.Enabled = False ngng timer, kt thc tm v tr
End Sub
Private Sub cmdchay_Click()
Timer2.Enabled = True
bt u chy v tr
End Sub
Private Sub cmdclr_ecd_Click()
gt.Output = Chr(4)
M clear encoder
End Sub
Hm chay( ):
Private Sub chay(ByVal v As Integer)
If (v > 255) Or (v < -255) Then Exit Sub Max iu xung =256
gt.Output = Chr(0) m nhp vn tc
If v < 0 Then
v = -v
gt.Output = Chr(v) truyn vn tc
gt.Output = Chr(1) lnh chy li
Else
gt.Output = Chr(v) truyn vn tc
- 16 -

n mn hc I : iu khin v tr ng c

gt.Output = Chr(2) lnh chy ti


End If
X l s kin timer1, timer2:
Private Sub Timer1_Timer()
Dim D_tong As Double
Dim tong As Double
Dim i As Integer
D_tong = ht - ht_p
D_tt = D_tong
ht_p = ht
tong = 0
For i = 20 To 2 Step -1
d_p(i) = d_p(i - 1)
tong = tong + d_p(i)
Next

ly vn tc tc thi cho b PID

ly tng gi tr vn tc trong 0.2s

d_p(1) = D_tong
tong = tong + d_p(1)
D_tong = tong / 20
ly gi tr trung bnh , x l nhp
D_tong = D_tong * 10
nhy
labvantoc = Format(D_tong, "0000.00") Cho gi tr ng yn trnGD
End Sub
Private Sub Timer2_Timer()
Static g As Integer
Dim e As Double
Dim v As Integer
dblvitridat = Val(txtvitri) * 400
e = ht dblvitridat
Ly sai s cho b PID
v = PID(e, e_p)
ly vn tc t b PID
Call chay(v)
e_p = e
If e = 0 Then
g=g+1
Else
g=0
End If
If g = 30 Then Timer2.Enabled = False nu ng v tr trong vng
End Sub
0.3s th dng chc nng li
- 17 -

n mn hc I : iu khin v tr ng c

B PID:
Private Function PID(ByVal e As Double, ByVal e_c As Double) As Integer
Dim step1 As Integer
Dim up As Double
Dim ui As Double
Dim ud As Double
Dim u As Double
If D_tt = 0 Then
Hiu chnh thng s I
step1 = 3
Lm gim thi gian a sai s v 0
Else
step1 = 1
End If
up = -P * e
ud = -D * (e - e_c)
If (e > -130) And (e < 130) Then
e_tichluy = e * step1 + e_tichluy
ui = -I * e_tichluy
Else
e_tichluy = 0
ui = 0
End If

Kch hot thng s Ki khi ng c


cch ch khong 1 vng

u = (up + ui + ud)
If u > 255 Then u = 255
If u < -255 Then u = -255
PID = CInt(u)
If e = 0 Then PID = 0
End Function

PID s:

K p (ek

TS
ek _ TL
TI

Khu bo ha

TD
(ek
TS

ek 1 ))

Trong h s Ts l chu k ly mu
Tm thng s bng cch :
- Cho h s khuch i K ( Ki,Kd = 0) n khi h bt u ao ng n nh quanh
v tr cn bng ( c kch nh ) ta c : k=0.47, T=0.31s
Kp = 0.6 x k = 0.282 ; Ti = 0.1505 ; Td = 0.03875
- Vy D = 1.0927 ; I = 0.1874

- 18 -

n mn hc I : iu khin v tr ng c

o CHNG TRNH TRN VI IU KIN :


INCLUDE p89v51rx2.mc
ECD
DATA 40h
; Lu gi gi tr qut xut d liu
ECD1
DATA 41h
; 3 byte Lu gi gi tr encoder
ECD2
DATA 42h
ECD3
DATA 43h
ECD1_P
DATA 44h
; 3 byte tip trung gian lu gi
ECD2_p
DATA 45h
; gi tr xut, m bo xut chnh xc
ECD3_p
DATA 46h
van_toc DATA 49h
; Vn tc c nhp vo y
nhap_vt

BIT 33h

; C nhp vn tc

org 0000h
LJMP main
org 0003h
LJMP ngat_ngoai0
org 000bh
LJMP ngat_T0;ngat time de quet truyen data
org 0023h
LJMP NGAT_NT; tao toc do boau
main:
MOV fst,#08h
;Nng i tc x l ca
MOV t2mod,#02h
;IC
SETB RCLK
;cho php nhn d liu t PC
SETB TCLK
;Cho php xut liu nPC
MOV rcap2h,#ffh
; tc baud 28800
MOV rcap2l,#f3h
MOV scon,#50h
SETB TR2
;-------------MOV CCAPM0,#01000010B
MOV CCAPM1,#01000010B
MOV CCAPM2,#01000010B
MOV CCAPM3,#01000010B
- 19 -

n mn hc I : iu khin v tr ng c

MOV CCAPM4,#01000010B
MOV cmod,#0
CLR nhap_vt
MOV ccap3h,#ffh
MOV ccap4h,#ffh
SETB cr
; cho php chc nng PCA chy
;-------------MOV tmod,#01h
MOV ien0,#10010011b
SETB it1
SETB it0
MOV ip0,#05h ;u tin ngt ngoi
MOV ip0h,#0
MOV van_toc,#100
MOV ecd,#1
SETB tr0
;-------------------------------------------MOV ecd1,#0h
MOV ecd2,#0h
MOV ecd3,#128
SJMP $
;------------------------------------------ngat_nt:
JNB ri,thoat_ngat_nt
CLR ri
PUSH acc
MOV A, sbuf
MOV p2,A
ACALL nhan_dk
POP acc
JNB ti,thoat_ngat_nt
CLR ti
thoat_ngat_nt:
RETI
;*******************************************************
; Chng trnh trong on ny nhn tn hiu iu khin t my tnh.
; Gm c nhn ch th chy ti , ng ,chy li , nhn tc chy, reset gi tr
encoder
- 20 -

n mn hc I : iu khin v tr ng c

;-----------------------------------nhan_dk:
JNB nhap_vt,tiep
MOV van_toc,A
CLR nhap_vt
LJMP thoat_nhan_dk
tiep:

tiep0:
tiep1:
tiep2:
tiep3:

CJNE A,#0,tiep0
LCALL nhap_vantoc
LJMP thoat_nhan_dk
CJNE A,#1,tiep1
LCALL chay_toi
LJMP thoat_nhan_dk
CJNE A,#2,tiep2
LCALL chay_lui
LJMP thoat_nhan_dk
CJNE A,#3,tiep3
LCALL dung_dc
LJMP thoat_nhan_dk
CJNE A,#4,thoat_nhan_dk
LCALL clr_ecd

thoat_nhan_dk:
RET
chay_toi:
MOV
CPL
MOV
MOV
RET
chay_lui:
MOV
CPL
MOV
MOV
RET
dung_dc:
MOV
MOV
RET
nhap_vantoc:

A , van_toc
A
ccap3h,A
ccap4h,#ffh
A , van_toc
A
ccap4h,A
ccap3h,#ffh
ccap3h,#ffh
ccap4h,#ffh

- 21 -

n mn hc I : iu khin v tr ng c

SETB nhap_vt

;a chng trnh thu vo

RET

; nhp Vn tc

ch
clr_ecd:
MOV ecd1,#0
MOV ecd2,#0
MOV ecd3,#128
RET
;*******************************************************
; Chng trnh trong 2 on i , gm c:
;
Ngt timer 0 , lin tc gi hm hien_thi.
;
Hm hien_thi tun t xut 3 byte lu tr
;v tr encoder ca ng c cho my tnh . Mi
;ln c gi , xut 1 byte.
;------------------------------------------------------ngat_T0:

thoat:

CLR tf0
CLR tr0
MOV th0,#fch
MOV tl0,#00
SETB tr0
PUSH 00h
MOV R0,ECD
INC R0
CJNE R0,#4,thoat
MOV R0,#0
MOV ECD,R0
POP 00h
LCALL hien_thi

RETI
;------------------------------------------------------hien_thi:
PUSH acc
MOV A,ECD
CJNE A,#0,O_N_1
MOV sbuf,#99
MOV R2,ecd1
MOV ecd1_p,R2
- 22 -

n mn hc I : iu khin v tr ng c

MOV R2,ecd2
MOV ecd2_p,R2
MOV R2,ecd3
MOV ecd3_p,R2
SJMP Thoat_hien_thi
O_N_1:
CJNE A,#1,O_N_2
MOV A,ecd1_p
MOV sbuf,A
SJMP Thoat_hien_thi
O_N_2:
CJNE A,#2,O_N_3
MOV A,ecd2_p
MOV sbuf,A
SJMP Thoat_hien_thi
O_N_3:
CJNE A,#3,thoat_hien_thi
MOV A,ecd3_p
MOV sbuf,a
Thoat_hien_thi:
POP acc
ret
;*******************************************************
;Ngt ngoi khi c xung encoder vo vi iu khin
; Nu chn cn li mc cao th ng c ang li , ngc li l ang tin.
;-----------------------------------------------------------ngat_ngoai0:
JNB p3.3,tang_encoder
JMP giam_encoder
thoat_ngat0:
RETI
;------------------------------------------------------tang_encoder:
INC ECD1
MOV R1,ecd1
CJNE R1,#0,thoat_tang_ecd
MOV ecd1,#0
INC ECD2
MOV R1,ecd2
CJNE R1,#0,thoat_tang_ecd
MOV ECD2,#0
- 23 -

n mn hc I : iu khin v tr ng c

INC ECD3
thoat_tang_ecd:
LJMP thoat_ngat0
;------------------------------------------------------giam_encoder:
MOV R1,ecd1
CJNE R1,#0,giam_ecd1
MOV ecd1,#ffh
MOV R1,ecd2
CJNE R1,#0,giam_ecd2
MOV ecd2,#ffh
MOV R1,ecd3
CJNE R1,#0,giam_ecd3
MOV ecd3,#ffh
SJMP thoat_giam_ecd
giam_ecd1:
DEC ecd1
SJMP thoat_giam_ecd
giam_ecd2:
DEC ecd2
SJMP thoat_giam_ecd
giam_ecd3:
DEC ecd3
thoat_giam_ecd:
LJMP thoat_ngat0
END

- 24 -

n mn hc I : iu khin v tr ng c

Mc lc :
Trang
Li ni u . 1
A/ S LC V VI IU KIN P89V51Rx2. 2
Khi qut cc tnh nng. 2
S khi 3
S chn... 4
B/ CHNG TRNH THC HIN 5
I/ Thit k phn cng... 5
Khi iu khin .. 5
+ Ngun cho kit vxl... 6
+ Phn x l ca kit.. 6
+ Phn hin th.. 7
+ Phn giao tip 8
S ton kt 10
Khi cng sut. 10
- Mch cu H.. 10
- Ngun 24Vdc.. 11
II/ Chng trnh thc hin... 11
Thnh phn , s , gii thut tng qut. 11
Chi tit chng trnh 12
-Chng trnh trn visual basic. 12
+ Giao din VB 12
+ Code chng trnh trn VB... 13
+ PID s .. 18
- Chng trnh trn vi iu khin.. 19
Mc lc : . 25

- 25 -

You might also like