Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

Embed Size (px)

Citation preview

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    1/19

    ch-ng 2

    Lp trnh hp ng 8051

    2.1 Bn trong 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 Cc thanh ghi.Trong CPU cc thanh ghi -c dng l-u ct thng tin tm thi, nhng thng tinny 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 cmt kiu d liu: Loi 8 bit, 8 bit ca mt thanh ghi -c trnh by nh- sau:

    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 bitth bt k d liu no ln hn 8 bit u phi -c chia thnh cc khc 8 bit tr-c khi

    -c x l. V c mt s l-ng ln cc thanh ghi trong 8051 ta s tp trung vo mts thanh ghi cng dng chung c bit trong cc ch-ng k tip. Hy tham kho phlc Appendix A.3 bit y v cc thanh ghi ca 8051.

    Hnh 2.1: a) Mt s thanh ghi 8 bit ca 8051b) Mt s thanh ghi 16 bit ca 8051

    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 ch-ng trnh). Tt c cc d liu trn ul thanh g hi 8 bit tr DPTR v PC l 16 bit. Thanh ghi tch lu A -c s dng chott c mi php ton s hc v lgc. hiu s dng cc thanh ghi ny ta s giithiu chng trong cc v d vi cc lnh n gin l ADD v MOV.2.1.2 Lnh chuyn MOV.Ni mt cch n gin, lnh MOV sao chp d liu t mt v tr ny n mt v trkhc. N c c php nh- sau:

    MOV ; ch, ngun; sao chp ngun vo ch

    D7 D6 D5 D4 D3 D2 D1 D0

    A

    B

    R0

    R1

    R2

    R3

    R4

    R5

    R6

    R7

    DPH

    PC (program counter)

    DPLDPTR

    PC

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    2/19

    Lnh ny ni CPU chuyn (trong thc t l sao chp) ton hng ngun vo ton hngch. 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 ch-ng trnh d-i y u tinl np thanh ghi A ti gi tr 55H 9l gi tr 55 dng s Hex) v sau chuyn gitr ny qua cc thanh ghi khc nhau bn trong CPU. L-u rng du # trong lnh

    bo rng l mt gi tr. Tm quan trng ca n s -c trnh by ngay sau v dny.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 l-u 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 tr-c n mt k hiu # nh-ch ra d-i y.

    MOV A, #23H ; Np gi tr 23H vo A (A = 23H)MOV R0, #12H ; Np gi tr 12H vo R0 (R0 = 2BH)MOV R1, #1FH ; Np gi tr 1FH vo R1 (R1 = 1FH)MOV R2, #2BH ; Np gi tr 2BH vo R2 (R2 = 2BH)MOV B, # 3CH ; Np gi tr 3CH vo B (B = 3CH)MOV R7, #9DH ; Np gi tr 9DH vo R7 (R7 = 9DH)MOV R5, #0F9H ; Np gi tr F9H vo R5 (R5 = F9H)

    MOV R6, #12 ;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 tr-c F v sau du # borng 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 -ccoi 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 ; Khng hp l v 7F2H > FFHMOV R2, 456 ; Khng hp l v 456 > 255 (FFH)

    4. np mt gi tr vo mt thanh ghi th phi gn du # tr-c gi tr . Nukhng c du th n hiu rng np t mt v tr nh. V d MOV A, 17H c nghal np gi tr trong ngn nh c gi tr 17H vo thanh ghi A v ti a ch d liuc th c bt k gi tr no t 0 n FFH. Cn np gi tr l 17H vo thanh ghi Ath cn phi c du # tr-c 17H nh- th ny. MOV A, #17H. Cn l-u rngnu thiu du # tr-c mt th s khng gy li v hp ng cho l mt lnh hp

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    3/19

    l. Tuy nhin, kt qu s khng ng nh- mun ca ng-i lp trnh. y s lmt li th-ng hay gp i vi lp trnh vin mi.

    2.1.3 Lnh cng ADD.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 vsau cng li vi nhau nh-:MOV A, #25H ; Np gi tr 25H vo AMOV R2, #34H ; Np gi tr 34H vo R2ADD A, R2 ; Cng R2 vo A v kt qu A = A + R2

    Thc hin ch-ng trnh trn ta -c A = 59H (v 25H + 34H = 59H) v R2 = 34H,ch l ni dng R2 khng thay i. Ch-ng trnh trn c th vit theo nhiu cchph 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 R5MOV 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)

    Ch-ng trnh trn c kt qu trong A L 59H, c rt nhiu cch vit ch-ng trnhging nh- vy. Mt cu hi c th t ra sau khi xem on ch-ng trnh trn l liuc cn chuyn c hai d liu vo cc thanh ghi tr-c khi cng chng vi nhaukhng? Cu tr li l khng cn. Hy xem on ch-ng trnh d-i 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)

    Trong tr-ng hp trn y, khi thanh ghi A cha s th nht th gi tr th hai itheo mt ton hng. y -c gi l ton hng tc thi (trc tip).Cc v d tr-c cho n gi th lnh ADD bo rng ton hng ngun c th hoc lmt thanh ghi hoc l mt d liu trc tip (tc thi) nh-ng thanh ghi ch lun lthanh 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 vlnh ADD R4, A cng khng hp l v A lun l thanh ghi ch cho mi php shc. Ni mt cch n gin l trong 8051 th mi php ton s hc u cn nthanh A vi vai tr l ton hng ch. Phn trnh by trn y gii thch l do v saothanh 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 ch-ng trnh PC v con tr d liuAPTR. Tm quan trng v cch s dng chng -c trnh by mc 2.3. Thanh ghiDPTR -c s dng truy cp d liu v -c lm k ch-ng 5 khi ni v ccch 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 thutng s dng rng ri gn lin vi lp trnh hp ng.

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    4/19

    CPU ch c th lm vic vi cc s nh phn v c th chy vi tc rt cao. Tuynhin, tht l ngn ngm v chm chp i vi con ng-i phi lm vic vi cc s 0v 1 lp trnh cho my tnh. Mt ch-ng trnh cha cc s 0 v 1 -c gi l ngnng my.Trong nhng ngy u ca my tnh, cc lp trnh vin phi vit m ch-ng trnhd-i 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 vim my vn cn l cng vic cng knh i vi con ng-i. Cui cng, cc ngunng hp ng -c pht, cung cp cc t gi nh cho cc lnh m my cng vinhng c tnh khc gip cho vic lp trnh nhanh hn v t mc li hn. Thut ngt gi nh (mnemonic) th-ng xuyn s dng trong ti liu khoa hc v k thutmy tnh tham chiu cho cc m v t rt gn t-ng i d nh, cc ch-ng trnhhp ng phi -c dch ra thanh m my bng mt ch-ng trnh -c l trnh hpng (hp dch). Hp ng -c coi nh- l mt ngng ng bc thp v n giao tip trctip vi cu trc bn trong ca CPU. lp trnh trong hp ng, lp trnh vin phibit tt c cc thanh ghi ca CPU v kch th-c ca chng cng nh- cc chi titkhc.

    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 lnh-ng ngn ng bc cao v lp trnh vin khng cn phi t-ng tc vi cc chi titbn trong ca CPU. Mt trnh hp dch -c dng dch ch-ng trnh hp ng ram my cn (cn i khi cng cn -c gi m i t-ng (Object Code) hay mlnh Opcode), cn cc ngn ng bc cao -c dch thnh cc ngn ng m mybng mt ch-ng trnh gi l trnh bin dch. V d, vit mt ch-ng trnh trong Cta phi s dng mt trnh bin dch C dch ch-ng trnh v dng m my. By gita xt dng thc hp ng ca 8051 v s dng trnh hp dch to ra mt ch-ngtrnh sn sng chy ngay -c.2.2.1 Cu trc ca hp ng.Mt ch-ng trnh hp ng bao gm mt chui cc dng lnh hp ng. Mt lnh hpng c cha mt t gi nh (mnemonic) v tuy theo tng lnh v sau n c mt hochai ton hng. Cc ton hng l cc d liu cn -c thao tc v cc t gi nh l cclnh i vi CPU ni n lm g vi cc d liu.

    ORG 0H ; Bt u (origin) ti ngn nh 0MOV R5, #25H ; Np 25H vo R5MOV R7, #34H ; Np 34H vo R7MOV A, #0 ; Np 0 vo thanh ghi AADD 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

    Ch-ng trnh 2.1: V d mu v mt ch-ng trnh hp ng.Ch-ng trnh 2.1 cho trn y l mt chui cc cu lnh hoc cc dng lnh -cvit hoc bng cc lnh hp ng nh- ADD v MOV hoc bng cc cu lnh -c gil cc ch dn. Trong khi cc lnh hp ng th ni CPU phi lm g th cc ch lnh

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    5/19

    (hay cn gi l gi lnh) th -a ra cc ch lnh cho hp ng. V d, trong ch-ngtrnh 2.1 th cc lnh ADD v MOV l cc lnh n CPU, cn ORG v END l ccch lnh i vi hp ng. ORG ni hp ng t m lnh ti ngn nh 0 v END thbo cho hp ng bit kt thc m ngun. Hay ni cch khc mt ch lnh bt uv ch lnh th hai kt thc ch-ng trnh.

    Cu trc ca mt lnh hp ng c 4 tr-ng nh- sau:

    [nhn:] [t gi nh] [cc ton hng] [; ch gii]Cc tr-ng trong du ngoc vung l tu chn v khng phi dng lnh no cng cchng. Cc du ngoc vung khng -c vit vo. Vi dng thc trn y cn l-u cc im sau:

    1. Tr-ng nhn cho php ch-ng trnh tham chiu n mt dng lnh bng tn. Nkhng -c vit qu mt s k tnht nh. Hy kim tra quy nh ny ca hp ngm ta s dng.

    2. T gi nh (lnh) v cc ton hng l cc tr-ng kt hp vi nhau thc thi cng victhc t ca ch-ng trnh v hon thin cc nhim v m ch-ng trnh -c vit chochng. Trong hp ng cc cu lnh nh-:

    ADD A, BMOV 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 tr-ng c th cha cc lnh gi hoc chlnh ca hp ng. Hy nh rng cc ch lnh khng to ra m lnh no (mmy) v chng ch dng bi hp ng, ng-c li i vi cc lnh l chng-c dch ra m my (m lnh) cho CPU thc hin. Trong ch-ng trnh 2.1cc lnh ORG v END l cc ch lnh (mt s hp ng ca 8051 s dngdng .ORG v .END). Hy c quy nh c th ca hp ng ta s dng.

    3. Ch-ng ch gii lun phi bt u bng du chm phy (;). Cc ch gii c th bt

    u u dng hoc gia dng. Hp ngb qua (lm ng) cc ch gii nh-ng chngli rt cn thit i vi lp trnh vin. Mcd cc ch gii l tu chn, khng bt bucnh-ng ta nn dng chng m t ch-ngtrnh gip cho ng-i khc c v hiuch-ng trnh d dng hn.

    4. L-u n nhn HERE trong tr-ng nhnca ch-ng trnh 2.1. Mt nhn bt ktham chiu n mt lnh phi c du haichm (:) ng sau. Trong cu lnh nhy

    ngn SJMP th 8051 -c ra lnh litrong vng lp ny v hn. Nu h thngca chng ta c mt ch-ng trnh gim stth takhng cn dng lnh ny v n c th-c xo i ra khi ch-ng trnh.

    2.3 Hp dch v chy mt ch-ngtrnh 8051.

    Nh- vy cu trc ca mt ch-ng trnh hpng ta -c bit, cu hi t ra l ch-ng

    EDITORPRAGRAM

    ASSEMBLERPRAGRAM

    LINKERPRAGRAM

    OHPRAGRAM

    myfile.asm

    myfile.lst

    myfile.obj

    other obj file

    myfile.abs

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    6/19

    trnh s -c to ra v hp dch nh- th no v lm th no c th chy -c? Ccb-c to ra mt ch-ng trnh hp ng c th chy -c l:

    1. Tr-c ht ta s dng m trnh son tho gvo mt ch-ng trnh ging nh-ch-ng trnh 2.1. C nhiu trnh son tho tuyt vi hoc cc b s l t -c sdng to ra v/hoc son tho ch-ng trnh. Mt trnh son tho -c s dngrng ri l trnh son tho EDIT ca MSDOS (hoc Noterad ca Windows) uchy trn h iu hnh Microsoft. L-u rng, trnh son tho phi c kh nng tora tp m ASCII. i vi nhiu trnh hp ng th cc tn tp tun theo cc quy -cth-ng l c DOS, nh-ng phn mrng ca cc tp ngun phi l asm hay srctu theo trnh hp ng m ta s dng.

    2. Tp ngun c phn mrng asm cha m ch-ng trnh -c to ra b-c 1 -cnp vo trnh hp dch ca 8051. Trnh hp dch chuyn cc lnh ra m my. Trnhhp dch s to ra mt tp i t-ng v mt tp lit k vi cc thnh phn m rngobj v lst t-ng ng.

    3. Cc trnh hp dch yu cu mt b-c th ba gi l lin kt. Ch-ng trnh lin kt lymt hoc nhiu tp i t-ng v to ra mt tp i t-ng tuyt i vi thnh phnmrng abs. Tp abs ny -c s dng bi thng cha ca 8051 c mtch-ng trnh gim st.

    4. K sau tp abs -c np vo mt ch-ng trnh -c gi l 0H (chuyn it-ng object v dng s Hex) to ra mt tp vi ui mrng Hex c th nptt vo trong ROM. Ch-ng trnh ny c trong tt c mi trnh hp ng ca 8051cc trnh hp ng da trn Windows hin nay kt hp cc b-c 2 n 4 vo thnhmt b-c.Hnh 2.2: Cc b-c to ra mt ch-ng trnh.

    2.3.1 Ni thm v cc tp .asm v .object.Tp .asm cng -c gi l tp ngun v chnh v l do ny m mt s trnh hpng i hi tp ny phi c mt phn m rng src t chsource l ngun. Hykim tra hp ng 8051 m ta s dng xem n c i hi nh- vy khng? Nh- ta nitr-c 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 trongtp .asm thnh ngn ng m my v cung cp tp i t-ng .object. Ngoi vic to ratp i t-ng trnh hp ng cng cho ra tp lit k lst (List file).2.3.2 Tp lit k .lst.Tp lit k l mt tu chn, n rt hu ch cho lp trnh vin v n lit k tt c mim lnh v a ch cng nh- tt c cc li m trnh hp ng pht hin ra. Nhiu trnhhp ng gi thit rng, tp lit k l khng cn thit tr khi ta bo rng ta mun tora n. Tp ny c th -c truy cp bng mt trnh bin dch nh-Edit ca DOS hocNotepad ca Window v -c hin th trn mn hnh hoc -c gi ra my in. Lptrnh 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 t-ng mi sn sng lm u vo choch-ng trnh lin kt.1 0000 ORG 0H ; Bt u a ch02 0000 7D25 MOV R5, #25H ; Np gi tr 25H vo R53 0002 7F34 MOV R7, #34H ; Np gi tr 34H vo R74 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)

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    7/19

    8 00A BCEF HERE: SJMP HERE ; li vng lp ny9 000C END ; Kt thc tp .asm

    Ch-ng trnh 2.2: Tp lit k.

    2.4 B m ch-ng trnh v khng gian ROM trong 8051.2.4.1 B m ch-ng trnh trong 8051.

    Mt thanh ghi quan trng khc trong 8051 l b m ch-ng trnh . B m ch-ngtrnh ch m a ch ca lnh k tip cn -c thc hin. Khi CPU np m lnh tb nh ROM ch-ng trnh th b m ch-ng trnh tng ln ch m lnh kt tip.B m ch-ng trnh trong 8051 c th truy cp cc a ch ch-ng trnh trong 8051rng 16 bit. iu ny c ngha l 8051 c th truy cp cc a cha ch-ng trnh t0000 n FFFFH tng cng l 64k byte m lnh. Tuy nhin, khng phi tt c mithnh vin ca 8051 u c tt c 64k byte ROM trn chp -c ci t. Vy khi8051 -c bt ngun th n nh thc a cha no?2.4.2 a ch bt u khi 8051 -c cp ngun.Mt cu hi m ta phi hi v b vi iu khin bt k l th n -c cp ngun th nbt u t a ch no? Mi b vi iu khin u khc nhau. Trong tr-ng hp h8051 th mi thnh vin k t nh sn xut no hay phin bn no th b vi iukhin u bt u t a ch 0000 khi n -c bt ngun. Bt ngun y c nghal ta cp in p Vcc n chn RESET nh- s trnh by ch-ng 4. Hay ni cchkhc, khi 8051 -c cp ngun th b m ch-ng trnh c gi tr 0000. iu ny cngha l n ch m lnh u tin -c l-u a cha ROM 0000H. V l do ny mtrong v tr nh 0000H ca b nhROM ch-ng trnh v y l ni m n tm lnhu tin khi bt ngun. Chng ta t -c iu ny bng cu lnh ORG trongch-ng trnh ngun nh- trnh by tr-c y. D-i y l hot ng tng b-c cab m ch-ng trnh trong qa trnh np v thc thi mt ch-ng trnh mu.2.4.3 t m vo ROM ch-ng trnh.

    hiu tt hn vai tr ca b m ch-ng trnh trong qu trnh np v thc thi mtch-ng trnh, ta kho st mt hot ng ca b m ch-ng trnh khi mi lnh -cnp v thc thi. Tr-c ht ta kho st mt ln na tp lit k ca ch-ng trnh mu vcch t m vo ROM ch-ng trnh 8051 nh- th no? Nh- ta c th thy, m lnhv ton hng i vi mi lnh -c lit k bn tri ca lnh lit k.

    Ch-ng trnh 2.1: V d mu v mt ch-ng trnh hp ng.Ch-ng trnh 2.1 cho trn y l mt chui cc cu lnh hoc cc dng lnh -cvit hoc bng cc lnh hp ng nh- ADD v MOV hoc bng cc cu lnh -c gil 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 ch-ngtrnh 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 thbo cho hp ng bit kt thc m ngun. Hay ni cch khc mt ch lnh bt uv ch lnh th hai kt thc ch-ng trnh.

    Cu trc ca mt lnh hp ng c 4 tr-ng nh- sau:[nhn:] [t gi nh] [cc ton hng] [; ch gii]

    Cc tr-ng trong du ngoc vung l tu chn v khng phi dng lnh no cng cchng. Cc du ngoc vung khng -c vit vo. Vi dng thc trn y cn l-u cc im sau:

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    8/19

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    9/19

    cng 25 l ton hng. T-ng tnh- vy, m my 7F34 -c t trong cc ngnnh 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 dinm lnh v ton hng i vi lnh MOV A, #0. Ngn nh 0006 c m 2D l mi vi lnh ADD A, R5 v ngn nh 0007 c ni dung 2F l m lnh cho ADDA, 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 va ch ch ca n -c t ngn nh 000B. L do v sao a ch ch l FE -cgii thch ch-ng 3.2.4.4 Thc hin mt ch-ng trnh theo tng byte.Gi s rng ch-ng trnh trn -c t vo ROM ca chp 8051 hoc( 8751, AT8951 hoc DS 5000) th d-i y l m t hot ng theo tng b-c ca 8051 khi n-c cp ngun.

    1. Khi 8051 -c bt ngun, b m ch-ng trnh PC c ni dung 0000 v bt u npm lnh u tin t v tr nh 0000 ca ROM ch-ng trnh. Trong tr-ng hp cach-ng trnh ny l m 7D chuyn mt ton hng vo R5. Khi thc hin m lnhCPU np gi tr 25 vo b m ch-ng 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. L-u rng tt c cc lnh trn u l nhng lnh 2 byte, nghal 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, saukhi thc hin lnh ny PC = 0007.

    5. Ngn nh 0007 cha m 2F l m lnh ca ADD A, R7. y cng l lnh mtbyte, khi thc hin lnh ny PC -c tng ln 0008. Qa trnh ny c tip tc chon khi tt c moi lnh u -c np v thc hin. Thc t m b m ch-ng trnh

    ch n lnh k tip cn -c thc hin gii thch ti sao mt s b vi x l (ngni l 86) gi b m l con tr lnh (Instruction Pointer).

    2.4.5 Bn nh ROM trong h 8051.Nh- ta thy ch-ng tr-c, mt s thnh vin h 8051 ch c 4k byte b nhROM trn chp (v d 8751, AT 8951) v mt s khc nh- AT 8951 c 8k byteROM, DS 500032 ca Dallas Semiconductor c 32k byte ROM trn chp. DallasSemiconductor cng c mot 8051 vi ROM trn chp l 64k byte. im cn nh lkhng c thnh vin no ca h 8051 c th truy cp -c hn 64k byte m lnh vb m ch-ng trnh ca 8051 l 16 bit (di a ch t 0000 n FFFFH). Cn phighi nh l lnh u tin ca ROM ch-ng trnh u t 0000, cn lnh cui cngph thuc vo dung l-ng ROM trn chp ca mi thnh vin h 8051. Trong s ccthnh vin h 8051 th 8751 v AT 8951 c 4k byte ROM trn chp. B nh ROMtrn chp ny c cc a ch t 0000 n 0FFFH. Do vy, ngn nh u tin c ach 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 byteb) DS 500032 vi 32k byte

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    10/19

    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 ccngn nh t 0000 n 0FFFFH. L-u 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 tanhn -c gi tr 8000H. Do vy, khng gian nh l di t 0000 n 7FFFH.

    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.2.5.1 Kiu d liu v cc ch lnh ca 8051.B vi iu khin ch c mt kiu d liu, n l 8 bit v di mi thanh ghi cng l8 bit. Cng vic ca lp trnh vin l phn chia d liu ln hn 8 bit ra thnh tngkhc 8 bit (t 00 n FFH hay t 0 n 255) CPU x l. V d v x l d liu lnhn 8 bit -c trnh by ch-ng 6. Cc d liu -c s dng bi 8051 c th l s

    m hoc s d-ng v v x l cc s c du -c bn ch-ng 6.2.5.2 Ch lnh DB (nh ngha byte).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 liuth cc s c th dng thp phn, nh phn, Hex hoc dng thc ASII. i vi dliu thp phn th cn t chD sau s thp phn, i vi s nh phn th t chB v i vi d liu dng Hex th cn t ch H. Bt k ta s dng sdngthc 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 ngs gn m ASCII cho cc s hoc cc k tmt cch tng. Ch lnh DB ch l chlnh 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. D-i y lmt s v d v DB:

    ORG 500HDATA1: DB 2B ; Sthp phn (1C dng Hex)DATA2: DB 00110101B ; Snh phn (35 dng Hex)DATA3: DB 39H ; Sdng Hex

    ORG 510HDATA4: DB 2591 ; Cc sASCII

    ORG 518HDATA5 DB My name is Joe ; Cc k tASCII

    byte byte byte

    0000

    0FFF

    1FFF

    7FFF

    0000 0000

    8751AT89C51

    8752AT89C52

    DS5000-32

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    11/19

    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 tr-ng hp du nhy n-c dng shu cch nh- th ny Nh O Leary. Ch lnh DB cng -c dng cp pht b nh theo tng on kch th-c mt byte.2.5.3 Cc ch lnh ca hp ng.

    1. Ch lnh ORG: Ch lnh ORG -c dng bo bt u ca a ch. S i sau ORGc k dng Hex hoc thp phn. Nu s ny c km ch H ng sau th l dngHex v nu khng c ch H sau l s thp phn v hp ng s chuyn n thnh sHex. Mt s hp ng s dng du chm ng tr-c ORG thay cho ORG. Hyc k v trnh hp ng ta s dng.

    2. Ch lnh EQU: -c dng nh ngha mt hng s m khng chim ngn nhno. Ch lnh EQU khng dnh ch ct cho d liu nh-ng n gn mt gi tr hng svi nhn d liu sao cho khi nhn xut hin trong ch-ng trnh gi tr hng s can s -c thay th i vi nhn. D-i 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

    Khi thc hin ln MOV R3, #COUNT th thanh ghi R3 s -c np gi tr25 (ch n du #). Vy -u im ca vic s dng EQU l g?Gi s cmt hng s (mt gi tr c nh) -c dng trong nhiu ch khc nhau trongch-ng trnh v lp trnh vin mun thay i gi tr ca n trong c ch-ngtrnh. Bng vic s dng ch lnh EQU ta c th thay i mt s ln v hpng s thay i tt c mi ln xut hin ca n l tm ton b ch-ng trnh vgng tm mi ln xut hin.

    3. Ch lnh END: Mt lnh quan trng khc l ch lnh END. N bo cho trnhhp ng kt thc ca tp ngun asm ch lnh END l dng cui cng cach-ng 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 chmng tr-c thay cho END.

    2.5.4 Cc quy nh vi nhn trong hp ng.Bng cch chn cc tn nhn c ngha l mt lp trnh vin c th lm cho ch-ngtrnh d c v d bo tr hn, c mt squy 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 hpng gm cc ch ci vit hoa v vit th-ng, cc s t 0 n 9 v cc du c bitnh-: du hi (?), du (), du gch d-i (_), du l ($) v du chu k (.). K tu 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 dtr l cc t gi nh cho cc lnh m khng -cdng lm nhn trong ch-ng trnh. V d nh-MOV v ADD. Bn cnh cct gi nh cn c mt s tdtr khc, hy kim tra bn lit k cc t dphng cahp ng ta ang s dng.

    2.6 Cc bit c v thanh ghi c bt PSW ca 8051.Cng nh- cc b vi x l khc, 8051 c mt thanh ghi c bo cc iu kin shc nh- bit nh. Thanh ghi c trong 8051 -c gi l thanh ghi t trng thi ch-ngtrnh PSW. Trong phn ny v -a ra mt s v d v cch thay i chng.

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    12/19

    2.6.1 Thanh ghi t trng thi ch-ng trnh PSW.Thanh ghi PSW l thanh ghi 8 bit. N cng cn -c coi nh- l thanh ghi c. Mcd thanh ghi PSW rng 8 bit nh-ng ch c 6 bit -c 8051 s dng. Hai bit ch-adng l cc c ch ng-i dng nh ngha. Bn trong s cc c -c gi l cc c ciu kin, c ngha l chng bo mt s iu kin do kt qu ca mt lnh va -cthc 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 vchng -c s dng thay i cc thanh ghi bng. Chng s -c gii thch phnk sau. Cc bit PSW.5 v PSW.1 l cc bit c trng thi cng dng chung v lp trnhvin c th s dng cho bt k mc ch no.

    CY PSW.7 ; C nhAC PSW.6 ; C

    PSW.5 ; Dnh cho ng-i dng s dng mc ch chungRS1 PSW.4 ; Bit = 1 chn bng thanh ghi

    RS0 PSW.3 ; Bit = 0 chn bng thanh ghiOV PSW.2 ; C bn PSW.1 ; Bit dnh cho ng-i dng nh ngha

    P PSW.0 ; C chn, l. Thit lp/xo bng phn cng mi chu k lnh bo tng ccsbit 1 trong thanh ghi A l chn/ l.

    RS1 RS0 Bng thanh ghi a ch0 0 0 00H - 07H0 1 1 08H - 0FH1 0 2 10H - 17H1 1 3 18H - 1FH

    Hnh 2.4: Cc bit ca thanh ghi PSWD-i 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 tipbng lnh SETB C v CLR C ngha l thit lp c nh v xo c nh t-ngng. V cc lnh nh a ch theo bit -c bn k ch-ng 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 ch-ng 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 mts l cc bit mt.

    4. C chn OV: C ny -c thit lp mi khi kt qu ca mt php tnh s c du quln to ra bit bc cao lm trn bit du. Nhn chung c nh -c dng pht hinli trong cc php s hc khng du. Cn c trn -c dng ch pht hin litrong cc php s hc c du v -c bn k ch-ng 6.

    2.6.2 Lnh ADD v PSW.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 lnhADD l CY, P, AC v OV nh-ng ta ch tp trung vo cc c CY, AC v P, cn cOV s -c ni n ch-ng 6 v n lin quan n php tnh s hc s c du.

    CY AC F0 OV P-RS1 RS0

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    13/19

    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 vi2FH d-i y:

    MOV A, #38HADD A, #2FH ; Sau khi cng A = 67H, CY = 0

    Li gii:38 00111000

    + 2F 00101111

    67 01100111

    C CY= 0 v khng c nh t D7C AC = 1 v c nh t D3 sang D4C 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 10011100

    + 64 01100100

    100 00000000

    C CY= 1 v c nhqua bit D7C AC = 1 v c nh t D3 sang D4C 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 10001000

    + 93 10010011

    11B 00011011

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

    Instruction CY OV ACADD X X XADDC X X XSUBB X X XMUL 0 XDIV 0 XDA XRRC XRLC XSETB C 1

    CLR C 0CPL C XANL C, bit XANL C,/ bit XORL C, bit XORL C,/bit XMOV C, bit XCJNE X

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    14/19

    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 bca 128 byte RAM ny v kho st cng dng ca chng nh- cc thanh ghi v ngnxp.2.7.1 Phn b khng gian b nh RAM trong 8051.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 sthy ch-ng 5, chng c th -c truy cp trc tip nh- cc ngn nh 128 byteRAM 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 ngnxp.

    2. Tng cng 16 byte t ngn nh 20H n 2FH -c dnh cho b nh c/ghi nha ch -c theo bit. Ch-ng 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 l-u c v ghi hay nh-vn th-ng gi l bng nhp (Serach pad). Nhng ngn nh ny (80 byte) ca RAM-c s dng rng ri cho mc ch l-u d liu v tham s bi cc lp trnh vin

    8051. Chng ta s s dng chng cc ch-ng sau l-u d liu nhn vo CPU quacc cng vora.2.7.2 Cc bng thanh ghi trong 8051.Nh- ni tr-c, tng cng 32 byte RAM -c dnh ring cho cc bng thanh ghiv ngn xp. 32 byte ny -c chia ra thnh 4 bng cc thanh ghi trong mi bngc 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 tthanh nh RAM s 2 cho n ngn nh RAM s 0FH. Bng th ba bt u t ngnnh 10H n 17H v cui cng t ngn nh 18H n 1FH l dng cho bng ccthanh ghi R0 n R7 th t-.

    R0-R7

    R0-R7

    R0-R7

    R0-R7

    RAM nh achtheo bit RAM bng nh(Seratch Pad)

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

    00 07 08 0F10 1718 1F 20 2F 30 7F

    Bng0 ... Bng3

    R7

    R6R5

    R4

    R3

    R2

    R1

    7

    65

    4

    3

    2

    1

    R00

    R7

    R6R5

    R4

    R3

    R2

    R1

    F

    ED

    C

    B

    A

    9

    R08

    R7

    R6R5

    R4

    R3

    R2

    R1

    17

    1615

    14

    13

    12

    11

    R010

    R7

    R6R5

    R4

    R3

    R2

    R1

    1F

    1E1D

    1C

    1B

    1A

    19

    R018

    Bank 0 Bank 1 Bank 2 Bank 3

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    15/19

    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- ngnxp. y l mt vn chnh trong lp trnh 8051. Chng ta phi hoc l khng sdng 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 ch-ng trnh sau:

    MOV R0, #99H ; Np R0 gi tr 99HMOV R1, #85H ; Np R1 gi tr 85HMOV R2, #3FH ; Np R2 gi tr 3FHMOV R7, #63H ; Np R7gi tr 63HMOV R5, #12H ; Np R5 gi tr12H

    Li gii:

    Sau khi thc hin ch-ng trnh trn ta c:Ngn nh 0 ca RAM c gi tr 99HNgn nh 1 ca RAM c gi tr 85HNgn nh 2 ca RAM c gi tr 3FHNgn nh 7 ca RAM c gi tr 63HNgn nh 5 ca RAM c gi tr 12H

    2.6.3 Bng thanh ghi mc nh.Nu cc ngn nh 00 n 1F -c dnh ring cho bn bng thanh ghi, vy bngthanh ghi R0 n R7 no ta phi truy cp ti khi 8051 -c cp ngun? Cu tr li lcc 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 hnnhiu khi tham chiu cc ngn nh RAM ny v cc tn R0, R1 v.v... hn l s vtr ca cc ngn nh. V d 2.6 lm r khi nim ny.

    V d 2.6:Hy vit li ch-ng trnh v d 2.5 s dng cc a ch RAM thay tn cc thanhghi.

    Li gii:y -c gi l ch nh a ch trc tip v s dng a ch cc v tr ngn nhRAM i vi a ch ch. Xem chi tit ch-ng 5 v ch nh a ch.

    MOV 00, #99H ; Np thanh ghi R0 gi tr 99HMOV 01, #85H ; Np thanh ghi R1 gi tr 85HMOV 02, #3FH ; Np thanh ghi R2 gi tr 3FHMOV 07, #63H ; Np thanh ghi R7gi tr 63HMOV 05, #12H ; Np thanh ghi R5 gi tr12H

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    16/19

    2.6.4 Chuyn mch cc bng thanh ghi nh- th no?Nh- ni trn, bng thanh ghi 0 l mc nh khi 8051 -c cp ngun. Chng tac th chuyn mch sang cc bng thanh ghi khc bng cch s dng bit D3 v D4ca thanh ghi PSW nh- ch ra theo bng 2.2.

    Bng 2.2: Bit la chn cc bng thanh ghi RS0 v RS1.RS1 (PSW.4) RS0 (PSW.3)

    Bng 0 0 0Bng 1 0 1

    Bng 2 1 0

    Bng 3 1 1

    Bit D3 v D4 ca thanh ghi PSW th-ng -c tham chiu nh- l PSW.3 v PSW.4 vchng 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.7d-i y.

    V d 2.7:Hy pht biu ni dung cc ngn nh RAM sau on ch-ng trnh d-i y:

    SETB PSW.4 ; Chn bng thanh ghi 4MOV R0, #99H ; Np thanh ghi R0 gi tr 99HMOV R1, #85H ; Np thanh ghi R1 gi tr 85HMOV R2, #3FH ; Np thanh ghi R2 gi tr 3FHMOV R7, #63H ; Np thanh ghi R7gi tr 63HMOV R5, #12H ; 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. Bng2 s dng cc ngn nh t 10H n 17H. Nn sau khi thc hin on ch-ng trnhtrn ta c ni dung cc ngn nh nh- sau:

    Ngn nh v tr 10H c gi tr 99HNgn nh v tr 11H c gi tr 85HNgn nh v tr 12H c gi tr 3FHNgn nh v tr 17H c gi tr 63HNgn nh v tr 15H c gi tr 12H

    2.6.5 Ngn xp trong 8051.Ngn xp l mt vng b nh RAM -c CPU s dng l-u thng tin tm thi.

    Thng tin ny c th l dliu, c th l a c CPU cn khng gian l-u tr ny v scc thanh ghi b hn ch.2.6.6 Cch truy cp cc ngn xp trong 8051.Nu ngn xp l mt vng ca b nh RAM th phi c cc thanh ghi trong CPU chn n. Thanh -c dng ch n ngn xp -c gi l thanh ghi con tr ngnxp SP (Stack Pointer). Con tr ngn xp trong 8051 ch rng 8 bit c ngha l n chc 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 lngn nh u tin -c dng cho ngn xp trong 8051. Vic l-u li mt thanh ghi

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    17/19

    PCU trong ngn xp -c gi l mt ln ct vo PUSH v vic np ni dung cangn xp tr li thanh ghi CPU -c gi l ly ra POP. Hay ni cch khc l mtthanh ghi -c ct vo ngn xp l-u ct v -c ly ra t ngn xp dng tipcng 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 POPd-i y.

    2.6.7 Ct thanh ghi vo ngn xp.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. L-u rngiu ny i vi cc b vi x l khc nhau l khc nhau, ng ch l cc b vi xl 86 l SP gim xung khi ct d liu vo ngn xp. Xt v d 2.8 d-i y, tathy rng mi khi lnh PUSH -c thc hin th ni dung ca thanh ghi -c ct vongn xp v SP -c tng ln 1. L-u l i vi mi byte ca d liu -c ct vongn xp th SP -c tng ln 1 ln. Cng l-u rng ct cc thanh ghi vo ngnxp ta phi s dng a ch RAM ca chng. V d lnh PUSH 1 l ct thanh ghiR1 vo ngn xp.

    V d 2.8:Hy biu din ngn xp v con tr ngn xp i vi on ch-ng trnh sau y. Githit vng ngn xp l mc nh.

    MOV R6, #25HMOV R1, #12HMOV R4, #0F3HPUSH 6PUSH 1PUSH 4

    Li gii: Sau PUSH 6 Sau PUSP 1 Sau PUSH 40B 0B 0B 0B

    0A 0A 0A 0A F3

    09 09 09 12 09 12

    08 08 25 08 25 08 25Bt u SP = 07 SP = 08 SP = 09 SP = 0A

    2.6.8 Ly ni dung thanh ghi ra t ngn xp.Vic ly ni dung ra t ngn xp tr lai thanh ghi cho l qa trnh ng-c 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 gimxung 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 thchin on ch-ng trnh sau y:

    POP 3 ; Ly ngn xp tr li R3POP 5 ; Ly ngn xp tr li R5

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    18/19

    POP 2 ; Ly ngn xp tr li R2

    Li gii:Sau POP3 Sau POP 5 Sau POP 2

    0B 54 0B 0B 0B

    0A F9 0A F9 0A 0A09 76 09 76 09 76 09

    08 6C 08 6C 08 6C 08 6CBt u SP = 0B SP = 0A SP = 09 SP = 08

    2.6.9 Gii hn trn ca ngn xp.Nh- ni trn, cc ngn nh 08 n 1FH ca RAM trong 8051 c th -c dnglm ngn nh 20H n 2FH ca RAM -c dphng cho b nh nh a ch -ctheo bit v khng th dng tr-c cho ngn xp. Nu trong mt ch-ng trnh chota cn ngn xp nhiu hn 24 byte (08 n 1FH = 24 byte) th ta c th i SP chn cc ngn nh 30 n 7FH. iu ny -c thc hin bi lnh MOV SP, #XX.2.6.10 Lnh gi CALL v ngn xp.Ngoi vic s dng ngn xp l-u ct cc thanh ghi th CPU cng s dng ngnxp l-u ct tam thi a ch ca lnh ng ngay d-i lnh CALL. iu ny chnhl PCU bit ch no quay trv thc hin tip cc lnh sau khi chn ch-ngtrnh con. Chi tit v lnh gi CALL -c trnh b ch-ng 3.2.6.11 Xung t ngn xp v bng thanh ghi s 1.Nh- ta a ni trn th thanh ghi con tr ngn xp c th ch n v tr RAM hinthi dnh cho ngn xp. Khi d liu -c l-u ct co ngn xp th SP -c tng lnv ng-c li khi d liu -c ly ra t ngn xp th SP gim xung. L do l PS -ctng ln sau khi PUSH l phi bit ly chc chn rng ngn xp ang tng ln n vtr ngn nh 7FH ca RAM t a ch thp nht n a ch cao nht. Nu con trngn xp -c gim sau cc lnh PUSH th ta nn s dng cc ngn nh 7, 6, 5v.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 ngnxp s khng vi ti ngn nh 0 ca RAM (y ca RAM) v do vy s nhy ra khikhng gian dnh cho ngn xp. Tuy nhin c vn ny sinh vi thit lp mc nhca ngn xp. V d SP= 07 khi 8051 -c bt ngun nn RAM v cng thuc vthanh ghi R0 c bng thanh ghi s 1. Hay ni cch khc bng thanh ghi s 1 v ngnxp ang dng chung mt khng gian ca b nh RAM. Nu ch-ng trnh chocn s dng cc bng thanh ghi s 1 v s 2 ta c th t li vng nh RAM chongn 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 SP, #5FH ;t ngn nh t60H ca RAM cho ngn xpMOV R2, #25HMOV R1, #12HMOV R4, #0F3HPUSH 2

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 02_Lap Trinh Hop Ngu 8051 - Smith.N Studio

    19/19

    PUSH 1PUSH 4

    Li gii:Sau PUSH 2 Sau PUSP 3 Sau PUSH 4

    63 63 63 63

    62 62 62 62 F361 61 61 12 61 12

    60 60 25 60 25 60 25Bt uSP=5F SP = 60 SP = 61 SP = 62

    Smith Nguyen Studio.