You are on page 1of 10

!

"#$% '
c lenh mot bt v lap trnh

8.1 Lap trnh voi cc lenh mot bt.
Trong hau het cc bo vi xu l (BVXL) th d lieu duoc truy cap theo tng byte.
Trong cc bo vi xu lnh dia chi theo byte ny th cc noi dung cua mot thanh ghi, bo
nh RAM hay cong deu phai duoc truy cap tng byte mot. Hay ni cch khc, luong
d lieu toi thieu c the duoc truy cap l mot byte. V du, trong bo vi xu l Pentium
cong vo/ ra (I/O) duoc dinh hung theo byte, c nghia l de thay doi mot bt th ta
phai truy cap ton bo 8 bt. Trong khi d c rat nhieu ng dung th ta phai chi can thay
doi gi tri cua mot bt chang han nhu l bat hoac tat mot thiet bi. Do vay kha nang
dnh dia chi den tng bt cua 8051 rat thch hop cho ng dung ny. Kha nang truy cap
den tng bt mot thay v phai truy cap ca byte lm cho 805 tro thnh trong nhng bo
vi dieu khien (BVK) 8 bt manh nhat tren thi trung. Vay nhng bo phan no cua
CPU, RAM, cc thanh ghi, cong I/O hoac ROM l c the dnh dia chi theo bt duoc.
V ROM chi don gian d m chuong trnh thuc thi nen n khong can kha nang dnh
dia chi theo bt. Tat ca moi m lenh deu dinh hung theo byte chi c cc thanh ghi,
RAM v cc cong I/O l can duoc dnh dia chi theo bt. Trong 8051 th rat nhieu vi tr
cua RAM trong mot so thanh ghi v tat ca cc cong I/O l c the dnh dia chi theo
tng bt. Dui day ta chi di sau vo tng phan mot.
8.1.1 Cc lenh mot bt.
Cc lenh dng cc php tnh mot bt duoc cho o bang 8.1. Trong phan ny
chng ta lm ve cc lenh ny v dua ra nhieu v du ve cch su dung chng, cc lenh
mot bt khc m chi lien uan den c nh CY (Cary Flag) s lm o muc khc.
Bang 8.1: Cc lenh mot bt cua 8051

Lenh Chc nang
SETB bt Thiet lap bt (bt bang 1)
CLR bt Xo bt ve khong (bt = 0)
CPL bt B bt (bt = NOT bt)
JB bt, dch Nhay ve dch neu bt = 1
JNB bt, dch Nhay ve dch neu bt = 0
JBC bt, dch Nhay ve dch neu bt = 1 v sau d xo bt

8.1.2 Cc cong I/O v kha nang dnh dia ch theo bt.
Bo vi dieu khien 8051 c bon cong I/O 8 bt l P0, P1, P2 v P3. Chng ta c
the truy cap ton bo 8 bt hoac theo mot bt bat ky m khong lm thay doi cc bt khc
cn lai. Khi truy cap mot cong theo tng bt, chng ta su dung cc c php 'SETB Y,
Y vi X l so cua cong 0, 1, 2 hoac 3, cn Y l vi tr bt t 0 den 7 doi vi cc bt d
lieu do den 7. V du 'SETB P1.5 l thiet lap bt cao so 5 cua cong 1. Hy nh rang do
l bt c nghia thap nhat LSB v D7 l bt c nghia l cao nhat MSB. Xem v du 8.1.
V du 8.1: Viet cc chuong trnh sau:
a) Tao mot sng vuong (hm xung vuong) vi do day xung 50% tren bt 0 cua
cong 1.
b) Tao mot hm xung vuong vi 66% do day xung tren bt 3 cua cong 1.
Li giai:
a) Hm xung vuong vi do day xung 50% c nghia l trang thi 'bat v 'tat
(hoac phan cao v thap cua xung) c cng do di. Do vay ta chot P1.0 vi thi gian
gi cham gia cc trang thi.
!"#"$ %"&' ()*+ ,&-./0 123 450 + 6789 ) 1:8 )*
;<=;; >";=? ,@A. 6-BC89 0DE8- 6F8 9.G 6-2H >";=?
<;# ()*+ ,()*+ I +
%JK( !"#" ,&./3 0L6 0-M6 -.N8 8O*
<O 0-P Q./0 6-BC89 0DE8- 8RS 0-TF 6U6- V-U6$
!"#"$ <(; ()*+ ,'W 450 + 6XY 6789 )*
;<=;; >";=? ,@A. 6-BC89 0DE8- 6F8 9.G 6-2H >";=?
%JK( !"#" ,&./3 0L6 0-M6 -.N8 8O*






b) Hm xung vuong vi do day xung 66% c nghia l trang thi 'bat c do di gap
doi trang thi 'tat.

'=<Z$ %"&' ()*[ ,&-./0 123 450 [ 6789 ) 1:8 )*
;<=;; >";=? ,@A. 6-BC89 0DE8- 6F8 >";=?
;<=;; >";=? ,@A. 6-BC89 0DE8- 6F8 >";=? 1\8 8GY*
<;# ()*[ ,]FU 450 [ 6XY 6789 ) QR +*
;<=;; >";=? ,@A. 6-BC89 0DE8- 6F8 >";=?
%JK( '=<Z ,&./3 0L6 0-M6 -.N8 8O*





Luu rang, khi m 'P1.0 duoc hop dich n tro thnh 'SETB 90H v P1.0
c dia chi trong RAM l 90h. T hnh v 8.1 ta thay rang cc dia chi bt cho P0 l
80H den 87H v cho P l 90H den 97H v.v... Hnh 8.1 cng chi ra tat ca cc thanh ghi
c kha nang dnh dia chi theo bt.
Bang 8.2: Kha nang dnh dia chi theo bt cua cc cong.

P0 P1 P2 P3 Port's Bit
(+*+ ()*+ (^*+ ([*+ >+
(+*) ()*) (^*) ([*) >)
(+*^ ()*^ (^*^ ([*^ >^
(+*[ ()*[ (^*[ ([*[ >[
(+*_ ()*_ (^*_ ([*_ >_
(+*` ()*` (^*` ([*` >`
(+*a ()*a (^*a ([*a >a
(+*b ()*b (^*b ([*b >b

V du 8.2:
oi vi cc lenh dui day th trang thi cua bt no cua SFR s bi tc dong
(hy su dung hnh 8.1).
Yc %"&' da!e 4c <;# db!e 6c %"&' f^!
4c %"&' >=b!e Tc <;# +g^!e hc %"&' i"b!
Li giai
Yc %"&' da! 1R jR8- 6-F %"&' (+*a
4c <;# db! 1R jR8- 6-F <;# (+*b
6c %"&' f^! 1R jR8- 6-F %"&' ()*^
d+`)


()*+
d+`)


()*+
jc %"&' +=b! 1R jR8- 6-F %"&' (^*b
Tc <;# +g^! 1R jR8- 6-F <;# >^ 6XY 0-Y8- 9-. '
hc %"&' +"b! 1R jR8- 6-F %"&' =<<*b k450 >b 6XY 0-Y8- 9-. =c

8.1.3 Kiem tra mot bt dau vo.
Lenh JNB (nhay neu bt = 0) v JB (nhay neu bt bang 1) cng l cc php thao
tc don bt duoc su dung rong ri. Chng cho php ta hien thi mot bt v thuc hien
uyet dinh phu thuoc vo viec lieu n l 0 hay l 1.
V du 8.3: !ia su bt P2.3 l mot dau vo v bieu dien dieu kien cua mot lo. Neu n
bat len 1 th c nghia l lo nng. Hy hien thi lien tuc, moi khi n len cao th hy gui
mot xung cao-xuong-thap (Aigh-to-low) den cong P1.5 de bat ci bo.
Li giai:

!"#"$ Jl' (^*[e !"#" , >mS 0DE -.P8 0-n 6YF*
%"&' ()*` , &-./0 123 ()*` I )
<;# ()*` , &-M6 -.T8o 6-mSP8 pm89 0q 6YFrpms89r0-t3

Cc lenh JNB v JB c the duoc dng doi vi cc bt bat ky cua cc cong I/O 0,
1, 2 v 3 v tat ca cc cong ny deu c kha nang dnh dia chi theo bt. Tuy nhien,
cong 3 hau nhu de dng cho cc tn hieu ngat v truyen thong noi tiep v thong
thung khong dng cho bat c vo/ ra theo bt hoac theo byte no. ieu ny s duoc
bn o chuong 10 v 11.
8.1.4 Cc thanh ghi v kha nang dnh dia ch theo bt.
Trong tat ca cc cong I/O deu c kha nang dnh dia chi theo bt th cc thanh
ghi lai khong duoc nhu vay. Ta c the nhn thay dieu d t hnh 8.1: Chi thanh gh B,
PSW, IP, IE, ACC, SCON v TCON l c the dnh dia chi theo bt, o day ta s tap
trung vo cc thanh ghi A, B v PSW cn cc thanh ghi khc s de cap o cc chuong
sau. T hnh 8.1 hy de rang cong PO duoc gn dia chi bt 80H-87H. Cn dai chi bt
88-8FH duoc gn cho thanh ghi TCON.
Cuoi cng dia chi bt F0-F7H duoc gn cho thanh ghi B. Xt v du 8.4 v 8.5
ve viec su dung cc thanh ghi ny vi kha nang dnh dia chi theo bt.
























































Hnh 8.1: ia chia theo Byte v bt cua bo nh RAM cc thanh ghi chc
nang dac biet.
V du 8.4: Hy viet chuong trnh de kiem tra xem thanh ghi tch lu c cha mot so
chan khong? Neu c th chia n cho 2, neu khong th hy lm chan n v sau d chia
n cho 2.
Li giai:

Kiu 'e v ^ , @U8 ' I ^
Jl' =<< +e ?"% , >i 6XY 0-Y8- 9-. = 6O 4w89 +x
Jl< = , l/m 6O 0-E 8-yS Qz ?"%
?"%$ >{] =' , l/m 1R |} 1~ 0-E 089 1:8 ) P 0-R8- 6-!8
, <-.Y ="'

V du 8.5: Hy viet doan chuong trnh de kiem tra xem cc bt 0 v 5 cua thanh ghi B
c gi tri cao khong? Neu khong phai th dat chng len 1 v luu vo thanh ghi bo.
'S0T
YjjDT||
'.0 YjjDT||
gg
g+ "b ga g` g_ g[ g^ g) g+ '

"+ "b "a "` "_ "[ "^ ") "+ =<<

>+ >b >a >` >_ >[ >^ >) >+ (%#

'd r r r r r r '< '' '= 'f 'd {(

'+ 'b 'a '` '_ '[ '^ ') '+ g[

=d =g r r r r =< =' == =f =d {"

=+ =b =a =` =_ =[ =^ =) =+ (^

ff 8F0 4.0 YjjDT||Y41T %'$g
fd fg f" f> f< f' f= ff ff %<il

f+ fb fa f` f_ f[ f^ f) f+ ()

d> 8F0 4.0 YjjDT||Y41T &!)
d< 8F0 4.0 YjjDT||Y41T &!+
d' 8F0 4.0 YjjDT||Y41T &;)
d= 8F0 4.0 YjjDT||Y41T &;+
df 8F0 4.0 YjjDT||Y41T &Ki>
dd dg d" d> d< d' d= df dd &<il
db 8F0 4.0 YjjDT||Y41T (<il

d[ 8F0 4.0 YjjDT||Y41T >(!
d^ 8F0 4.0 YjjDT||Y41T >(;
d) 8F0 4.0 YjjDT||Y41T %(
d+ db da d` d_ d[ d^ d) d+ (+
%3T6.Y1 gm860.F8 #T9.|0TD|
Li giai:

Jl' igi!e l"]&r) , l-yS Qz l"]&r) 8/m '*+ I +
%"&' igi! , %&0 '*+ I )
l"]&r)$ Jl' ig`!e l"]&r^ , l-yS Qz l"]&r^ 8/m '*` I +
%"&' ig`! , %&0 '*` I )
l"]&r^$ Kiu #ie ' , <'0 0-Y8- 9-. '










Hnh 8.2: Cc bt cua thanh ghi PSW.
Nhu d ni o chuong 2, trong than ghi PSW c hai bt dnh rieng de chon
cc bang thanh ghi. Khi RESET th bang 0 duoc chon, chng ta c the chon cc bang
bat ky khc bang cch su dung kha nang dnh dia chi theo bt cua PSW.
V du 8.6: Hy viet chuong trnh de luu thanh ghi tch lu vo R7 cua bang 2.
Li giai:
<;# (%#*[
%"&' (%#*_
Kiu #b*=
V du 8.7: Trong khi c hai lenh JNC v JC de kiem tra bt c nh CY th lai khong
c cc lenh cho bt c trn (0V) lm the no de ta c the viet m kiem tra 0V.
Li giai: C 0V l bt PSW.2 cua thanh ghi PSW. PSW l thanh ghi c the dnh dia
chi theo bt, do vay ta c the su dung lenh sau de kiem tra c 0V:
J' (%#*^e &=#@"& , l-yS Qz &=#@"& 8/m +u I )
8.15 Vng nho RAM c the dnh dia ch theo bt.
Trong 128 byte RAM trong cua 8051 th chi c 16 byte cua n l c the dnh
dia chi theo bt duoc. Phan cn lai duoc dinh dang byte. Cc cng RAM c the dnh
dia chi theo bt l 20H den 2FH. Vi 16 byte ny cua RAM c the cung cap kha nang
dnh dia chi theo bt l 128 bt, v 16 8 = 128. Chng duoc dnh dia chi t 0 den
127. Do vay, nhng dia chi bt t 0 den 7 dnh cho byte dau tien, vi tr RAM trong
20H v cc bt t 8 den OFH l dia chi bt cua byte th hai cua vi tr RAM trong 21H
v.v... Byte cuoi cng cua 2FH c dia chi bt t 78H den 7FH (xem hnh 8.3). Luu
rang cc vi tr RAM trong 20H den 2FH va c the dnh dia chi theo byte va c the
dnh dia chi theo bt.
e t hnh 8.3 v 8.1 ta thay rang cc dia chi bt 00 - 7FH thuoc ve cc dia
chi byte cua RAM t 20 - 2FH v cc dia chi bt t 80 den F7H thuoc cc thanh ghi
dac biet SFR, cc cong P0, P1, v.v...
V du 8.8: Hy kiem tra xem cc bt sau day thuoc byte no? Hy cho dia chi cua
byte RAM o dang Hex.

Yc %"&' _^! , %T0 4.0 _^! 0F )
4c <;# ab! , <1TYD 4.0 ab
6c <;# +g! , <1TYD 4.0 ig!
jc %"&' ^d! , %T0 4.0 ^d! 0F )

<? =< r r #%) #%+ iu r r (
RS1 RS0 Register Bank Address
+ + + ++! r +b!
+ ) ) +d! r +g!
) + ^ )+! r )b!
) ) [ )d! r )g!

Tc <;# )^ , <1TYD 4.0 )^ kjT6.HY1c
hc %"&' +`

Li giai:

Yc %nY 6-( 450 _^! 6XY #=K 0-m)6 450 >^ 6XY Qn 0D5 #=K ^d!*
4c %nY 6-( 450 ab! 6XY #=K 0-m)6 450 >b 6XY Qn 0D5 #=K ^+!*
6c %nY 6-( 450 +g! 6XY #=K 0-m)6 450 >b 6XY Qn 0D5 #=K ^)!*
jc %nY 6-( 450 ^d! 6XY #=K 0-m)6 450 >+ 6XY Qn 0D5 #=K ^`!*
Tc %nY 6-( 450 )^! 6XY #=K 0-m)6 450 >_ 6XY Qn 0D5 #=K ^)!*
hc %nY 6-( 450 +`! 6XY #=K 0-m)6 450 >` 6XY Qn 0D5 #=K ^+!*

V du 8.9: Trang thi cua cc bt P1.2 v P1.3 cua cong vo/ra P1 phai duoc luu cat
truc khi chng duoc thay doi. Hy viet chuong trnh de luu trang thi cua P1.2 vo vi
tr bt 06 v trang thi P1.3 vo vi tr bt 07.
Li giai:

<;# +a ,]FU nY 6-( 450 +a
<;# +b , ]FU nY 6-( 450 +b
Jl' ()*^e iu"# ,Z.PH 0DY 450 ()*^ 8-yS Qz iu"# 8/m ()*^ I +
%"&' +a , l/m ()*^ 0-E 0-./0 123 Qn 0D5 450 +a I +
iu"#$ Jl' ()*[e l"]& ,Z.PH 0DY 450 ()*[ 8-yS Qz l"]& 8/m 8O I +
%"&' +b ,l/m ()*[ I )0-E 0-./0 123 Qn 0D5 450 +b I )
l"]&$ ****

Cc cau hoi on luyen:
1. Tat ca cc cong I/O cua 8051 deu c kha nang dnh dia chi theo bt? (dng sai)
2. Tat ca moi thanh ghi cua 8051 deu c kha nang dnh dia chi theo bt? (dng
sai)
3. Tat ca cc vi tr RAM cua 8051 deu c kha nang dnh dia chi theo bt? (dng
sai)
4. Hy chi ra nhng thanh ghi no sau day c kha nang dnh dia chi theo bt:
Yc =e 4c 'e k6c #_ kjc (%# kTc #b
5. Trong 128 byte RAM cua 8051 nhng byte no c kha nang dnh dia chi theo
bt. Hy liet ke chng.
6. Lm the no de c the kiem tra xem bt D0 cua R3 l gi tri cao hay thap.
7. Hy tm xem cc bt dau thuoc nhng byte no? Hy cho dia chi cua cc byte
RAM theo so Hex:
Yc %"&' ^+ 4c <;# [^ 6c %"&' )^!
jc %"&' f` Tc %"&' +"&' )^!
8. Cc dia chi bt 00 - 7FH v 80 - F7H thuoc cc vi tr nh no?
9. Cc cong P0, P1, P2 v P3 l mot bo phan cua SFR? (dng sai)
10. Thanh ghi TCON c the dnh dia chi theo bt (dng sai)
8.2 Cc php ton mot bt voi c nho CY.
Ngoi mot thuc te l c nh CY duoc thay doi boi cc lenh lo-gc v so hoc th
trong 8051 cn c mot so lenh m c the thao tc truc tiep c nh CY. Cc lenh ny
duoc cho trong bang 8.3.
Trong cc lenh duoc chi ra sau trong bang 8.3 th chng ta d trnh by cong
dung cua lenh JNC, CLR v SETB trong nhieu v du trong mot so chuong truc day.
Dui day ta tiep tuc lm uen vi mot so v du ve cch su dung mot so lenh khc t
bang 8.3.
Mot so lenh cho trong bang 8.3 lm viec vi cc php ton lo-gc AND v OR.
Cc v du o muc ny s chi ra cch su dung chng nhu the no?
" chuong tiep theo chng ta s chi ra nhieu v du hon ve viec su dung cua cc
lenh don trong pham vi cc ng dung thuc te.
Bang 8.3: Cc lenh lien uan den c nh CY

Lnh chc nng
%"&' < &-M6 -.N8 k0*Fc <? I )
<;# < ]FU 450 8-+ <? I +
<(; < 'W 450 8-+
Kiu 4e < %YF 6-,3 0D*89 0-U. 450 8-+ QRF Qn 0D5 450 4 I <?
Kiu <e 4 %YF 6-,3 450 4 QRF 0D*89 0-U. 450 8-+ <? I 4
Jl< 56- l-yS 0+. 56- 8/m <? I +
J< 56- l-yS 0+. 56- 8/m <? I )
=l; <* 450 &-M6 -.N8 3-,3 =l> Q+. 450 4 QR 1Bm QRF <?
=l; <*" 450 &-M6 -.N8 3-,3 =l> Q+. 450 yF QR 1Bm QRF <?
i#; <* 450 &-M6 -.N8 3-,3 i# Q+. 450 QR 1Bm QRF <?
i#; <*" 450 &-M6 -.N8 3-,3 i# Q+. 450 yF QR 1Bm QRF <?

V du 8.10: Hy viet mot chuong trnh de luu cat trang thi cua cc bt P1.2 v P1.3
vo vi tr nh tuong ng trong RAM 6 v 7.
Li giai:

Kiu <e ()*^ , ;Bm 0D*89 0-U. ()*^ QRF <?*
Kiu +ae < , ;Bm 0D*89 0-U. <? QRF 450 a 6XY #=K
Kiu <e ()*[ , ;Bm 0D*89 0-U. ()*^ QRF <?
Kiu +be < , ;Bm 0D*89 0-U. <? QRF Qn 0D5 #=K +b

V du 8.11:
!ia su vi tr nh 12H trong RAM gi trang thi cua viec c dien thoai hay
khong. Neu n o trang thi cao c nghia l d c mot cuoc goi mi v n duoc kiem
tra lan cuoi. Hy viet mot chuong trnh de hien thi 'c li nhan mi ('New
Message) tren mn hnh LCD neu bt 12H cua RAM c gi tri cao. Neu n c gi tri
thap th LCD hien thi 'khong c li nhan mi ('No New Message).
Li giai:

Kiu <e )^! , %YF 0D*89 0-U. 450 )^! 6XY #=K QRF <?
Jl< li , Z.PH 0DY pTH 6- <? 6O 9.U 0Dn 6YF V-}89*
Kiu >(&#e v _++! , l/m 8O 8*3 nY 6-( 6XY 1-. 8-'8*
;<=; >{%(;=? , !.P8 0-n 1-. 8-'8*
%JK( l"]& , &-FU0
li$ Kiu >%&#e v_^+! , l*3 nY 6-( V-}89 6O 1-. 8-'8*
;<=; >{%(;=? , !.P8 0-n 8O*
"]{&$ &-FU0
, jY0Y 0F 4T j.|31YSTj F8 ;<>
i#@ _++!
?"%rK@$ >' .l"# KT||Y9T/
i#@ _^+!
lirK@$ >' .lF lT0 KT||Y9T/

V du 8.12:
!ia su rang bt P2.2 duoc dng de kiem tra dn ngoi v bt P2.5 dng de kiem
tra dn trong cua mot to nh. Hy trnh by lm the no de bat dn ngoi v tat dn
trong nh.
Li giai:

%"&' < , %&0 <? I )
i#; <e (^*^e < , &-M6 -.N8 3-,3 i# Q+. <?
Kiu (^*^e < , '20 18 8/m 8O 6-BY 420*
<;# < , ]FU <? I +
=l; <e (^*` , <? I k(^*` =l> <?c
Kiu (^*`e < , &'0 8O 8/m 8O 6-BY 0'0*

Cau hoi on luyen:
1. Tm trang thi cua c CY sau doan m dui day:

Yc <;# = 4c <;# < 6c <;# <
=>> =e vigg! Jl< iu"# J< iu"#
J#< iu"# %"&' < <(; <
<(; < iu"#$ *** iu"#$ ***
iu"#$ ***

2. Hy trnh by cch lm the no de luu trang thi bt P2.7 vo vi tr bt 31 cua
RAM.
3. Hy trnh by cc chuyen trang thi bt 09 cua RAM den bt P1.4.
8.3 oc cc chan dau vo thong qua chot cong.
Trong viec doc cong th mot so lenh doc trang thi cua cc chan cong, cn mot
so lenh khc th doc mot so trang thi cua chot cong trong. Do vay, khi doc cc cong
th c hai kha nang:
1. oc trang thi cua chan vo.
2. oc chot trong cua cong ra.
Chng ta phai phan biet gia hai dang lenh ny v su lan lon gia chng l
nguyen nhan chnh cua cc loi trong lap trnh cho 8051, dac biet khi d ket noi vi
phan cng ben ngoi. Trong phan ny ta bn ve so ua cc lenh ny. Tuy nhien, doc
gia phai nghien cu v hieu ve cc noi dung cua chu de ny v ve hoat dong ben trong
cua cc cong duoc cho trong phu luc Appendix C2.
8.3.1 Cc lenh doc cong vo.
Nhu d ni o chuong 4 th de bien mot bt bat ky cua cong 8051 no d thnh
mot cong dau vo, chng ta phai ghi (lo-gc cao) vo bt d. Ssu khi cau hnh cc bt
cua cong l dau vo, ta c the su dung nhng lenh nhat dinh de nhan d lieu ngoi
tren cc chan vo trong CPU. Bang 8.4 l nhng lenh ni tren.
Bang 8.4: Cc lenh doc mot cong vo.

Gi lnh V d M t
Kiu =e (] Kiu =e (^ <-mSP8 jG 1.:m2 3 6-48 (^ QRF =<<
Jl' (]*?e *** Jl' (^*)e 56- l-yS 0+. 56- 8/me 6-48 (^*) I +
J' (]*?e J' ()*[e 56- l-yS 56- 8/me 6-48 ()*[ I )
Kiu <e (]*? Kiu <e (^*_ %YF 0D*89 0-U. 6-48 (^*_ QRF <?

8.3.2 oc chot cho cong dau ra.
Mot so lenh noi dung cua mot chot cong trong thay cho viec doc trang thi cua
mot chan ngoi. Bang 8.5 cung cap danh sch nhng lenh ny. V du, xt lenh 'ANL
P1, A. Trnh tu thao tc duoc thuc hien boi lenh ny nhu sau:
1. N d chot trong cua mot cong v chuyen d lieu d vo trong CPU.
2. D lieu ny duoc AND vi noi dung cua thanh ghi A.
3. Ket ua duoc ghi nguoc lai ra chot cong.
4. D lieu tai chan cong duoc thay doi v c cng gi tri nhu chot cong.
T nhng bn luan tren ta ket luan rang, cc lenh doc chot cong thung doc
mot gi tri, thuc hien mot php tnh (v c the thay doi n) sau d ghi nguoc lai ra
chot cong. ieu ny thung duoc goi 'oc-sua-ghi, ('Read-Modify-Write). Bang
8.5 liet ke cc lenh doc-sua-ghi su dung cong nhu l ton hang dch hay ni cch
khc, chng ta chi duoc dng cho cc cong duoc cau hnh nhu cc cong ra.
Bang 8.5: Cc lenh doc mot chot (oc-sua-ghi).

gi lnh V d
=l; (] =l; ()e =
i#; (] i#; (^e =
]#; (] ]#; (+e =
J'< (]*?e 56- J'< ()*)e 56-
<(; (] <(; ()*^
{l< (] {l< ()
>"< (] >"< (^
>Jl^ (]*?e 56- >Jl^ ()e 56-
Kiu (]*?e < Kiu ()*^e <
<;# (]*? <;# (^*[
%"&' (]*? %"&' (^*[

Luu : Chng ta nen nghien cu phan C2 cua phu luc Appendix C neu ta noi
phan cng ngoi vo he 8051 cua mnh. Thuc hien sai cc chi dan hoac noi sai cc
chan c the lm hong cc cong cua he 8051.
8.4 Tm luoc.
Chuong ny d mo ta mot trong cc dac tnh manh nhat cua 8051 l php ton
mot bt. Cc php ton mot bt ny cho php lap trnh vien thiet lap, xo, di chuyen v
b cc bt rieng r cua cc cong, bo nh hoac cc thanh ghi.
Ngoi ra c mot so lenh cho php thao tc truc tiep vi c nh CY. Chng ta
cng d bn ve cc lenh doc cc chan cong thong ua viec doc chot cong.
8.5 Cc cau hoi kiem tra.
1. Cc lenh 'SETB A, 'CLR A, 'CPL A dng hay sai?
2. Cc cong vo/ ra no v cc thanh ghi no c the dnh dia chi theo bt.
3. Cc lenh dui day dng hay sai? nh dau lenh dng.

Yc %"&' () Tc %"&' '_
4c %"&' (^*[ hc <;# d+!
6c <;# =<<*` 9c <;# (%#*[
jc <#; f+! -c <;# db!

4. Hy giet chuong trnh tao xung vuong vi do day xung 75%, 80% tren cc
chan P1.5 v P2.7 tuong ng.
5. Viet chuong trnh hien thi P1.4 neu n c gi tri cao th chuong trnh tao ra mot
am thanh (sng dung vuong 50% do day xung) tren chan P2.7.
6. Nhung dia chi bt no duoc gn cho cc cong P0, P1, P2 v P3 cho cc thanh
ghi PCON, A, B v PSW.
7. Nhng dia chi bt dui day thuoc ve cong hay thanh ghi no?
Yc d`! 4cdb! 6c dd! jcd>! Tcf[!
hc =`! 9c=b! -c '[! .c >_! 2c >d!
8. Hy viet chuong trnh luu cc thanh ghi A, B vo R3 v R5 bang nh 2 tuong
ng.
9. Cho mot lenh khc cho 'CLR C, so snh chng.
10. Lm the no de kiem tra trang thi cc bt c OV, CY, P v AC. Hy tm dia
chi bt cua cc c ny.
11. Cc cng nh 128 byte cua RAM th nhng vng no l dnh dia chi theo bt
duoc? Hy dnh dau chng.
12. Cc dia chi sau thuoc vng RAM no?
Yc +`! 4c _b 6c )d! jc ^>! Tc `[!
9c )`! -c ab! -c ``! .c )_! Vc [bg!
13. Cc dia chi nho hon 80H duoc gn cho dia chi 20-2FH cua RAM phai khong?
(ng/ sai).
14. Viet cc lenh de luu c CY, AC, D vo vi tr bt 4, 16H v 12H tuong ng.
15. Viet chuong trnh kiem tra D7 cua thanh ghi A. Neu D7 = 1 th gui thong bo
sang LCD bo rang ACC c mot so am.

You might also like