You are on page 1of 54

1

8051
NHM 3:
1. NGUYN TRNG I
2. L HUY H
3. NGUYN B QUNH
4. NGUYN TH HNG
5. TRN TH T OANH
6. TRN HUY HONG
7. L TH TRANG
8. NGUYN NG TNG
9. TRN QUANG C
10. L THANH BNH
11. NH T




2


L U

Ngy nay, cc b vi x l v vi iu khin ang c ng dng ngy cng rng ri
trong rt nhiu lnh vc k thut v i sng x hi. Hu ht cc thit b n gin cho
n phc tp, t thit b iu khin t ng, thit b vn phng cho n cc thit b
gia nh u c dung cc b Vi iu khin. Nm 1981, hang Intel cho ra mt mt b
vi iu khin gi l 8051. T pht trin ra rt nhiu vi iu khin mi linh hot
hn. Tuy nhin, trong bi bo co di y, nhm chng em ch xin trnh by v vi
iu khin c bn 8051. Ni dung bao gm 8 phn chnh nh sau:
I. TM HIU CHUNG T VI X L N VI IU KHIN
II. GII THIU PHN CNG 8051
III. TP LNH 8051
IV. LP TRNH HP NG CHO 8051
V. B M / NH THI CA 8051
VI. TRUYN THNG NI TIP CA 8051
VII. NGT V X L NGT TRONG 8051
VIII. MT S NG DNG IU KHIN CA 8051
Chng em xin chn thnh cm n s hng dn nhit tnh ca GV. Ngc Khoa
TVT trng HL gip chng em hon thnh bi bo co. Tuy c nhiu c
gng nhng bi lm khng trnh khi nhng thiu st v sai lm. Knh mong c v
cc bn ng gp kin nhm hon thnh bi tt hn na.
Xin chn thnh cm n!
H Ni, ngy 01 thng 04 nm 2013
Nhm 3
Lp 5- TVT1
Khoa in t vin thng , Trng i hc in lc


3


Ni
dung
Vi x l Vi iu khin
Khi
nim
- VXL l thut ng chung dung cp
n k thut ng dng cc cng ngh vi
in t, cng ngh tch hp v kh nng
x l theo chng trnh vo cc lnh vc
khc nhau.
-VK chnh l cc VXL c tch hp
thm cc ngoi vi( Peripherals) hay chnh
l phn cng.
Phn
cng
- VXL i khi cn c gi l b VXL.
-L 1 linh kin in t c ch to t
cc tranzito thu nh tch hp ln trn 1 vi
mch tch hp n.
-Khi x l trung tm CPU l 1 b VXL
in hnh , ngoi ra nhiu thnh phn
khac trong my tnh cng c b VXL
ring ca n. VD: Card mn hnhvv.
-L 1 my tnh c tch hp trn 1 chip,
n thng c s dng iu khin cc
thit b in t.
-Thc cht n l 1 h thng bao gm 1
VXL c hiu sut dung kt hp vi cc
khi ngoi vi nh: b nh ( Rom, Ram),
cng IO..
-Qui m cc phn cng trong VK thng
nh hn so vi 1 b VXL thng thng.
Tp
lnh

-Hot ng trn cc d liu kiu byte
hoc cc n v d liu ln hn( chui,
vc-t). Cc lnh a dng linh hot kch
thc khng c nh.
- VXl hot ng cn c chng trnh
km theo, cc chng trnh ny iu
khin cc mch logic v t VXL x l
cc d liu cn thit theo yu cu.
chng trnh l tp hp cc lnh c
lu tr trong b nh. Thi hnh lnh gm
3 bc: nhn lnh t b nh, gii m
lnh v thc hin lnh.
- Cung cp cc iu khin xut nhp, x l
hng bit. Cc lnh c kch thc khng
i hoc thay i t.
Chc
nng
-VXL c cc khi chc nng cn thit
ly d liu, x l v xut d liu ra ngoi
sau khi x l.
-Chc nng chnh ca vi x l l x l d
liu vd: cng, tr, nhn, chia

-Khng c kh nng giao tip trc tip
vi cc thit b ngoi vi.
-VK c y chc nng nh 1 VXL.
-Thc hin chc nng chnh l iu khin
ngoi ra cn thc hin cc php ton: s
hc v logic, lp trnh, x l d liu( tnh
ton v vn chuyn).
-Kt ni, trao i d liu vi cc thit b
bn ngoi qua cng I/O.
4

ng
dng
-Dng lm CPU trong cc h thng x l
d liu. c bit hiu qu vi cc bi
ton v h thng ln.
-Bn thn VXL khi ng 1 mnh khng
c nhiu hiu qu s dng nhng khi l 1
phn ca 1 my tnh th hiu qu s dng
ca VXL l rt ln. VXL kt hp vi cc
thit b khc c s dng trong cc h
thng ln, phc tp i hi phi x l 1
lng ln cc php tnh phc tp, c tc
nhanh. Vd: cc h thng sn xut t
ng, cc tng i in thoi, robot c
kh nng hot ng phc tp.
-Dng trong cc thit k nh,t thnh phn,
tiu tn t cng sut,hng iu khin.

-c dng trong thit k cc loi my
tnh nhng. C th dng VK thit k
b iu khin cho cc sn phm dn dng(
nh thng minh, qung co..), thit b y t(
my chp chiu..), sn phm cng nghip(
iu khin ng c, o lng..).
u,
nhc
im
- Mt h thng d ln hay nh nu dng
VXL i hi cc khi mch giao tip rt
phc tp. cc khi ny bao gm: b
nh(cha d liu v thc hin cc
chng trnh), cc mch giao tip ngoi
vi(xut nhp v iu khin tr li). h
thng to ra phc tp chim nhiu khng
gian, mch in phc tp,v vn chnh l
trnh ngi thit k. kt qu l gi
thnh sn phm cao khng ph hp vo
h thng nh.
-VK c kh nng tng t nh kh nng
ca VXL nhng do phn cng n gin
hn n s tin li hn cho ngi dng, kt
cu mch in cng tr nn n gin hn
rt nhiu v c kh nng giao tip vi bn
ngoi. VK xy dng vi phn cng n
gin hn nhng thay vo u im ny l
kh nng x l b gii hn( tc x l
chm hn v kh nng tnh ton t hn,
dung lng chng trnh b gii han).
Thay vo VK c gi thnh thp hn
nhiu so vi VXL, vic s dng n gin,
c dng trong nhiu ng dng c chc
nng n gin, khng i hi tnh ton
phc tp.








5

H
2.1
Vo nm 1981, hng Intel gii thiu mt b vi iu khin c gi l 8051, 8051 l
vi iu khin u tin ca h vi iu khin MCS51. H MCS51 l h 8-bit c kh nng nh
a ch 64KB b nh chng trnh v 64KB b nh d liu.
Vi iu khin 8051 l mt trong nhng vi iu khin 8 bit thng dng nht hin nay,
c nhiu bin th ca 8051 ca nhiu hng sn xut nh: Atmel,Philips/signe-tics, AMD,
Siemens, vi tc x l khc nhau v dung lng ROM trn chip khc nhau nhng tt
c cc lnh u tng thch vi 8051 ban u. iu ny c ngha l, nu chng trnh no
c vit cho mt phin bn 8051 no th cng s chy c vi mi phin bn khc
khng ph thuc vo hng sn xut.

-
Chip 8051 c sn xut vo nm 1980 c cc thng s k thut nh sau:
4K bytes ROOM trong.
128 bytes RAM trong.
4 cng nhp/xut(I/O port) 8-bit (mi cng c rng 8-bit).
2 b nh thi 16-bit.
Mch giao tip ni tip
Khng gian nh chng trnh (m) ngoi 64K.
Khng gian nh d liu ngoi 64K.
B x l bit (thao tc trn cc bit ring r).
210 v tr nh c nh a ch, mi v tr mt bit.
Nhn/chia trong 4 s.
Ngoi ra, trong h MCS-51 cn c mt s chip vi iu khin khc c cu trc tng
ng nh:
6


- chip -51
8051 l mt b x l 8-bit c ngha l CPU ch c th lm vic vi 8-bit d liu ti
mt thi im. D liu ln hn 8-bit c chia thnh cc d liu 8-bit cho x l. Mc d
c th c mt ROOM trn chip cc i l 64K bytes, nhng cc nh sn xut lc cho
xut xng ch vi 4K bytes ROOM trn chip.

- chip
2.2
a
7


-5
S cu trc bn trong vi iu khin 8051 gm:
Khi ALU i km vi cc thanh ghi temp1, temp2 v thanh ghi trng thi
PSW.
B iu khin logic (timing and control).
Vng nh RAM ni v vng nh Flash Rom lu tr chng trnh.
Mch to dao ng ni kt hp vi t thch anh bn ngoi to dao ng.
Khi x l ngt, truyn d liu, khi timer/counter.
Thanh ghi A, B, dptr v 4 port0, port1, port2, port3 c cht v m.
Thanh ghi b m chng trnh PC (program counter).
Con tr d liu dptr (data pointer).
Thanh ghi con tr ngn xp SP (stack pointer).
Thanh ghi lnh IR (instruction register).
Ngoi ra cn c 1 s cc thanh ghi h tr qun l a ch b nh ram ni
bn trong cng nh cc thanh ghi qun l a ch truy xut b nh bn ngoi.
PORT 2 DRIVES
RAM ADDR
REGISTER
RAM
PORT 0
LATCH
PORT 2
LATCH
FLASH
B
REGISTER
STACK
POITER
PROGRAM
ADDRESS
REGISTER
TEMP 2 TEM 1
BUFFER
ALU
PC
INCREMENTER
INTERRUPT, SERIAL PORT
AND TIMER BLOCK
PSW
PROGRAM
COUNTER
TIMMING AND
CONTROL
INSTRUCTION
REGISTER
DPTR
PORT 3
LATCH
PORT 1
LATCH
PORT 3 DRIVES PORT 1 DRIVES OSB
P0.0 - P0.7 P2.0 - P2.7
ACC
REGISTER
Vcc
GND
PSEN
ALE/PROG
EA/Vpp
RST
P1.0 - P1.7 P3.0 - P3.7
PORT 0 DRIVES
8

Cc khi bn trong ca vi iu khin c cc thnh phn nh: khi ALU, thanh ghi
temp1, thanh ghi temp2, thanh ghi b m chng trnh PC, thanh con tr ngn xp, thanh
ghi trng thi PSW, thanh ghi lnh IR, khi gii m lnh, khi iu khin logic.

-6
b

-7. chn c u khin 8051
Vi iu khin 8051 c tt c 40 chn( pin). Trong c 32 chn dnh cho 4 cng
(Port) l P0, P1, P2, P3, mi cng c 8 bit.
c port)
Port 0
9

Port 0 l port c 2 chc nng vi s th t chn 32 39. Trong cc h thng iu
khin n gin s dng b nh bn trong khng dng b nh m rng bn ngoi th port 0
c dng lm cc ng iu khin IO (Input- Output).
Trong cc h thng iu khin c quy m ln s dng b nh m rng bn ngoi th
port 0 c chc nng dn knh bus a ch v bus d liu AD7 - AD0.
Port 1
Port 1 vi s th t chn 1- 8. Port 1 ch c 1 chc nng dng lm cc ng iu
khin xut nhp IO, port 1 khng c chc nng khc.
Port 2
Port 2 l port c 2 chc nng vi s th t chn 21 28. Trong cc h thng iu
khin n gin s dng b nh bn trong khng dng b nh m rng bn ngoi th port 2
c dng lm cc ng iu khin I/O (Input/Output).
Trong cc h thng iu khin c quy m ln s dng b nh m rng bn ngoi th
port 2 c chc nng l bus a ch cao A8 - A15.
Port 3
Port 3 l port c 2 chc nng vi s th t chn 10 -17. Khi khng hot ng xut
nhp, cc chn ca port ny c nhiu chc nng
-8


d Cc ng tn hi u khin
Ng tn hiu PSEN (Program Store ENable)

PSEN l tn hiu ng ra chn 29 c tc dng cho php c b nh chng trnh m
rng thng ni n chn OE (output enable hoc RD) ca Eprom cho php c cc byte
m lnh.
10

Khi c giao tip vi b nh chng trnh bn ngoi th mi dng n PSEN, nu
khng c giao tip th chn PSEN b trng.
PSEN mc thp trong thi gian vi iu khin 8051 ly lnh. Cc m lnh ca
chng trnh c t Eprom qua bus d liu v c cht vo thanh ghi lnh IR bn trong
8051 gii m lnh.
Khi 8051 thi hnh chng trnh trong EPROM ni th PSEN mc logic 1.
Ng tn hi u khin ALE (Address Latch Enable)
Khi vi iu khin 8051 truy xut b nh bn ngoi, port 0 c chc nng l bus ti a
ch v bus d liu [AD7 AD0] do phi tch cc ng d liu v a ch. Tn hiu ra
ALE chn th 30 dng lm tn hiu iu khin gii a hp cc ng a ch v d liu
khi kt ni chng vi IC cht.

-9 ghp n u khin 8951 vi IC cht, mch Reset,
t thch anh
Tn hiu ra chn ALE l mt xung trong khong thi gian port 0 ng vai tr l a
ch thp nn vic cht a ch c thc hin 1 cch hon ton t ng. Cc xung tn hiu
ALE c tc bng 1/6 ln tn s dao ng ca t thch anh gn vo vi iu khin v c
th dng tn hiu xung ng ra ALE lm xung clock cung cp cho cc phn khc ca h
thng. Trong ch lp trnh cho b nh ni ca vi iu khin th chn ALE c dng lm
ng vo nhn xung lp trnh t bn ngoi lp trnh cho b nh flash rom trong 8051.
Ng tn hiu EA (External Access)
Tn hiu vo EA chn 31 thng ni ln mc 1 hoc mc 0. Nu ni EA ln mc
logic 1 (+5v) th vi iu khin s thi hnh chng trnh t b nh ni. Nu ni EA vi mc
logic 0 (0V) th vi iu khin s thi hnh chng trnh t b nh ngoi. Cc phin bn ca
8051 cn s dng EA lm chn nhn in p cp in 21V (Vpp) cho vic lp trnh
EPROM ni (np EPROM).
11

Ng tn hiu RST (Reset)
Ng vo RST chn 9 l ng vo Reset ca 8051. Khi cp in cho h thng hoc
khi nhn nt reset th mch s reset vi iu khin. Khi reset th tn hiu reset phi mc cao
t nht l 2 chu k my, khi cc thanh ghi bn trong c np nhng gi tr thch hp
khi ng h thng.
e
Cc ng vo b d ng XTAL1, XTAL2
B dao ng c c tch hp bn trong 8051, khi s dng 8051 ngi thit k ch
cn kt ni thm t thch anh v cc t nh hnh v trong s hnh 2-5. Tn s t thch
anh thng s dng cho 8051 l 12Mhz n 24Mhz.

-10 d
) c ni ln ngun 5V
Chn 20 GND ni mass

Vi iu khin 8051 c b nh ni bn trong v c thm kh nng giao tip vi b nh
bn ngoi nu b nh bn trong khng kh nng lu tr chng trnh. B nh ni bn
trong gm c 2 loi b nh: b nh d liu v b chng trnh. B nh d liu c 256 byte,
b nh chng trnh c dung lng 4kbyte. B nh m rng bn ngoi cng c chia ra
lm 2 loi b nh: b nh d liu v b nh chng trnh. Kh nng giao tip l 64kbyte
cho mi loi. Hnh 3.1.5a minh ha kh nng giao tip b nh ca vi iu khin 8051. B
nh m rng bn ngoi v b nh chng trnh bn trong khng c g c bit ch c chc
nng lu tr d liu v m chng trnh nn khng cn phi kho st. B nh ram ni bn
trong l mt b nh c bit ngi s dng vi iu khin cn phi nm r cc t chc v cc
chc nng c bit ca b nh ny.
12


Hnh 2-11. Bng tm tt cc vng nh 8051.
RAM bn trong 8051 c phn chia nh sau:
Cc bank thanh ghi c a ch t 00H n 1FH.
RAM a ch ha tng bit c a ch t 20H n 2FH.
RAM a dng t 30H n 7FH.
Cc thanh ghi chc nng c bit t 80H n FFH.
a a ch t 00H 1FH
32 byte thp ca b nh ni c dnh cho 4 bank thanh ghi.
B lnh 8051 h tr thm 8 thanh ghi c tn l R0 n R7 v theo mc nh sau khi
reset h thng th cc thanh ghi R0 n R7 c gn cho 8 nh c a ch t 00H n 07H.
Cc d liu c dng thng xuyn nn lu tr mt trong cc thanh ghi ny.
13

Do c 4 bank thanh ghi nn ti mt thi im ch c mt bank thanh ghi c truy
xut bi cc thanh ghi R0 n R7, chuyn i vic truy xut cc bank thanh ghi ta phi
thay i cc bit chn bank trong thanh ghi trng thi.
Ngi lp trnh dng vng nh 4 bank thanh ghi lu tr d liu phc v cho vic
x l d liu khi vit chng trnh.
Chc nng chnh ca 4 bank thanh ghi ny l nu trong h thng c s dng nhiu
chng trnh th chng trnh th nht c th s dng ht cc thanh ghi R0 n R7 ca
bank0, khi bn chuyn sang chng trnh th 2 x l mt cng vic g v vn s dng
cc thanh ghi R0 n R7 lu tr cho vic x l d liu m khng lm nh hng n cc
d liu R0 n R7 trc y v khng cn phi thc hin cng vic ct d liu th cch
nhanh nht l bn gn nhm thanh ghi R0 n R7 cho bank1 l xong. Tng t bn c th
m thm hai chng trnh na v gn cho cc bank 3 v 4.
b a ch ha t a ch t n 2FH
RAM c th truy xut tng bit. Vi iu khin 8051 c 210 nh c th truy xut tng
bit, trong c 128 bit nm cc cc nh byte c a ch t 20H n 2FH v cc bit cn
li cha trong nhm thanh ghi c chc nng c bit.

Bng 2-7. Cu trc b nh d li u khin 8051
a
ch
byte
a ch bit

a ch byte a ch bit

7F
RAM a dng
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW

30 B8 - - - BC BB BA B9 B8 IP
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40 99 SBUF
14

27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18 8D TH1
22 17 16 15 14 13 12 11 10 8C TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B TL1
20 07 06 05 04 03 02 01 00 8A TL0
1F
Bank 3
89 TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
17
Bank 2
87 PCON
10
0F
Bank 1
83 DPH
08 82 DPL
07 Bank thanh ghi 0
(mc nh cho gn cho R0 -R7)
81 SP
00 80 87 86 85 84 83 82 81 80 P0
RAM ni Cc thanh ghi c chc nng c bit
Cc nh cho php truy xut tng bit v cc lnh x l bit l mt th mnh ca vi
iu khin. Cc bit c th c t, xa, AND, OR bng 1 lnh n trong khi x l
cc bit th vi x l vn x l c nhng phi s dng rt nhiu lnh t c cng mt
kt qu. Cc port cng c th truy xut c tng bit.
128 nh bit cho php truy xut tng bit v cng c th truy xut byte ph thuc vo
lnh c dng l lnh x bit hay lnh x l byte. Ch a ch ca nh byte v bit trng
nhau.
V d: t bit 67H ln 1 ta c th s dng mt trong 2 lnh sau:
MOV 2Ch, #10000000b ;hoc
SETB 67h
Ngi lp trnh dng vng nh ny lu tr d liu phc v cho vic x l d liu
byte hoc bit. Cc d liu x l bit nn lu vo vng nh ny.
c d a ch t 30H 7FH
Vng nh ram a dng gm c 80 byte c a ch t 30H n 7FH vng nh ny
khng c g c bit so vi 2 vng nh trn. Vng nh bank thanh ghi 32 byte t 00H n
1FH cng c th dng lm vng nh ram a dng mc d cc cc nh ny c chc
nng nh trnh by.
Mi a ch trong vng RAM a dng u c th truy xut t do dng kiu a ch
trc tip hoc gin tip.
d Cc thanh ghi c ch c bit
15

Cc thanh ghi ni ca 8051 c truy xut ngm nh bi b lnh.
Cc thanh ghi trong 8051 c nh dng nh mt phn ca RAM trn chip v vy
mi thanh ghi s c mt a ch (ngoi tr thanh ghi b m chng trnh v thanh ghi lu
tr m lnh v cc thanh ghi ny c chc nng c nh). Cng nh cc thanh ghi R0 n
R7, vi iu khin 8051 c 21 thanh ghi c chc nng c bit nm vng trn ca RAM ni
c a ch t 80H n FFH.
Trong 128 nh c a ch t 80H n FFH th ch c 21 thanh ghi c chc nng c
bit c xc nh cc a ch cn cc nh cn li th cha thit lp v trong tng lai s
c cc nh thit k vi iu khin thit lp thm khi s c cc vi iu khin th h mi
hn.
ng cc nh a ch 80H, 90H, A0h, B0h
L thanh ghi con tr ngn xp SP (stack pointer) - c chc nng qun l
a ch ca b nh ngn xp. B nh ngn xp dng lu tr tm thi cc d
liu trong qu trnh thc hin chng trnh ca vi iu khin.
Cc lnh lin quan n ngn xp bao gm cc lnh ct d liu vo ngn
xp (lnh push) v ly d liu ra khi ngn xp (lnh pop).
Lnh ct d liu vo ngn xp s lm tng SP trc khi ghi d liu vo.
Sau lnh ly ra khi ngn xp s lm gim SP.
B nh ngn xp ca 8051 nm trong RAM ni v b gii hn v cch truy
xut a ch - ch cho php truy xut a ch gin tip. Dung lng b nh ngn
xp ln nht l 128 byte ram ni ca 8051.
Khi Reset 8051 th thanh ghi SP s mang gi tr mc nh l 07H v d
liu u tin s c ct vo nh ngn xp c a ch 08H.
Ngn xp c truy xut trc tip bng cc lnh PUSH v POP lu tr
tm thi v ly li d liu, hoc truy xut ngm bng lnh gi chng trnh con
(ACALL, LCALL) v cc lnh tr v (RET, RETI) lu tr a ch ca b m
chng trnh khi bt u thc hin chng trnh con v ly li a ch khi kt
thc chng trnh con.
Thanh ghi con tr d liu DPTR ( nh a ch 82h v 83h)
L 2 thanh ghi DPL (byte thp) c a ch l 82H v DPH (byte cao) c a
ch 83H. Hai thanh ghi ny c th s dng c lp lu tr d liu v c th kt
hp li to thnh 1 thanh ghi 16 bit c tn l DPTR v gi l con tr d liu -
c dng lu a ch 16 bit khi truy xut d liu ca b nh d liu bn
ngoi.
Thanh ghi PCON ( nh a ch 87h)
L thanh ghi PCON (power control) c chc nng iu khin cng sut khi
vi iu khin lm vic hay ch ch. Khi vi iu khin khng cn x l g
16

na th ngi lp trnh c th lp trnh cho vi iu khin chuyn sang ch ch
gim bt cng sut tiu th nht l khi ngun cung cp cho vi iu khin l
pin.
Cc thanh ghi phc v cho Timer/Counter (cc nh a ch t 88h
n 8dh)
L cc thanh ghi phc v cho 2 timer/ counter T1, T0.
Thanh ghi TCON(timer control): thanh ghi iu khin timer / counter.
Thanh ghi TMOD (timer mode): thanh ghi la chn ch (mode) hot
ng cho timer/counter.
Thanh ghi TH0 v TL0 kt hp li to thnh 1 thanh ghi 16 bit c chc
nng lu tr xung m cho timer/counter T0. Tng t cho 2 thanh ghi TH1 v
TL1 kt hp li lu tr xung m cho timer/counter T1. Kh nng lu tr s
lng xung m c l 65536 xung.
Cc thanh ghi phc v truyn thng ni tip (cc nh a ch t 98h
n 99h)
L 2 thanh ghi SCON v SBUF: SCON (series control): thanh ghi iu
khin truyn d liu ni tip. SBUF (series buffer): thanh ghi m d liu truyn
ni tip. D liu mun truyn i th phi lu vo thanh ghi SBUF v d liu nhn
v ni tip cng lu thanh ghi ny. Khi c s dng truyn d liu th phi s
dng 2 thanh ghi ny.
Cc thanh ghi phc v ngt (cc nh a ch t n B8h)
L 2 thanh ghi IE v IP thanh ghi IE (interrupt enable): thanh ghi iu
khin cho php / khng cho php ngt. IP (interrupt priority): thanh ghi iu
khin u tin ngt. Khi c s dng n ngt th phi dng n 2 thanh ghi ny.
Mc nhin cc thanh ghi ny c khi to ch cm ngt.
Thanh ghi tr W Wd)
Thanh ghi trng thi chng trnh a ch D0H c tm tt nh sau:
BIT
PSW.7 C hoc CY D7H Cary Flag: C nh
PSW.6 AC D6H Auxiliary Cary Flag: C nh ph
PSW.5 F0 D5H Flag 0 cn gi l c Zero k hiu l Z
PSW4 RS1 D4H Register Bank Select 1: bit la chn bank thanh ghi.
PSW.3 RS0 D3H Register Bank Select 0: bit la chn bank thanh ghi.
00 = Bank 0; nh c address 00H07H gn cho R0-R7
01 = Bank 1; nh c address 08H0FH gn cho R0-R7
17

10 = Bank 2; nh c address 10H17H gn cho R0-R7
11 = Bank 3; nh c address 18H1FH gn cho R0-R7
PSW.2 OV D2H Overflow Flag: c trn s nh phn c du.
PSW.1 - D1H Reserved: cha thit k nn cha s dng c.
PSW.0 P D0H Even Parity Flag: c chn l.
Chc nng tng bit trng thi:
C Carry CY (Carry Flag): C nh c tc dng kp. C C c s dng
cho cc lnh ton hc: C = 1 nu php ton cng c trn hoc php tr c
mn, C = 0 nu php ton cng khng trn v php tr khng c mn.
C Carry ph AC (Auxiliary Carry Flag): Khi cng nhng gi tr BCD
(Binary Code Decimal), c nh ph AC c set [AC=1] nu kt qu 4 bit
ln hn 09H, ngc li AC= 0. C AC c dng chnh s BCD khi
thc hin lnh cng 2 s BCD.
C 0 (Flag 0): C 0 (F0) cn gi l c zero, c zero =1 khi kt qa x l
bng 0 v c zero = 0 khi kt qu x l khc 0.
Cc bit chn bank thanh ghi truy xut: Hai bit RS1 v RS0 dng thay
i cch gn 8 thanh ghi R7 R0 cho 1 trong 4 bank thanh ghi. Hai bit ny
s b xa sau khi reset vi iu khin v c thay i bi chng trnh ca
ngi lp trnh. Hai bit RS1, RS0 = 00, 01, 10, 11 s c chn Bank
thanh ghi tch cc tng ng l Bank 0, Bank1, Bank2, Bank3.
RS1 RS0 Bank thanh ghi c la chn
0 0 Bank 0
0 1 Bank 1
1 0 Bank 2
1 1 Bank 3
C trn OV (Over Flag): Khi cc s c du c cng hoc tr vi nhau,
phn mm c th kim tra bit ny xc nh xem kt qu c nm trong
vng gi tr xc nh hay khng. Vi s nh phn 8 bit c du th s dng
t 0 n +127, s m t -128 n 1. Nu kt qu cng 2 s dng ln
hn +127 hoc cng 2 s m kt qu nh hn 128 th kt qu vt ra
ngoi vng gi tr cho php th khi ALU trong vi iu khin s lm bit
OV = 1. Khi cng cc s nh phn khng du th khng cn quan tm n
bit OV.
Bit Parity (P): Bit P t ng c Set hay Clear mi chu k my lp
Parity chn vi thanh ghi A. m cc bit 1 trong thanh ghi A cng vi bit
18

Parity lun lun l s chn. V d thanh ghi A cha nh phn 10101101B
th bit P set ln mt cho bit tng s bit 1 trong thanh ghi A v c bit P
to thnh s chn. Bit Parity thng c dng kt hp vi nhng th tc
truyn d liu ni tip to ra bit Parity cho d liu trc khi truyn i
hoc kim tra bit Parity sau khi nhn d liu.
Thanh ghi tng A ( nh a ch E0h
Thanh ghi A l mt thanh ghi quan trng ca vi x l c chc nng lu tr
d liu khi tnh ton. Hu ht cc php ton s hc v cc php ton logic u
xy ra gia ALU v Accumulator. Mt chc nng quan trng khc ca thanh ghi
Accumulator l truyn d liu t b nh hoc t cc thanh ghi bn trong ca
vi x l ra cc thit b iu khin bn ngoi th d liu phi cha trong thanh
ghi Accumulator.
Thanh ghi B ( nh a ch F0h)
Thanh ghi B a ch F0H c dng cng vi thanh ghi A thc hin
cc php ton nhn chia. Lnh MUL A B: s nhn nhng gi tr khng du 8 bit
vi 8 bit trong hai thanh ghi A v B, ri tr v kt qu 16 bit trong A (byte cao)
v B(byte thp). Lnh DIV A B: ly gi tr trong thanh ghi A chia cho gi tr
trong thanh ghi B, kt qu nguyn lu trong A, s d lu trong B. Thanh ghi B
c th c dng nh mt thanh ghi m trung gian nhiu chc nng.

Khi reset th tn hiu reset phi mc cao t nht l 2 chu k my, khi cc thanh
ghi bn trong c np nhng gi tr thch hp khi ng h thng.
Trng thi ca tt c cc thanh ghi trong 89C51 sau khi reset h thng c tm tt
nh sau:
Thanh ghi d
B m chng trnh PC
Thanh ghi tch lyA
Thanh ghi B
Thanh ghi trng thi PSW
Thanh ghi con tr SP
DPTR
Port 0 n port 3
IP
IE
Cc thanh ghi nh thi
SCON
SBUF
PCON (HMOS)
0000H
00H
00H
00H
07H
0000H
FFH
xxx0 0000 B
0xx0 0000 B
00H
00H
00H
0xxx xxxxB
19

PCON (CMOS) 0xxx 0000B
Thanh ghi quan trng nht l thanh ghi b m chng trnh PC = 0000H sau khi
reset. Sau khi reset xong vi iu khin lun bt u thc hin chng trnh ti a ch 0000H
ca b nh chng trnh nn cc chng trnh cho vi iu khin lun bt u ti a ch
0000H.
Ni dung ca RAM trn chip khng b thay i bi tc ng ca ng vo reset (c
ngha l vi iu khin ang s dng cc thanh ghi lu tr d liu nhng nu vi iu khin
b reset th d liu trong cc thanh ghi vn khng i).

-11.

20

CA H U KHIN 8051
3.1 M
Ging nh mt cu vn c to nn bng cch ghp cc k t li vi nhau, mt
chng trnh cng l mt s kt hp cc lnh iu khin c bn nh: ADD, MOVE hoc
JUMP, phn ny s trnh by v tp lnh ca h MCs 8051 thng qua cc cch nh a ch
d liu v cc chng trnh in hnh.
Tp lnh ca MCs 8051 c ti u ha cho cc ng dng 8 bt nhm tng tc ,
vi cc cch nh a ch RAM trong ngn gn gip d dng cho vic truy xut cc d liu
c cu trc nh, vi cc lnh v bt rt thch hp cho yu cu iu khin thit b ngoi vi
cng nh cho cc yu cu x l logic. Tp lnh ca 8051 c m lnh di 8 bt nn tng s
lnh l 28 = 256 lnh, trong c 255 lnh nh ngha v mt lnh cha xc nh. Mt
s lnh cn b sung thm mt hoc hai byte d liu hoc a ch.
Trong tp lnh c 139 lnh c di 1 byte, 92 lnh 2 byte v 24 lnh 3 byte
8051
Cc kiu nh a ch cho php nh r ni ly d liu hoc ni nhn d liu ty
thuc vo cch thc s dng lnh ca ngi lp trnh. Vi iu khin 8051 c 8 kiu nh a
ch nh sau:
Kiu nh a ch dng thanh ghi.
Kiu nh a ch trc tip.
Kiu nh a ch gin tip.
Kiu nh a ch tc thi.
Kiu nh a ch tng i.
Kiu nh a ch tuyt i.
Kiu nh a ch di.
Kiu nh a ch ch s.
3.2.1 Ki a ch dng thanh ghi (Register Addressing)
Kiu ny thng c dng cho cc lnh x l d liu m d liu lun lu trong cc
thanh ghi. i vi vi iu khin th m lnh thuc kiu ny ch c 1 byte.
V d:
MOV A, R1 ;copy noi dung thanh ghi R1 vao thanh ghi A
3.2.2 Ki a ch trc tip (Direct Addressing)
Kiu ny thng c dng truy xut d liu ca bt k nh no trong 256 byte
b nh d liu ni ca vi iu khin 8051.
Cc lnh thuc kiu ny thng c m lnh 2 byte: byte th nht l m lnh, byte th
2 l a ch ca nh
V d:
MOV A, 05H ;copy noi dung o nho co dia chi 05H vao
;thanh ghi A
3.2.3 a ch gin tip (Indirect Addressing)
Kiu nh a ch gin tip c tng trng bi k hiu @ v c t trc cc
thanh ghi R0, R1 hay DPTR. R0 v R1 c th hot ng nh mt thanh ghi con tr, ni
21

dung ca n cho bit a ch ca mt nh trong RAM ni m d liu s ghi hoc s c.
Cn DPTR dng truy xut nh ngoi. Cc lnh thuc dng ny ch c 1 byte.
V d:
MOV A, @R1 ;copy noi dung o nho co dia chi dat trong
;Thanh ghi R1 vao thanh ghi A
3.2.4 a ch tc thi (Immediate Addressing)
Kiu nh a ch tc thi c tng trng bi k hiu # v c t trc mt hng
s. Lnh ny thng dng np 1 gi tr l 1 hng s byte th 2 (hoc byte th 3) vo
thanh ghi hoc nh.
V d:
MOV A, #30H ;nap du lieu 30H vao thanh ghi A
3.2.5 a ch i
Kiu nh a ch tng i ch s dng vi nhng lnh nhy. Lnh ny c m lnh 2
byte, byte th 2 chnh l gi tr lch tng i:
Ni nhy n thng c xc nh bi nhn (label) v trnh bin dch s tnh ton
gi tr lch.
nh v tng i c u im l m lnh c nh, nhng khuyt im l ch nhy
ngn trong phm vi -128127 byte [256byte], nu ni nhy n xa hn th lnh ny khng
p ng c s c li.
V d:
SJMP X1 ;nhay den nhan co ten
a ch tuy i
Kiu nh a ch tuyt i c dng vi cc lnh ACALL v AJMP. Cc lnh ny
c m lnh 2 byte.
nh a ch tuyt i c u im l m lnh ngn (2 byte), nhng khuyt im l m
lnh thay i v gii hn phm vi ni nhy n, gi n khng qu 2 kbyte.
V d:
AJMP X1 ;nhay den nhan co ten X1 nam trong tam vuc
;2Kbyte
3.2.6 a ch di (Long Addressing)
Kiu nh a ch di c dng vi lnh LCALL v LJMP. Cc lnh ny c m lnh
3 byte trong c 2 byte (16bit) l a ch ca ni n. Cu trc m lnh l 3 byte. nh
a ch di l c th gi 1 chng trnh con hoc c th nhy n bt k vng nh no vng
nh 64K.
V d:
LJMP X1 ; nhay den nhan co ten X1 nam trong tam vuc
;64Kbyte
3.2.7 a ch ch s (Index Addressing)
Kiu nh a ch ch s dng mt thanh ghi c bn: l b m chng trnh PC hoc
b m d liu DPTR kt hp vi mt gi tr lch (offset) cn gi l gi tr tng i
[thng lu trong thanh ghi] to ra 1 a ch ca nh cn truy xut hoc l a ch ca
ni nhy n. Vic kt hp c minh ha nh sau:
22


V d:
MOVC A, @A + DPTR ;lay du lieu trong o nho DPTR+A de
;nap vao thanh ghi A
3.3 T 8051
kho st tp lnh th phi thng nht mt s qui nh v cc t ng k hiu trong
tp lnh thng c s dng:
Direct tng trng cho nh ni c a ch Direct.
Rn tng trng cho cc thanh ghi t thanh ghi R0 n thanh ghi R7.
@Ri tng trng cho nh c a ch lu trong thanh ghi Ri v Ri ch c 2 thanh ghi
l R0 v R1.
Cc lnh thng xy ra gia cc i tng sau:
+ Thanh ghi A.
+ Thanh ghi Rn.
+ nh c a ch direct.
+ nh c a ch lu trong thanh ghi @Ri.
+ D liu 8 bit #data.
+ Addr11 l a ch 11 bit t A11 A0: a ch ny phc v cho lnh nhy hoc
lnh gi chng trnh con trong phm vi 2 kbyte.
+ Addr16 l a ch 16 bit t A15 A0: a ch ny phc v cho lnh nhy v lnh
gi chng trnh con xa trong phm vi 64 kbyte chnh l a ch nhy n, hoc a
ch ca chng trnh con.
3.3.1
1. Lnh cng khng nh
ADD A, Rn ;Cng ni dung thanh ghi A vi ni dung thanh ghi Rn,
kt qu lu trong thanh ghi A.
V d: ADD A, R0 ;A=91h, (C)=1.
ADD A, direct ;Cng ni dung ca nh c a ch direct vi ni dung
thanh ghi A, kt qu cha thanh ghi A.
V d: Gi s A c ni dung 0D9h v nh c a ch 30h lu ni dung 0B8h, lnh:
ADD A, 30h ;A=91h, (C)=1.
ADD A, @Ri ;Cng ni dung ca nh c a ch cha trong thanh ghi
Ri vi thanh ghi A, kt qa lu tr trong thanh ghi A.
ADD A, #data ;Cng d liu data 8 bit (d0 n d7) vi ni dung thanh
ghi A, kt qu lu tr trong A.
23

2. Lnh cng c nh
ADDC A, Rn ;Cng ni dung thanh ghi A vi ni dung thanh ghi Rn
vi bit C, kt qu lu trong thanh ghi A.
ADDC A, direct ;Cng ni dung ca nh c a direct ni dung thanh
ghi A v bit C, kt qu cha thanh ghi A.
ADDC A, @Ri ;Cng ni dung ca nh c a ch cha trong thanh ghi
Ri vi thanh ghi A vi bit C, kt qu lu tr trong thanh ghi A.
ADDC A, #data ;Cng d liu data 8 bit (d0 n d7) vi ni dung thanh
ghi A v bit C, kt qu lu tr trong A.
3. Lnh tr c nh
SUBB A, Rn ;Tr ni dung thanh ghi A cho ni dung thanh ghi Rn v
tr cho c Carry, kt qu lu trong thanh ghi A.
V d: Gi s A c ni dung 0B9h, thanh ghi R0 c ni dung l 5Ah v (C)=1, lnh:
SUBB A, R0 ;A=5Eh, (C)=0.
SUBB A, direct ;Tr ni dung thanh ghi A cho ni dung ca nh c a
ch direct v tr cho c Carry, kt qu cha thanh ghi A
SUBB A, @Ri ;Tr ni dung ca thanh ghi A cho d liu ca nh c
a ch cha trong thanh ghi Ri v tr cho c carry, kt
qu lu tr trong thanh ghi A.
SUBB A, #data ;Tr ni dung thanh ghi A cho d liu 8 bit d0 n d7 v
tr cho c carry, kt qa lu tr trong A.
4. L )
INC A ;Tng ni dung thanh ghi A ln 1.
V d: Gi s A c ni dung FFh, lnh:
INC A ;A=00h.
INC Rn ;Tng ni dung thanh ghi Rn ln 1.
INC direct ;Tng ni dung ca nh c a ch trc tip ln 1.
INC @Ri ;Tng ni dung ca nh c a ch cha trong thanh ghi
Ri ln 1.
INC dptr ;Tng ni dung ca thanh ghi con tr d liu dptr ln 1.
5. Lnh gim: (Decrement: gim xu )
DEC A ;Gim ni dung thanh ghi A xung 1.
24

DEC Rn ;Gim ni dung thanh ghi Rn xung 1.
DEC direct ;Gim ni dung ca nh c a ch direct byte th 2 xung 1.
DEC @Ri ;Gim ni dung ca nh c a ch cha trong thanh ghi
Ri xung 1.
6. Lnh nhn thanh ghi A vi thanh ghi B
MUL AB ;Ni dung ca thanh ghi A nhn vi ni dung ca thanh
ghi B, kt qa l mt d liu 16 bit, 8 bit thp lu tr
trong thanh ghi A, 8 bit cao lu tr trong thanh ghi B.
V d: Gi s thanh ghi A c ni dung l 50h, thanh ghi B c ni dung 0A0h , lnh:
MUL AB ;50h*A0h= 3200h, (A) = 00, (B) = 32h.
7. Lnh chia thanh ghi A cho thanh ghi B
DIV AB ;Ni dung ca thanh ghi A chia cho ni dung ca thanh
ghi B, kt qa ca php chia lu tr trong thanh ghi A,
s d lu tr trong thanh ghi B.
8. L u chnh thp phn ni dung thanh ghi A
DA A
ngha: Nu 4 bit thp A3A2A1A0>9 hoc bit AC = 1th A3A2A1A0 + 6, kt qa
lu tr li trong A. Nu 4 bit cao A7A6A5A4 > 9 hoc bit Cy = 1 th A7A6A5A4 + 6, kt
qu lu tr li thanh ghi A. Kt qu sau cng trong thanh ghi A l s BCD. Lnh DA A ch
dng sau lnh ADD m khng bao gi dng sau lnh INC.
3.3.2
9. Lnh nhn logic
ANL A, Rn ;Ni dung thanh ghi A and vi ni dung thanh ghi Rn, kt
qu lu tr trong thanh ghi A.
V d:
MOV A , #10110011b ;A= 10110011b
MOV R0, #11001011b ;R0=11001011b
ANL A, R0 ;A= 10000011b
ANL A, direct ;Ni dung thanh ghi A and vi ni dung ca nh c a
ch direct, kt qu cha thanh ghi A.
ANL A, @Ri ;Ni dung thanh ghi A and vi nh c a ch cha
trong thanh ghi Ri, kt qu lu tr trong thanh ghi A.
ANL A, #data ;Ni dung ca thanh ghi A and vi d liu d0 n d7 , kt
25

qu lu tr trong thanh ghi A.
ANL direct, A ;Ni dung nh c a ch direct and vi ni dung ca
thanh ghi A, kt qa lu tr vo nh.
V d:
MOV A , #10110011b
MOV 10h, #11110000b
ANL 10h, A ;o nho 10h=101100000b
ANL direct, #data ;Ni dung ca nh c a ch direct and vi 8 bit d liu
8 bit, kt qu lu tr vo nh.
10. Lnh cng logic
ORL A, Rn ;Ni dung thanh ghi A or vi ni dung thanh ghi Rn, kt
qu lu
tr trong thanh ghi A.
V d:
MOV A , #10110011b
MOV R0, #11001011b
ORL A, R0 ;A=11111011b.
ORL A, direct ;Ni dung thanh ghi A or vi ni dung ca nh c a
ch direct, kt qa cha thanh ghi A.
ORL A, @Ri ;Ni dung thanh ghi A or vi nh c a ch cha trong
thanh ghi Ri, kt qu lu tr trong thanh ghi A.
ORL A, #data ;Ni dung ca thanh ghi A or vi d liu 8 bit data (t d0
n d7), kt qu lu tr trong thanh ghi A.
ORL direct, A ;Ni dung nh c a ch direct or vi ni dung ca
thanh ghi A, kt qa lu tr trong nh c a ch direct.
ORL direct, #data ;Ni dung ca nh c a ch direct or vi d liu 8 bit
(t d0 n d7) byte th 3, kt qu lu tr trong nh.
11. Lnh c o logic
XRL A, Rn ;Ni dung thanh ghi A ex-or vi ni dung thanh ghi Rn,
kt qu u tr trong thanh ghi A.
V d:
MOV A , #10110011b
26

MOV R0, #11001011b
XRL A, R0 ;A=01111000b.
XRL A, direct ;Ni dung thanh ghi A ex-or vi ni dung ca nh c
a ch direct, kt qa cha thanh ghi A.
XRL A, @Ri ;Ni dung thanh ghi A ex-or vi nh c a ch cha
trong thanh ghi Ri, kt qu lu tr trong thanh ghi A.
XRL A, #data ;Ni dung ca thanh ghi A ex-or vi d liu datat, kt qa
lu tr trong thanh ghi A.
XRL direct, A ;Ni dung nh c a ch direct ex-or vi ni dung ca
thanh ghi A, kt qa lu tr vo nh.
XRL direct, #data ;Ni dung ca nh c a ch direct ex-or vi 8 bit d
liu data 8 bit, kt qu lu tr vo nh.
12. Lnh xa ni dung thanh ghi A
CLR A ;Ni dung thanh ghi A bng zero.
13. Lnh b ni dung thanh ghi A
CPL A ;Ni dung thanh ghi A c ly b 1, kt qu cha A.
V d:
MOV A, #10110011b
CPL A ;A=01001100b.
14. Lnh xoay tri ni dung thanh ghi A
RL A ;(rotate to the left)
ngha: Ni dung thanh ghi A c xoay tri 1 bit minh ha nh hnh v.

V d:
MOV A, #1011 0011b
RL A
Gi tr ban u ca C ta khng cn quan tm n. Kt qu sau khi xoay th (A) =
0110 0111b v c (C) = 1 l do bit MSB ca thanh ghi chuyn sang.
15. Lnh xoay tri ni dung thanh ghi A v bit carry
RLC A
ngha: Ni dung thanh ghi A v bit C c xoay tri 1 bit.
A7 A0 C
27


V d: gi s cho c C = 0 trc khi thc hin lnh
MOV A , #10110011b
RLC A ;A=01100110b, C=1
16. Lnh xoay phi ni dung thanh ghi A
RR A ;(rotate to the right)
ngha: Ni dung thanh ghi A c xoay phi 1 bit ngc vi lnh RL A.
17. Lnh xoay phi ni dung thanh ghi A v bit carry
RRC A
ngha: Ni dung ca A v bit C c xoay phi 1 bit ngc vi lnh RLC A.
18. Lnh xoay 4 bit thanh ghi A
SWAP A ;Hon chuyn 4 bit thp v 4 bit cao trong thanh ghi A.
V d:
MOV A, #3EH
SWAP A ;A=E3H
3.3.3 d d
19. Lnh MOV
MOV A, Rn ;Chuyn ni dung ca thanh ghi Rn vo thanh ghi A, ni
dung thanh ghi Rn vn gi nguyn.
V d: Gi s thanh ghi R0 c ni dung l 32h , lnh:
MOV A, R0 ;A=32h, R0=32h.
Gi tr ban u cha trong A th khng cn quan tm.
MOV A, direct ;Chuyn ni dung ca nh trong Ram ni c a ch
direct vo thanh ghi A.
MOV A, @Ri ;Chuyn ni dung nh trong Ram ni, c a ch cha
trong thanh ghi Ri, vo thanh ghi A.
MOV A, #data ;Np d liu 8 bit data (d0 n d7) vo thanh ghi A.
MOV Rn, A ;Chuyn ni dung ca thanh ghi A vo thanh ghi Rn.
MOV Rn, direct ;Chuyn ni dung ca nh trong Ram ni c a ch
direct vo thanh ghi Rn.
MOV Rn, #data ;Np d liu 8 bit data (d0 n d7) vo thanh ghi Rn.
A7 A0 C
28

MOV direct, A ;Chuyn ni dung ca thanh ghi A vo nh trong Ram
ni c a ch direct.
MOV direct, Rn ;Chuyn ni dung ca thanh ghi Rn vo nh trong Ram
ni c a ch direct.
MOV direct1, direct2 ;Chuyn ni dung ca nh trong Ram ni c a
ch direct2 vo nh c a ch direct1.
MOV direct, @Ri ;Chuyn ni dung nh c a ch cha trong thanh ghi
Ri vo nh c a ch direct.
MOV direct, #data ;Np d liu data 8 bit (d0 n d7) vo nh c a ch
direct.
MOV @Ri, A ;Chuyn ni dung ca thanh ghi A vo nh trong Ram
ni c a ch cha trong thanh ghi Ri.
MO @Ri, direct ;Chuyn ni dung nh c a ch direct vo nh c
a ch cha trong thanh ghi Ri.
MOV @Ri, #data ;Np d liu data 8 bit (d0 n d7) vo nh c a ch
cha trong thanh ghi Ri.
MOV dptr, #data1 ;Np d liu data 16 bit vo thanh ghi dptr.
20. Lnh MOVC
MOVC A, @A+DPTR ;Chuyn ni dung ca nh ngoi, c a ch cha
bng dptr cng vi gi tr cha trong A, chuyn
vo thanh ghi A.
MOVC A, @A+PC ;Chuyn ni dung ca nh ngoi c a ch cha bng
PC cng vi gi tr cha trong A c chuyn vo thanh
ghi A.
21. Lnh MOVX
MOVX A, @Ri ;Chuyn ni dung nh ngoi c a ch cha trong
thanh ghi Ri vo thanh ghi A.
MOVX A, @DPTR ;Chuyn ni dung ca nh ngoi c a ch cha trong
thanh ghi dptr vo thanh ghi A.
MOVX @ Ri, A ;Chuyn ni dung ca thanh ghi A ra nh ngoi c a
ch cha trong thanh ghi Ri.
MOVX @DPTR, A ;Chuyn ni dung ca thanh ghi A ra nh ngoi c a
29

ch cha trong thanh ghi dptr.
22. Lnh ct ni dung nh trc ti p
PUSH direct
ngha: ct ni dung ca nh c a ch direct vo nh ngn xp. Con tr ngn
xp SP tng ln 1 trc khi lu ni dung.
23. Lnh ly d liu t p tr v nh trc tip
POP direct
ngha: ly ni dung ca nh ngn xp tr cho nh c a ch direct. Con tr
ngn xp SP gim 1 sau khi ly d liu ra.
24. L i d liu
XCH A, Rn ;Trao i ni dung ca thanh ghi Rn vi thanh ghi A.
XCH A, Direct ;Trao i ni dung ca thanh ghi A vi n dung nh c
a ch direct.
XCH A, @Ri ;Trao i ni dung ca nh c a ch cha trong thanh
ghi Ri vi thanh ghi A.
25. L i 4 bit d liu gia nh gin tip vi thanh ghi A
XCHD A, @Ri ;Trao i d liu 4 bit thp ca nh c a ch cha
trong thanh ghi Ri vi d liu 4 bit thp trong A.
3.3.4
26. Lnh xa bit carry
C php: CLR C
ngha: Xa bit C v 0.
27. Lnh xa bit
C php: CLR bit
ngha: Xa bit v 0.
V d:
CLR P1.0 ;xoa P1.0=0
28. L t bit carry
C php: SETB C
ngha: t bit C = 1.
29. L t bit
C php: SETB bit
ngha: t bit ln 1.
V d:
SETB P1.0 ;dat P1.0=1
30. Lnh b bit carry
C php: CPL C
ngha: B bit carry, nu trc C = 1 th C = 0, ngc li C = 0 th C = 1.
31. Lnh b bit
30

C php: CPL bit
ngha: B bit. Nu trc bit ny = 0 th kt qu bit ny bng 1 v ngc li
nu trc bng 1 th n s bng 0.
32. Lnh and bit carry vi bit
C php: ANL C, bit
ngha: Bit C and vi bit c a ch c xc nh, kt qu cha bit C.
33. Lnh and bit carry vi b bit
C php: ANL C, /bit
ngha: Bit C and vi b bit c a ch c xc nh, kt qu cha bit C.
34. Lnh or bit carry vi bit
C php: ORL C, bit
Thi gian thc hin l hai chu k my.
ngha: Bit C or vi bit c a ch c xc nh, kt qu cha bit C.
35. Lnh or bit carry vi b bit
C php: ORL C, /bit
ngha: Bit C or vi b bit c a ch c xc nh, kt qu cha bit C.
36. Lnh di chuyn bit vo bit carry
C php: MOV C, bit
ngha: Bit c a ch c xc nh c chuyn vo bit C.
37. Lnh di chuyn bit carry vo bit
C php: MOV bit, C
ngha: Bit C c chuyn vo bit c a ch c xc nh.
3.3.5
Nhm lnh ny l nhm lnh chuyn quyn iu khin c ngha l vi iu khin ang
thc hin lnh ti a ch ny th c th nhy n hoc chuyn n thc hin lnh ti mt a
ch khc.
Trong nhm ny gm c lnh gi chng trnh con, lnh kt thc chng trnh con
tr v chng trnh chnh, lnh nhy khng iu kin v lnh nhy c iu kin.
Cc lnh nhy bao gm lnh nhy tng i, lnh nhy tuyt i, lnh nhy di.
Cc lnh nhy c iu kin th khi tha iu kin lnh s nhy cn nu khng tha
iu kin th s thc hin lnh k ngay sau lnh nhy.
38. Lnh g trnh con
Lnh g d a ch tuy i
C php: ACALL addr11
M lnh:
a10 a9 a8 1 0 0 0 1
a7 a6 a5 a4 a3 a2 a1 a0
31

Lnh ny chim 2 byte v thi gian thc hin lnh l 2 chu k my.
ngha: Khi lnh ny c thc hin th vi iu khin s thc hin chng trnh con
ti a ch addr11. Chng trnh con khng c cch lnh gi qu 2 kbyte. Addr11 ca
chng trnh con c th thay bng nhn (tn ca chng trnh con).
Ch : Trc khi np a ch mi vo thanh ghi PC th a ch ca lnh k trong
chng trnh chnh c ct vo b nh ngn xp.
Lnh g d a ch di 16 bit
C php: LCALL addr16
M lnh:
0 0 0 1 0 0 1 0
A15 a14 a13 a12 a11 a10 a9 a8
A7 a6 a5 a4 a3 a2 a1 a0
- Lnh ny chim 3 byte v thi gian thc hin lnh l 2 chu k my.
ngha: Khi lnh ny c thc hin th vi iu khin s thc hin chng trnh con
ti a ch addr16. Lnh ny c th gi chng trnh con u cng c trong vng
64kbyte. Addr16 ca chng trnh con c th thay bng nhn (tn ca chng trnh con).
- 16 bit a ch A15 A0 c np vo PC, vi iu khin s thc hin chng
trnh con ti a ch va np vo PC. Ch : Trc khi np a ch vo thanh ghi PC th a
ch ca lnh k trong chng trnh chnh c ct vo b nh ngn xp.
39. Lnh tr v t
C php: RET
ngha: Lnh ny s kt thc chng trnh con, vi iu khin s tr li chng trnh
chnh tip tc thc hin chng trnh.
Ch : lnh ny s ly a ch ca lnh k lu trong b nh ngn xp (khi thc
hin lnh gi) tr li cho thanh ghi PC tip tc thc hin chng trnh chnh. Khi vit
chng trnh con th phi lun lun kt thc bng lnh ret.
40. Lnh tr v t c v ngt
C php: RETI
ngha: Lnh ny s kt thc chng trnh phc v ngt, vi iu khin s tr li
chng trnh chnh tip tc thc hin chng trnh.
41. Lnh nh u kin
Lnh nh d a ch tuy i
32

C php: AJMP addr11
ngha: Vi iu khin s nhy n n a ch addr11 thc hin chng trnh ti
. Addr11 c th thay th bng nhn. Nhn hay a ch nhy n khng qu 2 kbyte. 11 bit
a ch A10 A0 c np vo PC, cc bit cao ca PC khng thay i, vi iu khin s
nhy n thc hin lnh ti a ch PC mi va np.
Lnh ny khc vi lnh gi chng trnh con l khng ct a ch tr v. Ni nhy
n khng qu 2 kbyte so vi lnh nhy.
Lnh nh d a ch di 16 bit
C php: LJMP addr16
ngha: Vi iu khin s nhy n a ch addr16 thc hin chng trnh ti .
Ni nhy n ty nm trong vng 64 kbyte.
Lnh nh i
C php: SJMP rel ;rel [relative: tng i]
ngha: Vi iu khin s nhy n lnh c a ch tng i (rel) thc hin tip.
C th thay th rel bng nhn.
Lnh ny ch nhy trong tm vc 256 byte: c th nhy ti 128 byte v c th nhy
li 128 byte. Khi tm vc nhy xa hn ta nn dng lnh AJMP hay LJMP.
Lnh nhy gin tip
C php: JMP @A + DPTR
Lnh s nhy n ni c a ch bng ni dung ca A cng vi dptr tip tc thc
hin chng trnh ti .
42. Lnh nh u kin
Lnh nhy nu c Z =1 (ni dung thanh ghi A bng 0)
C php: JZ rel (jump zero)
ngha: Nu bit Z = 1 th vi iu khin s nhy n thc hin chng trnh ti a ch
rel.
Lnh nhy nu c Z = 0 (ni dung thanh ghi A khc 0)
C php: JNZ rel
ngha: Nu Z = 0 th vi iu khin s nhy n thc hin chng trnh ti a ch
rel.
Lnh nhy nu bit carry = 1
C php: JC rel
33

ngha: Nu bit carry C = 1 th vi iu khin s nhy n thc hin chng trnh ti
a ch rel.
Lnh nhy nu bit carry = 0
C php: JNC rel
ngha: nu bit carry C = 0 th vi iu khin s nhy n thc hin chng trnh ti
a ch rel.
Lnh nhy nu bit = 1
C php: JB bit, rel
ngha: Nu ni dung ca bit c a ch bit c xc nh bng 1 th vi iu khin s
nhy n thc hin chng trnh ti a ch rel.
Lnh nhy nu bit = 0
C php: JNB bit, rel
ngha: Nu ni dung ca bit c a ch bit c xc nh bng 0 th vi iu khin s
nhy n thc hin chng trnh ti a ch bng rel.
Lnh nhy nu bit = 1 v xa bit
C php: JBC bit, rel
ngha: nu bit c xc nh bng 1 th bit ny c xa v 0 v vi iu khin s
nhy n thc hin chng trnh ti a ch rel.
43. Lnh so snh v nhy nu khng bng nhau
So snh thanh ghi A vi nh v nhy nu khng bng nhau
C php: CJNE A, direct, rel (compare jump if not equal)
ngha: Nu ni dung ca A khc ni dung ca nh c a ch direct th lnh s
nhy n v thc hin lnh ti a ch rel.
So snh thanh ghi A vi d liu tc th v nhy nu khng bng nhau
C php: CJNE A, #data, rel
ngha: Nu ni dung ca A khc ni dung ca data 8bit th lnh s nhy n v thc
hin lnh ti a ch rel.
So snh thanh ghi Rn vi d liu tc th v nhy nu khng bng nhau
C php: CJNE Rn, #data, rel
ngha: Nu ni dung ca Rn khc ni dung ca data 8bit th lnh s nhy n v
thc hin lnh ti a ch rel.
34

So snh nh a ch trong Ri vi d liu tc th v nhy nu khng
bng nhau
C php: CJNE @Ri, #data, rel
ngha: Nu ni dung ca nh c a ch lu trong thanh ghi Ri khc data 8 bit th
lnh s nhy n thc hin lnh ti a ch rel.
44. Lnh gim thanh ghi v nhy
C php: DJNZ Rn, rel (decrement and jump if not zero)
ngha: Ni dung ca thanh ghi Rn gim i 1 v nu kt qu trong thanh ghi Rn sau
khi gim khc 0 th vi iu khin s thc hin chng trnh ti a ch rel, nu kt qu bng
0 th vi iu khin s tip tc thc hin lnh k.
45. Lnh gim nh trc tip v nhy
C php: DJNZ direct, rel
ngha: Nu ni dung ca nh c a ch direct gim i 1 v nu kt qu sau khi
gim khc 0 th vi iu khin s thc hin chng trnh ti a ch rel, ngc li nu kt qu
bng 0 th vi iu khin s tip tc thc hin lnh k.
46. Lnh Nop
C php: NOP
ngha: Khi gp lnh ny vi iu khin s khng lm g, lnh ny nhm tng khong
thi gian tr.

35


4.1 Cu trc chung trnh hp ng cho 8051
4.1.1 Cc thnh phn bn ca ngn ng Assembly
Lables: Nhn nh du cho mt on lnh
Orders: Lnh
Directives: nh hng chng trnh dch
Comments: Cc li ch thch
Mt dng lnh trong chng trnh hp ng gm c cc trng sau:
Tn

L

nh

Ton

h

ng

Ch

thch

A:

Mov

AH,

10h

;

a

gi

tr

10h

vo

thanh

ghi

AH

c th dch thnh file m my dng HEX-Code trc khi download vo Chip th
mt chng trnh assembly phi tun th cc nguyn tc sau:
Mi dng lnh khng vt qu 255 k t
Mi dng lnh phi bt u bng 1 k t, nhn, lnh hoc ch th nh hng
chng trnh dch
Mi th sau du ; c xem l li gii thch v chng trnh dch s b qua.
Cc thnh phn ca mi dng lnh cch bit nhau t nht bng mt du cch.



_ D ___
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.
Khi d liu c kch thc l 2byte s dng: DW khai bo bin kiu nguyn
V d
DATA1:

DB

2D

;

S

th

p

phn

DATA2:

DB

00110101B

;

S

nh

phn

(35

d

ng

Hex)

DATA3:

DB

39H

;

S

d

ng

Hex

DATA4

DB

Ky

thuat

may

tinh

;

Cc

k

t

ASCII
36



_ E _
c dng nh ngha mt hng s m khng chim ngn nh no. Ch
lnh EQU khng dnh ch ct cho d liu nhng n gn mt gi tr hng s vi nhn
d liu sao cho khi nhn xut hin trong chng trnh gi tr hng s ca n s c
thay th i vi nhn
V d:
COUNT EQU 25
MOV

R3,

#count

;

Khi

th

c

hi

n

l

n

MOV

R3,

#COUNT

;th

thanh

ghi

R3

s

c

n

p

gi

tr

25


-

Thay v phi nh tn tng thanh ghi, hay tng bit, ta c th gn cho n mt
ci nhn gi nh tng ng vi chc nng ca n, assembly h tr vic t tn theo
K hiu Thc hin V d Kt qu
+ Cng 10+5 15
- Tr 25-17 8
* Nhn 7*4 28
/ Chia nguyn 7/4 1
MOD Chia ly d 7 MOD 4 3
SHR Dch phi 1000B SHR 2 0010B
SHL Dch tri 1010B SHL 2 101000B
NOT o NOT 1 1111111111111110B
AND And bit 1101B AND 0101B 0101B
OR Or bit 1101B OR 0101B 1101B
XOR Xor 1101B XOR 0101B 1000B
LOW Ly byte thp LOW(0AADDH) 0DDH
HIGH Ly byte cao HIGH(0AADDH) 0AAH
EQ, = So snh bng 7 EQ 4 or 7=4 0 (false)
NE,<> SS Khng bng 7 NE 4 or 7<>4 0FFFFH (true)
GT, > SS ln hn 7 GT 4 or 7>4 0FFFFH (true)
GE, >= SS nh hn hoc bng 7 GE 4 or 7>=4 0FFFFH (true)
LT, < SS nh hn 7 LT 4 or 7<4 0 (false)
LE,<= SS nh hn hoc bng 7 LE 4 or 7<=4 0 (false)
37

quy tc sau:
Tn c t hp t cc k t (A-Z, a-z), cc s (0-9), cc k t c bit (?
V _) v khng phn bit ch ci v ch thng.
di tn ti a l 255 k t, nhng ch 32 k t u c dng phn bit

Tn phi bt u bng k t.
Khng c trng vi cc t kha sau:


ORG

(V

tr

b

t

u

con

tr

ch

ng

trnh

)

..
<

n

ch

ng

trnh

chnh>

..
<cc

ch

ng

trnh

con>

..
END.(K

t

thc

ch

ng

trnh)

d
ORG

00H

;(con

tr

ch

ng

trnh

b

t

u

t

0
0h)

LJMP

MAIN

;

nh

y

t

i

v

tr

c

nhn

l

MA
IN)

;

(v

tr

b

t

u

ch

ng

trnh

chnh

MAIN):

ORG 0030H
MAIN:
MOV

R1,#10

;(n

p

cho

R1

gi

tr

l

10).

LAP1:
DJNZ R1,LAP1
END

;

(K

t

thc

ch

ng

trnh.)

Con tr: v tr m vi iu khin bt u thc thi ti . Thng khi bt u con tr c
a ch thp nht l 00h, tuy nhin ngi lp trnh cng c th quy nh cho n lm
vic ti mt v tr bt k
38

V d:
ORG

00H

;

B

t

u

t

i

v

tr

00h

ORG

0030H

;

B

t

u

t

i

v

tr

0030h


Nhn:
.................
Cc

cu

l

nh

.....
RET
V d:
ORG 00H
LJMP MAIN
ORG 0030H
MAIN:
MOV R1,#10
LCALL

LAP1

;g

i

ch

ng

trnh

con

LAP1:
DJNZ R1,LAP1
RET

;

k

t

thc

ch

ng

trnh

con

END

















39


TRONG 8051
5.1
B m/B nh thi: y l cc ngoi vi c thit k thc hin mt nhim v
n gin: m cc xung nhp. Mi khi c thm mt xung nhp ti u vo m th gi tr ca
b m s c tng ln 01 n v (trong ch m tin/m ln) hay gim i 01 n v
(trong ch m li/m xung).
Xung nhp a vo m c th l mt trong hai loi:
Xung nhp bn trong IC: l xung nhp c to ra nh kt hp mch dao ng
bn trong IC v cc linh kin ph bn ngoi ni vi IC. Trong trng hp s dng xung
nhp loi ny, ngi ta gi l cc (timers). Do xung nhp bn loi ny thng
u n nn ta c th dng mt cch kh chnh xc.
Xung nhp bn ngoi IC: l cc tn hiu logic thay i lin tc gia 02 mc 0-1
v khng nht thit phi l u n. Trong trng hp ny ngi ta gi l cc
(counters). ng dng ph bin ca cc b m l nh m cc
sn phm chy trn bng chuyn, m xe ra/vo kho bi
Mt khi nim quan trng cn phi ni n l s kin trn (overflow). N c
hiu l s kin b m m vt qu gi tr ti a m n c th biu din v quay tr v gi
tr 0. Vi b m 8 bit, gi tr ti a l 255 (tng ng vi FF trong h Hexa) v l 65535
(FFFFH) vi b m 16 bit.
8051 c hai b nh thi l Timer 0 v Timer1, chng ny s cp v cc
thanh ghi ca chng v sau trnh by cch lp trnh chng nh th no to ra
cc tr thi gian.
5.2
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 ni k v t ng t hnh ghi
5.2.1 Cc thanh ghi 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 low byte) v thanh ghi byte cao l TH0
40

(Timer 0 High byte). Cc thanh ghi ny c th c truy cp nh mi thanh ghi khc
chng hn nh A, B, R0, R1, R2 v.v... V d, lnh MOV TL0, #4FH l chuyn gi
tr 4FH vo TL0, byte thp ca b nh thi 0. Cc thanh ghi ny cng c th c
c nh cc thanh ghi khc. V d MOV R5, TH0 l lu byte cao TH0 ca Timer
0 vo R5.
-

B nh thi gian Timer 1 cng di 16 bt v thanh ghi 16 bt ca n c chia ra
thnh hai byte l TL1 v TH1. Cc thanh ghi ny c truy cp v c ging nh
cc thanh ghi ca b Timer 0 trn.
-
D )
C hai b nh thi Timer 0 v Timer 1 u dng chung mt thanh ghi c gi
l IMOD thit lp cc ch lm vic khc nhau ca b nh thi. Thanh ghi
TMOD l thanh ghi 8 bt gm c 4 bt thp c thit lp dnh cho b Timer 0 v 4
bt cao dnh cho Timer 1. Trong hai bt thp ca chng dng thit lp ch
ca b nh thi, cn 2 bt cao dng xc nh php ton.
D

- D
Cc bt M1, M0:
L cc bt ch ca cc b Timer 0 v Timer 1. Chng chn ch ca cc b nh
TH0 TL0
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
TH1 TL1
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
41

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. Ta ch tp chung vo cc ch thng c s dng rng ri
nht l ch 1 v 2. Cc ch c thit lp theo trng thi ca M1 v M0 nh sau:

- /
/ / )-/
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.
5. 3
Nh chng ta bit, mi b nh thi cn mt xung ng h gi nhp. Vy
ngun xung ng h cho cc b nh thi trn 8051 ly u?. Nu C/T = 0 th tn
s thch anh i lin vi 8051 c lm ngun cho ng h ca b nh thi. iu
c ngha l ln ca tn s thch anh i km vi 8051 quyt nh tc nhp ca
cc b nh thi trn 8051. Tn s ca b nh thi lun bng 1/12 tn s ca thch
anh gn vi 8051.
E
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
42

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.








- d







-2. Timer 0 Mode 1





-3. Timer 0 Mode 2
43







-2. Timer 0 Mode 3

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.

44




Khi mt b vi x l truyn thng vi th gii bn ngoi th n cp d liu
di dng tng khc 8 bt (byte) mt. Trong mt s trng hp chng hn nh cc
my in th thng tin n gin c ly t ng bus d liu 8 bt v c gi i ti
bus d liu 8 bt ca my in. iu ny c th lm vic ch khi ng cp bus khng
qu di v cc ng cp di lm suy gim thm ch lm mo tn hiu. Ngoi ra,
ng d liu 8 bt gi thng t. V nhng l do ny, vic truyn thng ni tip
c dng truyn d liu gia hai h thng cch xa nhau hng trm n hng
triu dm. - l s truyn ni tip so vi s truyn
song song.
Hinh 6-1. Truyn thng

Thc t l trong truyn thng ni tip l mt ng d liu duy nht c dng
thay cho mt ng d liu 8 bt ca truyn thng song song lm cho n khng ch
r hn rt nhiu m n cn m ra kh nng hai my tnh cch xa nhau c truyn
thng qua ng thoi.
i vi truyn thng ni tip th lm c cc byte d liu phi c
chuyn i thnh cc bt ni tip s dng thanh ghi giao dch vo - song song -
ra ni tip. Sau n c th c truyn quan mt ng d liu n. iu ny cng
c ngha l u thu cng phi c mt thanh ghi vo - ni tip - ra - song song c
nhn d liu ni tip v sau gi chng thnh tng byte mt. Tt nhin, nu d liu
c truyn qua ng thoi th n phi c chuyn i t cc s 0 v 1 sang m
thanh dng sng hnh sin. Vic chuyn i ny thc thi bi mt thit b c tn gi
l Modem l ch vit tt ca Modulator/ demodulator (iu ch/ gii iu ch).
Trong RS232 th mc 1 c biu din bi - 3v n 25v trong khi mc 0 th
ng vi in p + 3v n +25v lm cho in p - 3v n + 3v l khng xc nh. V
45

l do ny kt ni mt RS232 bt k n mt h vi iu khin th ta phi s dng
cc b bin i in p nh MAX232 chuyn i cc mc l-gc TTL v mc
in p RS232 v ngc li. Kt ni RS232 n MAX232 c nh - e

8051 c hai chn c dng chuyn cho truyn v nhn d liu ni tip. Hai
chn ny c gi l TxD v RxD v l mt phn ca cng P3 ( l P3.0 v P3.1).
chn 11 ca 8051 l P3.1 c gn cho TxD v chn 10 (P3.0) c dng cho RxD.
Cc chn ny tng thch vi mc l-gch TTL. Do vy chng i hi mt b iu
khin ng truyn chng tng thch vi RS232. Mt b iu khin nh vy l
chp MAX232.


-



- e
8051 c 1 cng UART lm vic chun TTL, mc nh sau khi khi ng tt
cc cng ca 8051 u lm vic ch vo ra s, v th c th s dng UART
cn phi cu hnh cho cng ny lm vic thng qua cc thanh ghi iu khin v ghp
ni tng thch vi chun RS232.
6.2 Cc thanh ghi u khin trong ch d UART
6.2.1 SBUF: Vng m truyn thng d liu ra/vo cng ni tip:


Vic truyn d liu tng ng vi vic np cho SBUF mt gi tr
D liu nhn t RxD cng c lu vo SBUF
6.2.2 : Thanh ghi iu khin hot ng cng ni tip




46

d
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.






- d
SM0

d
SM1
SM2
REN = 1: Cho php nhn
= 0: Ch truyn
TB8 (=1) Bit truyn thng th 8, c s dng khi truyn thng ch 9 bit
RB8 (=1) Bit truyn thng th 8, h thng s t t n =1 nu pht hin khung
truyn l 9bit
TI C ngt truyn. Khi mt byte trong SBUF c truyn thnh cng th
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
SM0 SM1 Mode Description Baud Rate
0 0 0 Thanh ghi dch 8 bit 1/12 tn s clock
0 1 1 8-bit UART Cu hnh qua timer1
1 0 2 9-bit UART 1/32 tn s clock (hoc 1/64)
1 1 3 9-bit UART Cu hnh qua timer 1
47




Qu trnh truyn bt u khi ghi gi tr vo SBUF, kt thc c bo qua TI

- d
Qu trnh nhn t ng bi h thng v kt thc khi RI=1




Hnh 6-5. Gi thi gian tip Mode 0
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 Timer1.






- d

Qu trnh truyn:

48






Hnh 6-7. Gi thi gian truy tip Mode 1
Qu trnh nhn:





Hnh 6-8. Gi thi gian tip Mode 1
Mode 2:
Truyn thng bt ng b vi frame truyn 11 bit, gm 1 start, 8 bit d liu, 1bit 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:




Hnh 6-9. Gi thi gian truy tip Mode 2
Qu trnh nhn:





Hnh 6-10. Gi thi gian tip Mode 2
d
49

Mode 3 tng t mode 2 v mi mt ngoi tr tc baud.
d
Trong mt s mode hot ng ca cng ni tip th tc baud ph thuc vo time
ci t cn qua cc bc sau:
+Cho php timer 1 hot ng v cho php ngt trn timer 1.
+ Cu hnh cho timer 1 lm vic ch t np li.
Cng thc tnh:



50



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 . 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.
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.

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.
51

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 :











Hnh 7-1. Cc tn hiu
hnh trn ch c 1 im ch l hai tn hiu IT0 v IT1, hai bit ny la
chn nguyn nhn ngt cho 2 ngt ngoi INTR0 v INTR1. Nu =1 th ngt ti sn
m, =0 ngt ti sn dng.
E




7.3
Khi kch hot mt ngt b vi iu khin i qua cc bc sau:
1. N kt thc lnh ang thc hin v lu a ch ca lnh k tip (PC)
vo ngn xp.
2. N cng lu tnh trng hin ti ca tt c cc ngt vo bn trong (ngha
l khng lu vo ngn xp).
3. N nhy n mt v tr c nh trong b nh c gi l bng vc t
52

ngt ni lu gi a ch ca mt trnh phc v ngt.
4. B vi iu khin nhn a ch ISR t bng vc t ngt v nhy ti .
N bt u thc hin trnh phc v ngt cho n lnh cui cng ca ISR l RETI (tr
v t ngt).
5. Khi thc hin lnh RETI b vi iu khin quay tr v ni n b
ngt. Trc ht n nhn a ch ca b m chng trnh PC t ngn xp bng cch
ko hai byte trn nh ca ngn xp vo PC. Sau bt u thc hin cc lnh t a
ch .
Lu bc 5 n vai tr nhy cm ca ngn xp, v l do ny m chng ta
phi cn thn khi thao tc cc ni dung ca ngn xp trong ISR. c bit trong ISR
cng nh bt k chng trnh con CALL no s ln y vo ngn xp (Push) v s
ln ly ra t n (Pop) phi bng nhau.

Khi c mt ngt, chng trnh chnh s b dng, con tr chng trnh ngay lp
tc c chuyn n mt a ch quy nh sn trong bn vector ngt nh hnh di:
- d







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
- Ngt reset l ngt c mc u tin cao nht, khi reset xy ra tt c cc ngt
khc v chng trnh u b dng v vi iu khin tr v ch khi dng
ban u.
- Ngt mc 1, ch c reset mi c th cm ngt ny
- Ngt mc 0, cc ngt mc 1 v reset c th cm ngt ny.
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:
53

- Nu 1 c u tin cao hn mt ngt ang c x l xut hin th, ngt c
u tin thp ngay lp tc b dng ngt kia c thc hin
- Nu 2 ngt cng yu cu vo 1 hi im th ngt c mc u tin hn s c
x l trc
- Nu 2 ngt c cng mc u tin cng yu cu vo 1 thi im th th t c
chn nh sau:
o INTR 0
o Timer 0
o INTR 1
o Timer 1
o UART
Thanh ghi IP




Trong : Cc bit t 0 n 5 t mc ngt l 0 hoc 1 cho cc ngt tng ng nh sau:
- PS: UART
- PT1: Timer 1
- PX1: INTR 1
- PT0: Timer 0
- PX0: INTR 0

54

DU DU
-Dng trong cc thit k nh, t thnh phn, tiu tn t cng sut, hng iu khin.
-c dng trong thit k cc loi my tnh nhng. C th dng VK thit k b
iu khin cho cc sn phm dn dng( nh thng minh, qung co..), thit b y t(
my chp chiu..), sn phm cng nghip( iu khin ng c, o lng..).

You might also like