Professional Documents
Culture Documents
K THUT MY TNH
VI X L
VI IU KHIN
Gio trnh dng cho h i hc chnh
quy, o to theo h thng tn ch
2011
MC LC
CHNG 1. TNG QUAN V VI X L VI IU KHIN ...................... 9
1.1
Gii thiu chung v vi x l vi iu khin .............................................................. 10
1.1.1 Khi nim .................................................................................................................. 10
1.1.2 Phn bit vi x l v vi iu khin ............................................................................ 11
1.1.3 Lch s pht trin ca vi x l ................................................................................... 13
1.1.4 ng dng ca Vi x l/Vi iu khin ....................................................................... 14
1.2
Cu trc chung ca h Vi x l/Vi iu khin .......................................................... 15
1.3
nh dng d liu v biu din thng tin trong h vi x l vi iu khin ........... 16
1.3.1 Cc h m v m BCD ............................................................................................ 16
1.3.2 M k t - Alphanumeric CODE (ASCII, EBCDIC)................................................ 17
I HC THI NGUYN
TR
TRNG
I H
HC
c l
lp - T do - Hnh phc
K THU
THUT CNG NGHI
NGHIP
Tun
th
Ni dung
Chng I: Tng quan v vi x l vi iu khin
1.1. Gii thiu chung v vi x l vi iu khin
1.1.1.
Tng quan
1.1.2.
Lch s pht trin ca cc b x l
1.1.3.
Vi x l v vi iu khin
1.2. Cu trc chung ca h vi x l
1.2.1.
Khi x l trung tm (CPU)
1.2.2.
B nh (Memory)
1.2.3.
Khi phi ghp vo/ra (I/O)
1.2.4.
H thng bus
1.3. nh dng d liu v biu din thng tin trong
h vi x l vi iu khin
1.3.1.
Cc h m
1.3.2.
Biu din s v k t
1.3.3.
Cc php ton s hc trn h m nh phn
Chng II: H vi x l Intel 80x86
2.1. Cu trc phn cng ca b vi x l 8086
2.1.1.
Tng quan
2.1.2.
Cu trc bn trong v s hot ng
2.1.3.
Cc ch a ch
2.2. Tp lnh
2.2.1.
Gii thiu chung
2.2.2.
Cc nhm lnh
2.3. Biu thi gian ghi/c
2.4. Lp trnh hp ng (Assembly) cho vi x l
80x86
2.4.1.
Gii thiu chung v hp ng
Ti liu
hc tp,
tham
kho
Hnh
thc
hc
[1] - [4]
Ging
[1] - [4]
Ging
[1] - [4]
Ging
[1] - [4]
Ging
7
8
9
10
11
12
13
2.4.2.
Cu trc ca chng trnh hp ng
2.4.3.
Cc cu trc iu khin c bn
2.4.4.
Cc bc khi lp trnh
2.4.5.
Cc bi tp v d
Tho lun
Chng III: H vi iu khin onchip MCS 8051
3.1. Gii thiu chung v vi iu khin
3.1.1. Gii thiu chung
3.1.2. Khi nim vi iu khin
3.1.3. Cu trc chung ca vi iu khin
3.2. Kin trc vi iu khin 8051
Kin trc vi iu khin 8051 (tip)
Kim tra gia k
3.3. Tp lnh 8051 v lp trnh hp ng cho 8051
3.3.1. Tp lnh 8051
3.3.2. Thnh phn ngn ng assembly
3.4. Kin trc vi iu khin 8051
Tho lun
Kin trc vi iu khin 8051 (tip)
Chng IV: ng dng
[1] - [4]
Ging
[1] - [4]
Ging
[1] - [4]
Ging
[1] - [4]
Ging
Tho
lun
Ging
Tho
lun
Ging
Tho
lun
[1] - [4]
[1] - [4]
[1] - [4]
14
[1] - [4]
15
Tho lun
[1] - [4]
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
CHNG 1.
TNG QUAN V VI X L VI IU KHIN
Mc tiu:
Gip sinh vin hiu v lch s ra i ca vi x l vi iu khin; khi nim, v
nguyn l ca h vi x l vi iu khin; n li kin thc v cc h thng s m.
Tm tt chng:
Chng chia lm 3 phn:
Gii thiu chung v vi x l vi iu khin
Khi nim
Phn bit vi x l v vi iu khin
Lch s pht trin ca cc b x l
ng dng ca vi x l v vi iu khin
Cu trc chung ca h vi x l/vi iu khin
nh dng d liu v biu din thng tin trong vi x l vi iu khin
Cc h m
Biu din s v k t
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
D liu vo dng
nh phn
Vi x l
D liu ra hoc cc
lnh iu khin
Lnh trong
b nh
10
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
11
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
Microcontroller
CPU, timers, I/O ports, memmory
(ROM/RAM) c tch hp trong
mt IC duy nht.
Thng c s dng cho cc ng
dng chuyn dng(nh my nh,
in thoi, my git,...).
Phn mm thng c np sn
trong ROM v ch phc v cho ng
dng ca h thng(phn mm my
nh khng th dung cho in thoi).
Kch thc b nh v s cng vo ra
b hn ch tu thuc vo loi vi iu
khin c dng.
12
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
13
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
14
iu khin ng c
o lng (o in p, o dng in, p sut, nhit ,...)
Cn bng ti, cn toa xe, cn t,...
iu khin cc dy truyn sn xut cng nghip
Lm b iu khin trung tm cho Robot
...
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
CPU
(Microprocessor)
Input/Output
Address Bus
Data Bus
Control Bus
15
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
= 10
= 2
= 16
16
H thp phn
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
Hnh 1-5.LED 7 on
S thp phn
0
1
2
3
4
5
6
7
8
9
M BCD (4 bit)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
17
Bi ging
Vi x l - Vi iu khin
Chng 1
Tng quan v vi x l vi iu khin
18
Bi ging
Vi x l - Vi iu khin
Chng 2
H vi x l Intel 80x86
CHNG 2.
VI X L INTEL 8086/8088
Mc tiu:
Hiu c cu trc phn cng ca h vi x l; hiu v vn dng c cc ch
a ch; nm c tp lnh v lp trnh cho vi x l 8086/8088.
Tm tt chng:
19
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
BIU (Bus Interface Unit): n v giao tip bus (khi tng thch bus)
iu khin bus hiu qu hn.
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
cc thanh ghi
a nng
cc thanh ghi
con tr
v ch s
EU
AX
BX
CX
DX
SP
BP
SI
cc thanh ghi on
v con tr lnh
DI
BIU
Bus d liu
(8 bit)
CS
DS
SS
ES
IP
Bus d liu
ALU(16bit)
Bus trong
8 bit d liu
20 bit a ch
Logic
iu khin
BUS
cc thanh ghi tm
BUS
ngoi
Khi
iu khin
ca EU
m lnh (hng i lnh)
(6 byte cho 8086)
thanh ghi c
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
c) Khi ALU
Lm nhim v thc hin cc lnh s hc v logic.
d) Thanh ghi c:
y l thanh ghi 16 bit, mi bit c s dng th hin mt trng thi ca
b vi x l ti mt thi im nht nh trong qu trnh thc hin chng trnh (dy
cc cu lnh), nhng ch dng 9 bit i vi b vi x l 8088/8086. Mi bit c
gi l mt c (flag). Gi tr ca mi c c biu din bng cc k hiu gi nh
nh cch biu din ca chng trnh Debug ca DOS.
OF
22
DF
IF
TF
SF
ZF
AF
PF
CF
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
PF = 1 (PE - Parity Even) khi s bit 1 trong kt qu php ton (hay cc php vn
chuyn d liu) l chn, PF = 0 (PO - Parity Old) trong trng hp ngc li.
C iu khin
23
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
24
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
25
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
khin.
Cng 1 tp lnh
AD7 - AD0
A15 - A8
A19/S6-A16/S3
26
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
RD
READY
INTR
TEST
NMI
RESET
27
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Vcc
GND
MN/
!
IO/ "
$
ALE
[I] Address Latch Enable. Xung cho php cht a ch. Khi ALE
= 1 c ngha l trn cc chn ghp knh AD c a ch ca thit
b vo/ra hoc nh. Khi CPU chp nhn treo chn ny khng
trng thi tr khng cao m ALE = 0.
DT/
HOLD
[I] Tn hiu yu cu treo CPU mch ngoi thc hin vic trao
i d liu vi b nh bng cch truy nhp trc tip. Khi HOLD
= 1, CPU dng thc hin chng trnh t cc bus a ch, bus
d liu v bus iu khin trng thi tr khng cao. HOLD = 0
th CPU li thc hin chng trnh bnh thng.
HLDA
28
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
0
0
0
0
0
1
c m lnh
c b nh
0
0
1
1
0
1
Ghi b nh
Bus ri (ngh)
1
1
0
0
0
1
1
1
1
1
0
1
Ch MAX
Trong ch MAX mt s tn hiu iu khin cn thit c to ra trn c s cc tn
hiu trng thi nh dng thm bn ngoi mt mch iu khin bus 8288. Ch MAX
c s dng khi trong h thng c mt b ng x l ton hc 8087.
[O] Status bits. Cc chn ny c dng ghp ni vi mch
iu khin bus 8288. 8288 s dng cc tn hiu ny to ra cc
tn hiu iu khin trong chu k bus.
Chu k iu khin bus
IO/ " DT/
0
0
S2 ,
S1,
S0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
c thit b ngoi vi
Ghi thit b ngoi vi
Dng
c m lnh
c b nh
Ghi b nh
Bus ri (ngh)
, RQ/&0
RQ/&1
'#()
QS1, QS0
29
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
0
1
c byte tip theo t hng i lnh
Trong b h vi x vi s c mt ca b ng x l ton hc
8087, cc tn hiu QS1 v QS0 c 8087 s dng ng b
qu trnh hot ng ca n vi 8088.
2.2 Ch a ch
2.2.1 M ho lnh trong vi x l 8086/8088
Mi lnh trong vi x l 8086/8088 l mt t nh phn c kch thc t 1 n 6
byte tu thuc vo lnh c th. Tuy nhin tt c cc lnh u c cu trc chung nh
Hnh 2-4.
Byte 1
1
0 0 0 1
Opcode
Byte 2
0
D W MOD
REG
R/M
Byte 3
Byte 4
DispL
DispH
Hoc
a ch trc tip
phn thp
a ch trc tip
phn cao
M
000
011
001
010
100
111
101
110
Thanh ghi on
CS
01
DS
11
ES
00
SS
10
Bi ging
Vi x l - Vi iu khin
MOD
Chng 2
Vi x l Intel 8086/8088
00
R/M
01
10
11
W=0
W=1
000
[BX+SI]
[BX+SI]+d8
[BX+SI]+d16
AL
AX
001
[BX+DI]
[BX+DI]+d8
[BX+DI]+d16
CL
CX
010
[BP+SI]
[BP+SI]+d8
[BP+SI]+d16
DL
DX
011
[BP+DI]
[BP+DI]+d8
[BP+DI]+d16
BL
BX
100
[SI]
[SI]+d8
[SI]+d16
AH
SP
101
[DI]
[DI]+d8
[DI]+d16
CH
BP
110
[BP]+d8
[BP]+d16
DH
SI
111
[BX]
[BX]+d8
[BX]+d16
BH
DI
V d 1: MOV
CL, [BX]
Byte 1
0 0 0 1
Byte 2
0 1
Opcode
0 0 0 0 0 1 1 1 1
D W MOD
REG
R/M
AH, 2Ah
Byte 1
1
0 0 0 1
Opcode
Byte 2
0 1
0 0 0 1
D W MOD
Byte 3
0 0 1 1
REG
0 0 0 1
R/M
0 1
0 1
2Ah
CX, [BX][SI]+DATA
31
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Byte 1
1
0 0 0 1
Byte 2
0 1 1 1
0 0 0 1
D W MOD
Opcode
Byte 3
Byte 4
0 0 0 1 1 1 1 1 1 1 1
REG
R/M
0 0 0 0 1
FFh
0 1 1
0Bh
Byte 2
10001000
88h
Byte 3
11111111
FFh
Byte 4
00001011
0Bh
2.2.2 Cc ch a ch
Ch a ch (addressing mode) l cch CPU tm thy ton hng cho cc
lnh ca n khi hot ng. Mt b vi x l c th c nhiu ch a ch. Cc ch
a ch ny c xc nh ngay t khi ch to v khng th thay i c. B vi
x l 8086/8088 c 9 ch a ch sau:
-
Ch a ch thanh ghi.
Ch a ch tc th.
Ch a ch trc tip.
Ch a ch khc.
CH A CH THANH GHI
CH A CH TC TH
32
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
CH A CH TRC TIP
Trong ch a ch ny mt ton hng cha a ch lch ca nh dng cha
d liu, cn ton hng kia c th l thanh ghi m khng c l nh.
V d:
MOV
MOV
CH A CH TNG I C S
Trong ch a ch ny cc thanh ghi c s nh BX v BP v cc hng
s biu din cc gi tr dch chuyn c dng tnh a ch hiu dng ca
ton hng trong cc vng nh DS v SS. V d:
MOV CX, [BX]+10
;copy noi dung hai o nho
;co dia chi DS:BX+10 va DS:BX+11
;vao CX
MOV CX, [BX+10]
;cach viet khac cua lenh
MOV CX, 10+[BX]
;cach viet khac cua lenh
MOV AL, [BP]+5 ;chuyen noi dung o nho co dia
;SS:BP+5 vao AL
ng.
lien tiep
tren
tren
chi
33
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
CH A CH TNG I CH S
Trong ch a ch ny cc thanh ghi ch s nh SI v DI v cc hng s biu
din cc gi tr dch chuyn c dng tnh a ch hiu dng ca ton hng
trong cc vng nh DS. V d
MOV
CX, [SI]+10
;copy noi dung hai o nho lien tiep
;co dia chi DS:SI+10 va DS:SI+11 vao CX
MOV CX, [SI +10]
;cach viet khac cua lenh tren
MOV CX, 10+[SI]
;cach viet khac cua lenh tren
MOV AL, [DI]+5 ;chuyen noi dung o nho co dia chi
;DS:DI+5 vao AL
CH A CH TNG I CH S C S
Kt hp hai ch a ch ch s v c s ta c ch a ch ch s c s.
Trong ch ny ta dng c hai thanh ghi c s ln thanh ghi ch s tnh a ch
ca ton hng. Nu ta dng thm c thnh phn biu din s dch chuyn ca a
ch th ta c ch a ch tng hp nht: Ch a ch tng i ch s c s.
V d:
MOV
BX, [BX]+[SI]+10 ;chuyen noi dung hai o nho
;lien tiep co dia chi DS:BX+SI+10 va DS:BX+SI+11 vao CX
MOV AL, [BP+DI+5]
;copy ni dung th: DS:BP+DI+5 vao AL
Ton hng
Thanh ghi
Reg
Tc th
Data
Trc tip
[offset]
DS
[BX]
[SI]
[DI]
DS
DS
DS
Tng i c s
[BX]+Disp
[BP]+Disp
DS
SS
[DI]+Disp
DS
[SI]+Disp
DS
[BX]+[DI]+Disp
[BX]+[SI]+Disp
[BP]+[DI]+Disp
[BP]+[SI]+Disp
DS
DS
SS
SS
Tng i ch s
Tng i ch s c s
Bng 2-2. Cc ch a ch
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
CH A CH CNG (PORT)
Trong h vi x l 80x86 ca Intel c khng gian a ch cho b nh v cng
vo/ra l tch bit nhau. Khng gian a ch cng c th ln n 65536 cng (64Kports).
a ch ca mt cng c th c xc nh bi mt hng gi tr kiu byte
(phm vi = 0..255)
V d:
IN
AL, 40h
;c cng sao chp ni dung ti
;cng c a ch 40h v thanh ghi AL
OUT 80h, AL
;Ghi cng gi d liu trong thanh
;ghi AL ti cng c a ch 80h
35
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
ch, Ngun
M t: chNgun
Trong ton hng ch v Ngun c th tm c theo cc ch a ch
khc nhau, nhng phi c cng di v khng c php ng thi l hai nh
hoc hai thanh ghi on.
Cc c b thay i: khng.
V d:
MOV
AL, AH
;ALAH
MOV
CX, 50
;CX50
MOV
DL, [SI]
;DL{DS:SI}
Port, Acc
M t: Acc{Port}
Trong port l a ch ca cng cn a d liu ra, c kch thc 1byte v
c quy nh trc trong vng gi tr t 00...FFH. Nh vy c th c cc kh nng
sau y.
-
C mt cch khc cha a ch cng l thng qua thanh ghi DX. Khi dng
thanh ghi DX cha a ch cng ta c kh nng a ch ho cng mm do hn.
Lc ny a ch cng nm trong di 0000H FFFFH v vit lnh theo dng:
OUT DX, Acc
Cc c b thay i: khng.
V d:
OUT
MOV
MOV
36
45H, AL
;dua du lieu tu AL ra cong 45H
DX, 0 ;xoa DX
DX, 00FFH ;nap dia chi cong vao DX
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
Bi ging
Vi x l - Vi iu khin
OUT
DX, AX
Chng 2
Vi x l Intel 8086/8088
ch
M t:
ch{SP}
SPSP+2 (do cch t chc ca stack, y ngn xp li vng nh
cao, nh ngn xp vng nh thp)
Ton hng ch ch c th l cc thanh ghi a nng, thanh ghi on (nhng
khng c l thanh ghi on m CS) hoc nh.
Cc c b thay i: khng.
V d:
POP DX ;lay 2 byte tu dinh ngan xep dua vao DX
5. PUSH Ct 1 t vo ngn xp
Dng lnh: PUSH
Ngun
M t:
SPSP-2
Ngun{SP}
Ton hng ch c th l cc thanh ghi a nng, thanh ghi on(k c CS)
hoc nh.
Cc c b thay i: khng.
V d:
PUSH
BX
;cat BX vao ngan xep tai vi tri do SP chi ra
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
37
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
M t:
ch ch + Ngun + CF
AL, 74H
;ALAL+74+CF
ADC
CL, BL
;CLCL+BL+CF
ADC
DL, [SI]
;DLDL+(DS:SI)+CF
DX, CX
AX, 400
;DXDX+CX
;AXAX+400
DEC ch
BX, 1200H
BX
Ngun
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Dng lnh:
INC
M t:
ch ch + 1
AL
BX
Ngun
Thc hin php nhn khng du vi ton hng Ngun ( nh hoc thanh
ghi) vi thanh ghi tng.
-
CX
;AXxCX DXAX
MUL
BL
;ALxBL AX
NEG ch
M t:
ch0-ch
AL
;AL0-(AL)
39
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Dng lnh:
M t:
chch - Ngun
AL, 78H
;ALAL-78H
SUB
BL, CL
;BLBL-CL
SUB
DL, [SI]
;DLDL-{DS:SI}
M t:
ch ch ^ Ngun
Thc hin php v logic hai ton hng v lu kt qu vo ton hng ch.
Ngi ta thng s dng che i/gi li mt vi bit no ca mt ton hng
bng cch nhn logic ton hng vi ton hng tc th c cc bit 0/1 cc v
tr cn che i/gi li tng ng.
Cc c b thay i: CF, OF, PF, SF, ZF.
V d:
AND
AND
DX, CX
AL, 0FH
AL, 02H
AL
;AL=(0000 0010)B
;AL=(1111 1101)B
Dng lnh:
OR
M t:
ch = ch Ngun
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
V d:
OR
OR
AX, BX
CL, 30H
Dng lnh:
M t:
CF
MSB
LSB
Lnh ny quay ton hng sang tri thng qua c CF, CL phi c
cha sn s ln quay. Trong trng hp quay 1 ln c th vit RCL ch, 1
Nu s ln quay l 9 th ton hng khng i v cp CF v ton hng
quay ng mt vng (nu ton hng ch l 8 bit).
Sau lnh RCL c CF mang gi tr c ca MSB, cn c OF1 nu sau
khi quay 1 ln m bit MSB b thay i so vi trc khi quay, c OF s khng
c xc nh sau nhiu ln quay.
Cc c b thay i: CF, OF, SF, ZF, PF. V d:
MOV
RCL
AL = 01011110, CF = 0.
Dng lnh:
M t:
CF
MSB
LSB
Lnh ny quay ton hng sang phi thng qua c CF, CL phi c
cha sn s ln quay. Trong trng hp quay 1 ln c th vit RCR ch, 1
Nu s ln quay l 9 th ton hng khng i v cp CF v ton hng
quay ng mt vng (nu ton hng ch l 8 bit).
Sau lnh RCR c CF mang gi tr c ca LSB, cn c OF1 nu sau khi
quay 1 ln m bit MSB b thay i so vi trc khi quay, c OF s khng c
xc nh sau nhiu ln quay.
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
41
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
AL = 11000010, CF = 1.
Dng lnh:
M t:
CF
LSB
MSB
Lnh ny dng quay vng ton hng sang tri, MSB c a sang c
CF v LSB. CL phi cha sn s ln quay mong mun. Trong trng hp quay
1 ln c th vit ROL ch, 1. Nu s ln quay l 8 (CL=8) th ton hng khng
i v ton hng quay ng mt vng (nu ton hng ch l 8 bit), cn nu
CL=4 th 4 bit cao i ch cho 4 bit thp.
Sau lnh ROL c CF mang gi tr c ca MSB, cn c OF1 nu sau
khi quay 1 ln m bit MSB b thay i so vi trc khi quay, c OF s khng
c xc nh sau nhiu ln quay. Lnh ny thng dng to c CF t gi tr
ca MSB lm iu kin cho lnh nhy c iu kin.
Cc c b thay i: CF, OF, SF, ZF, PF.
V d:
MOV
ROL
AL = 11001100, CF = 1
ROR ch, CL
M t:
MSB
LSB
CF
Lnh ny dng quay vng ton hng sang phi, LSB c a sang c
CF v MSB. CL phi cha sn s ln quay mong mun. Trong trng hp quay
1 ln c th vit ROR ch, 1. Nu s ln quay l 8 (CL=8) th ton hng khng
42
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
AL = 11001100, CF = 0
ch, CL
SHL
ch, CL
M t:
CF
LSB
MSB
Hai lnh ny c tc dng dch tri s hc ton hng (cn gi l dch tri
logic). Mi ln dch MSB c a vo CF cn 0 c a vo LSB. CL phi
cha sn s ln quay mong mun. Trong trng hp quay 1 ln c th vit SAL
ch, 1
Sau lnh SAL hoc SHL c CF mang gi tr c ca MSB, cn c OF1
nu sau khi quay 1 ln m bit MSB b thay i so vi trc khi quay, c OF s
khng c xc nh sau nhiu ln quay. Lnh ny thng dng to c CF t
gi tr ca MSB lm iu kin cho lnh nhy c iu kin.
Cc c b thay i: SF, ZF, CF, OF, PF.
V d:
MOV
SAL
AL = 00110000, CF = 1
SHR ch, CL
M t:
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
43
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
CF
LSB
MSB
AL = 00110011, CF = 0
M t:
chchNgun.
Lnh XOR thc hin logic XOR (hoc o) gia hai ton hng v kt qu
c lu vo trong ch, mt bit kt qu c t bng 1 nu nu cc bit tng ng
hai ton hng l i nhau. Nu ton hng ch trng ton hng Ngun th kt qu
bng 0, do lnh ny cn c dng xo thanh ghi v 0 km theo cc c CF v
OF cng b xo.
Cc c b thay i: CF, OF, PF, SF, ZF.
V d:
XOR
XOR
MOV
MOV
XOR
AX,
BX,
AX,
BX,
AX,
AX
BX
5857H
58A8H
BX
AX=5857H
AX=00FFH
BX=58A8H
BX=58A8H
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
CMP tr ton hng ch cho ton hng Ngun, chng c th l cc byte hoc
cc t, nhng khng lu tr kt qu. Cc ton hng khng b thay i. Kt qu ca
lnh ny dng cp nht cc c v c th c dng lm iu kin cho cc lnh
nhy c iu kin tip theo.
Cc c b thay i: AF, CF, OF, PF, SF, ZF.
Cc c chnh theo quan h ch v Ngun khi so snh hai s khng du.
So snh
CF
ZF
ch = Ngun
ch > Ngun
ch < Ngun
NHAN
M t: IPIP+dch chuyn
Hai lnh trn biu din cng mt thao tc nhy c iu kin ti NHAN
nu CF + ZF = 0. Quan h cao hn/thp l quan h dnh cho vic so snh (do
lnh CMP thc hin) ln hai s khng du. NHAN phi nm cch xa mt
khong -128+127 byte so vi lnh tip theo sau lnh JA/JNBE. Chng trnh
s cn c vo v tr NHAN xc nh gi tr dch chuyn.
Cc c b thay i: khng.
V d:
CMP
JA
AX, 12ABH
THOI
NHAN
JNB
NHAN
JNC
NHAN
M t: IPIP+dch chuyn
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
45
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
AL, 10H
THOI
NHAN
JC
NHAN
JNAE
NHAN
M t: IPIP+dch chuyn
Ba lnh trn biu din cng mt thao tc nhy c iu kin ti NHAN nu
CF = 1. Quan h cao hn/thp l quan h dnh cho vic so snh (do lnh CMP thc
hin) ln hai s khng du. NHAN phi nm cch xa mt khong -128+127
byte so vi lnh tip theo sau lnh JB/JC/JNAE. Chng trnh s cn c vo v tr
NHAN xc nh gi tr dch chuyn.
Cc c b thay i: khng.
V d:
CMP
JB
AL, 10H
THOI
NHAN
JNA NHAN
M t: IPIP+dch chuyn
Hai lnh trn biu din cng mt thao tc nhy c iu kin ti NHAN nu
CF +ZF = 1. Quan h cao hn/thp l quan h dnh cho vic so snh (do
lnh CMP thc hin) ln hai s khng du. NHAN phi nm cch xa mt
khong -128+127 byte so vi lnh tip theo sau lnh JBE/JNA. Chng trnh s
cn c vo v tr NHAN xc nh gi tr dch chuyn.
Cc c b thay i: khng. V d:
46
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
AL, 10H
THOI
NHAN
SHORT NHAN
47
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
IPIP+dch chuyn
y l lnh nhy trc tip v dch chuyn trc tip trong m lnh.
nh hng cho chng trnh dch lm vic nn vit lnh di dng:
JMP
NEAR NHAN
BX
NEAR PTR BX
JMP
[BX]
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
AL, 10H
THOI
LOOP NHAN
AL, 0 ;xoa AL
CX, 10
;nap so lan lap vao CX
INC AL
;tang AL len 1
LAP
;lap lai 10 lan, AL=10
33. LOOPE/LOOPZ Loop while CX=0 or ZF=0 (lp li on chng trnh cho
n khi CX=0 hoc ZF=0).
Dng lnh:
LOOPE NHAN
LOOPZ NHAN
M t: Lnh ny dng lp li on chng trnh (gm cc lnh nm trong
khong t NHAN n ht lnh LOOPE NHAN hoc LOOPZ NHAN) cho n khi
s ln lp CX=0 hoc c ZF=0. iu ny c ngha l trc khi vo vng lp ta phi
a s ln lp mong mun vo CX, v sau mi ln lp th CX t ng gim i 1.
NHAN phi nm cch xa (dch i mt khong) ti a -128 byte so vi
lnh tip theo sau lnh LOOPE/LOOPZ.
Cc c b thay i: khng.
V d:
MOV
MOV
LAP:
COMP
AL, AH
CX, 50
INC AL
AL, 16
;AL=AH
;nap so lan lap vao CX
;tang AL
;so sanh AL voi 16
49
Bi ging
Vi x l - Vi iu khin
LOOPE LAP
Chng 2
Vi x l Intel 8086/8088
;AL=AH
;nap so lan lap vao CX
;tang AL
;so sanh AL voi 16
;lap lai cho den khi AL=16 hoac CX=0
CALL Th_tc
50
Nu gi xa: Lu vo Stack gi tr IP v CS ca a ch tr v v cc
thao tc khi gi ctc din ra nh sau:
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
INT
(N=0FFH)
INT
To a ch mi ca Stack, ct a ch on ca a ch tr v vo Stack:
SPSP-2, SPCS.
{SP}IP, SPSP+2
{SP}CS, SPSP+2
{SP}FR, SPSP+2
Cc c b thay i: tt c cc c (c phc hi nh trc khi din ra ngt).
51
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
(N l s nguyn dng)
STC
M t:
CF1
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Bc 2: Vit m ngun
Bc 3: dch v g ri (bm F5)
Bc 4: to file t chy: assembler \ Compile
53
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
54
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Cu trc ca mt lnh hp ng
Tn chng trnh
Kiu kch thc b nh ; Khai bo quy m s dng b nh
Kch thc
; Khai bo dung lng on stack
55
Bi ging
Vi x l - Vi iu khin
.DATA
msg DB 'Hello$'
.CODE
CALL Subname
main ENDP
Subname PROC
RET
Subname ENDP
END main
Chng 2
Vi x l Intel 8086/8088
; Khai bo on d liu
; Khai bo on m main PROC
; Gi chng trnh con
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Chng trnh c kt thc bng lnh END trong tn chng trnh pha sau
lnh END s xc nh l chng trnh chnh. Nu sau lnh END khng ch ra
chng trnh no c th s ly chng trnh con u on m lm chng trnh
chnh.
V d: Chng trnh sau in ra mn hnh dng ch Hello !
.model
.stack
.data
s
.code
small
100h
DB
Hello !$ ; khai bo xu k t cn in
mov AX,@data
; ly a ch data segment ghi vo DS
mov DS,AX
; V model small, y cng l a ch
; segment ca xu s. ; xut chui:
mov DX, OFFSET s
; ly a ch offset ghi vo DX
mov AH , 9
int 21h
; gi hm 9, ngt 21h in
mov AH, 4Ch
; Thot khi chng trnh
int 21h
end
Lu :
- Mi chng trnh u phi c on CODE thot khi chng trnh, nu
khng chng trnh s khng dng khi ht chng trnh ca mnh.
2.4.3.3
57
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Khai bo d liu
58
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Khi khai bo d liu trong chng trnh, nu s dng s nh phn, ta phi dng
thm ch B cui, nu s dng s thp lc phn th phi dng ch H cui. Ch
rng i vi s thp lc phn, nu bt u bng ch A..F th phi thm vo s 0
pha trc.
V d:
1011b ; S nh phn
1011 ; S thp phn
1011d ; S thp phn
1011h ; S thp lc phn
59
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Hng s:
Khai bo hng s trong chng trnh hp ng bng lnh EQU.
V d:
A1
A2
EQU
EQU
02, 11
19, 81
Ton t trong hp ng
Ton t s hc
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
A DW 100 DUP(?)
B DD ?
61
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
RET
TN ENDP
V d trn gi chng trnh con ta, thc hin lnh MOV BX, 5 , v tr v sau
lnh gi n MOV AX, 2
C vi cch truyn tham s cho chng trnh con, cch n gin nht l s dng
cc thanh ghi, di y l mt v d khc v cch gi chng trnh con v cch
truyn tham s cho n qua thanh ghi AL v BL, nhn hai tham s vi nhau v tr
kt qu v trong thanh ghi AX:
ORG
MOV
MOV
RET
m2
m2
END
100h
AL, 1
BL, 2
CALL
m2
CALL
m2
CALL
m2
CALL
m2
; Tr v HH
PROC
MUL
BL
RET
ENDP
; AX = AL * BL.
; Tr v sau im gi n.
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
ORG
100h
LEA
SI, tbao_tw ; Ly a ch ca msg vo SI.
CALL
In_Xau
RET
; tr v h iu hnh.
;=================================================
; Chng trnh ny in 1 xu, xu phi kt thc
; bng k t null (phi c 0 cui xu)
; a ch ca xu phi c t trong thanh ghi SI:
In_Xau
PROC
next_char:
CMP b.[SI], 0
; kim tra nu = 0 th dng
JE
stop
;
MOV AL, [SI]
; ly k t tip theo.
MOV AH, 0Eh
; s hiu in k t.
INT 10h
; s dng ngt in k t trong AL.
ADD SI, 1
; Tng con tr cn in ln 1.
JMP next_char
; tr li, in k t tip.
stop:
RET
; tr v sau im gi.
print_me
ENDP
; ===================================================
tbao_tw DB 'PICAT.dieukhien.net',0; xu kt thc: null.
END
MACRO
[tham s,...]
<Lnh>
ENDM
p1, p2, p3
63
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
MOV CX, p3
ENDM
ORG 100h
MyMacro 1, 2, 3
MyMacro 4, 5, DX
RET
AX,
BX,
CX,
AX,
BX,
CX,
0001h
0002h
0003h
0004h
0005h
DX
TA_Proc
64
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Lnh n
VD: Gn CL gi tr bit du ca AX
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
65
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Gi tr n: Cng vic n
END
66
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
JMP CONT
NEXT:
V d:
org
mov
mov
k1:
100h
bx, 0 ; total step counter.
cx, 5
add bx, 1
mov al, '1'
mov ah, 0eh
int 10h
push cx
mov cx, 5
k2: add bx, 1
mov al, '2'
mov ah, 0eh
int 10h
push cx
mov cx, 5
k3: add bx, 1
mov al, '3'
mov ah, 0eh
int 10h
loop k3
; internal in internal loop.
pop cx
loop k2
; internal loop.
pop cx
loop k1
; external loop.
Ret
67
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
68
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Ngt 21h:
AH
ngha
10 Nhp mt xu k t vo: DS:DX, Byte u tin l kch thc b m, Byte th 2 l
k t thc t nhp. Hm ny khng thm $ vo cui xu.
in c xu, cn thm k t $ vo cui, v bt u in t a ch DS:DX+2
V d:
org 100h
mov dx, offset buffer
mov ah, 0ah
int 21h
jmp print
buffer db 10,?, 10 dup(' ')
print:
xor bx, bx
mov bl, buffer[1]
mov buffer[bx+2], '$'
mov dx, offset buffer + 2
mov ah, 9
int 21h
ret
69
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
2.4.6 Cc v d
V d 1. Hello word n gin (COM file)
; Vit ra mn hnh dng ch "hello, world!"
; Su dung .com
name "hi"
org 100h
JMP start
; jump over string declaration
msg
db
"hello, world!", 0Dh,0Ah, 24h
start: lea
dx, msg ; load effective address of
;msg into dx.
MOV
ah, 09h ; print function is 9.
int
21h
; do it!
MOV
ah, 0
int
16h
; wait for any key any....
RET ; return to operating system.
70
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
V d 4. In mt s h 10 ra mn hnh:
name "Print Decimal function, tuananhvxl@gmail.com"
Enter Macro
mov ah,2
mov dl, 0ah ; new line.
int 21h
mov dl, 0dh ; carrige return.
int 21h
endm
org 100h ; directive make tiny com file.
; print result in decimal:
mov al, 123
call Print_dec8AL
Enter
mov al, 45
call Print_dec8AL
; wait for any key press:
mov ah, 0
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
71
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
int 16h
ret
Print_dec8AL proc
cmp al, 0
jne Print_dec8AL_r
push ax
mov dl, '0'
mov ah, 2
int 21h
pop ax
ret
Print_dec8AL_r:
pusha
mov ah, 0
cmp ax, 0
je pn_done
mov dl, 10
div dl
call Print_dec8AL_r
mov dl, ah
add dl, 30h
mov ah, 2h
int 21h
jmp pn_done
pn_done:
popa
ret
endp
V d 5. In xu ra mn hnh:
name "Print_String"
Print_String macro str
mov dx, offset str
mov ah, 9
int 21h
endm
org 100h
Print_String Thongbao1
Print_String Thongbao2
ret
Thongbao1 db "Xin chao", 0Dh,0Ah, "$"
Thongbao2 db "Cac ban", 0Dh,0Ah, "$"
72
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Number [tuananhktmt@gmail.com]"
ah,2
dl, 0ah ; new line.
21h
dl, 0dh ; carrige return.
21h
100h
; Nhap - start:
mov dx, offset msg
mov ah, 9
int 21h
;-----------------------------------xor cl,cl
wait_for_key: ; Cho` bam phim:
mov ah, 1
int 21h
cmp al,0Dh;| Bam ENTER thi ket thuc:
jz exit ;|
; Tinh CL=CL*10+AL
sub al,'0'
push ax
xor ah,ah
mov al,cl ;|
mov dl,10 ;| CL=CL*10
mul dl
;|
mov cl,al ;|
pop ax
add cl,al ; CL=CL+AL (0..9)
jmp wait_for_key
exit:
mov AX,0
mov DL,2
mov AL, CL
Mul DL
Enter
call Print_dec8AL
mov
int
ah, 0
16h
73
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
ret
;----------------------Print_dec8AL proc
cmp al, 0
jne Print_dec8AL_r
push ax
mov al, '0'
mov ah, 0eh
int 10h
pop ax
ret
Print_dec8AL_r:
pusha
mov ah, 0
cmp ax, 0
je pn_done
mov dl, 10
div dl
call Print_dec8AL_r
mov al, ah
add al, 30h
mov ah, 0eh
int 10h
jmp pn_done
pn_done:
popa
ret
endp
;----------------------------------------------msg db "Moi ngai nhap vao 1 so 8 bit:", 0Dh,0Ah
db "N=$"
end
74
array"
1, 2, 5, 6
3, 5, 6, 1
?, ?, ?, ?
vec1
vec2
vec3
[si]
[bx]
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
mov [di], al
inc si
inc bx
inc di
loop sum
ret
75
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
MOV AH,09h
INT 21h
MOV AH,4Ch
INT 21h
main ENDP
END main
76
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Gii m a ch
Dng 74LS138
nh thi b nh
Thi gian truy xut (access time):
- Vi chu k c: thi gian truy xut l thi gian tnh t lc a ch mi xut
hin b nh cho n khi c d liu ng ng ra ca b nh.
- Vi chu k ghi: thi gian truy xut l thi gian tnh t lc a ch mi xut
hin b nh cho n khi d liu a vo b nh.
Thi gian chu k (cycle time): l thi gian t lc bt u chu k b nh
n khi bt u chu k k tip. Ngoi ra, P c th s dng thm mt s trng
thi ch khi c b nh.
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
77
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
nh thi c b nh:
Thi gian truy xut tng cng ca h thng b nh chnh l tng thi gian
tr trong cc b m v thi gian truy xut (access time) b nh.
Hiu gia thi gian truy xut cn thit bi P vi thi gian truy xut tht s
ca b nh gi l bin nh thi (timing margin).
tDS (Data Setup): thi gian thit lp d liu cung cp bi h thng b nh
tDH (Data Hold): thi gian gi d liu cung cp bi h thng b nh
78
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
79
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
Vic gii m a ch cho thit b ngoi vi cng tng t vi vic gii m a ch cho
b nh. Thng thng, cc cng c a ch 8 bit A0 A7. Tuy nhin, trong mt s
h vi x l, cc cng s c a ch 16 bit.
Ta c th dng mch NAND to tn hiu chn cng nhng mch ny ch c th
gii m cho 1 cng. Trong trng hp cn nhiu tn hiu chn cng, ta c th dng
b gii m 74LS138 gii m cho 8 cng khc nhau.
L
L
H
Function
DIR A bus
B bus
L Out ut Input
H
Input
Output
X
High Impedance
Outputs
A=B
B=A
Z
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
tn hiu cho php vi mch hot ng, khi /G mc cao, cc chn d liu ca vi
mch trng thai tr khng cao.
Tn hiu DIR xc nh chiu truyn d iu. DIR = 1 d liu c truyn t A
sang B, ngc li, khi DIR = 0 d liu c truyn t B sang A
Vi mch cht 74LS373:
2.6 Cu hi v bi tp
Bi 1. Vit CT nhp vo 1 k t, xut ra k t
V d:
Moi ban nhap 1 ky tu: b
Ky tu va nhp: b
Bi 2. Vit chng trnh xut ra mn hnh mt s dng.
V d:
De chay duoc 1 CT hop ngu ban can thuc hien cac buoc sau:
Dich file ASM thanh file OBJ
Lien ket file OBJ thanh file EXE
Chay file EXE
Bi 3. Vit CT nhp vo 1 k t, xut ra k t lin trc v lin sau.
V d:
Moi ban nhap 1 ky tu: b
Ky tu lien truoc: a
Ky tu lien sau: c
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
81
Bi ging
Vi x l - Vi iu khin
Chng 2
Vi x l Intel 8086/8088
82
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
CHNG 3.
H VI IU KHIN 8051
Mc tiu:
Gip sinh vin hiu c cu trc phn cng, s chn v cc mch ph tr
ca h vi iu khin 8051; nm c v bit cch vn dng cc ch a ch trong
lp trnh; nm c tp lnh v phng php lp trnh cho h vi iu khin 8051.
Tm tt hc phn:
Cu trc phn cng v t chc b nh
Gii thiu chung
S cu trc
M t chc nng cc chn
Hot ng Reset
T chc b nh
Cc ch nh a ch
Tp lnh
Lp trnh hp ng (Assembly) cho vi iu khin 8051
Trnh dch hp ng
Cng vo/ra v lp trnh
B m/nh thi v lp trnh
Lp trnh ngt
83
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
85
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
86
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
87
Bi ging
Chng 3
Vi x l - Vi iu khin
-
H Vi iu khin 8051
88
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
89
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
91
Bi ging
Vi x l - Vi iu khin
Chng 3
H Vi iu khin 8051
92
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Hnh 3-8. S chn VK AT89C51
93
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Hnh 3-9. Cng vo/ra
Chn ra
Mt mc logic 0 t vo bit ca thanh ghi P lm cho transistor m, ni chn
tng ng vi t.
Chn vo
94
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Chc nng I/O (xut/nhp): dng cho cc thit k nh. Tuy nhin, khi
Chc nng I/O. Khi dng lm ng vo, Port 3 phi c set mc logic 1
trc .
Chc nng khc: m t nh sau:
95
Bi ging
Chng 3
Vi x l - Vi iu khin
Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
Tn
RxD
TxD
INT0
INT1
T0
T1
WR
RD
H Vi iu khin 8051
Chc nng
Ng vo port ni tip
Ng ra port ni tip
Ngt ngoi 0
Ngt ngoi 1
Ng vo ca b nh thi 0
Ng vo ca b nh thi 1
Tn hiu iu khin ghi d liu ln b nh ngoi.
Tn hiu iu khin c t b nh d liu ngoi.
Bng 3-1. Chc nng cc chn ca Port 3
Cc chn ngun:
Chn 40: VCC = 5V 20%
Chn 20: GND
/PSEN (Program Store Enable):
/PSEN (chn 29) cho php c b nh chng trnh m rng i vi cc ng
dng s dng ROM ngoi, thng c ni n chn /OC (Output Control)
ca ROM c cc byte m lnh. /PSEN s mc logic 0 trong thi gian
AT89C51 ly lnh.Trong qu trnh ny, / PSEN s tch cc 2 ln trong 1 chu k
my.
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Ngoi ra, chn /EA c ly lm chn cp ngun 12V khi lp trnh cho ROM.
RST (Reset):
RST (chn 9) cho php reset AT89C51 khi ng vo tn hiu a ln mc 1
trong t nht l 2 chu k my.
X1, X2:
Ng vo v ng ra b dao ng, khi s dng c th ch cn kt ni thm
thch anh v cc t nh hnh v trong s . Tn s thch anh thng
s dng cho AT89C51 l 12Mhz.
Gi tr C1, C2 = 30 pF 10 pF
Hnh 3-13 S kt ni thch anh
B nh ngoi
B nh chng trnh 64 KB
0000h FFFFh
iu khin bng PSEN
B nh d liu 64 KB
0000h FFFFh
iu khin bng RD v WR
SFR
80h 0FFh
97
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
RAM cao (a ch t 80h 0FFh) khng th truy xut trc tip m ch c th truy
xut gin tip (xem thm trong phn tp lnh).
B nh ngoi bao gm b nh chng trnh (iu khin c bng tn hiu
PSEN ) v b nh d liu (iu khin bng tn hiu RD hay WR cho php
c hay ghi d liu). Do s ng a ch ca MCS-51 l 16 bit (Port 0 cha 8 bit
thp v Port 2 cha 8 bit cao) nn b nh ngoi c th gii m ti a l 64KB.
3.2.5.1 T chc b nh trong
B nh trong ca MCS-51 gm ROM v RAM. RAM bao gm nhiu vng c
mc ch khc nhau: vng RAM a dng (a ch byte t 30h 7Fh v c thm
vng 80h 0FFh ng vi 8052), vng c th a ch ha tng bit (a ch byte
t 20h 2Fh, gm 128 bit c nh a ch bit t 00h 7Fh), cc bank thanh
ghi (t 00h 1Fh) v cc thanh ghi chc nng c bit (t 80h 0FFh).
Cc thanh ghi chc nng c bit (SFR Special Function
Registers):
a
ch
byte
F8h
F0h
C th
nh a
ch bit
Khng nh a
ch bit
E8h
E0h
ACC
D8h
D0h
PSW
C8h
(T2CON)
C0h
B8h
IP
B0h
P3
A8h
IE
A0h
P2
98h
SCON
90h
P1
88h
80h
SADEN
SADDR
SBUF
BRL
BDRCON
TCON
TMOD
TL0
TH0
P0
SP
DPL
DPH
TL1
TH1
AUXR CKCON
PCON
98
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
u t 80h (ng vi P0.0) n 87h (ng vi P0.7). Chc nng cc thanh ghi ny
s m t trong phn sau.
RAM ni:
chia thnh cc vng phn bit: vng RAM a dng (30h 7Fh), vng RAM
c th nh a ch bit (20h 2Fh) v cc bank thanh ghi (00h 1Fh).
a ch byte
a ch bit
Chc nng
7F
Vng RAM a dng
30
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
18
7F
77
6F
67
5F
57
4F
47
3F
37
2F
27
1F
17
0F
07
7E
76
6E
66
5E
56
4E
46
3E
36
2E
26
1E
16
0E
06
7D
75
6D
65
5D
55
4D
45
3D
35
2D
25
1D
15
0D
05
7C
74
6C
64
5C
54
4C
44
3C
34
2C
24
1C
14
0C
04
7A
72
6A
62
5A
52
4A
42
3A
32
2A
22
1A
12
0A
02
79
71
69
61
59
51
49
41
39
31
29
21
19
11
09
01
78
70
68
60
58
50
48
40
38
30
28
20
18
10
08
00
Vng c th nh a ch bit
Bank 3
17
10
1F
08
07
00
7B
73
6B
63
5B
53
4B
43
3B
33
2B
23
1B
13
0B
03
Bank 2
Bank 1
Bank thanh ghi 0 ( mc nh cho R0-R7)
RAM a dng:
RAM a dng c 80 byte t a ch 30h 7Fh c th truy xut mi ln 8 bit
bng cch dng ch a ch trc tip hay gin tip.
Cc vng a ch thp t 00h 2Fh cng c th s dng cho mc ich nh trn
ngoi cc chc nng cp nh phn sau.
RAM c th nh a ch bit:
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
99
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
100
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
101
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
B nh d liu ngoi:
B nh d liu ngoi c truy xut bng lnh MOVX thng qua cc thanh ghi
xc nh a ch DPTR (16 bit) hay R0, R1 (8 bit).
Qu trnh thc hin c hay ghi d liu c cho php bng tn hiu RD hay
WR (chn P3.7 v P3.6).
B nh chng trnh v d liu dng chung:
Trong cc ng dng pht trin phn mm xy dng da trn AT89C51, ROM s
c lp trnh nhiu ln nn d lm h hng ROM. Mt gii php t ra l s dng
RAM cha cc chng trnh tm thi. Khi , RAM va l b nh chng trnh
va l b nh d liu. Yu cu ny c th thc hin bng cch kt hp chn RD v
chn PSEN thng qua cng AND. Khi thc hin c m lnh, chn /PSEN tch
cc cho php c t RAM v khi c d liu, chn RD s tch cc.
Gii m a ch
Trong cc ng dng da trn AT89C51, ngoi giao tip b nh d liu, vi iu
khin cn thc hin giao tip vi cc thit b khc nh bn phm, led, ng c,
Cc thit b ny c th giao tip trc tip thng qua cc Port. Tuy nhin, khi s lng
cc thit b ln, cc Port s khng thc hin iu khin. Gii php a ra l
xem cc thit b ny ging nh b nh d liu. Khi , cn phi thc hin qu trnh
gii m a ch phn bit cc thit b ngoi vi khc nhau. Qu trnh gii m a ch
thng c thc hin thng qua cc IC gii m nh 74139 (2 -> 4), 74138 ( 3 -> 8),
74154 (4 -> 16). Ng ra ca cc IC gii m s c a ti chn chn chip ca RAM
hay b m khi iu khin ngoi vi.
3.2.6 Cc thanh ghi chc nng c bit (SFRs - Special Function Registers)
Thanh ghi tch lu (Accumulator)
Thanh ghi tch lu l thanh ghi s dng nhiu nht trong AT89C51, c
k hiu trong cu lnh l A. Ngoi ra, trong cc lnh x l bit, thanh ghi tch lu
c k hiu l ACC.
Thanh ghi tch lu c th truy xut trc tip thng qua a ch E0h (byte) hay
truy xut tng bit thng qua a ch bit t E0h n E7h.
VD: Cu lnh:
MOV
MOV
A,#1
0E0h,#1
cng tng t.
Thanh ghi B
Thanh ghi B dng cho cc php ton nhn, chia v c th dng nh mt
102
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
103
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
104
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
SMOD1 SMOD0
POF
GF1
GF0
PD
IDL
105
Bi ging
Vi x l - Vi iu khin
Chng 3
H Vi iu khin 8051
106
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Hnh 3-16 - Ghp ni RS232 vi 8051
A, # 25H
; Np gi tr 25H vo thanh ghi A
R4, #62
; Np gi tr 62 thp phn vo R4
DPTR, #4521H
; Np 4512H vo con tr d liu DPTR
107
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
A, R0
R2, A
c) a ch trc tip
B nh RAM c gn cc a ch t 00 n FFH v c phn chia nh sau:
1. Cc ngn nh t 00 n 1FH c gn cho cc bng thanh ghi v ngn xp.
2. Cc ngn nh t 20H n 2FH c dnh cho khng gian nh a ch theo bit
lu cc d liu 1 bit.
3. Cc ngn nh t 30H n 7FH l khng gian lu d liu c kch thc
1byte.
Ton hng l tn hoc a ch ca cc thanh ghi trong vng RAM thp (0-127)
v vng cha cc thanh ghi chc nng c bit SFR.
V d :
MOV
MOV
Cc ngn nh dnh cho bng ghi c truy cp bng thanh ghi theo cc tn
gi ca chng l R0 - R7. Nn cc thanh ghi c th c truy cp theo hai cch sau:
V d: Hai lnh sau u sao ni dung thanh ghi R4 vo A
MOV
MOV
A, 4
A, R4
d) a ch gin tip
Trong ch ny, mt thanh ghi c s dng nh mt con tr n d liu.
Ton hng c th nm trong c vng RAM thp v cao, hoc RAM ngoi, khng
dng cho vng SFR. a ch ca ton hng cha trong thanh ghi con tr (R0 hoc R1
vi RAM trong, DPTR i vi RAM ngoi). c im nhn ra ch ny l lun c
k t @ ng trc ton hng.
V d:
MOV
A, @ R0
e) a ch ch s
Ch nh a ch theo ch s c s dng rng ri trongvic truy cp cc
phn t d liu ca bng trong khng gian ROM/RAM chng trnh ca 8051 trong
di 64KB.
Lnh c dng cho mc ch ny l
MovC A, @ A + DPTR v
MovX A, @ A + DPTR.
108
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Cc lnh ton hc
Cc lnh logic
Trong :
-
VD:
-
RET (Kt thc chng trnh con) Lnh ny khng c ton hng
JZ TEMP
hng
-
K hiu
M t
A:
B:
Thanh ghi B.
109
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
K hiu
M t
Thanh ghi R0 hoc R1 ca bt k bng thanh ghi no trong 4 bng
Ri:
Rn:
Dptr:
Direct:
#data:
mt hng s 8 bit bt k.
#data16:
mt hng s 16 bit bt k
<rel>:
<addr11>:
<addr16>:
<bit>:
nh c a ch).
Bng 3-4. k hiu s dng m t lnh
Cc lnh ton hc
Cc k hiu dng trong vic m t tp lnh
Thc hin cc php tnh c bn nh +, -, *, /, Kt qu sau khi thc hin
lnh c lu vo ton hng u tin trong lnh
Cc lnh ton hc nh: ADD, ADDC, SUBB, INC, DEC, MUL, DA. V d1 :
MOV
MOV
A, # 0F5H
A, # 0BH
; A = F5H
; A = F5 + 0B = 00
A, #47H
B, #25H
A, B
A
;
;
;
;
Sau khi chng trnh c thc hin thanh ghi A s cha 72h (47 + 25 = 72).
110
Bi ging
Chng 3
Vi x l - Vi iu khin
V d 3:
MOV
MOV
MUL
H Vi iu khin 8051
A, #25H
B, 65H
AB
; Np vo A gi tr 25H
; Np vo B gi tr 65H
; 25H*65H = E99 vi B = 0EH v A = 99H
A, #35H
A, #0FH
; Gn A = 35H
; Thc hin php v A vi 0FH
Kt qu: A=05h
V d 2:
MOV
ORL
A, #04
A, #68H
; A = 04
; A = 6C
A, #54H
A, #78H
; A= 54H
; A=2CH
V d 3:
MOV
XRL
V d 4:
MOV
CPL
A, #55H
A
V d 5: cc lnh quay
RR:
MOV
RR
RR
RR
RR
RRC: MOV
RRC
A, #36H
A
A
A
A
A #26H
A
;
;
;
;
;
;
;
A
A
A
A
A
A
A
=
=
=
=
=
=
=
0011
0001
1000
1100
0110
0010
0001
0110
1011
1101
0110
0011
0110
0011
CY = 0
111
Bi ging
Chng 3
Vi x l - Vi iu khin
RRC
RCC
H Vi iu khin 8051
A
A
; A = 0000 1001
; A = 1000 0100
CY = 1
CY = 1
V d 6:
MOV
SWAP
A, #72H
A
; A = 72H
; A = 27H
M lnh
Ton hng
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
A,Rn
A,direct
A,@Ri
A,#data
Rn,A
Rn,direct
Rn,#data
Direct,A
Direct,Rn
Direct,direct
Direct,@Ri
Direct,#data
@Ri,A
@Ri,direct
@Ri,#data
16
MOV
Dptr,#data16
17
MOVC
A,@A+dptr
18
MOVC
A,@A+PC
19
MOVX
A,@Ri
112
M t
a gi tr 16bit vo thanh
ghi DPTR
c gi tr b nh chng trnh
ti a ch =
A + DPTR, ct kt qu
vo A
c gi tr b nh chng trnh
ti a ch =
A + PC, ct kt qu vo A
c vo A gi tr ca b nh
1
2
1
2
1
2
2
2
2
3
2
3
1
2
2
S
chu
k
1
1
1
1
1
2
1
1
2
2
2
2
1
1
1
S
byte
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
C php
STT
M lnh
20
MOVX
A,@dptr
21
MOVX
@dptr,A
22
MOVX
@dptr,A
23
PUSH
Direct
24
POP
Direct
25
26
27
XCH
XCH
XCH
A,Rn
A,direct
A,@Ri
28
M t
Ton hng
ngoi ti a ch = Ri
c vo A gi tr ca b nh
ngoi ti a ch = DPTR
Ghi gi tr ca A vo b nh
ngoi ti a ch = DPTR
Ghi gi tr ca A vo b nh
ngoi ti a ch =
DPTR
Ct ni dung ca bin trong
RAM vo nh ngn
xp
Ly byte nh ngn xp
cho vo bin trong RAM
Hon i gi tr ca A v gi tr
cn li
S
byte
1
2
1
1
1
1
XCHD
S
chu
k
Chc nng
SETB bit
CLR bit
CPL bit
JB bit, ch
Nhy v ch nu bit = 1
Lnh
chc nng
SETB C
CLR C
Xo bit nh CY = 0
CPL C
B bit nh
MOV b, C
MOV C, b
JNC ch
Nhy ti ch nu CY = 0
JC ch
Nhy ti ch nu CY = 1
113
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Lnh
Chc nng
ANL C. bit
ORL C. bit
06
;Xo a ch bit 06
07
; Xo a ch bit 07
P1.2, OVER ;Kim tra bit P1.2 nhy v OVER nu P1.2
06
; Nu P1.2 th thit lp v tr bit 06 =
P1.3, NEXT ;Kim tra bit P1.3 nhy v NEXT nu n =
07
;Nu P1.3 = 1th thit lp v tr bit 07
= 0
0
0
= 1
Lnh c cng
Trong vic c cng th mt s lnh c trng thi ca cc chn cng, cn mt
s lnh khc th c mt s trng thi ca cht cng trong. Do vy, khi c cc cng
th c hai kh nng:
1.
c trng thi ca cng vo.
MOV
JNB
JB
MOV
Lnh
A, PX
PX.Y, ...
PX.Y,
C, PX.Y
MOV
JNB
JB
MOV
V d
A, P2
P2.1, ch
P1.3, ch
C, P2.4
M t
Chuyn d liuj chn P2 vo ACC
Nhy ti ch nu, chn P2.1 = 0
Nhy ch nu, chn P1.3 = 1
Sao trng thi chn P2.4 vo CY
2.
Lnh
PX
PX
PX
PX.Y, ch
PX
PX
PX
PX.Y, ch
PX.Y, C
PX.Y
PX.Y
V d
ANL P1, A
ORL P2, A
XRL P0, A
JBC P1.1, ch
CPL P1.2
INC P1
DEC P2
DJN2 P1, ch
MOV P1.2, C
CLR P2.3
SETB P2.3
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
1. Nhy v iu kin
2. Nhy c iu kin:
Nhy v iu kin: Chuyn con tr chng trnh n v tr khc
Lnh
JZ
JNZ
DJNZ
CJNE A, byte
CJNE re, # data
JC
JNC
JB
JNB
JBC
Hot ng
Nhy nu A = 0
Nhy nu A 0
Gim v nhy nu A = 0
Nhy nu A byte
Nhy nu Byte data
Nhy nu CY = 1
Nhy nu CY = 0
Nhy nu bit = 1
Nhy nu bit = 0
Nhy nu bit = 1 v xo n
A, #0
R5, A
A #79H
N-1
R5
;
;
;
;
;
Xo thanh ghi A = 0
Xo R5
Cng 79H vo A (A = 0 + 79H = 79H)
Nu khng c nh cng k tip
Nu CY = 1, tng R5
N-1: ADD
A, #0F5H
JNC
INC
N-2: ADD
N-2
R5
A, #0E2H
JNC
INC
OVER:MOV
OVER
R5
R0, A
115
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Lnh
Mov
Ton hng
AH, 10h
Ch thch
; a gi tr 10h vo thanh ghi AH
Khai bo bin
Ten_bien
DB Gia_Tri_Khoi_Tao
DB l mt ch lnh d liu c s dng rng ri nht trong hp ng. N
c dng nh ngha d liu 8 bit. Khi DB c dng nh ngha byte
d liu th cc s c th dng thp phn, nh phn, Hex hoc dng thc
ASCII. i vi d liu thp phn th cn t ch D sau s thp phn, i
vi s nh phn th t ch B v i vi d liu dng Hex th cn t ch
H.
116
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Khi d liu c kch thc l 2byte s dng: DW khai bo bin kiu nguyn
V d
DATA1:
DATA2:
DATA3:
DATA4 DB
DB
2D
DB
00110101B
DB
39H
Ky thuat may tinh
;
;
;
;
S thp phn
S nh phn (35 dng Hex)
S dng Hex
Cc k t ASCII
Khai bo hng
Cc ton t
K hiu
+
*
/
MOD
SHR
SHL
NOT
AND
OR
XOR
LOW
HIGH
EQ, =
NE,<>
GT, >
GE, >=
LT, <
LE,<=
Thc hin
V d
Cng
Tr
Nhn
Chia nguyn
Chia ly d
Dch phi
Dch tri
o
And bit
Or bit
Xor
Ly byte thp
Ly byte cao
So snh bng
SS Khng bng
SS ln hn
SS nh hn hoc bng
SS nh hn
SS nh hn hoc bng
10+5
25-17
7*4
7/4
7 MOD 4
1000B SHR 2
1010B SHL 2
NOT 1
1101B AND 0101B
1101B OR 0101B
1101B XOR 0101B
LOW(0AADDH)
HIGH(0AADDH)
7 EQ 4 or 7=4
7 NE 4 or 7<>4
7 GT 4 or 7>4
7 GE 4 or 7>=4
7 LT 4 or 7<4
7 LE 4 or 7<=4
Kt qu
15
8
28
1
3
0010B
101000B
1111111111111110B
0101B
1101B
1000B
0DDH
0AAH
0 (false)
0FFFFH (true)
0FFFFH (true)
0FFFFH (true)
0 (false)
0 (false)
Tn
117
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Tn phi bt u bng k t.
A
ADDC
AR0
AR4
BIT
CJNE
CSEG
DBIT
DPTR
END
GT
ISEG
JMP
LOW
AB
AJMP
AR1
AR5
BSEG
CLR
DA
DEC
DS
EQ
HIGH
JB
JNB
LT
ACALL
AND
AR2
AR6
C
CODE
DATA
DIV
DSEG
EQU
IDATA
JBC
JNC
MOD
ADD
ANL
AR3
AR7
CALL
CPL
DB
DJNZ
DW
GE
INC
JC
JNZ
MOV
JZ
LOW
MOVC
NOP
ORL
R0
R4
RET
RR
SHL
SWAP
XDATA
JZ
LCALL
LT
MOVX
NOT
PC
R1
R5
RETI
RRC
SHR
USING
XOR
LCALL
LE
MOD
MUL
OR
POP
R2
R6
RL
SET
SJMP
XCH
XRL
LE
LJMP
MOV
NE
ORG
PUSH
R3
R7
RLC
SETB
SUBB
XCHD
XSEG
LJMP
CALL Subname
;-------------Subname:
RET
END
; kt thc chng trnh
V d:
ORG 00H ;(con tr chng trnh bt u t 00h)
LJMP MAIN ; nhy ti v tr c nhn l MAIN)
; (v tr bt u chng trnh chnh MAIN):
ORG 0030H
MAIN:
MOV R1,#10 ;(np cho R1 gi tr l 10).
LAP1:
118
Bi ging
Chng 3
Vi x l - Vi iu khin
DJNZ R1,LAP1
END
H Vi iu khin 8051
; Bt u ti v tr 00h
; Bt u ti v tr 0030h
V d:
ORG 00H
LJMP MAIN
ORG 0030H
MAIN:
MOV R1,#10
LCALL LAP1
LAP1:
DJNZ R1,LAP1
RET
END
3.4 B m v b nh thi
8051 c hai b nh thi l Timer 0 v Timer1, phn ny chng ta bn v cc
thanh ghi ca chng v sau trnh by cch lp trnh chng nh th no to ra
cc tr thi gian.
Cc thanh ghi c s ca b nh thi.
C hai b nh thi Timer 0 v Timer 1 u c di 16 bt c truy cp nh
hai thanh ghi tch bit byte thp v byte cao. Chng ta s bn ring v tng thanh
ghi.
Cc thanh ghi ca b Timer 0.
Thanh ghi 16 bt ca b Timer 0 c truy cp nh byte thp v byte cao. Thanh
ghi byte thp c gi l TL0 (Timer 0 bow byte) v thanh ghi byte cao l TH0
(Timer 0 High byte). Cc thanh ghi ny c th c truy cp nh mi thanh ghi khc
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
119
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
M1
Timer1
M0
GATE
C/T
M1
Timer0
LSB
M0
Cc bt M1, M0:
L cc bt ch ca cc b Timer 0 v Timer 1. Chng chn ch ca cc b
nh thi: 0, 1, 2 v 3. Ch 0 l mt b nh thi 13, ch 1 l mt b nh thi
16 bt v ch 2 l b nh thi 8 bt. Chng ta ch tp chung vo cc ch
thng c s dng rng ri nht l ch 1 v 2. Chng ta s sm khm ph ra
cc c tnh c cc ch ny sau khi khm phn cn li ca thanh ghi TMOD. Cc
ch c thit lp theo trng thi ca M1 v M0 nh sau:
M1
120
M0
Ch
Ch hot ng
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
Bi ging
Chng 3
Vi x l - Vi iu khin
0
1
1
1
0
1
1
2
3
H Vi iu khin 8051
B nh thi 13 bt gm 8 bt l b nh thi/ b m 5 bt
t trc
B nh thi 16 bt (khng c t trc)
B nh thi 8 bt t np li
Ch b nh thi chia tch
Bng 3-11. Ch hot ng ca Timer/Counter
C/ T (ng h/ b nh thi).
Bt ny trong thanh ghi TMOD c dng quyt nh xem b nh thi c
dng nh mt my to tr hay b m s kin. Nu bt C/T = 0 th n c dng
nh mt b nh thi to ch thi gian. Ngun ng h cho ch tr thi gian l
tn s thch anh ca 8051. phn ny ch bn v la chn ny, cng dng ca b
nh thi nh b m s kin th s c bn phn k tip.
V d : Hy cho bit ch no v b nh thi no i vi cc trng hp sau:
a) MOV TMOD, #01H b) MOV TMOD, #20H
c) MOV
TMOD,
#12H
Li gii: Chng ta chuyn i gi tr t s Hex sang nh phn v i chiu vi tng
bt trong thanh ghi TMOD ta c:
a) TMOD = 0000 0001, ch 1 ca b nh thi Timer 0 c chn.
b) TMOD = 0010 0000, ch 1 ca b nh thi Timer 1 c chn.
c) TMOD = 0001 0010, ch 1 ca b nh thi Timer 0 v ch 1 ca Timer 1
c chn.
B dao ng
thch anh
12
Tn s ng h ca b
nh thi
c) 11,0592MHz
Li gii:
1
1
12MHz = 1MHz v T =
= 1s
12
1 / 1MHz
1
1
b)
16MHz = 1,111Mz v T =
= 0,75s
12
1,333MHz
a)
121
Bi ging
Chng 3
Vi x l - Vi iu khin
c)
H Vi iu khin 8051
1
1
11,0592MHz = 921,6kHz v T =
= 1,085s
12
0,9216MHz
Bt cng GATE.
Mt bt khc ca thanh ghi TMOD l bt cng GATE. trn thanh ghi TMOD
ta thy c hai b nh thi Timer0 v Timer1 u c bt GATE. Vy bt GATE dng
lm g? Mi b nh thi thc hin im khi ng v dng. Mt s b nh thi
thc hin iu ny bng phn mm, mt s khc bng phn cng v mt s khc va
bng phn cng va bng phn mm. Cc b nh thi trn 8051 c c hai. Vic
khi ng v dng b nh thi c khi ng bng phn mm bi cc bt khi
ng b nh thi TR l TR0 v TR1. iu ny c c nh cc lnh SETB TR1
v CLR TR1 i vi b Timer1 v SETB TR0 v CLR TR0 i vi b
Timer0. Lnh SETB khi ng b nh thi v lnh CLR dng dng n. Cc lnh
ny khi ng v dng cc b nh thi khi bt GATE = 0 trong thanh ghi TMOD.
Khi ng v ngng b nh thi bng phn cng t ngun ngoi bng cch t bt
GATE = 1 trong thanh ghi TMOD. Tuy nhin, trnh s ln ln ngay t by gi ta
t GATE = 0 c ngha l khng cn khi ng v dng cc b nh thi bng phn
cng t bn ngoi. s dng phn mm khi ng v dng cc b nh thi
phn mm khi ng v dng cc b nh thi khi GATE = 0. Chng ta ch cn
cc lnh SETB TRx v CLR TRx.
V d:
Tm gi tr cho TMOD nu ta mun lp trnh b Timer0 ch 2 s dng
thch anh XTAL 8051 lm ngun ng h v s dng cc lnh khi ng v
dng b nh thi.
Li gii:
TMOD = 0000 0010: B nh thi Timer0, ch 2 C/T = 0 dng ngun
XTAL GATE = 0 dng phn mm trong khi ng v dng b nh thi.
Cc ch ca b m/nh thi (Timer Mode)
Nh vy, by gi chng ta c hiu bit c bn v vai tr ca thanh ghi TMOD,
chng ta s xt ch ca b nh thi v cch chng c lp trnh nh th no
to ra mt tr thi gian. Do ch 1 v ch 2 c s dng rng ri nn ta i
xt chi tit tng ch mt.
122
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
123
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Ngt timer.
Cc ngt timer c a ch Vector ngt l 000BH (timer 0) v 001BH (timer 1). Ngt
timer xy ra khi cc thanh ghi timer (TLx ITHx) trn v set c bo trn (TFx) ln 1.
Cc c timer (TFx) khng b xa bng phn mm. Khi cho php cc ngt, TFx t
ng b xa bng phn cng khi CPU chuyn n ngt.
V d 1:
Trong chng trnh di y ta to ra mt sng vung vi y xung 50%
(cng t l gia phn cao v phn thp) trn chn P1.5. B nh thi Timer0 c
dng to tr thi gian. Hy phn tch chng trnh ny.
MOV
HERE:
;
DELAY:
SETB TR0
AGAIN:
TMOD, #01
; S dng Timer0 v ch 1(16 bt)
MOV TL0, #0F2H
; TL0 = F2H, byte thp
MOV TH0, #0FFH
; TH0 = FFH, byte cao
CPL P1.5
; S dng chn P1.5
ACALL DELAY
SJMP HERE
; Np li TH, TL
delay using timer0.
JNB
CLR
CLR
RET
Li gii:
Trong chng trnh trn y ch cc bc sau:
1. TMOD c np.
2. Gi tr FFF2H c np v TH0 - TL0
124
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
FFF3
FFF4
FFFF
0000
TF = 0
TF = 0
TF = 0
TF = 0
TF = 1
V d 2.
Chng trnh di y to ra mt sng vung trn chn P2.5 lin tc bng vic s
dng b Timer1 to ra tr thi gian. Hy tm tn s ca sng vung nu tn s
XTAL = 11.0592MHz. Trong tnh ton khng a vo tng ph ca cc lnh vng
lp:
HERE:
AGAIN:
MOV
MOV
MOV
TMOD, #01H
TL1, #34H
TH0, #76H
SETB TR1
JNB
CLR
CPL
CLR
SJMP
TF1, BACK
TR1
P1.5
TF
AGAIN
Li gii:
Trong chng trnh trn y ta lu n ch ca SJMP. ch 1 chng
trnh phi np li thanh ghi. TH v TL mi ln nu ta mun c sng dng lin tc.
Di y l kt qu tnh ton:
V FFFFH - 7634H = 89CBH + 1 = 89CCH v 90CCH = 35276 l s ln
m xung ng h, tr l 35276 1.085s = 38274ms v tn s l Error!
Objects cannot be created from editing field codes.
Cng rng phn cao v phn thp ca xung sng vung l bng nhau.
Trong tnh ton trn y l cha k n tng ph cc lnh vng lp.
Bi tp:
Hy kim tra chng trnh sau v tm tr thi gian theo giy, khng tnh
n tng ph cc lnh trong vng lp.
MOV
125
Bi ging
Chng 3
Vi x l - Vi iu khin
AGAIN:
BACK:
MOV
MOV
MOV
SETB
JNB
H Vi iu khin 8051
R3, #200
TL1, #08
TH1, #08
TR1
TF1, BACK
CLR TR1
CLR TF1
DJNZ R3, AGAIN
; Chn b m gi chm ln
; Np byte thp TL1 = 08
; Np byte cao TH1 = 01
; Khi ng Timer1
; gi nguyn cho n khi
;b nh thi quay v 0
; Dng b nh thi.
; Xo c b nh thi TF1
; Nu R3 khng bng
;khng th np li b nh thi.
Bi ging
Vi x l - Vi iu khin
Chng 3
H Vi iu khin 8051
127
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Trong :
Bit
M t
SM0
SM1
SM2
REN
TB8
RB8
128
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
TI
TI=1. Trc khi truyn byte khc bit ny cn phi c xa bng phn
mm
RI
C ngt nhn, Khi nhn thnh cng 1 byte vo SBUF th RI=1. Sau khi
c SUBF, RI cn phaic xa bng phn mm
SM1
Mode
Description
Baud Rate
1/12 tn s clock
8-bit UART
9-bit UART
9-bit UART
Mode 0
y l ch thanh ghi dch 8 bit, khng c bit start/stop, ch ny RxD
l chn truyn nhn, cn TxD pht xung ng b.
129
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Mode 1
Truyn thng bt ng b vi frame truyn 10 bit, gm 1 start, 8 bit d liu
v 1 stop. TxD thc hin truyn, RxD nhn d liu, tc truyn ci t qua Timer
1
Qu trnh truyn:
130
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Qu trnh nhn
Mode 2
Truyn thng bt ng b vi frame truyn 11 bit, gm 1 start, 8 bit d liu, 1
bit lp trnh c(nu truyn l TB8, nhn l RB8) v 1 bit stop. TxD thc hin
truyn, RxD nhn d liu, tc truyn ci t qua Timer 1. Bit th 9 thng c
dng l bit pht hin li party.
-
Qu trnh truyn
Qu trnh nhn:
Mode 3
Mode 3 tng t mode 2 v mi mt ngoi tr tc baud
Tc Baud
Trong mt s mode hot ng ca cng ni tip th tc baud ph thuc vo timer
1. ci t cn qua cc bc sau:
-
131
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Baud
Rate
Tn s thch anh
11.0592
12
14.7456
150
40 h
30 h
00 h
300
A0 h
98 h
80 h
75 h
52 h
600
D0 h
CC h
C0 h
BB h
A9 h
1200
E8 h
E6 h
E0 h
DE h
D5 h
2400
F4 h
F3 h
F0 h
EF h
EA h
F3 h
EF h
EF h
4800
4800
FA h
F8 h
9600
FD h
FC h
9600
16
20
Bit
SMOD
0
1
F5 h
0
F5 h
19200
FD h
FC h
38400
FE h
76800
FF h
Mt s v d v bi tp:
V d 1:
Gi s tn s XTAL = 11.0592MHz cho chng trnh di y, hy pht biu a)
chng trnh ny lm g? b) hy tnh ton tn s c Timer1 s dng t tc
baud? v c) hy tm tc baud truyn d liu.
MOV A, PCON
SETB ACC.7
MOV PCON, A
MOV
132
Bi ging
Chng 3
Vi x l - Vi iu khin
SETB
MOV
A_1: CLR
MOV
H_1: JNB
SJMP
TR1
A, #B
TI
SBUF, A
TI, H_1
A_1
H Vi iu khin 8051
;d liu, 1 Stop v cho php RI.
; Khi ng Timer1
; Truyn k t B
; Khng nh TI = 0
;Truyn n
; Ch y cho n khi bt cui c gi i
; Tip tc gi B
Li gii:
a) Chng trnh ny truyn lin tc m ASCII ca ch B ( dng nh phn l 0100
0010)
b) Vi tn s XTAL = 11.0592MHz v SMOD = 1 trong chng trnh trn ta c:
11.0592MHz/12 = 921.6kHz l tn s chu trnh my, 921.6kHz/16 = 57.6kHz
l tn s c Timer1 s dng t tc baud
c) 57.6kHz/3 = 19.200 l tc cn tm
V d 2:
Tm gi tr TH1 ( dng thp phn v hex) t tc baud cho cc trng
hp sau.
a) 9600
b) 4800 nu SMOD = 1 v tn s XTAL = 11.0592MHz
Li gii:
Vi tn s XTAL = 11.0592MHz v SMOD = 1 ta c tn s cp cho Timer1 l
57.6kHz.
a) 57.600/9600 = 6 do vy TH1 = - 6 hay TH1 = FAH
b) 57.600/4800 = 12 do vy TH1 = - 12 hay TH1 = F4H
SMOD=1
11.0592MHz
XTAL
oscillator
28800Hz
12
921.6kHz
16
32
57600Hz
28800Hz
To
timer1
to set
baud
rate
SMOD=0
Bi tp:
Hy tm tc baud nu TH1 = -2, SMOD = 1 v tn s XTAL = 11.0592MHz. Tc
ny c c h tr bi cc my tnh IBM PC v tng thch khng?
3.6 X l ngt
Mt ngt l mt s kin bn trong hoc bn ngoi lm ngt b vi iu khin
bo cho n bit rng thit b cn dch v ca n. Trong chng ny ta tm hiu khi
nim ngt v lp trnh ngt.
Mt b vi iu khin c th phc v mt vi thit b, c hai cch thc hin
iu ny l s dng cc ngt v thm d (polling). Trong phng php s dng
cc ngt th mi khi c mt thit b bt k cn n dch v ca n th n bao cho b
vi iu khin bng cch gi mt tn hiu ngt. Khi nhn c tn hiu ngt th b vi
iu khin ngt tt c nhng g n ang thc hin chuyn sang phc v thit b.
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
133
Bi ging
Vi x l - Vi iu khin
Chng 3
H Vi iu khin 8051
Chng trnh i cng vi ngt c gi l trnh dch v ngt ISR (Interrupt Service
Routine) hay cn gi l trnh qun l ngt (Interrupt handler). Cn trong phng
php thm d th b vi iu khin hin th lin tc tnh trng ca mt thit b cho
v iu kin tho mn th n phc v thit b. Sau n chuyn sang hin th tnh
trng ca thit b k tip cho n khi tt c u c phc v. Mc d phng php
thm d c th hin th tnh trng ca mt vi thit b v phc v mi thit b khi cc
iu kin nht nh c tho mn nhng n khng tn dng ht cng dng ca b
vi iu khin. im mnh ca phng php ngt l b vi iu khin c th phc v
c rt nhiu thit b (tt nhin l khng ti cng mt thi im). Mi thit b c
th nhn c s ch ca b vi iu khin da trn mc u tin c gn cho n.
i vi phng php thm d th khng th gn mc u tin cho cc thit b v n
kim tra tt c mi thit b theo kiu hi vng. Quan trng hn l trong phng php
ngt th b vi iu khin cng cn c th che hoc lm l mt yu cu dch v ca
thit b. iu ny li mt ln na khng th thc hin c trong phng php thm
d. L do quan trng nht l phng php ngt c u chung nht l v phng
php thm d lm lng ph thi gian ca b vi iu khin bng cch hi d tng thit
b k c khi chng khng cn n dch v.
V d trong cc b nh thi, ta dng lnh JNB TF, ch v i cho n
khi b nh thi quay tr v 0. Trong v d , trong khi ch i th ta c th lm
vic c g khc c ch hn, chng hn nh khi s dng phng php ngt th b vi
iu khin c th i lm cc vic khc v khi c TF bt ln n s ngt b vi iu
khin cho d n ang lm bt k iu g.
Trnh phc v ngt.
i vi mi ngt th phi c mt trnh phc v ngt ISR hay trnh qun l
ngt. khi mt ngt c gi th b vi iu khin phc v ngt. Khi mt ngt c gi
th b vi iu khin chy trnh phc v ngt. i vi mi ngt th c mt v tr c
nh trong b nh gi a ch ISR ca n. Nhm cc v tr nh c dnh ring
gi cc a ch ca cc ISR c gi l bng vc t ngt, xem Hnh 3-35. Bng
vector ngt v v d
8051 h tr 5 loi ngt, c th cho php hoc cm ngt vi tng loi thng qua
thanh ghi iu khin ngt IE, hoc c th cm tt c cc ngt thng qua bit EA.
Cc tn hiu iu khin ngt c th c m t nh hnh di
134
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Trong :
Bit
EA
ES
ET1
EX1
ET0
EX0
M t
Cho php/cm ngt ton cc
= 0: Cm tt c cc ngt
= 1: Cho php cc ngt
= 0: Cm ngt truyn thng ni tip
= 1: Cho php ngt truyn thng ni tip
= 0: Cm ngt Timer 1
= 1: Cho php ngt Timer 1
= 0: Cm ngt ngoi vi INT0
= 1: Cho php ngt ngoi v INT0
= 0: Cm ngt Timer 0
= 1: Cho php ngt timer 0
= 0: Cm ngt ngoi vi INT1
= 1: Cho php
135
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Mt s v d v bi tp:
V d 1:
Hy ch ra nhng lnh a) cho php ngt ni tip ngt Timer0 v ngt phn cng
ngoi 1 (EX1) v b) cm (che) ngt Timer0 sau c) trnh by cch cm tt c mi
ngt ch bng mt lnh duy nht.
Li gii:
136
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
a) MOV
IE, #10010110B
cho php ngt phn cng ngoi.
SETB IE.4
SETB IE.1
SETB IE.2
(tt c nhng lnh ny tng ng vi lnh MOV IE, #10010110B trn y).
b) CLR
IE.1
c) CLR
IE.7
; Cm tt c mi ngt.
V d 2:
Hy vit chng trnh nhn lin tc d liu 8 bt cng P0 v gi n n cng P1
trong khi n cng lc to ra mt sng vung chu k 200us trn chn P2.1. Hy s
dng b Timer0 to ra sng vung, tn s ca 8051 l XTAL = 11.0592MHz.
Li gii:
Ta s dng b Timer0 ch 2 (t ng np li) gi tr np cho TH0 l
100/1.085us = 92.
; - - Khi khi to vo chng trnh main trnh dng khng gian.
; a ch dnh cho bng vc t ngt.
ORG 0000H
CPL P2.1
; Nhy n bng vc t ngt.
; - - Trnh ISR dnh cho Timer0 to ra sng vung.
ORG 0030H
; Ngay sau a ch bng vc-t ngt
MAIN:
TMOD, #02H ; Chn b Timer0, ch 2 t np li
MOV P0, #0FFH ; Ly P0 lm cng vo nhn d liu
MOV TH0, # - 92
; t TH0 = A4H cho 92
MOV IE, #82H
; IE = 1000 0010 cho php Timer0
SETB TR0
; Khi ng b Timer0
BACK:
MOV A, P0
; Nhn d liu vo t cng P0
MOV P1, A
; Chuyn d liu n cng P1
SJMP BACK
; Tip tc nhn v chuyn d liu
; Chng no b ngt bi TF0
END
137
Bi ging
Chng 3
Vi x l - Vi iu khin
H Vi iu khin 8051
Th t u tin ngt
Khi c hai hay nhiu ngt cng lc xy ra, hoc mt ngt ang thc hin th
m ngt khc yu cu th ngt no c u tin hn s c u tin x l.
C 3 cp u tin ngt trong 8051
-
Vic t chn mc u tin ngt l 1 hoc 0 thng qua thanh ghi IP. Vic x l u
tin ngt ca 8051 nh sau:
-
Thanh ghi IP
PS: UART
PT1: Timer 1
PX1: INTR 1
PT0: Timer 0
PX0: INTR 0
138
Bi ging
Vi x l - Vi iu khin
Chng 3
H Vi iu khin 8051
139
Bi ging
Vi x l - Vi iu khin
Chng 3
H Vi iu khin 8051
Cu 24. Vit on lnh khi to truyn thng ni tip bit tn s thch anh l
16MHz, tc baud=19200bps.
Cu 25. Vit on lnh khi to truyn thng ni tip bit tn s thch anh l
20MHz, tc baud=19200bps.
Cu 26. Thit k v vit chng trnh con c ma trn 2x2 nt bm (nt bm
c nh s t 1 n n), kt qu tr v l s th t nt bm, nu khng c
nt no c bm, tr v 0. Bit nt bm c ghp hng vo P1, ct vo P2.
Cu 27. Thit k v lp trnh hin th s 1234 4 LED 7 thanh. Bit 4 LED l
chung m, mc chung BUS d liu (a..h).
Cu 28. Vit chng trnh truyn lin tc tn mnh ln my tnh qua ng
RS232, vi tc baud = 9600bps
Cu 29. Hy lp trnh cho 8051 nhn cc byte d liu ni tip v t chng
vo cng P1. t tc baud l 4800bps, 8 bit d liu v 1 bit Stop.
Cu 30. Hy lp trnh cho 8051 nhn cc byte d liu ni tip v t chng
vo cng P2. t tc baud l 9600bps, 8 bit d liu v 1 bit Stop.
Cu 31. Vit chng trnh truyn thng vi my tnh, nu my tnh gi k t
a th 8051 gi tr v k t b, nu my tnh gi k t b th 8051 gi tr v
k t c,
Cu 32. Vit chng trnh truyn thng vi my tnh nu my tnh gi xung
ch Ten th 8051 gi tr v tn mnh (th sinh).
Cu 33. Hy vit chng trnh nhn lin tc d liu 8 bit cng P0 v gi n
n cng P1 trong khi n cng lc to ra mt sng vung chu k 200s trn
chn P2.1. Hy s dng b Timer0 to ra sng vung, tn s ca 8051 l
FXTAL =11.0592MHz.
Cu 34. Hy vit chng trnh nhn lin tc d liu 8 bit cng P0 v gi n
n cng P1 trong khi n cng lc to ra mt sng vung vi mc cao ko di
1085s v mc thp di 15s vi gi thit tn s FXTAL = 11.0592MHz. Hy
s dng b nh thi Timer1.
Cu 35. Hy vit chng trnh trong 8051 nhn d liu t cng P1 v gi
lin tc n cng P2 trong khi d liu i vo t cng ni tip COM c
gi n cng P0. Bit tn s FXTAL=11.0592MHz v tc baud 9600bps.
Cu 36. Hy vit mt chng trnh thc hin cc cng vic sau:
a. Nhn d liu ni tip v gi n n cng P0.
b. c d liu t cng P1, truyn ni tip v sao chp n cng P2.
c. S dng Timer0 to sng vung tn s 5kHz trn chn P0.1
gi thit tn s XTAL = 11.0592MHz v tc baud 4800.
140
Bi ging
Chng 5
Vi x l - Vi iu khin
CHNG 4. NG DNG
Mc tiu
Gip sinh vin hc tp v thc hnh theo cc v d mu, nhm nng cao trnh
lp trnh ca sinh vin.
Tm tt:
ng dng cc vi iu khin lp trnh giao tip vi th gii thc thng qua
cc v d:
-
141
Bi ging
Chng 5
Vi x l - Vi iu khin
4.1
Vo/ra s
U1
19
33p
XTAL1
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
PSEN
ALE
EA
VCC
GND
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
FXTAL
18
XTAL2
C2
33p
9
C3
10u
R1
10k
29
30
31
40
20
C4
224
1
2
3
4
5
6
7
8
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
D8
D7
D6
D5
D4
D3
D2
D1
LED
LED
LED
LED
LED
LED
LED
LED
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
AT89C51
R2
220
18
29
30
31
1
2
3
4
5
6
7
8
D8
D7
D6
D5
D4
D3
D2
D1
LED
LED
LED
LED
LED
LED
LED
LED
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
AT89C51
142
Bi ging
Chng 5
Vi x l - Vi iu khin
Mt s hm mu:
Trong tt c cc v d v LED, chng ta u s dng mt chng trnh con (CTC)
to tr, thng t tn l Delay. Chng trnh con Delay c vit bng cch to ra
nhiu vng lp lng nhau, nhm tiu tn thi gian. Khong thi gian bao nhiu
c tnh da theo tn s thch anh (Fxtal), s vng lp, s ln gi CTC.
Chng trnh con Delay c thi gian c nh:
Delay:mov R7, #10
DL:mov R6,#255
DL1:mov R5,#255
DL2:djnz r5,dl2
djnz R6,DL1
DJNZ R7, DL
ret
143
Bi ging
Chng 5
Vi x l - Vi iu khin
Trong v d trn, c thm phn o LED, xem k o LED Hnh 4-5. Thut
ton: Nhp nhy P1.0
Nhp nhy mt LED n:
n gin ch cn kch hot n LED nhp nhy nhn thy c s hot ng,
trong mi ln thay i trng thi ca LED, cn to mt khong thi gian tr c
th quan st thy trng thi. Trong v d ny, thi gian tr c cung cp bng cch
144
Bi ging
Chng 5
Vi x l - Vi iu khin
thc hin mt chng trnh con tr, c gi l Delay. N l 3 vng lp lng nhau
s dng thanh ghi R0, R1 v R2. Sau khi tr v t cc chng trnh con, trng thi
ca chn c o ngc v cc th tc tng t c lp i lp li ...
ORG 0
JMP BEGIN ;Reset vector
ORG 100H
;Khi to trng thi:
MOV P1,#0FFh
BEGIN:
CPL P1.0 ;o trng thi P1.0
LCALL
Delay
;Time delay
SJMP
BEGIN
Delay:
MOV R2,#20 ;500 ms time delay
F02: MOV
R1,#50 ;25 ms
F01: MOV
R0,#230
DJNZ
R0,$
DJNZ
R1,F01
DJNZ
R2,F02
Ret
END
;End of program
P1=0xFF
Tt LED
Nhn: BEGIN
P1.0=~P1.0
Delay
o trng
thi LED
Tr nhn
trng thi LED
4.2 Timer
Chng trnh di y minh ha mt v d n gin nht v Timer, ly v d l Timer 0
(v trong ch c bn, Timer 0 v Timer 1 l nh nhau).
S nguyn l, vn ly s trong Hnh 4-1. Mch nhp nhy LED n.
Thut ton lp trnh v m ngun c th thc hin nh cc v d di y.
Timer Bi ton 1:
Lin tc pht xung vung c chu k l 2ms ra chn P1.0
CSEG AT 0
JMP
Start ; Reset vector
ORG
100H
Start:
MOV
TMOD,#0x01
MOV
TH0, #HIGH(1000);1ms
MOV
TL0, #LOW(-1000)
SETB
TR0 ; Cho TIMER chay
waitTF0: jnb TF0, waitTF0
CPL
JMP
END
P1.0
Start
145
Bi ging
Chng 5
Vi x l - Vi iu khin
Hnh 4-6. Thut ton: TIMER0
Timer Bi ton 2:
S dng Timer0 v Timer1, Timer0 dng pht xung vung c chu k 4ms ti
chn P1.0, Timer 1 pht xung vung 8ms chn P1.7.
Hnh vn dng : Hnh 4-1. Mch nhp nhy LED n
Phn tch:
Vi yu cu bi nh trn, ta s dng ngt timer0 v ngt timer1. Chng
trnh chnh khi to timer, khi to ngt ri khng lm g na.
C hai CTC ngt c vai tr nh nhau. Trong mi ngt, thc hin nhim v
l lt trng thi chn ( to xung vung), v khi to li gi tr timer tng
ng.
CSEG
AT
0
JMP
Start ; Reset vector
ORG 0BH
JMP TM0_PWM ;Vector ngt TM0
ORG
01BH
JMP TM1_PWM ;Vector ngt TM1
ORG
100H
Start:
MOV
TMOD,#0x11
MOV
TH0,#HIGH(-2000)
MOV
TL0,#LOW(-2000)
MOV
TH1,#HIGH(-4000)
MOV
TL1,#LOW(-4000)
MOV IE,#08AH ; Interrupt enabled
SETB TR0 ; Cho TIMER0 chay
SETB TR1 ; Cho TIMER1 chay
JMP
$
TM0_PWM:
CPL P1.0
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
RETI ; RETurn from Interrupt
TM1_PWM:
CPL P1.7
MOV TH1,#HIGH(-4000)
MOV TL1,#LOW(-4000)
RETI ; RETurn from Interrupt
END ; End of program
146
Bi ging
Chng 5
Vi x l - Vi iu khin
18
XTAL1
XTAL2
RST
R1
220R
29
30
31
LS1
SPEAKER
Q1
BC547
R2
220R
R3
10k
1
2
3
4
5
6
7
8
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
R4
10
11
12
13
14
15
16
17
10k
AT89C51
147
Bi ging
Chng 5
Vi x l - Vi iu khin
Cc tranzistor v LED trn mn hnh ny lun phin sng trong khong thi gian
ngn, do lm cho ta tng rng tt c cc ch s ang hin th ng thi.
Led 7 thanh c ng dng kh ph bin khi cn hin th s t nhin hoc vi ch ci
nht nh. Led 7 thanh c th c kch thc ln nh khc nhau, mu sc khc nhau nhng
v hnh dng c bn nh hnh di y
Led 7 thanh bao gm nhiu led tch hp bn trong, cc led c ni chung nhau 1
chn. Trong thc t c 2 loi led 7 thanh l led 7 thanh A-nt chung v led 7 thanh Ka-tt
chung. Led loi A-nt chung, cc led s c chung nhau chn ngun (chn dng), chn cn
li ca led no c ni t th led s sng. Led loi Ka-tt chung, cc led s ni chung
nhau chn t (chn m), chn cn li ca led no c ni ngun th led s sng.
148
Bi ging
Chng 5
Vi x l - Vi iu khin
org 0h
start:
mov dptr, #word
; con tr d liu vo u bng
mov R6, #8
; s led cn hin th, 8 led
mov R1, #01111111b; khi u led 8
Again:
clr A ; xa thanh ghi acc
movc A,
@A+dptr ; a s u tin bng vo acc
inc dptr
; tng v tr con tr
mov P0, A
; a m cn hin th ra P0
mov A,
R1
; th t led cn hin th
mov P2, A
; hin th led
rr
A
; dch vi tr led cn hin th
mov R1, A
; lu vo thanh ghi R1
call delay
; gi hm tr
mov P0, #11111111b; xa
djnz R6, Again
; lp li 8 ln
sjmp start
; tr v v tr ban u
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
word: DB 00111111b, 01000111b, 00001000b, 00000011b
DB 01000110b, 01000000b, 01001000b, 00111111b
end
149
Bi ging
Chng 5
Vi x l - Vi iu khin
18
29
30
31
1
2
3
4
5
6
7
8
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
RXD
TXD
RTS
CTS
AT89C51
CLOCK=11.0592MHz
150
100H
MOV
MOV
MOV
IE,#00
TMOD,#20H
TH1,#0FDH
MOV
SCON,#50H
Bi ging
Chng 5
Vi x l - Vi iu khin
LOOP:
MOV
CLR
CLR
SETB
SJMP
IE,#10010000B
TI
RI
TR1
LOOP
;
;
;
;
;
IR_SER:
JNB
RI,OUTPUT
A,SBUF
P1,A
RI
OUTPUT:
MOV
MOV
CLR
RETI
END
; End of program
18
29
30
31
1
2
3
4
5
6
7
8
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
RXD
TXD
RTS
CTS
AT89C51
CLOCK=11.0592MHz
151
Bi ging
Chng 5
Vi x l - Vi iu khin
ORG
100H
XRESET: MOV
MOV
MOV
MOV
MOV
CLR
CLR
MOV
SETB
START:
MOV
LOOP1:
JNB
IE,#00
; All interrupts are disabled
TMOD,#20H ; Timer1 in mode 2
TH1,#0FDH ; 9600 baud rate at the frequency of
TL1,#0FDH ; 11.0592MHz
SCON,#40H ; 8-bit UART
TI
; Clear transmit bit
RI
; Clear receive flag
R3,#'A'
; Reset counter from A (65)
TR1
; Start Timer 1
SBUF,R3
; Move number from counter to a PC
TI,LOOP1 ; Wait here until byte transmission is
; complete
CLR
TI
; Clear transmit bit
INC
R3
; Increment the counter value by 1
CJNE
R3,#127,START
; Send until R3=127
LOOP:
END
SJMP
LOOP
; Remain here
; End of program
U3
1
2
3
4
5
8
10
9
19
6
7
CS
RD
WR
CLK IN
INTR
A GND
D GND
VREF/2
CLK R
20
18
17
16
15
14
13
12
11
VCC
DB0(LSB)
DB1
DB2
DB3
DB4
DB5
DB6
DB7(MSB)
VIN+
VINADC0804
152
Bi ging
Chng 5
Vi x l - Vi iu khin
U1
29
30
31
ADC_RD
ADC_WR
CS
intr
1
2
3
4
5
6
7
8
RST
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
L0
L1
L2
L3
L4
XTAL2
39
38
37
36
35
34
33
32
L6
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
L7
18
XTAL1
C1
U2
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
L0
L1
L2
L3
L4
L5
L6
L7
1nF
ADC_RD
ADC_WR
R1+2V5
10k
21%
19
RV1
5k
intr
1
2
3
4
5
8
10
9
19
6
7
CS
RD
WR
CLK IN
INTR
A GND
D GND
VREF/2
CLK R
VCC
DB0(LSB)
DB1
DB2
DB3
DB4
DB5
DB6
DB7(MSB)
20
18
17
16
15
14
13
12
11
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
VIN+
VINADC0804
AT89C51
CLOCK=12MHz
153
Bi ging
Chng 5
Vi x l - Vi iu khin
ORG
MAIN:
ACALL
TACT_LayMau
mov LED7,A
SJMP
MAIN
TACT_LayMau:
CLR ADC_WR
; Tao xung tu cao xuong thap
;tai chan ADC_WR(Tuc W/R cua ADC)
DelayX 1
SETB ADC_WR ; Cho phep ADC0804 bat dau qua trinh
; chuyen doi tu tuong tu sang so
JB INTR, $
; Doi cho qua trinh chuyen doi xong(100us)
CLR ADC_RD
; Dua xung muc thap toi chan RD
; cho phep doc du lieu tu ADC(Xuat ra
D0..D7)
DelayX 1
MOV A,ADC_DAT ; Dua du lieu 8bit tu ADC_DAT den thanh ghi A
setb
ADC_RD
RET
END
RST
29
30
31
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
PSEN
ALE
EA
1
2
3
4
5
6
7
8
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
DB0
DB1
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
DB2
DB3
DB7
XTAL2
39
38
37
36
35
34
33
32
DB6
18
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
DB5
XTAL1
DB4
19
AT89C51
CLOCK=12MHz
154
Bi ging
Chng 5
Vi x l - Vi iu khin
18
29
30
31
1
2
3
4
5
6
7
8
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
D
1
10
11
12
13
14
15
16
17
AT89C51
CLOCK=12MHz
4
3
2
1
A
B
C
D
19
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
U1
ORG 0
JMP MAIN
KQ
EQU 0
COL1 EQU P2.3
COL2 EQU P2.2
COL3 EQU P2.1
COL4 EQU P2.0
ROW_A EQU P2.4
ROW_B EQU P2.5
ROW_C EQU P2.6
ROW_D EQU P2.7
MAIN:
MOV P2,#0FFh
CLR ROW_A
ADB0:JB COL1, ADB1
MOV KQ,#1
// Phim 1 bam
ADB1:JB COL2, ADB2
MOV KQ,#2
// Phim 2 bam
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
155
Bi ging
Chng 5
Vi x l - Vi iu khin
156
Bi ging
Chng 5
Vi x l - Vi iu khin
4.9 Ghp ni ng c bc
Bi ton thc hin vic iu khin ng c bc quay, thay i tc , o
chiu, dng ng c. Chng trnh s dng 4 u to xung vo ng c lm thay
i trng thi ca ng c bc.
Thng cc cun dy ca ng c bc c xc nh theo mu dy, tuy nhin i vi
mt ng c bt k, ta c th dng ng h xc nh dy nh hnh v, y trnh by
cch xc nh ng c c 5, 6 u dy.
Hnh 4-18. Cu to ng c bc
157
Bi ging
Chng 5
Vi x l - Vi iu khin
DJNZ R1,
RET
H1
END
158
Bi ging
Chng 5
Vi x l - Vi iu khin
CHNG 5.
CC H VI IU KHIN TIN TIN
Mc tiu
Gip sinh vin bit v cc h vi iu khin hin i v ph bin trong thc t
sn xut; v ng dng c bn ca chng.
Tm tt:
Tm hiu v cc vi iu khin hin i h AVR, h PIC v ARM
159
Bi ging
Chng 5
Vi x l - Vi iu khin
Bi ging
Vi x l - Vi iu khin
Chng 5
161
Bi ging
Vi x l - Vi iu khin
Chng 5
Bi ging
Vi x l - Vi iu khin
Chng 5
163
Bi ging
Vi x l - Vi iu khin
164
Chng 5
Bi ging
Chng 5
Vi x l - Vi iu khin
PIC 1655A
Hnh 5-2 Cc dng PIC
165
Bi ging
Vi x l - Vi iu khin
Chng 5
166
Bi ging
Vi x l - Vi iu khin
Chng 5
167
Bi ging
Vi x l - Vi iu khin
Chng 5
5.3 ARM
5.3.1 Cu trc ARM
Cu trc ARM (vit tt t tn gc l Acorn RISC Machine) l mt loi cu trc
vi x l 32-bit kiu RISC c s dng rng ri trong cc thit k nhng. Do c c
im tit kim nng lng, cc b CPU ARM chim u th trong cc sn phm in
t di ng, m vi cc sn phm ny vic tiu tn cng sut thp l mt mc tiu
thit k quan trng hng u.
Ngy nay, hn 75% CPU nhng 32-bit l thuc h ARM, iu ny khin ARM
tr thnh cu trc 32-bit c sn xut nhiu nht trn th gii. CPU ARM c
tm thy khp ni trong cc sn phm thng mi in t, t thit b cm tay (PDA,
in thoi di ng, my a phng tin, my tr chi cm tay, v my tnh cm tay)
cho n cc thit b ngoi vi my tnh ( a cng, b nh tuyn bn.) Mt
nhnh ni ting ca h ARM l cc vi x l Xscale ca Intel.
Mt b vi x l Conexant c
dng ch yu trong cc b nh
tuyn
Bi ging
Vi x l - Vi iu khin
Chng 5
169
Bi ging
Chng 5
Vi x l - Vi iu khin
5.3.3 Cc dng li
H
Li
c tnh
Cache
(I/D)/MMU
36 MIPS @
Psion 5 series
40 MHz
MMU
ARM720T
8KB
MMU
ARM740T
MPU
ARM7EJ-S
Jazelle DBX
ng dng
Game
Boy
15 MIPS @
Advance, Nintendo
16.8 MHz
DS, iPod
ARM7TDMI
3-tng pipeline khng
ARM7TDMI
(-S)
ARM710T
MIPS in
hnh @ MHz
unified, 60 MIPS @
59.8 MHz
khng
ARM9E
ARM920T
16KB/16KB,
MMU
ARM922T
8KB/8KB, MMU
ARM940T
4KB/4KB, MPU
ARM946E-S
thay i c,
tightly
coupled
memories, MPU
Nintendo
DS,
Nokia
N-Gage,
Conexant 802.11
chips
ARM966E-S
khng c cache,
TCMs
ST
Micro
STR91xF, includes
Ethernet [1]
ARM968E-S
khng c cache,
TCMs
in thoi di ng:
Sony Ericsson (K,
thay i c, 220 MIPS @
W series),Siemens
TCMs, MMU
200 MHz
and Benq (i x65
v i mi hn)
Clockless
processor
khng
caches,
TCMs, MPU
ARM10E ARM1020E
(VFP)
32KB/32KB,
MMU
ARM1022E
(VFP)
16KB/16KB,
MMU
ARM996HS
ARM1026EJJazelle DBX
S
ARM11
ARM1136J
(F)-S
variable, MMU or
MPU
SIMD, Jazelle
variable, MMU
DBX, (VFP)
170
GP32,GP2X (li
200 MIPS @ u tin), Tapwave
180 MHz
Zodiac (Motorola i.
MX1)
c,
Bi ging
Chng 5
Vi x l - Vi iu khin
H
Li
(F)-S
2, (VFP)
Cache
(I/D)/MMU
MIPS in
hnh @ MHz
ng dng
MPU
Cortex
XScale
ARM11
MPCore
Cortex-A8
ln n 2000
(2.0
Application
DMIPS/MHz
profile, NEON, variable (L1+L2),
Texas Instruments
in speed from
Jazelle
RCT, MMU+TrustZone
OMAP3
600 MHz to
Thumb-2
greater than 1
GHz)
Cortex-R4
Embedded
profile
Cortex-M3
Luminary Micro[2]
Microcontroller
120 DMIPS
no cache, (MPU)
microcontroller
profile
@ 100MHz
family
c,
variable
cache,
600 DMIPS
MMU optional
Broadcom l mt
hng s dng
80200/IOP310
I/O Processor
/IOP315
80219
IOP321
Iyonix
IOP33x
PXA210
/PXA250
Applications
processor
Zaurus SL-5600
32KB/32KB,
MMU
PXA255
400
BogoMips
@400 MHz
Gumstix
PXA26x
800 MIPS @ HTC
Universal,
624 MHz
Zaurus SL-C1000
PXA27x
PXA800(E)F
1000 MIPS @
1.25 GHz
Monahans
PXA900
IXC1100
Blackberry 8700
Control Plane
Processor
IXP2400
/IXP2800
IXP2850
IXP2325
/IXP2350
171
Bi ging
Chng 5
Vi x l - Vi iu khin
H
Li
Cache
(I/D)/MMU
MIPS in
hnh @ MHz
IXP42x
ng dng
NSLU2
IXP460
/IXP465
5.3.4 Cc lu v thit k
t c mt thit k gn, n gin v nhanh, cc nh thit k ARM xy
dng n theo kiu ni cng khng c vi chng trnh, ging vi b vi x l 8-bit
6502 tng c dng trong cc my vi tnh trc ca hng Acorn.
Cu trc ARM bao gm cc c tnh ca RISC nh sau:
-
172
http://wapedia.mobi/vi/Hp_ng
http://www.emu8086.com/
http://www.daniweb.com/code/
http://www.freewebs.com/maheshwankhede/adcdac.html
http://wapedia.mobi/vi
173
Bi ging
Vi x l - Vi iu khin
Ph lc
Danh mc hnh nh
Hnh 1-1.B vi x l Intel 80486DX2 ................................................................................. 10
Hnh 1-2. Minh ho chc nng ca vi x l....................................................................... 10
Hnh 1-3. Lch s pht trin ca VXL................................................................................ 13
Hnh 1-4. S tng qut ca h vi x l ............................................................................. 15
Hnh 1-5.LED 7 on ......................................................................................................... 17
Hnh 1-6. Bng m ASCII .................................................................................................. 18
Hnh 2-2. S khi 8086/8088 ........................................................................................ 21
Hnh 2-3. S chn 8086/8088........................................................................................ 26
Hnh 2-4. Cch m ho lnh trong 8086/8088 vi lnh MOV ........................................... 30
Hnh 2-5. Emu8086 - Mi trng son tho ...................................................................... 54
Hnh 2-6. Emu8086 - Gi tr cc c v mn hnh hin th ................................................. 54
Hnh 2-7. Emu8086 - Mn hnh Debug chng trnh ........................................................ 55
Hnh 2-8. Giao tip bus c bn........................................................................................... 76
Hnh 2-9. Quan h gia gii m a ch v b nh ............................................................ 77
Hnh 2-10. Mc ni tng nhiu 74LS138 .......................................................................... 77
Hnh 2-11. Ghp ni VXL vi b nh ............................................................................... 78
Hnh 2-12. nh thi ghi b nh ....................................................................................... 78
Hnh 2-13. nh thi c b nh ....................................................................................... 79
Hnh 2-14. Gii m cho cc cng ....................................................................................... 80
Hnh 2-15. Vi mch 74LS245 ............................................................................................ 80
Hnh 2-16. Vi mch cht 74LS373 .................................................................................... 81
Hnh 3-1. Cu trc chung h VK .................................................................................... 85
Hnh 3-2 Giao tip b nh .................................................................................................. 87
Hnh 3-3. Vo ra vi thit b ngoi vi ................................................................................ 89
Hnh 3-4 ghp ni b dao ng .......................................................................................... 89
Hnh 3-5. B nh thi/m ............................................................................................... 90
Hnh 3-6. Truyn nhn ni tip .......................................................................................... 90
Hnh 3-7.Kin trc vi iu khin 8051 ............................................................................... 91
Hnh 3-8. S chn VK AT89C51 ............................................................................... 93
Hnh 3-9. Cng vo/ra ........................................................................................................ 94
Hnh 3-10. Xut mc 0 ....................................................................................................... 94
Hnh 3-11. Tr treo ni ti chn ......................................................................................... 94
Hnh 3-12. xut mc 1........................................................................................................ 94
Hnh 3-13 S kt ni thch anh ................................................................................. 97
Hnh 3-14. Cc vng nh trong AT89C51 ....................................................................... 97
Hnh 3-15. Thc thi b nh chng trnh ngoi ............................................................. 101
Hnh 3-16 - Ghp ni RS232 vi 8051 ............................................................................. 107
Hnh 3-17. Cc thanh ghi ca b Timer 0 ......................................................................... 120
Hnh 3-18. Cc thanh ghi ca b Timer 1 ......................................................................... 120
Hnh 3-19. Timer TMOD .................................................................................................. 120
Hnh 3-20. Timer 0 Mode 0 ........................................................................................... 123
Hnh 3-21. Timer 0 Mode 1 ........................................................................................... 123
Hnh 3-22. Timer 0 Mode 2 ........................................................................................... 123
Hnh 3-23. Timer 0 Mode 3 ........................................................................................... 124
Hnh 3-24. Truyn thng ................................................................................................... 126
Hnh 3-25. Ghp ni RS232 vi 8051 .............................................................................. 128
Hnh 3-26. Truyn thng ni tip Mode 0 ..................................................................... 129
Hnh 3-27. Gin thi gian truyn ni tip Mode 0 ................................................... 130
174
Hnh 3-28. Gin thi gian nhn ni tip Mode 0 ....................................................... 130
Hnh 3-29. Truyn nhn ni tip Mode 1 ...................................................................... 130
Hnh 3-30. Gin thi gian truyn ni tip Mode 1 .................................................... 130
Hnh 3-31. Gin thi gian nhn ni tip Mode 1 ....................................................... 131
Hnh 3-32. Gin thi gian truyn ni tip Mode 2 .................................................... 131
Hnh 3-33. Gin thi gian nhn ni tip Mode 2 ....................................................... 131
Hnh 3-34. Cc tn hiu iu khin ngt ............................................................................ 135
Hnh 3-35. Bng vector ngt v v d ............................................................................... 136
Hnh 4-1. Mch nhp nhy LED n ............................................................................... 142
Hnh 4-2. Mch nhp nhy LED n trong m phng. .................................................... 142
Hnh 4-3. Thut ton: Nhp nhy P1 .......................................................................... 144
Hnh 4-4. Thut ton: Nhp nhy P1-Macro ............................................................. 144
Hnh 4-5. Thut ton: Nhp nhy P1.0........................................................................ 145
Hnh 4-6. Thut ton: TIMER0...................................................................................... 146
Hnh 4-7. Thut ton: Ngt Timer 0 v Timer1 .......................................................... 146
Hnh 4-11. Nhn d liu ni tip m phng .................................................................. 150
Hnh 4-12. Truyn d liu ni tip m phng ............................................................... 151
Hnh 4-14. Gin thi gian c ADC ............................................................................ 153
Hnh 4-15. Mch nguyn l m phng chuyn i ADC0804 ......................................... 153
Hnh 4-16.Cch ghp ni bn phm trong m phng- phm n ghp li ............ 154
Hnh 4-17.Cch ghp ni bn phm trong m phng dng module bn phm . 155
Hnh 4-18. Cu to ng c bc..................................................................................... 157
Hnh 5-2 Cc dng PIC ................................................................................................. 165
175
Danh mc m ngun
M ngun 4-1. Delay ......................................................................................................... 143
M ngun 4-2. DelayX ...................................................................................................... 143
M ngun 4-3. Nhp nhy cng P1 ................................................................................... 144
M ngun 4-4. Nhp nhy cng P1v o trng thi P2.0 ............................................... 144
M ngun 4-5. Nhp nhy P1.0........................................................................................ 145
M ngun 4-6. Timer0 to xung PWM ............................................................................ 146
M ngun 4-7. Timer0 v Timer1 to xung PWM dng ngt.......................................... 146
M ngun 4-8. Lp trnh ngt ngoi bt loa .................................................................. 147
M ngun 4-9. Hin th trn nhiu LED 7 thanh ............................................................. 149
M ngun 4-10. Nhn d liu ni tip ............................................................................. 151
M ngun 4-11. Truyn d liu ni tip .......................................................................... 152
M ngun 4-12. Chuyn i ADC (VK-ADC0804) ..................................................... 154
M ngun 4-13. c ma trn phm .................................................................................. 156
M ngun 4-14. iu khin ng c bc....................................................................... 158
Danh mc bng
Bng 1-1. Tng kt so snh gia Vi x l v Vi iu khin ........................................... 12
Bng 1-2. M BCD ca 10 s thp 0..9............................................................................... 17
Bng 2-1.Phi hp MOD v R/M to ra cc ch a ch ........................................... 31
Bng 2-2. Cc ch a ch............................................................................................... 34
Bng 3-1. Chc nng cc chn ca Port 3 .......................................................................... 96
Bng 3-2. Cc thanh ghi chc nng c bit ....................................................................... 98
Bng 3-3. a ch RAM ni 8051 ....................................................................................... 99
Bng 3-4. k hiu s dng m t lnh ............................................................................... 110
Bng 3-5. Cc lnh vn chuyn d liu ............................................................................ 113
Bng 3-6. Cc lnh thao tc bit v c cng .................................................................... 114
Bng 3-7. Lnh c cng .................................................................................................. 114
Bng 3-8. c cht trong ca cng ra .............................................................................. 114
Bng 3-9. Nhy v iu kin ............................................................................................. 115
Bng 3-10. Cc ton t ...................................................................................................... 117
Bng 3-11. Ch hot ng ca Timer/Counter ............................................................ 121
Bng 3-12. Mt s gi tr thng dng trong truyn thng ni tip ................................. 132
176
Ch mc
74LS245 ............................................... 80
74LS373 ............................................... 81
ACALL ............................................... 116
Accumulator ....................................... 102
ADC ..................................................... 38
ADD ..................................................... 38
ALU ...................................................... 20
AND ..................................................... 40
AT89C51 .............................................. 93
bin ....................................................... 59
B m ................................................ 106
b nh thi ......................................... 106
Bus a ch ............................................ 15
Bus iu khin ..................................... 15
Bus d liu ........................................... 15
Cc bc khi lp trnh .......................... 53
Cc h m ........................................... 16
CALL ........................................... 50, 116
cu trc iu khin ................................ 65
ch a ch .................................. 30, 32
CH A CH CHUI .................. 34
CH A CH CNG ................... 35
CH A CH GIN TIP ........... 33
CH A CH THANH GHI ........ 32
CH A CH TRC TIP .......... 33
CH A CH TC TH .............. 32
CH A CH TNG I ........ 33
Chng trnh con .................................. 61
CMP ..................................................... 44
Cng vo/ra .......................................... 93
CPU ...................................................... 87
CU......................................................... 20
DB....................................................... 116
DEC ...................................................... 38
Delay................................................... 143
a ch ch s ..................................... 108
a ch gin tip ................................ 108
a ch theo thanh ghi ...................... 107
a ch trc tip ................................ 108
a ch tc thi .................................. 107
DIV ....................................................... 38
DPTR .................................................. 104
EEPROM .............................................. 86
EQU .................................................... 117
FOR ...................................................... 66
Gii m a ch ...................................... 79
hng ...................................................... 59
Hp ng ................................................ 52
I/O Ports .............................................. 88
IF THEN ........................................... 65
B mn K thut my tnh Khoa in t
Trng H K thut Cng nghip
IN ......................................................... 37
INC....................................................... 39
INT ....................................................... 51
IRET .................................................... 51
JA/JNBE .............................................. 45
JAE/JNB/JNC ..................................... 45
JB/JC/JNAE ........................................ 46
JBE/JNA .............................................. 46
JE/JZ ................................................... 47
JMP ...................................................... 47
JNE/JNZ .............................................. 48
Khung chng trnh ............................. 58
Kin trc vi iu khin 8051 ................ 91
LCALL ............................................... 116
Lnh b ................................................. 63
LJMP .................................................. 115
LOOP................................................... 49
LOOPE/LOOPZ ................................. 49
Macro ................................................... 63
my mc dn dng ............................... 14
MODEL ............................................... 56
Mt s hm mu ............................... 143
MOV .................................................... 36
MUL..................................................... 39
NEG ..................................................... 39
Ngt ...................................................... 67
Ngt 8051 ........................................... 107
Nh thng minh .................................... 14
NOP ..................................................... 52
NOT ..................................................... 40
OR ........................................................ 40
OUT ..................................................... 36
PC:Program Counter ......................... 87
PCON ................................................. 105
phn cng b x l ............................... 20
POP ...................................................... 37
PROC ................................................... 61
PSW .................................................... 103
PUSH ................................................... 37
RAM .................................................... 86
RCL ..................................................... 41
RCR ..................................................... 41
Registers .............................................. 20
REPEAT .............................................. 67
RET ...................................................... 52
ROL ..................................................... 42
ROM .................................................... 85
ROR ..................................................... 42
rs232 ................................................... 106
SAL ...................................................... 43
177
178
thit b y t .......................................... 14
Timer Mode........................................ 122
Timer Register.................................... 104
TMOD ................................................ 120
T chc b nh 8051 ........................... 97
Ton t ................................................. 60
t kha................................................ 118
UART ................................................. 106
ng dng ca vi iu khin .................. 14
ng dng ca vi iu khin ................. 84
WHILE................................................ 66
XOR ..................................................... 44