Sei sulla pagina 1di 19

Smith Nguyen Studio.

chng 2 Lp trnh hp ng 8051


Trong phn ny chng ta nghin cu cc thanh ghi chnh ca 8051 v trnh by cch s dng vi cc lnh n gin MOV v ADD.
2.1.1

2.1 Bn trong 8051.

Trong CPU cc thanh ghi c dng lu ct thng tin tm thi, nhng thng tin ny c th l mt byte d liu cn c s l hoc l mt a ch n d liu cn c np. Phn ln cc thanh ghi ca 8051 l cc thanh ghi 8 bit. Trong 8051 ch c mt kiu d liu: Loi 8 bit, 8 bit ca mt thanh ghi c trnh by nh sau:
D7 D6 D5 D4 D3 D2 D1 D0

Cc thanh ghi.

vi MSB l bit c gi tr cao nht D7 cho n LSB l bit c gi tr thp nht D0. (MSB - Most Sigfican bit v LSB - Leart Significant Bit). Vi mt kiu d liu 8 bit th bt k d liu no ln hn 8 bit u phi c chia thnh cc khc 8 bit trc khi c x l. V c mt s lng ln cc thanh ghi trong 8051 ta s tp trung vo mt s thanh ghi cng dng chung c bit trong cc chng k tip. Hy tham kho ph lc Appendix A.3 bit y v cc thanh ghi ca 8051. Hnh 2.1: a) Mt s thanh ghi 8 bit ca 8051 b) Mt s thanh ghi 16 bit ca 8051
A B R0 R1 R2 R3 R4 R5 R6 R7 DPTR PC DPH DPL

PC (program counter)

Cc thanh ghi c s dng rng ri nht ca 8051 l A (thanh ghi tch lu), B, R0 R7, DPTR (con tr d liu) v PC (b m chng trnh). Tt c cc d liu trn u l thanh g hi 8 bit tr DPTR v PC l 16 bit. Thanh ghi tch lu A c s dng cho tt c mi php ton s hc v l-gc. hiu s dng cc thanh ghi ny ta s gii thiu chng trong cc v d vi cc lnh n gin l ADD v MOV.
2.1.2

Ni mt cch n gin, lnh MOV sao chp d liu t mt v tr ny n mt v tr khc. N c c php nh sau: MOV ; ch, ngun; sao chp ngun vo ch

Lnh chuyn MOV.

Smith Nguyen Studio.


Lnh ny ni CPU chuyn (trong thc t l sao chp) ton hng ngun vo ton hng ch. V d lnh MOV A, R0 sao chp ni dung thanh ghi R0 vo thanh ghi A. Sau khi lnh ny c thc hin th thanh ghi A s c gi tr ging nh thanh ghi R0. Lnh MOV khng tc ng ton hng ngun. on chng trnh di y u tin l np thanh ghi A ti gi tr 55H 9l gi tr 55 dng s Hex) v sau chuyn gi tr ny qua cc thanh ghi khc nhau bn trong CPU. Lu rng du # trong lnh bo rng l mt gi tr. Tm quan trng ca n s c trnh by ngay sau v d ny. MOV A, #55H; ; Np tr tr 55H vo thanh ghi A (A = 55H) MOV R0, A ; Sao chp ni dung A vo R0 (by gi R0=A) MOV R1, A ; Sao chp ni dung A v R1 (by gi R1=R0=A) MOV R2, A ; Sao chp ni dung A v R2 (by gi R2=R1=R0=A) MOV R3, #95H ; Np gi tr 95H vo thanh ghi R3 (R3 = 95H) MOV A, R3 ; So chp ni dung R3 vo A (by gi A = 95H) Khi lp trnh b vi iu khin 8051 cn lu cc im sau:
1. Cc gi tr c th c np vo trc tip bt k thanh ghi no A, B, R0 - R7. Tuy nhin, thng bo l gi tr tc thi th phi t trc n mt k hiu # nh ch ra di y.

MOV MOV MOV MOV MOV MOV MOV MOV

A, #23H R0, #12H R1, #1FH R2, #2BH B, # 3CH R7, #9DH R5, #0F9H R6, #12

; Np gi tr 23H vo A (A = 23H) ; Np gi tr 12H vo R0 (R0 = 2BH) ; Np gi tr 1FH vo R1 (R1 = 1FH) ; Np gi tr 2BH vo R2 (R2 = 2BH) ; Np gi tr 3CH vo B (B = 3CH) ; Np gi tr 9DH vo R7 (R7 = 9DH) ; Np gi tr F9H vo R5 (R5 = F9H) ;Np gi tr thp phn 12 = 0CH vo R6 (trong R6 c gi tr 0CH).

trong lnh MOV R5, #0F9H th phi c s 0 ng trc F v sau du # bo rng F l mt s Hex ch khng phi l mt k t. Hay ni cch khc MOV R5, #F9H s gy ra li.
2. Nu cc gi tr 0 n F c chuyn vo mt thanh ghi 8 bit th cc bit cn li c coi l tt c cc s 0. V d, trong lnh MOV A,#5 kt qu l A=0.5, l A = 0000 0101 dng nh phn. 3. Vic chuyn mt gi tr ln hn kh nng cha ca thanh ghi s gy ra li v d:

MOV A, #7F2H MOV R2, 456

; Khng hp l v 7F2H > FFH ; Khng hp l v 456 > 255 (FFH)

4. np mt gi tr vo mt thanh ghi th phi gn du # trc gi tr . Nu khng c du th n hiu rng np t mt v tr nh. V d MOV A, 17H c ngha l np gi tr trong ngn nh c gi tr 17H vo thanh ghi A v ti a ch d liu c th c bt k gi tr no t 0 n FFH. Cn np gi tr l 17H vo thanh ghi A th cn phi c du # trc 17H nh th ny. MOV A, #17H. Cn lu rng nu thiu du # trc mt th s khng gy li v hp ng cho l mt lnh hp

Smith Nguyen Studio.


l. Tuy nhin, kt qu s khng ng nh mun ca ngi lp trnh. mt li thng hay gp i vi lp trnh vin mi. y s l

2.1.3

Lnh cng ADD c cc php nh sau: ADD a, ngun ; Cng ton hng ngun vo thanh ghi A. Lnh cng ADD ni CPU cng byte ngun vo thanh ghi A v t kt qu thanh ghi A. cng hai s nh 25H v 34H th mi s c th chuyn n mt thanh ghi v sau cng li vi nhau nh: MOV A, #25H ; Np gi tr 25H vo A MOV R2, #34H ; Np gi tr 34H vo R2 ADD A, R2 ; Cng R2 vo A v kt qu A = A + R2 Thc hin chng trnh trn ta c A = 59H (v 25H + 34H = 59H) v R2 = 34H, ch l ni dng R2 khng thay i. Chng trnh trn c th vit theo nhiu cch ph thuc vo thanh ghi c s dng. Mt trong cch vit khc c th l: MOV R5, #25H ; Np gi tr 25H vo thanh ghi R5 MOV R7, #34H ; Np gi tr 34H vo thanh ghi R7 MOV A, #0 ; Xo thanh ghi A (A = 0) ADD A, R5 ; Cng ni dung R5 vo A (A = A + R5) ADD A, R7 ; Cng ni dung R7 vo A (A = A + R7 = 25H + 34H) Chng trnh trn c kt qu trong A L 59H, c rt nhiu cch vit chng trnh ging nh vy. Mt cu hi c th t ra sau khi xem on chng trnh trn l liu c cn chuyn c hai d liu vo cc thanh ghi trc khi cng chng vi nhau khng? Cu tr li l khng cn. Hy xem on chng trnh di y: MOV A, #25H ; Np gi tr th nht vo thanh ghi A (A = 25H) ADD A, #34H ; Cng gi tr th hai l 34H vo A (A = 59H)

Lnh cng ADD.

Trong trng hp trn y, khi thanh ghi A cha s th nht th gi tr th hai i theo mt ton hng. y c gi l ton hng tc thi (trc tip). Cc v d trc cho n gi th lnh ADD bo rng ton hng ngun c th hoc l mt thanh ghi hoc l mt d liu trc tip (tc thi) nhng thanh ghi ch lun l thanh ghi A, thanh ghi tch lu. Hay ni cch khc l mt lnh nh ADD R2, #12H l lnh khng hp l v mi php ton s hc phi cn n thanh ghi A v lnh ADD R4, A cng khng hp l v A lun l thanh ghi ch cho mi php s hc. Ni mt cch n gin l trong 8051 th mi php ton s hc u cn n thanh A vi vai tr l ton hng ch. Phn trnh by trn y gii thch l do v sao thanh ghi A nh l thanh thi tch lu. C php cc lnh hp ng m t cch s dng chng v lit k cc kiu ton hng hp l c cho trong ph lc Appendix A.1. C hai thanh ghi 16 bit trong 8051 l b m chng trnh PC v con tr d liu APTR. Tm quan trng v cch s dng chng c trnh by mc 2.3. Thanh ghi DPTR c s dng truy cp d liu v c lm k chng 5 khi ni v cc ch nh a ch.

2.2 Gii thiu v lp trnh hp ng 8051.

Trong phn ny chng ta bn v dng thc ca hp ng v nh ngha mt s thut ng s dng rng ri gn lin vi lp trnh hp ng.

Smith Nguyen Studio.


CPU ch c th lm vic vi cc s nh phn v c th chy vi tc rt cao. Tuy nhin, tht l ngn ngm v chm chp i vi con ngi phi lm vic vi cc s 0 v 1 lp trnh cho my tnh. Mt chng trnh cha cc s 0 v 1 c gi l ngn ng my. Trong nhng ngy u ca my tnh, cc lp trnh vin phi vit m chng trnh di dng ngn ng my. Mc d h thng thp lc phn (s Hex) c s dng nh mt cch hiu qu hn biu din cc s nh phn th qu trnh lm vic vi m my vn cn l cng vic cng knh i vi con ngi. Cui cng, cc ngun ng hp ng c pht, cung cp cc t gi nh cho cc lnh m my cng vi nhng c tnh khc gip cho vic lp trnh nhanh hn v t mc li hn. Thut ng t gi nh (mnemonic) thng xuyn s dng trong ti liu khoa hc v k thut my tnh tham chiu cho cc m v t rt gn tng i d nh, cc chng trnh hp ng phi c dch ra thanh m my bng mt chng trnh c l trnh hp ng (hp dch). Hp ng c coi nh l mt ngng ng bc thp v n giao tip trc tip vi cu trc bn trong ca CPU. lp trnh trong hp ng, lp trnh vin phi bit tt c cc thanh ghi ca CPU v kch thc ca chng cng nh cc chi tit khc. Ngy nay, ta c th s dng nhiu ngn ng lp trnh khc nhau, chng hn nh Basic, Pascal, C, C++, Java v v s ngn ng khc. Cc ngn ng ny c coi l nhng ngn ng bc cao v lp trnh vin khng cn phi tng tc vi cc chi tit bn trong ca CPU. Mt trnh hp dch c dng dch chng trnh hp ng ra m my cn (cn i khi cng cn c gi m i tng (Object Code) hay m lnh Opcode), cn cc ngn ng bc cao c dch thnh cc ngn ng m my bng mt chng trnh gi l trnh bin dch. V d, vit mt chng trnh trong C ta phi s dng mt trnh bin dch C dch chng trnh v dng m my. By gi ta xt dng thc hp ng ca 8051 v s dng trnh hp dch to ra mt chng trnh sn sng chy ngay c.
2.2.1

Mt chng trnh hp ng bao gm mt chui cc dng lnh hp ng. Mt lnh hp ng c cha mt t gi nh (mnemonic) v tuy theo tng lnh v sau n c mt hoc hai ton hng. Cc ton hng l cc d liu cn c thao tc v cc t gi nh l cc lnh i vi CPU ni n lm g vi cc d liu. ORG 0H ; Bt u (origin) ti ngn nh 0 MOV R5, #25H ; Np 25H vo R5 MOV R7, #34H ; Np 34H vo R7 MOV A, #0 ; Np 0 vo thanh ghi A ADD A, R5 ; Cng ni dng R5 vo A (A = A + R5) ADD A, R7 ; Cng ni dung R7 vo A (A = A + R7) ADD A, #121H ; Cng gi tr 12H vo A (A = A + 12H) HERE: SJMP HERE ; li trong vng lp ny END ; Kt thc tp ngun hp ng Chng trnh 2.1: V d mu v mt chng trnh hp ng. Chng trnh 2.1 cho trn y l mt chui cc cu lnh hoc cc dng lnh c vit hoc bng cc lnh hp ng nh ADD v MOV hoc bng cc cu lnh c gi l cc ch dn. Trong khi cc lnh hp ng th ni CPU phi lm g th cc ch lnh

Cu trc ca hp ng.

Smith Nguyen Studio.


(hay cn gi l gi lnh) th a ra cc ch lnh cho hp ng. V d, trong chng trnh 2.1 th cc lnh ADD v MOV l cc lnh n CPU, cn ORG v END l cc ch lnh i vi hp ng. ORG ni hp ng t m lnh ti ngn nh 0 v END th bo cho hp ng bit kt thc m ngun. Hay ni cch khc mt ch lnh bt u v ch lnh th hai kt thc chng trnh. Cu trc ca mt lnh hp ng c 4 trng nh sau: [nhn:] [t gi nh] [cc ton hng] [; ch gii] Cc trng trong du ngoc vung l tu chn v khng phi dng lnh no cng c chng. Cc du ngoc vung khng c vit vo. Vi dng thc trn y cn lu cc im sau:
1. Trng nhn cho php chng trnh tham chiu n mt dng lnh bng tn. N khng c vit qu mt s k t nht nh. Hy kim tra quy nh ny ca hp ng m ta s dng. 2. T gi nh (lnh) v cc ton hng l cc trng kt hp vi nhau thc thi cng vic thc t ca chng trnh v hon thin cc nhim v m chng trnh c vit cho chng. Trong hp ng cc cu lnh nh:

ADD A, B MOV A, #67H th ADD v MOV l nhng t gi nh to ra m lnh, cn A, B v A, #67H l nhng ton hng th hai trng c th cha cc lnh gi hoc ch lnh ca hp ng. Hy nh rng cc ch lnh khng to ra m lnh no (m my) v chng ch dng bi hp ng, ngc li i vi cc lnh l chng c dch ra m my (m lnh) cho CPU thc hin. Trong chng trnh 2.1 cc lnh ORG v END l cc ch lnh (mt s hp ng ca 8051 s dng dng .ORG v .END). Hy c quy nh c th ca hp ng ta s dng.
3. Chng ch gii lun phi bt u bng du chm phy (;). Cc ch gii c th bt u u dng hoc gia dng. Hp ng b qua (lm ng) cc ch gii nhng chng li rt cn thit i vi lp trnh vin. Mc EDITOR d cc ch gii l tu chn, khng bt buc PRAGRAM nhng ta nn dng chng m t chng trnh gip cho ngi khc c v hiu myfile.asm chng trnh d dng hn. 4. Lu n nhn HERE trong trng nhn ASSEMBLER PRAGRAM ca chng trnh 2.1. Mt nhn bt k tham chiu n mt lnh phi c du hai myfile.lst chm (:) ng sau. Trong cu lnh nhy other obj file ngn SJMP th 8051 c ra lnh li myfile.obj trong vng lp ny v hn. Nu h thng ca chng ta c mt chng trnh gim st LINKER th takhng cn dng lnh ny v n c th PRAGRAM c xo i ra khi chng trnh.
myfile.abs OH PRAGRAM myfile.hex

Nh vy cu trc ca mt chng trnh hp ng ta c bit, cu hi t ra l chng

2.3 Hp dch v chy mt chng trnh 8051.

Smith Nguyen Studio.


trnh s c to ra v hp dch nh th no v lm th no c th chy c? Cc bc to ra mt chng trnh hp ng c th chy c l:
1. Trc ht ta s dng m trnh son tho g vo mt chng trnh ging nh chng trnh 2.1. C nhiu trnh son tho tuyt vi hoc cc b s l t c s dng to ra v/ hoc son tho chng trnh. Mt trnh son tho c s dng rng ri l trnh son tho EDIT ca MS-DOS (hoc Noterad ca Windows) u chy trn h iu hnh Microsoft. Lu rng, trnh son tho phi c kh nng to ra tp m ASCII. i vi nhiu trnh hp ng th cc tn tp tun theo cc quy c thng l c DOS, nhng phn m rng ca cc tp ngun phi l asm hay src tu theo trnh hp ng m ta s dng. 2. Tp ngun c phn m rng asm cha m chng trnh c to ra bc 1 c np vo trnh hp dch ca 8051. Trnh hp dch chuyn cc lnh ra m my. Trnh hp dch s to ra mt tp i tng v mt tp lit k vi cc thnh phn m rng obj v lst tng ng. 3. Cc trnh hp dch yu cu mt bc th ba gi l lin kt. Chng trnh lin kt ly mt hoc nhiu tp i tng v to ra mt tp i tng tuyt i vi thnh phn m rng abs. Tp abs ny c s dng bi thng cha ca 8051 c mt chng trnh gim st. 4. K sau tp abs c np vo mt chng trnh c gi l 0H (chuyn i tng object v dng s Hex) to ra mt tp vi ui m rng Hex c th np tt vo trong ROM. Chng trnh ny c trong tt c mi trnh hp ng ca 8051 cc trnh hp ng da trn Windows hin nay kt hp cc bc 2 n 4 vo thnh mt bc. Hnh 2.2: Cc bc to ra mt chng trnh.

Tp .asm cng c gi l tp ngun v chnh v l do ny m mt s trnh hp ng i hi tp ny phi c mt phn m rng src t ch source l ngun. Hy kim tra hp ng 8051 m ta s dng xem n c i hi nh vy khng? Nh ta ni trc y tp ny c to ra nh mt trnh bin tp chng hn nh Edit ca DOS hoc Notepad ca Windows. Hp ng ca 8051 chuyn i cc tp hp ng trong tp .asm thnh ngn ng m my v cung cp tp i tng .object. Ngoi vic to ra tp i tng trnh hp ng cng cho ra tp lit k lst (List file).
2.3.2

2.3.1

Ni thm v cc tp .asm v .object.

Tp lit k l mt tu chn, n rt hu ch cho lp trnh vin v n lit k tt c mi m lnh v a ch cng nh tt c cc li m trnh hp ng pht hin ra. Nhiu trnh hp ng gi thit rng, tp lit k l khng cn thit tr khi ta bo rng ta mun to ra n. Tp ny c th c truy cp bng mt trnh bin dch nh Edit ca DOS hoc Notepad ca Window v c hin th trn mn hnh hoc c gi ra my in. Lp trnh vin s dng tp lit k tm cc li c php. Ch sau khi sa ht cc li c nh du trong tp lit k th tp i tng mi sn sng lm u vo cho chng trnh lin kt. 1 0000 ORG 0H ; Bt u a ch 0 2 0000 7D25 MOV R5, #25H ; Np gi tr 25H vo R5 3 0002 7F34 MOV R7, #34H ; Np gi tr 34H vo R7 4 0004 7400 MOV A, #0 ; Np 0 vo A (xo A) 5 0006 2D ADD A, R5 ; Cng ni dung R5 vo A (A = A + R5) 6 0007 2F ADD A, R7 ; Cng ni dung R7 vo A (A = A + R7) 7 0008 2412 ADD A, #12H ; Cng gi tr 12H vo A (A = A + 12H)

Tp lit k .lst.

Smith Nguyen Studio.


8 00A BCEF HERE: SJMP HERE 9 000C END Chng trnh 2.2: Tp lit k.
2.4.1

; li vng lp ny ; Kt thc tp .asm

2.4 B m chng trnh v khng gian ROM trong 8051.


B m chng trnh trong 8051.

Mt thanh ghi quan trng khc trong 8051 l b m chng trnh . B m chng trnh ch m a ch ca lnh k tip cn c thc hin. Khi CPU np m lnh t b nh ROM chng trnh th b m chng trnh tng ln ch m lnh kt tip. B m chng trnh trong 8051 c th truy cp cc a ch chng trnh trong 8051 rng 16 bit. iu ny c ngha l 8051 c th truy cp cc a cha chng trnh t 0000 n FFFFH tng cng l 64k byte m lnh. Tuy nhin, khng phi tt c mi thnh vin ca 8051 u c tt c 64k byte ROM trn chp c ci t. Vy khi 8051 c bt ngun th n nh thc a cha no?
2.4.2

Mt cu hi m ta phi hi v b vi iu khin bt k l th n c cp ngun th n bt u t a ch no? Mi b vi iu khin u khc nhau. Trong trng hp h 8051 th mi thnh vin k t nh sn xut no hay phin bn no th b vi iu khin u bt u t a ch 0000 khi n c bt ngun. Bt ngun y c ngha l ta cp in p Vcc n chn RESET nh s trnh by chng 4. Hay ni cch khc, khi 8051 c cp ngun th b m chng trnh c gi tr 0000. iu ny c ngha l n ch m lnh u tin c lu a cha ROM 0000H. V l do ny m trong v tr nh 0000H ca b nh ROM chng trnh v y l ni m n tm lnh u tin khi bt ngun. Chng ta t c iu ny bng cu lnh ORG trong chng trnh ngun nh trnh by trc y. Di y l hot ng tng bc ca b m chng trnh trong qa trnh np v thc thi mt chng trnh mu.
2.4.3

a ch bt u khi 8051 c cp ngun.

hiu tt hn vai tr ca b m chng trnh trong qu trnh np v thc thi mt chng trnh, ta kho st mt hot ng ca b m chng trnh khi mi lnh c np v thc thi. Trc ht ta kho st mt ln na tp lit k ca chng trnh mu v cch t m vo ROM chng trnh 8051 nh th no? Nh ta c th thy, m lnh v ton hng i vi mi lnh c lit k bn tri ca lnh lit k. Chng trnh 2.1: V d mu v mt chng trnh hp ng. Chng trnh 2.1 cho trn y l mt chui cc cu lnh hoc cc dng lnh c vit hoc bng cc lnh hp ng nh ADD v MOV hoc bng cc cu lnh c gi l cc ch dn. Trong khi cc lnh hp ng th ni CPU phi lm g th cc ch lnh (hay cn gi l gi lnh) th a ra cc ch lnh cho hp ng. V d, trong chng trnh 2.1 th cc lnh ADD v MOV l cc lnh n CPU, cn ORG v END l cc ch lnh i vi hp ng. ORG ni hp ng t m lnh ti ngn nh 0 v END th bo cho hp ng bit kt thc m ngun. Hay ni cch khc mt ch lnh bt u v ch lnh th hai kt thc chng trnh. Cu trc ca mt lnh hp ng c 4 trng nh sau: [nhn:] [t gi nh] [cc ton hng] [; ch gii] Cc trng trong du ngoc vung l tu chn v khng phi dng lnh no cng c chng. Cc du ngoc vung khng c vit vo. Vi dng thc trn y cn lu cc im sau:

t m vo ROM chng trnh.

Smith Nguyen Studio.


Trng nhn cho php chng trnh tham chiu n mt dng lnh bng tn. N khng c vit qu mt s k t nht nh. Hy kim tra quy nh ny ca hp ng m ta s dng. T gi nh (lnh) v cc ton hng l cc trng kt hp vi nhau thc thi cng vic thc t ca chng trnh v hon thin cc nhim v m chng trnh c vit cho chng. Trong hp ng cc cu lnh nh: ADD A, B MOV A, #67H Th ADD v MOV l nhng t gi nh to ra m lnh, cn A, B v A, #67H l nhng ton hng th hai trng c th cha cc lnh gi hoc ch lnh ca hp ng. Hy nh rng cc ch lnh khng to ra m lnh no (m my) v chng ch dng bi hp ng, ngc li i vi cc lnh l chng c dch ra m my (m lnh) cho CPU thc hin. Trong chng trnh 2.1 cc lnh ORG v END l cc ch lnh (mt s hp ng ca 8051 s dng dng .ORG v .END). Hy c quy nh c th ca hp ng ta s dng. Trng ch gii lun phi bt u bng du chm phy (;). Cc ch gii c th bt u u dng hoc gia dng. Hp ng b qua (lm ng) cc ch gii nhng chng li rt cn thit i vi lp trnh vin. Mc d cc ch gii l tu chn, khng bt buc nhng ta nn dng chng m t chng trnh gip cho ngi khc c v hiu chng trnh d dng hn. Lu n nhn HERE trong trng nhn ca a ch M lnh 7D chng trnh 2.1. Mt nhn bt k tham chiu n mt 0000 25 lnh phi c du hai chm (:) ng sau. Trong cu lnh 0001 0002 F7 nhy ngn SJMP th 8051 c ra lnh li trong vng 0003 34 lp ny v hn. Nu h thng ca chng ta c mt chng 74 trnh gim st th takhng cn dng lnh ny v n c th 0004 0005 00 c xo i ra khi chng trnh. 0006 2D Chng trnh 2.1: Tp lit k 0007 2F Sau khi chng trnh c t vo trong ROM ca 0008 24 thnh vin h 8051 nh 8751 hoc AT 8951 hoc DS 0009 12 5000 th m lnh v ton hng c a vo cc v tr nh 000A 80 000B FE ROM bt u t a ch 0000 nh bng lit k di y.
a ch ROM 0000 0002 0004 0006 0007 0008 000A Ngn ng my 7D25 7F34 7400 2D 2F 2412 80EF Hp ng MOV R5, #25H MOV R7, #34H MOV A, #0 ADD A, R5 ADD A, R7 ADD A, #12H HERE: SJMP HERE

Bng ni dung ROM ca chng trnh 2.1. Bng lit k ch ra a ch 0000 cha m 7D l m lnh chuyn mt gi tr vo thanh ghi R5 v a ch 0001 cha ton hng ( y l gi tr 254) cn c chuyn vo R5. Do vy, lnh MOV R5, #25H c m l 7D25 trong 7D l m lnh,

Smith Nguyen Studio.


cng 25 l ton hng. Tng t nh vy, m my 7F34 c t trong cc ngn nh 0002 v 0003 v biu din m lnh v ton hng i vi lnh MOV R7, #34H. Theo cch nh vy, m my 7400 c t ti a ch 0004 v 0005 v biu din m lnh v ton hng i vi lnh MOV A, #0. Ngn nh 0006 c m 2D l m i vi lnh ADD A, R5 v ngn nh 0007 c ni dung 2F l m lnh cho ADD A, R7. M lnh i vi lnh ADD A, #12H c t ngn nh 0008 v ton hng 12H c t ngn nh 0009. Ngn nh 000A c m lnh ca lnh SJMP v a ch ch ca n c t ngn nh 000B. L do v sao a ch ch l FE c gii thch chng 3.
2.4.4

Gi s rng chng trnh trn c t vo ROM ca chp 8051 hoc( 8751, AT 8951 hoc DS 5000) th di y l m t hot ng theo tng bc ca 8051 khi n c cp ngun.
1. Khi 8051 c bt ngun, b m chng trnh PC c ni dung 0000 v bt u np m lnh u tin t v tr nh 0000 ca ROM chng trnh. Trong trng hp ca chng trnh ny l m 7D chuyn mt ton hng vo R5. Khi thc hin m lnh CPU np gi tr 25 vo b m chng trnh c tng ln ch n 0002 (PC = 0002) c cha m lnh 7F l m ca lnh chuyn mt ton hng vo R7 MOV R7, .... 2. Khi thc hin m lnh 7F th gi tr 34H c chuyn vo R7 sau PC c tng ln 0004. 3. Ngn nh 0004 cha m lnh ca lnh MOV A, #0. Lnh ny c thc hin v by gi PC = 0006. Lu rng tt c cc lnh trn u l nhng lnh 2 byte, ngha l mi lnh chim hai ngn nh. 4. By gi PC = 0006 ch n lnh k tip l ADD A, R5. y l lnh mt byte, sau khi thc hin lnh ny PC = 0007. 5. Ngn nh 0007 cha m 2F l m lnh ca ADD A, R7. y cng l lnh mt byte, khi thc hin lnh ny PC c tng ln 0008. Qa trnh ny c tip tc cho n khi tt c moi lnh u c np v thc hin. Thc t m b m chng trnh ch n lnh k tip cn c thc hin gii thch ti sao mt s b vi x l (ng ni l 86) gi b m l con tr lnh (Instruction Pointer).
Bn nh ROM trong h 8051.

Thc hin mt chng trnh theo tng byte.

2.4.5

Nh ta thy chng trc, mt s thnh vin h 8051 ch c 4k byte b nh ROM trn chp (v d 8751, AT 8951) v mt s khc nh AT 8951 c 8k byte ROM, DS 5000-32 ca Dallas Semiconductor c 32k byte ROM trn chp. Dallas Semiconductor cng c mot 8051 vi ROM trn chp l 64k byte. im cn nh l khng c thnh vin no ca h 8051 c th truy cp c hn 64k byte m lnh v b m chng trnh ca 8051 l 16 bit (di a ch t 0000 n FFFFH). Cn phi ghi nh l lnh u tin ca ROM chng trnh u t 0000, cn lnh cui cng ph thuc vo dung lng ROM trn chp ca mi thnh vin h 8051. Trong s cc thnh vin h 8051 th 8751 v AT 8951 c 4k byte ROM trn chp. B nh ROM trn chp ny c cc a ch t 0000 n 0FFFH. Do vy, ngn nh u tin c a ch 0000 v ngn nh cui cng c a cha 0FFFH. Hy xt v d 2.1. V d 2.1: Tm a ch b nh ROM ca mi thnh vin h 8051 sau y.
a) AT 8951 (hoc 8751) vi 4k byte b) DS 5000-32 vi 32k byte

Smith Nguyen Studio.


Li gii:
a) Vi 4k byte ca khng gian nh ROM trn chp ta c 4096 byte bng 1000H dng Hex (4 1024 = 4096 hay 1000 dng Hex). B nh ny c xp xp trong cc ngn nh t 0000 n 0FFFFH. Lu 0 lun l ngn nh u tin. b) Vi 32k byte nh ta c 32.768 byte (32 1024). Chuyn i 32.768 v s Hex ta nhn c gi tr 8000H. Do vy, khng gian nh l di t 0000 n 7FFFH.
byte 0000 0000 byte 0000 byte

0FFF 8751 AT89C51 1FFF 8752 AT89C52 7FFF DS5000-32

Hnh 2.3: Di a ch ca ROM trn chp mt s thnh vin h 8051.

2.5 Cc kiu d liu v cc ch lnh.

B vi iu khin ch c mt kiu d liu, n l 8 bit v di mi thanh ghi cng l 8 bit. Cng vic ca lp trnh vin l phn chia d liu ln hn 8 bit ra thnh tng khc 8 bit (t 00 n FFH hay t 0 n 255) CPU x l. V d v x l d liu ln hn 8 bit c trnh by chng 6. Cc d liu c s dng bi 8051 c th l s m hoc s dng v v x l cc s c du c bn chng 6. Ch lnh 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 ASII. 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. Bt k ta s dng s dng thc no th hp ng u chuyn i chng v thnh dng Hex. bo dng thc dng m ASCII th ch cn n gin t n vo du nhy n nh th ny. Hp ng s gn m ASCII cho cc s hoc cc k t mt cch t ng. Ch lnh DB ch l ch lnh m c th c s dng nh ngha cc chui ASCII ln hn 2 k t. Do vy, n c th c s dng cho tt c mi nh ngha d liu ASCII. Di y l mt s v d v DB:
ORG DATA1: DB DATA2: DB DATA3: DB DATA4: DB DATA5 DB 500H 2B 00110101B 39H ORG 510H 2591 ORG 518H My name is Joe ; S thp phn (1C dng Hex) ; S nh phn (35 dng Hex) ; S dng Hex ; Cc s ASCII ; Cc k t ASCII 2.5.2 Ch lnh DB (nh ngha byte).

2.5.1

Kiu d liu v cc ch lnh ca 8051.

Smith Nguyen Studio.


Cc chui ASCII c th s dng du nhy n nh th ny hoc nhy kp nh th ny. Dng du phy kp s hu ch hn i vi trng hp du nhy n c dng s hu cch nh th ny Nh O Leary. Ch lnh DB cng c dng cp pht b nh theo tng on kch thc mt byte.
2.5.3

1. Ch lnh ORG: Ch lnh ORG c dng bo bt u ca a ch. S i sau ORG c k dng Hex hoc thp phn. Nu s ny c km ch H ng sau th l dng Hex v nu khng c ch H sau l s thp phn v hp ng s chuyn n thnh s Hex. Mt s hp ng s dng du chm ng trc ORG thay cho ORG. Hy c k v trnh hp ng ta s dng. 2. Ch lnh EQU: 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. Di y s dng EQU cho hng s b m v sau hng s c dng np thanh ghi RS.
COUNT EQU 25 MOV R3, #count

Cc ch lnh ca hp ng.

Khi thc hin ln MOV R3, #COUNT th thanh ghi R3 s c np gi tr 25 (ch n du #). Vy u im ca vic s dng EQU l g? Gi s c mt hng s (mt gi tr c nh) c dng trong nhiu ch khc nhau trong chng trnh v lp trnh vin mun thay i gi tr ca n trong c chng trnh. Bng vic s dng ch lnh EQU ta c th thay i mt s ln v hp ng s thay i tt c mi ln xut hin ca n l tm ton b chng trnh v gng tm mi ln xut hin. 3. Ch lnh END: Mt lnh quan trng khc l ch lnh END. N bo cho trnh hp ng kt thc ca tp ngun asm ch lnh END l dng cui cng ca chng trnh 8051 c ngha l trong m ngun th mi th sau ch lnh END b trnh hp ng b qua. Mt s trnh hp ng s dng .END c du chm ng trc thay cho END.
2.5.4

Bng cch chn cc tn nhn c ngha l mt lp trnh vin c th lm cho chng trnh d c v d bo tr hn, c mt s quy nh m cc tn nhn phi tun theo. Th nht l mi tn nhn phi thng nht, cc tn c s dng lm nhn trong hp ng gm cc ch ci vit hoa v vit thng, cc s t 0 n 9 v cc du c bit nh: du hi (?), du (), du gch di (_), du l ($) v du chu k (.). K t u tin ca nhn phi l mt ch ci. Hay ni cch khc l n khng th l s Hex. Mi trnh hp ng c mt s t d tr l cc t gi nh cho cc lnh m khng c dng lm nhn trong chng trnh. V d nh MOV v ADD. Bn cnh cc t gi nh cn c mt s t d tr khc, hy kim tra bn lit k cc t d phng ca hp ng ta ang s dng. Cng nh cc b vi x l khc, 8051 c mt thanh ghi c bo cc iu kin s hc nh bit nh. Thanh ghi c trong 8051 c gi l thanh ghi t trng thi chng trnh PSW. Trong phn ny v a ra mt s v d v cch thay i chng.

Cc quy nh vi nhn trong hp ng.

2.6 Cc bit c v thanh ghi c bt PSW ca 8051.

Smith Nguyen Studio.


2.6.1

Thanh ghi PSW l thanh ghi 8 bit. N cng cn c coi nh l thanh ghi c. Mc d thanh ghi PSW rng 8 bit nhng ch c 6 bit c 8051 s dng. Hai bit cha dng l cc c ch ngi dng nh ngha. Bn trong s cc c c gi l cc c c iu kin, c ngha l chng bo mt s iu kin do kt qu ca mt lnh va c thc hin. Bn c ny l c nh CY (carry), c AC (auxiliary cary), c chn l P (parity) v c trn OV (overflow). Nh nhn thy t hnh 2.4 th cc bit PSW.3 v PSW.4 c gn nh RS0 v RS1 v chng c s dng thay i cc thanh ghi bng. Chng s c gii thch phn k sau. Cc bit PSW.5 v PSW.1 l cc bit c trng thi cng dng chung v lp trnh vin c th s dng cho bt k mc ch no.
CY CY AC AC PSW.7 PSW.6 PSW.4 PSW.3 PSW.2 F0 RS1 ; C nh ; C RS0 OV P

Thanh ghi t trng thi chng trnh PSW.

RS1 RS0 OV P

PSW.5

; Dnh cho ngi dng s dng mc ch chung


; Bit = 1 chn bng thanh ghi ; Bit = 0 chn bng thanh ghi ; C bn

PSW.1

PSW.0 ; C chn, l. Thit lp/ xo bng phn cng mi chu k lnh bo tng cc s bit 1 trong thanh ghi A l chn/ l. RS1 RS0 Bng thanh ghi a ch 0 0 0 00H - 07H 0 1 1 08H - 0FH 1 0 2 10H - 17H 1 1 3 18H - 1FH

; Bit dnh cho ngi dng nh ngha

Hnh 2.4: Cc bit ca thanh ghi PSW Di y l gii thch ngn gn v 4 bit c ca thanh ghi PSW.
1. C nh CY: C ny c thit lp mi khi c nh t bit D7. C ny c tc ng sau lnh cng hoc tr 8 bit. N cng c thit lp ln 1 hoc xo v 0 trc tip bng lnh SETB C v CLR C ngha l thit lp c nh v xo c nh tng ng. V cc lnh nh a ch theo bit c bn k chng 8. 2. C AC: C ny bo c nh t bit D3 sang D4 trong php cng ADD hoc tr SUB. C ny c dng bi cc lnh thc thi php s hc m BCD (xem chng 6). 3. C chn l P: C chn l ch phn nh s bit mt trong thanh ghi A l chn hay l. Nu thanh ghi A cha mt s chn cc bit mt th P = 0. Do vy, P = 1 nu A c mt s l cc bit mt. 4. C chn OV: C ny c thit lp mi khi kt qu ca mt php tnh s c du qu ln to ra bit bc cao lm trn bit du. Nhn chung c nh c dng pht hin li trong cc php s hc khng du. Cn c trn c dng ch pht hin li trong cc php s hc c du v c bn k chng 6.
Lnh ADD v PSW.

2.6.2

By gi ta xt tc ng ca lnh ADD ln cc bit CY, AC v P ca thanh ghi PSW. Mt s v d s lm r trng thi ca chng, mc d cc bit c b tc ng bi lnh ADD l CY, P, AC v OV nhng ta ch tp trung vo cc c CY, AC v P, cn c OV s c ni n chng 6 v n lin quan n php tnh s hc s c du.

Smith Nguyen Studio.


Cc v d 2.2 n 2.4 s phn nh tc ng ca lnh ADD ln cc bit ni trn. Bng 2.1: Cc lnh tc ng ln cc bit c. V d 2.2: Hy trnh by trng thi cc bit c CY, AC v P sau lnh cng 38H vi 2FH di y:
MOV A, #38H ADD A, #2FH ; Sau khi cng A = 67H, CY = 0 Instruction ADD ADDC SUBB MUL DIV DA RRC RLC SETB C CLR C CPL C ANL C, bit ANL C,/ bit ORL C, bit ORL C,/bit MOV C, bit CJNE CY X X X 0 0 X X X 1 0 X X X X X X X OV X X X X X AC X X X

Li gii:
+ 38 2F 67 00111000 00101111 01100111

C CY = 0 v khng c nh t D7 C AC = 1 v c nh t D3 sang D4 C P = 1 v thanh ghi A c 5 bit 1 (l)

V d 2.3: Hy trnh by trng thi cc c CY, AC v P sau php cng 9CH vi 64H. Li gii:
+ 9C 64 100 10011100 01100100 00000000

C CY = 1 v c nh qua bit D7 C AC = 1 v c nh t D3 sang D4 C P = 0 v thanh ghi A khng c bit 1 no (chn)

V d 2.4: Hy trnh by trng thi cc c CY, AC v P sau php cng 88H vi 93H. Li gii: + 88 93 11B 10001000 10010011 00011011

C CY = 1 v c nh t bit D7 C AC = 0 v khng c nh t D3 sang D4 C P = 0 v s bit 1 trong A l 4 (chn)

Smith Nguyen Studio.


2.7 Cc bng thanh ghi v ngn xp ca 8051.
B vi iu khin 8051 c tt c 128 byte RAM. Trong mc ny ta bn v phn b ca 128 byte RAM ny v kho st cng dng ca chng nh cc thanh ghi v ngn xp. C 128 byte RAM trong 8051 (mt s thnh vin ang ch l 8052 c 256 byte RAM). 128 byte RAM bn trong 8051 c gn a ch t 00 n 7FH. Nh ta s thy chng 5, chng c th c truy cp trc tip nh cc ngn nh 128 byte RAM ny c phn chia thnh tng nhm nh sau:
1. Tng cng 32 byte t ngn nh 00 n 1FH c dnh cho cc thanh ghi v ngn xp. 2. Tng cng 16 byte t ngn nh 20H n 2FH c dnh cho b nh c/ ghi nh a ch c theo bit. Chng 8 s bn chi tit v b nh v cc lnh nh a ch c theo bit. 3. Tng cng 80 byte t ngn nh 30H n 7FH c dng cho lu c v ghi hay nh vn thng gi l bng nhp (Serach pad). Nhng ngn nh ny (80 byte) ca RAM c s dng rng ri cho mc ch lu d liu v tham s bi cc lp trnh vin 8051. Chng ta s s dng chng cc chng sau lu d liu nhn vo CPU qua cc cng vo-ra.
Cc bng thanh ghi trong 8051. 2.7.1 Phn b khng gian b nh RAM trong 8051.

Nh ni trc, tng cng 32 byte RAM c dnh ring cho cc bng thanh ghi v ngn xp. 32 byte ny c chia ra thnh 4 bng cc thanh ghi trong mi bng c 8 thanh ghi t R0 n R7. Cc ngn nh RAM s 0, R1 l ngn nh RAM s 1, R2 l ngn nh RAM s 2 v.v... Bng th hai ca cc thanh ghi R0 n R7 bt u t thanh nh RAM s 2 cho n ngn nh RAM s 0FH. Bng th ba bt u t ngn nh 10H n 17H v cui cng t ngn nh 18H n 1FH l dng cho bng cc thanh ghi R0 n R7 th t.
00 07 08 0F10 1718 1F 20 2F 7F RAM nh a 30RAM bng nh ch theo bit (Seratch Pad) R0 - R7 R0 - R7 R0 - R7 R0 - R7

2.7.2

Bng0 ...

Bng3

Hnh 2.5: Ngn xp cc thanh nh RAM trong 8051.


Bank 0 7 6 5 4 3 2 1 0 R7 R6 R5 R4 R3 R2 R1 R0 F E D C B A 9 8 Bank 1 R7 R6 R5 R4 R3 R2 R1 R0 17 16 15 14 13 12 11 10 Bank 2 R7 R6 R5 R4 R3 R2 R1 R0 1F 1E 1D 1C 1B 1A 19 18 Bank 3 R7 R6 R5 R4 R3 R2 R1 R0

Smith Nguyen Studio.

Hnh 2.6: Cc bng thanh ghi ca 8051 v a ch ca chng. Nh ta c th nhn thy t hnh 2.5 bng 1 s dng cng khng gian RAM nh ngn xp. y l mt vn chnh trong lp trnh 8051. Chng ta phi hoc l khng s dng bng 1 hoc l phi nh mt khng gian khc ca RAM cho ngn xp. V d 2.5: Hy pht biu cc ni dung ca cc ngn nh RAM sau on chng trnh sau:
MOV MOV MOV MOV MOV R0, #99H R1, #85H R2, #3FH R7, #63H R5, #12H ; Np R0 gi tr 99H ; Np R1 gi tr 85H ; Np R2 gi tr 3FH ; Np R7gi tr 63H ; Np R5 gi tr12H

Li gii: Sau khi thc hin chng trnh trn ta c:


Ngn nh 0 ca RAM c gi tr 99H Ngn nh 1 ca RAM c gi tr 85H Ngn nh 2 ca RAM c gi tr 3FH Ngn nh 7 ca RAM c gi tr 63H Ngn nh 5 ca RAM c gi tr 12H
2.6.3

Nu cc ngn nh 00 n 1F c dnh ring cho bn bng thanh ghi, vy bng thanh ghi R0 n R7 no ta phi truy cp ti khi 8051 c cp ngun? Cu tr li l cc bng thanh ghi 0. l cc ngn nh RAM s 0, 1, 2, 3, 4, 5, 6 v 7 c truy cp vi tn R0, R1, R2, R3, R4, R5, R6 v R7 khi lp trnh 8051. N d dng hn nhiu khi tham chiu cc ngn nh RAM ny v cc tn R0, R1 v.v... hn l s v tr ca cc ngn nh. V d 2.6 lm r khi nim ny. V d 2.6: Hy vit li chng trnh v d 2.5 s dng cc a ch RAM thay tn cc thanh ghi. Li gii: y c gi l ch nh a ch trc tip v s dng a ch cc v tr ngn nh RAM i vi a ch ch. Xem chi tit chng 5 v ch nh a ch.
MOV MOV MOV MOV MOV 00, #99H 01, #85H 02, #3FH 07, #63H 05, #12H ; Np thanh ghi R0 gi tr 99H ; Np thanh ghi R1 gi tr 85H ; Np thanh ghi R2 gi tr 3FH ; Np thanh ghi R7gi tr 63H ; Np thanh ghi R5 gi tr12H

Bng thanh ghi mc nh.

Smith Nguyen Studio.


Nh ni trn, bng thanh ghi 0 l mc nh khi 8051 c cp ngun. Chng ta c th chuyn mch sang cc bng thanh ghi khc bng cch s dng bit D3 v D4 ca thanh ghi PSW nh ch ra theo bng 2.2. Bng 2.2: Bit la chn cc bng thanh ghi RS0 v RS1.
Bng 0 Bng 1 Bng 2 Bng 3 RS1 (PSW.4) 0 0 1 1 RS0 (PSW.3) 0 1 0 1 2.6.4 Chuyn mch cc bng thanh ghi nh th no?

Bit D3 v D4 ca thanh ghi PSW thng c tham chiu nh l PSW.3 v PSW.4 v chng c th c truy cp bng cc lnh nh a ch theo bit nh SETB v CLR. V d SETB PSW.3 s thit lp PSW.3 v chn bng thanh ghi 1. Xem v d 2.7 di y. V d 2.7: Hy pht biu ni dung cc ngn nh RAM sau on chng trnh di y:
SETB MOV MOV MOV MOV MOV PSW.4 R0, #99H R1, #85H R2, #3FH R7, #63H R5, #12H ; Chn bng thanh ghi 4 ; Np thanh ghi R0 gi tr 99H ; Np thanh ghi R1 gi tr 85H ; Np thanh ghi R2 gi tr 3FH ; Np thanh ghi R7gi tr 63H ; Np thanh ghi R5 gi tr12H

Li gii: Theo mc nh PSW.3 = 0 v PSW.4 = 0. Do vy, lnh SETB PSW.4 s bt bit RS1 = 1 v RS0 = 0, bng lnh nh vy bng thanh ghi R0 n R7 s 2 c chn. Bng 2 s dng cc ngn nh t 10H n 17H. Nn sau khi thc hin on chng trnh trn ta c ni dung cc ngn nh nh sau:
Ngn nh v tr 10H c gi tr 99H Ngn nh v tr 11H c gi tr 85H Ngn nh v tr 12H c gi tr 3FH Ngn nh v tr 17H c gi tr 63H Ngn nh v tr 15H c gi tr 12H
2.6.5

Ngn xp l mt vng b nh RAM c CPU s dng lu thng tin tm thi. Thng tin ny c th l d liu, c th l a c CPU cn khng gian lu tr ny v s cc thanh ghi b hn ch. Nu ngn xp l mt vng ca b nh RAM th phi c cc thanh ghi trong CPU ch n n. Thanh c dng ch n ngn xp c gi l thanh ghi con tr ngn xp SP (Stack Pointer). Con tr ngn xp trong 8051 ch rng 8 bit c ngha l n ch c th c th c cc a ch t 00 n FFH. Khi 8051 c cp ngun th SP cha gi tr 07 c ngha l ngn nh 08 ca RAM l ngn nh u tin c dng cho ngn xp trong 8051. Vic lu li mt thanh ghi
2.6.6 Cch truy cp cc ngn xp trong 8051.

Ngn xp trong 8051.

Smith Nguyen Studio.


PCU trong ngn xp c gi l mt ln ct vo PUSH v vic np ni dung ca ngn xp tr li thanh ghi CPU c gi l ly ra POP. Hay ni cch khc l mt thanh ghi c ct vo ngn xp lu ct v c ly ra t ngn xp dng tip cng vic ca SP l rt nghim ngt mi khi thao tc ct vo (PUSH) v ly ra (POP) c thc thi. bit ngn xp lm vic nh th no hy xt cc lnh PUSH v POP di y.
2.6.7

Trong 8051 th con tr ngn xp ch n ngn nh s dng cui cng ca ngn xp. Khi ta ct d liu vo ngn xp th con tr ngn xp SP c tng ln 1. Lu rng iu ny i vi cc b vi x l khc nhau l khc nhau, ng ch l cc b vi x l 86 l SP gim xung khi ct d liu vo ngn xp. Xt v d 2.8 di y, ta thy rng mi khi lnh PUSH c thc hin th ni dung ca thanh ghi c ct vo ngn xp v SP c tng ln 1. Lu l i vi mi byte ca d liu c ct vo ngn xp th SP c tng ln 1 ln. Cng lu rng ct cc thanh ghi vo ngn xp ta phi s dng a ch RAM ca chng. V d lnh PUSH 1 l ct thanh ghi R1 vo ngn xp. V d 2.8: Hy biu din ngn xp v con tr ngn xp i vi on chng trnh sau y. Gi thit vng ngn xp l mc nh.
MOV MOV MOV PUSH PUSH PUSH R6, #25H R1, #12H R4, #0F3H 6 1 4

Ct thanh ghi vo ngn xp.

Li gii:
0B 0A 09 08 Bt u SP = 07 2.6.8 Sau PUSH 6 0B 0A 09 08 25 SP = 08 Sau PUSP 1 0B 0A 09 12 08 25 SP = 09 Sau PUSH 4 0B 0A F3 09 12 08 25 SP = 0A

Vic ly ni dung ra t ngn xp tr lai thanh ghi cho l qa trnh ngc vi cc ni dung thanh ghi vo ngn xp. Vi mi ln ly ra th byte trn nh ngn xp c sao chp vo thanh ghi c xc nh bi lnh v con tr ngn xp c gim xung 1. V d 2.9 minh ho lnh ly ni dung ra khi ngn xp. V d 2.9: Kho st ngn xp v hy trnh by ni dung ca cc thanh ghi v SP sau khi thc hin on chng trnh sau y:
POP POP 3 5 ; Ly ngn xp tr li R3 ; Ly ngn xp tr li R5

Ly ni dung thanh ghi ra t ngn xp.

Smith Nguyen Studio.


POP 2 ; Ly ngn xp tr li R2

Li gii:
0B 54 0A F9 09 76 08 6C Bt u SP = 0B 2.6.9 Sau POP3 0B 0A F9 09 76 08 6C SP = 0A Sau POP 5 0B 0A 09 76 08 6C SP = 09 Sau POP 2 0B 0A 09 08 6C SP = 08

Nh ni trn, cc ngn nh 08 n 1FH ca RAM trong 8051 c th c dng lm ngn nh 20H n 2FH ca RAM c d phng cho b nh nh a ch c theo bit v khng th dng trc cho ngn xp. Nu trong mt chng trnh cho ta cn ngn xp nhiu hn 24 byte (08 n 1FH = 24 byte) th ta c th i SP ch n cc ngn nh 30 n 7FH. iu ny c thc hin bi lnh MOV SP, #XX. Ngoi vic s dng ngn xp lu ct cc thanh ghi th CPU cng s dng ngn xp lu ct tam thi a ch ca lnh ng ngay di lnh CALL. iu ny chnh l PCU bit ch no quay tr v thc hin tip cc lnh sau khi chn chng trnh con. Chi tit v lnh gi CALL c trnh b chng 3. Nh ta a ni trn th thanh ghi con tr ngn xp c th ch n v tr RAM hin thi dnh cho ngn xp. Khi d liu c lu ct co ngn xp th SP c tng ln v ngc li khi d liu c ly ra t ngn xp th SP gim xung. L do l PS c tng ln sau khi PUSH l phi bit ly chc chn rng ngn xp ang tng ln n v tr ngn nh 7FH ca RAM t a ch thp nht n a ch cao nht. Nu con tr ngn xp c gim sau cc lnh PUSH th ta nn s dng cc ngn nh 7, 6, 5 v.v... ca RAM thuc cc thanh ghi R7 n R0 ca bng 0, bng thanh ghi mc nh. Vic tng ny ca con tr ngn xp i vi cc lnh PUSH cng m bo rng ngn xp s khng vi ti ngn nh 0 ca RAM (y ca RAM) v do vy s nhy ra khi khng gian dnh cho ngn xp. Tuy nhin c vn ny sinh vi thit lp mc nh ca ngn xp. V d SP = 07 khi 8051 c bt ngun nn RAM v cng thuc v thanh ghi R0 c bng thanh ghi s 1. Hay ni cch khc bng thanh ghi s 1 v ngn xp ang dng chung mt khng gian ca b nh RAM. Nu chng trnh cho cn s dng cc bng thanh ghi s 1 v s 2 ta c th t li vng nh RAM cho ngn xp. V d, ta c th cp v tr ngn nh 60H ca RAM v cao hn cho ngn xp trong v d 2.10. V d 2.10: Biu din ngn xp v con tr ngn xp i vi cc lnh sau:
MOV MOV MOV MOV PUSH SP, #5FH R2, #25H R1, #12H R4, #0F3H 2 2.6.11 Xung t ngn xp v bng thanh ghi s 1. 2.6.10 Lnh gi CALL v ngn xp.

Gii hn trn ca ngn xp.

; t ngn nh t 60H ca RAM cho ngn xp

Smith Nguyen Studio.


PUSH 1

PUSH 4 Li gii:
63 62 61 60 Bt uSP=5F Sau PUSH 2 63 62 61 60 25 SP = 60 Sau PUSP 3 63 62 61 12 60 25 SP = 61 Sau PUSH 4 63 62 F3 61 12 60 25 SP = 62

Potrebbero piacerti anche