Professional Documents
Culture Documents
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
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
My tnh
RS232
Ngun 24VDC
Kt iu kin :
P89V51RX2
ng c
Cu H
Encoder
Khi iu kin:
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
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
1
2
3
4
5
6
7
8
CON8 SW1
SW4
n mn hc I : iu khin v tr ng c
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
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
-
-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
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
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
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
S khi Kit:
Ngun 5v
Khi x l
Khi hin th
-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
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
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
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 .
GIAO IN:
- Hin th
- Nhn lnh
X L :
- Phn mm
PID, c chnh
sa
- Ngt timer
thc hin k,
v xut kt qu
- 11 -
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
iu xung
PWM
ng c
Timer1: qut gi gi tr
encoder ln my tnh
Gt encoder
m gi tr
encode
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 -
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
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
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
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
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
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 -