You are on page 1of 199

Ebook Team

www.updatesofts.com

Chng I Cc b vi iu khin 8051 1.1 cc b vi iu khin v cc b x l nhng. Trong mc n y chng ta b n v nhu cu i vi cc b vi iu khin (VK) v so snh chng vi cc b vi x l cng dng chung nh Pentium v cc b vi x l 86 khc. Chng ta cng xem xt vai tr ca cc b vi iu khin trong th trng cc sn phm nhng. Ngo i ra, chng ta cung cp mt s tiu chun v cch la chn mt b vi iu khin nh th n o. 1.1.1 B vi iu khin so vi b vi x l cng dng chung S khc nhau gia mt b vi iu khin v mt b vi x l l g? B vi x l y l cc b vi x l cng dung chung nh h Intell 86 (8086, 80286, 80386, 80486 v Pentium) hoc h Motorola 680 0(68000, 68010, 68020, 68030, 68040 v.v...). Nhng b VXL n y khng c RAM, ROM v khng c cc cng v o ra trn chp. Vi l do m chng c gi chung l cc b vi x l cng dng chung.
Data bus CPU CPU GeneralPurpose Microprocessor RAM ROM I/O Port Timer Serial COM Port I/O Address bus (a) General-Purpose Microcessor System (b) Microcontroller Timer RAM ROM

Serial COM Port

Hnh 1.1: H thng vi x l c so snh vi h thng vi iu khin. a) H thng vi x l cng dng chung b) H thng vi iu khin

Ebook Team

www.updatesofts.com

Mt nh thit k h thng s dng mt b vi x l cng dng chung chng hn nh Pentium hay 68040 phi b xung thm RAM , ROM, cc cng v o ra v cc b nh thi ngo i l m cho chng hot ng c. Mc d vic b xung RAM, ROM v cc cng v o ra bn ngo i l m cho h thng cng cnh v t hn, nhng chng c u im l linh hot chng hn nh ngi thit k c th quyt nh v s lng RAM, ROM v cc cng v o ra cn thit ph hp vi b i ton trong tm tay ca mnh. iu n y khng th c c i vi cc b vi iu khin. Mt b vi iu khin c mt CPU (mt b vi x l) cng vi mt lng c nh RAM, ROM, cc cng v o ra v mt b nh thi tt c trn cng mt chp. Hay ni cch khc l b x l, RAM, ROM cc cng v o ra v b nh thi u c nhng vi nhau trn mt chp; do vy ngi thit k khng th b xung thm b nh ngo i, cng v o ra hoc b nh thi cho n. S lng c nh ca RAM, ROM trn chp v s cc cng v o - ra trong cc b vi iu khin l m cho chng tr nn l tng i vi nhiu ng dng m trong gi th nh v khng gian li hn ch. Trong nhiu ng dng, v d mt iu khin TV t xa th khng cn cng sut tnh ton ca b vi s l 486 hoc thm ch nh 8086. Trong rt nhiu ng dng th khng gian n chim, cng sut n tiu tn v gi th nh trn mt n v l nhng cn nhc nghim ngt hn nhiu so vi cng sut tnh ton. Nhng ng dng thng yu cu mt s thao tc v o - ra c cc tn hiu v tt - m nhng bit nht nh. V l do n y m mt s ngi gi cc b x l n y l IBP (Itty-Bitty-Processor), (tham kho cun Good things in small packages are Generating Big product opportunities do Rick Grehan vit trn tp BYTE thng 9.1994; WWW. Byte. Com bit v nhng trao i tuyt vi v cc b vi iu khin). iu th v l mt s nh sn xut cc b vi iu khin i xa hn l tch hp c mt b chuyn i ADC v cc ngoi vi khc v o trong b vi iu khin. Bng 1.1: Mt s sn phm c nhng s dng cc b vi iu khin Thit b ni tht gia nh in trong nh Vn phng in thoi t My tnh h nh trnh

Ebook Team

www.updatesofts.com

My m thoi My in thoi Cc h thng an to n Cc b m ca ga-ra xe My tr li My Fax My tnh gia nh Tivi Truyn hnh cp VCR My quy camera iu khin t xa Tr chi in t in thoi t ong Cc nhc c in t My khu iu khin nh sng My nhn tin My chi Pootball chi Cc dng c tp th hnh

My tnh iu khin ng c Cc h thng an Ti m kh to n Thit b ABS My Fax o lng L vi sng H thng bo mt My sao chp u khin truyn My in lazer tin My in m u Gii tr My nhn tin iu ho nhit in thoi t ong M ca khng cn cha kho

1.1.2 Cc b VK cho cc h thng nhng. Trong t i liu v cc b vi x l ta thng thy khi nim h thng nhng (Embeded system). Cc b vi x l v cc b vi iu khin c s dng rng r i trong cc sn phm h thng nhng. Mt sn phm nhng s dng mt b vi x l (hoc mt b vi iu khin thc hin mt nhim v v ch mt m thi. Mt my in l mt v d v mt vic nhng v b x l bn trong n ch l m mt vic l nhn d liu v in n ra. iu n y khc vi mt my tnh PC da trn b x l Pentium (hoc mt PC tng thch vi IBM 86 bt k). Mt PC c th c s dng cho mt s bt k cc trm dch v in, b u cui kim k nh bng, my chi tr chi in t, trm dch v mng hoc trm u cui mng Internet. Phn mm cho cc ng dng khc nhau c th c np v chy. Tt nhin l l do hin nhin mt PC thc hin h ng lot cc cng vic l n c b

Ebook Team

www.updatesofts.com

nh RAM v mt h iu h nh np phn mm ng dng thng c t v o trong ROM. Mt my tnh PC 86 cha hoc c ni ti cc sn phm nhng khc nhau chng hn nh b n phm, myin, Modem, b iu khin a, Card m thanh, b iu khin CD = ROM. Chut v.v... Mt ni ngoi vi n y c mt b vi iu khin bn trong n thc hin ch mt cng vic, v d bn trong mi con chut c mt b vi iu khin thc thi cng vic tm v tr chut v gi n n PC Bng 1.1 lit k mt s sn phm nhng. 4.1.3 Cc ng dng nhng ca PC 86. Mc d cc b vi iu khin l s la chn a chung i vi nhiu h thng nhng nhng c nhiu khi mt b vi iu khin khng cho cng vic. V l do m nhng nm gn y nhu nh sn xut cc b vi s l cng dng chung chng hn nh Intel, Motorla, AMD (Advanced Micro Devices, Inc...). V Cyric (m by gi l mt b phn ca National Senicon ductir, Inc) hng ti b vi x l cho hiu sut cao ca th trng nhng. Trong khi Intel, AMD v Cyrix y cc b x l 86 ca h v o cho c th trng nhng v th trng my tnh PC bn th Motorola vn kin nh gi h vi x l 68000 li ch yu hng n cho cc h thng nhng hiu sut cao v by gi Apple khng cn dng 680 trong cc my tnh Macintosh na. Trong nhng nm u thp k 90 ca th k 20 my tnh Apple bt u s dng cc b vi x l Power PC (nh 603, 604, 620 v.v...) thay cho 680 0 i vi Macintosh. Bvi x l Power PC l kt qu lin doanh u t ca IBM v Motorola v n c hng cho th trng nhng hiu sut cao cng nh cho c th trng my tnh PC. Cn phi lu rng khi mt cng ty hng mt b vi x l cng dng chung cho th trng nhng n ti u ho b x l c s dng cho cc h thng nhng. V l do m cc b vi x l n y thng c gi l cc b x l nhng hiu sut cao. Do vy cc khi nim cc b vi iu khin v b x l nhng thng c s dng thay i nhau. Mt trong nhng nhu cu kht khe nht ca h thng nhng l gim cng sut tiu th v khng gian. iu n y c th t c bng cch tch hp nhiu chc nng v o trong chp CPU. Tt c mi b x l nhng da trn 86 v 680 0 u c cng sut tiu thu thp ngo i ra c b xung mt s dng cng v o - ra, cng COM v b nh ROM trn mt chp.

Ebook Team

www.updatesofts.com

Trong cc b x l nhng hiu sut cao c xu hng tch hp nhiu v nhiu chc nng hn na trn chp CPU v cho php ngi thit k quyt nh nhng c tnh n o h mun s dng. Xu hng n y cng ang chim lnh thit k h thng PC. Bnh thng khi thit k bo mch ch ca PC (Motherboard) ta cn mt CPU cng mt chp - set c cha cc cng v o - ra, mt b iu khin cache, mt b nh Flash ROM c cha BIOS v cui cng l b nh cache th cp. Nhng thit k mi ang khn trng i v o cng nghip sn xut h ng lot. V d Cyrix tuyn b rng h ang l m vic trn mt chp c cha to n b mt my tnh PC ngoi tr DRAM. Hay ni cch khc l chng ta sp nhn thy mt my tnh PC trn mt chp. Hin nay do chun ho MS - DOS v Windows nn cc h thng nhng ang s dng cc my tnh PC 86 . Trong nhiu trng hp vic s dng cc my tnh PC 86 cho cc ng dng nhng hiu sut cao l khng tit kim tin bc, nhng n l m rt ngn thi gian pht trin v c mt th vin phn mm bao la c vit cho nn DOS v Windows. Thc t l Windows l mt nn c s dng rng r i v d hiu c ngha l vic pht trin mt sn phm nhng da trn Windows l m gim gi th nh v rt ngn thi gian pht trin ng k. 1.1.4 La chn mt b vi iu khin. C 4 b vi iu khin 8 bit chnh. l 6811 ca Motorola, 8051 ca Intel z8 ca Xilog v Pic 16 ca Microchip Technology. Mi mt kiu loi trn y u c mt tp lnh v thanh ghi ring duy nht, nu chng u khng tng thch ln nhau. Cng c nhng b vi iu khin 16 bit v 32 bit c sn xut bi cc h ng sn xut chp khc nhau. Vi tt c nhng b vi iu khin khc nhau nh th n y th ly g l m tiu chun la chn m cc nh thit k phi cn nhc? C ba tiu chun la chn cc b vi iu khin l : 1) p ng nhu cu tnh ton ca b i ton mt cch hiu qu v mt gi th nh v y chc nng c th nhn thy c (kh d). 2) C sn cc cng c pht trin phn mm chng hn nh cc trnh bin dch, trnh hp ng v g ri. 3) Ngun cc b vi iu khin c sn nhiu v tin cy. 1.1.5 Cc tu chun la chn mt b vi iu khin.

Ebook Team

www.updatesofts.com

1. Tiu chun u tinv trc ht trongla chn mt b vi iu khin l n phi p ng nhu cu b i ton v mt mt cng sut tnh ton v gi th nh hiu qu. Trong khi phn tch cc nhu cu ca mt d n da trn b vi iu khin chng ta trc ht phi bit l b vi iu khin n o 8 bit, 16 bit hay 32 bit c th p ng tt nht nhu cu tnh ton ca b i ton m tcch hiu qu nht? Nhng tiu chun c a ra cn nhc l : a) Tc : Tc ln nht m b vi iu khin h tr l bao nhiu. b) Kiu ng v: l ku 40 chn DIP hay QFP hay l kiu ng v khc (DIP -ng v theo 2 h ng chn. QFP l ng v vung dt)? y l iu quan trng i vi yu cu v khng gian, kiu lp rp v to mu th cho sn phm cui cng. c) Cng sut tiu th: iu n y c bit kht khe i vi nhng sn phm dng pin, c quy. d) Dung lng b nh RAM v ROM trn chp. e) S chn v o - ra v b nh thi trn chp f) Kh nng d d ng nng cp cho hiu sut cao hoc gim cng sut tiu th. g) Gi th nh cho mt n v: iu n y quan trng quyt nh gi th nh cui cng ca sn phm m mt b vi iu khin c s dng. V d c cc b vi iu khin gi 50 cent trn n v khi c mua 100.000 b mt lc. 2) Tiu chun th hai trong la chn mt b vi iu khin l kh nng pht trin cc sn phm xung quanh n d d ng nh th n o? Cc cn nhc ch yu bao gm kh nng c sn trnh lng ng, g ri, trnh bin dch ngn ng C hiu qu v m ngun, trnh m phng h tr k thut v kh nng s dng trong nh v ngo i mi trng. Trong nhiu trng hp s h tr nh cung cp th ba (ngha l nh cung cp khc khng phi l h ng sn xut chp) cho chp cng tt nh, nu khng c tt hn, s h tr t nh sn xut chp. 3) Tiu chun th ba trong la chn mt b vi iu khin l kh nng sn s ng p ng v s lng trong hin ti v tng lai. i vi mt s nh thit k iu n y thm ch cn quan trong hn c hai tiu chun u tin. Hin nay, cc b vi iu khin 8 bit du u, h 8051 l c s lng ln nht cc nh cung cp a dng (nhiu ngun). Nh cung cp c ngha l nh sn xut bn cnh nh sng ch ca b vi iu khin. Trong trng hp 8051 th nh sng ch

Ebook Team

www.updatesofts.com

ca n l Intel, nhng hin nay c rt nhiu h ng sn xut n (cng nh trc kia sn xut). Cc h ng n y bao gm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra v Dallas, Semicndictior. Bng 1.2: a ch ca mt s h ng sn xut cc th nh vin ca h 8051. Hng Intel Antel Plips/ Signetis Siemens Dallas Semiconductor a ch Website www.intel.com/design/mcs51 www.atmel.com www.semiconductors.philips.co m www.sci.siemens.com www.dalsemi.com

Cng nn lu rng Motorola, Zilog v Mierochip Technology d nh mt lng t i nguyn ln m bo kh nng sn s ng v mt thi gian v phm vi rng cho cc sn phm ca h t khi cc sn phm ca h i v o sn xut n nh, ho n thin v tr th nh ngun chnh. Trong nhng nm gn y h cng bt u bn t b o th vin Asic ca b vi iu khin. 1.2 Tng quan v h 8051. Tr ong mc n y chng ta xem xt mt s th nh vin khc nhau ca h b vi iu khin 8051 v cc c im bn trong ca chng. ng thi ta im qua mt s nh sn xut khc nhau v cc sn phm ca h c trn th trng. 1.2.1 Tm tt v lch s ca 8051. V o nm 1981. H ng Intel gii thiu mt s b vi iu khin c gi l 8051. B vi iu khin n y c 128 byte RAM, 4K byte ROM trn chp, hai b nh thi, mt cng ni tip v 4 cng (u rng 8 bit) v o ra tt c c t trn mt chp. Lc y n c coi l mt h thng trn chp. 8051 l mt b x l 8 bit c ngha l CPU ch c th l m vic vi 8 bit d liu ti mt thi im. D liu ln hn 8 bit c chia ra th nh cc d liu 8 bit cho x l. 8051 c tt c 4 cng v o - ra I/O mi cng rng 8 bit (xem hnh 1.2). Mc d 8051 c th c mt ROM trn chp cc i l 64 K byte, nhng cc nh sn xut lc cho xut xng ch vi 4K byte ROM trn chp. iu n y s c b n chi tit hn sau n y.

Ebook Team

www.updatesofts.com

8051 tr nn ph bin sau khi Intel cho php cc nh sn xut khc sn xut v bn bt k dng bin th n o ca 8051 m h thch vi iu kin h phi m li tng thch vi 8051. iu n y dn n s ra i nhiu phin bn ca 8051 vi cc tc khc nhau v dung lng ROM trn chp khc nhau c bn bi hn na cc nh sn xut. iu n y quan trng l mc d c nhiu bin th khc nhau ca 8051 v tc v dung lng nh ROM trn chp, nhng tt c chng u tng thch vi 8051 ban u v cc lnh. iu n y c ngha l nu ta vit chng trnh ca mnh cho mt phin bn n o th n cng s chy vi mi phin bn bt k khc m khng phn bit n t h ng sn xut n o. Bng 1.3: Cc c tnh ca 8051 u tin. c tnh ROM trn chp RAM B nh thi Cc chn v o - ra Cng ni tip Ngun ngt S lng 4K byte 128 byte 2 32 1 6

1.2.2 B v iu khin 8051 B vi iu khin 8051 l th nh vin u tin ca h 8051. H ng Intel k hiu n nh l MCS51. Bng 3.1 trnh b y cc c tnh ca 8051.
EXTERNAL INTERRUPTS INTERRUPT CONTROL ON - CHIP RAM

ETC TIMER 0 TIMER 1

COUNTER INPUTS

CPU

OSC

BUS CONTROL

4 I/O PORTS

SERIAL PORT

P0 P1 P2 P3

TXD

RXD

Ebook Team

www.updatesofts.com

Hnh 1.2: B tr bn trong ca s khi 8051. 1.2.3 cc th nh vin khc ca h 8051 C hai b vi iu khin th nh vin khc ca h 8051 l 8052 v 8031. a- B vi iu khin 8052: B vi iu khin 8052 l mt th nh vin khc ca h 8051, 8052 c tt c cc c tnh chun ca 8051 ngo i ra n c thm 128 byte RAM v mt b nh thi na. Hay ni cch khc l 8052 c 256 byte RAM v 3 b nh thi. N cng c 8K byte ROM. Trn chp thay v 4K byte nh 8051. Xem bng 1.4. Bng1.4: so snh cc c tnh ca cc th nh vin h 8051. c tnh ROM trn chp RAM B nh thi Chn v o - ra Cng ni tip Ngun ngt 8051 4K byte 128 byte 2 32 1 6 8052 8K byte 256 byte 3 32 1 8 8031 OK 128 byte 2 32 1 6

Nh nhn thy t bng 1.4 th 8051 l tp con ca 8052. Do vy tt c mi chng trnh vit cho 8051 u chy trn 8052 nhng iu ngc li l khng ng. b- B vi iu khin 8031: Mt th nh vin khc na ca 8051 l chp 8031. Chp n y thng c coi nh l 8051 khng c ROM trn chp v n c OK

Ebook Team

www.updatesofts.com

byte ROM trn chp. s dng chp n y ta phi b xung ROM ngo i cho n. ROM ngo i phi cha chng trnh m 8031 s np v thc hin. So vi 8051 m chng trnh c cha trong ROM trn chp b gii hn bi 4K byte, cn ROM ngo i cha chng trinh c gn v o 8031 th c th ln n 64K byte. Khi b xung cng, nh vy ch cn li 2 cng thao tc. gii quyt vn n y ta c th b xung cng v o - ra cho 8031. Phi php 8031 vi b nh v cng v o - ra chng hn vi chp 8255 c trnh b y chng 14. Ngo i ra cn c cc phin bn khc nhau v tc ca 8031 t cc h ng sn xut khc nhau. 1.2.4. Cc b vi iu khin 8051 t cc hng khc nhau. Mc d 8051 l th nh vin phi bin nht ca h 8051 nhng chng ta s thy n trong kho linh kin. l do 8051 c di nhiu dng kiu b nh khc nhau nh UV - PROM, Flash v NV RAM m chng u c s ng k linh kin khc nhau. Vic b n lun v cc kiu dng b nh ROM khc nhau s c trnh b y chng 14. Phin bn UV-PROM ca 8051 l 8751. Phin bn Flash ROM c bn bi nhiu h ng khc nhau chng hn ca Atmel corp vi tn gi l AT89C51 cn phin bn NV-RAM ca 8051 do Dalas Semi Conductor cung cp th c gi l DS5000. Ngo i ra cn c phin bn OTP (kh trnh mt ln) ca 8051 c sn xut bi rt nhiu h ng. a- B vi iu khin 8751: Chp 8751 ch c 4K byte b nh UV-EPROM trn chp. s dng chp n y pht trin yu cu truy cp n mt b t PROM cng nh b xo UV- EPROM xo ni dung ca b nh UVEPROM bn trong 8751 trc khi ta c th lp trnh li n. Do mt thc t l ROM trn chp i vi 8751 l UV-EPROM nn cn phi mt 20 pht xo 8751 trc khi n c th c lp trnh tr li. iu n y dn n nhiu nh sn xut gii thiu cc phin bn Flash Rom v UV-RAM ca 8051. Ngo i ra cn c nhiu phin bn vi cc tc khc nhau ca 8751 t nhiu h ng khc nhau. b- B vi iu khin AT8951 t Atmel Corporation. Chp 8051 ph bin n y c ROM trn chp dng b nh Flash. iu n y l l tng i vi nhng pht trin nhanh v b nh Flash c th c xo trong v i giy trong tng quan so vi 20 pht hoc hn m 8751 yu cu. V l do n y m AT89C51 pht trin mt h thng da trn b vi iu khin yu cu mt b t ROM m

Ebook Team

www.updatesofts.com

c h tr b nh Flash. Tuy nhin li khng yu cu b xo ROM. Lu rng trong b nh Flash ta phi xo to n b ni dung ca ROM nhm lp trnh li cho n. Vic xo b nh Flash c thc hin bi chnh b t PROM v y chnh l l do ti sao li khng cn n b xo. loi tr nhu cu i vi mt b t PROM h ng Atmel ang nghin cu mt phin bn ca AT 89C51 c th c lp trnh qua cng truyn thng COM ca my tnh IBM PC . Bng 1.5: Cc phin bn ca 8051 t Atmel (Flash ROM). S linh RO kin M AT89C51 4K AT89LV5 4K 1 AT89C10 1K 51 AT89C20 2K 51 AT89C52 8K AT89LV5 8K 2 RAM Chn I/O 128 32 128 32 64 128 128 128 15 15 32 32 Time Ng Vc ng v r t c 2 6 5V 40 2 6 3V 40 1 2 3 3 3 6 8 8 3V 3V 5V 3V 20 20 40 40

Ch C trong k hiu AT89C51 l CMOS. Cng c nhng phin bn ng v v tc khc nhau ca nhng sn phm trn y. Xem bng 1.6. V d rng ch C ng trc s 51 trong AT 89C51 -12PC l k hiu cho CMOS 12 k hiu cho 12 MHZ v P l kiu ng v DIP v ch C cui cng l k hiu cho thng mi (ngc vi ch M l qun s ). Thng thng AT89C51 - 12PC rt l tng cho cc d n ca hc sinh, sinh vin. Bng 1.6: Cc phin bn 8051 vi tc khc nhau ca Atmel. M linh kin AT89C5112PC Tc 42MHZ S chn 40 ng v DTP Mc ch Thng mi

Ebook Team

www.updatesofts.com

c- B vi iu khin DS5000 t hng Dallas Semiconductor. Mt phin bn ph bin khc na ca 8051 l DS5000 ca h ng Dallas Semiconductor. B nh ROM trn chp ca DS5000 di dng NV-RAM. Kh nng c/ ghi ca n cho php chng trnh c np v o ROM trn chp trong khi n vn trong h thng (khng cn phi ly ra). iu n y cn c th c thc hin thng qua cng ni tip ca my tnh IBM PC. Vic np chng trnh trong h thng (in-system) ca DS5000 thng qua cng ni tip ca PC l m cho n tr th nh mt h thng pht trin ti ch l tng. Mt u vit ca NV-RAM l kh nng thay i ni dung ca ROM theo tng byte ti mt thi im. iu n y tng phn vi b nh Flash v EPROM m b nh ca chng phi c xo sch trc khi lp trnh li cho chng. Bng 1.7: Cc phin bn 8051 t h ng Dallas Semiconductor. M linh ROM RAM kin DS5000-8 8K 128 DS5000-32 32K 128 8K 128 DS5000T-8 DS5000T-8 32K 128 Chn I/O 32 32 32 32 Time Ng Vc r t c 2 6 5V 2 6 5V 2 6 5V 2 6 5V ng v 40 40 40 40

Ch T ng sau 5000 l c ng h thi gian thc. Lu rng ng h thi gian thc RTC l khc vi b nh thi Timer. RTC to v gi thi gian l pht gi, ng y, thng - nm k c khi tt ngun. Cn c nhiu phin bn DS5000 vi nhng tc v kiu ng gi khc nhau.( Xem bng 1.8). V d DS5000-8-8 c 8K NV-RAM v tc 8MHZ. Thng thng DS5000-8-12 hoc DS5000T-8-12 l l tng i vi cc d n ca sinh vin. Bng 1.8:Cc phin bn ca DS5000 vi cc tc khc nhau M linh kin DS5000-8-8 DS5000-8-12 DS5000-32-8 NV- RAM 8K 8K 32K Tc 8MHz 12MHz 8MHz

Ebook Team

www.updatesofts.com

DS5000T-32-12 DS5000-32-12 DS5000-8-12

32K 32K 8K

8MHz (with RTC) 12MHz 12MHz (with RTC)

d- Phin bn OTP ca 8051. Cc phin bn OTP ca 8051 l cc chp 8051 c th lp trnh c mt ln v c cung cp t nhiu h ng sn xut khc nhau. Cc phin bn Flash v NV-RAM thng c dng pht trin sn phm mu. Khi mt sn pohm c thit k v c ho n thin tuyt i th phin bn OTP ca 8051 c dng sn h ng lot v n s hn rt nhiu theo gi th nh mt n v sn phm e- H 8051 t Hng Philips Mt nh sn xut chnh ca h 8051 khc na l Philips Corporation. Tht vy, h ng n y c mt di la chn rng ln cho cc b vi iu khin h 8051. Nhiu sn phm ca h ng c km theo cc c tnh nh cc b chuyn i ADC, DAC, cng I/0 m rng v c cc phin bn OTP v Flash.

Ebook Team

www.updatesofts.com

chng 2 Lp trnh hp ng 8051 2.1


2.1.1 Cc thanh ghi.

Bn trong 8051.

Trong phn n y chng ta nghin cu cc thanh ghi chnh ca 8051 v trnh b y cch s dng vi cc lnh n gin MOV v ADD. Trong CPU cc thanh ghi c dng lu ct thng tin tm thi, nhng thng tin n y 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 b y nh sau:
D7 D6 D5 D4 D3 D2 D1 D0

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 n o ln hn 8 bit u phi c chia th nh cc khc 8 bit trc khi c x l. V c mt s lng ln cc thanh ghi trong 8051 ta s tp trung v o mt s thanh ghi cng dng chung c bit trong cc chng k tip. H y 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 r i 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 n y ta s gii thiu 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 n y n mt v tr khc. N c c php nh sau: MOV ; ch, ngun; sao chp ngun v o ch

Ebook Team

www.updatesofts.com

Lnh n y ni CPU chuyn (trong thc t l sao chp) ton hng ngun v o ton hng ch. V d lnh MOV A, R0 sao chp ni dung thanh ghi R0 v o thanh ghi A. Sau khi lnh n y 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 n y 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 b y ngay sau v d n y. MOV A, #55H; ; Np tr tr 55H v o thanh ghi A (A = 55H) MOV R0, A ; Sao chp ni dung A v o 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 v o thanh ghi R3 (R3 = 95H) MOV A, R3 ; So chp ni dung R3 v o 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 v o trc tip bt k thanh ghi n o 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 v o A (A = 23H) ; Np gi tr 12H v o R0 (R0 = 2BH) ; Np gi tr 1FH v o R1 (R1 = 1FH) ; Np gi tr 2BH v o R2 (R2 = 2BH) ; Np gi tr 3CH v o B (B = 3CH) ; Np gi tr 9DH v o R7 (R7 = 9DH) ; Np gi tr F9H v o R5 (R5 = F9H) ;Np gi tr thp phn 12 = 0CH v o 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 v o 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 v o 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 v o thanh ghi A v ti a ch d liu c th c bt k gi tr n o t 0 n FFH. Cn np gi tr l 17H v o thanh ghi A th cn phi c du # trc 17H nh th n y. MOV A, #17H. Cn lu rng nu thiu du # trc mt th s khng gy li v hp ng cho l mt lnh hp

Ebook Team
2.1.3 Lnh cng ADD.

www.updatesofts.com
y s l

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.

Lnh cng ADD c cc php nh sau: ADD a, ngun ; Cng ton hng ngun v o thanh ghi A. Lnh cng ADD ni CPU cng byte ngun v o 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 v o A MOV R2, #34H ; Np gi tr 34H v o R2 ADD A, R2 ; Cng R2 v o 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 v o thanh ghi c s dng. Mt trong cch vit khc c th l : MOV R5, #25H ; Np gi tr 25H v o thanh ghi R5 MOV R7, #34H ; Np gi tr 34H v o thanh ghi R7 MOV A, #0 ; Xo thanh ghi A (A = 0) ADD A, R5 ; Cng ni dung R5 v o A (A = A + R5) ADD A, R7 ; Cng ni dung R7 v o 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 v o cc thanh ghi trc khi cng chng vi nhau khng? Cu tr li l khng cn. H y xem on chng trnh di y: MOV A, #25H ; Np gi tr th nht v o thanh ghi A (A = 25H) ADD A, #34H ; Cng gi tr th hai l 34H v o A (A = 59H) 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 b y 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 b y mc 2.3. Thanh ghi DPTR c s dng truy cp d liu v c l m k chng 5 khi ni v cc ch nh a ch.

2.2

Gii thiu v lp trnh hp ng 8051.

Trong phn n y chng ta b n v dng thc ca hp ng v nh ngha mt s thut ng s dng rng r i gn lin vi lp trnh hp ng.

Ebook Team

www.updatesofts.com

CPU ch c th l m 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 l m 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 ng y 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 l m 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 t i 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. Ng y 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 n y 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 th nh 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 s ng chy ngay c.
2.2.1 Cu trc ca hp ng.

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 l m g vi cc d liu. ORG 0H ; Bt u (origin) ti ngn nh 0 MOV R5, #25H ; Np 25H v o R5 MOV R7, #34H ; Np 34H v o R7 MOV A, #0 ; Np 0 v o thanh ghi A ADD A, R5 ; Cng ni dng R5 v o A (A = A + R5) ADD A, R7 ; Cng ni dung R7 v o A (A = A + R7) ADD A, #121H ; Cng gi tr 12H v o A (A = A + 12H) HERE: SJMP HERE ; li trong vng lp n y 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 l m g th cc ch lnh

Ebook Team

www.updatesofts.com

(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: [nh n:] [t gi nh] [cc ton hng] [; ch gii] Cc trng trong du ngoc vung l tu chn v khng phi dng lnh n o cng c chng. Cc du ngoc vung khng c vit v o. Vi dng thc trn y cn lu cc im sau:
1. Trng nh n cho php chng trnh tham chiu n mt dng lnh bng tn. N khng c vit qu mt s k t nht nh. H y kim tra quy nh n y 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 ho n 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. H y nh rng cc ch lnh khng to ra m lnh n o (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). H y 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 (l m 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 d ng hn. 4. Lu n nh n HERE trong trng nh n ASSEMBLER ca chng trnh 2.1. Mt nh n bt k PRAGRAM 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 n y v hn. Nu h thng ca chng ta c mt chng trnh gim st LINKER th takhng cn dng lnh n y v n c th PRAGRAM c xo i ra khi chng trnh.

2.3

Hp dch v chy mt chng trnh 8051.

myfile.abs OH PRAGRAM

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

myfile.hex

Ebook Team

www.updatesofts.com

trnh s c to ra v hp dch nh th n o v l m th n o 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 v o 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 r i l trnh son tho EDIT ca MS-DOS (hoc Noterad ca Windows) u chy trn h iu h nh 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 v o 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 th nh 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 th nh phn m rng abs. Tp abs n y c s dng bi thng cha ca 8051 c mt chng trnh gim st. 4. K sau tp abs c np v o 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 v o trong ROM. Chng trnh n y 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 v o th nh mt bc. Hnh 2.2: Cc bc to ra mt chng 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 n y m mt s trnh hp ng i hi tp n y phi c mt phn m rng src t ch source l ngun. H y kim tra hp ng 8051 m ta s dng xem n c i hi nh vy khng? Nh ta ni trc y tp n y 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 th nh ngn ng m my v cung cp tp i tng .object. Ngo i vic to ra tp i tng 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 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 n y c th c truy cp bng mt trnh bin dch nh Edit ca DOS hoc Notepad ca Window v c hin th trn m n 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 s ng l m u v o cho chng trnh lin kt. 1 0000 ORG 0H ; Bt u a ch 0 2 0000 7D25 MOV R5, #25H ; Np gi tr 25H v o R5 3 0002 7F34 MOV R7, #34H ; Np gi tr 34H v o R7 4 0004 7400 MOV A, #0 ; Np 0 v o A (xo A) 5 0006 2D ADD A, R5 ; Cng ni dung R5 v o A (A = A + R5) 6 0007 2F ADD A, R7 ; Cng ni dung R7 v o A (A = A + R7) 7 0008 2412 ADD A, #12H ; Cng gi tr 12H v o A (A = A + 12H)

Ebook Team
8 00A BCEF HERE: SJMP HERE 9 000C END Chng trnh 2.2: Tp lit k. ; li vng lp n y ; Kt thc tp .asm

www.updatesofts.com

2.4
2.4.1

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 n y 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 th nh vin ca 8051 u c tt c 64k byte ROM trn chp c c i t. Vy khi 8051 c bt ngun th n nh thc a cha n o?
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 n bt u t a ch n o? Mi b vi iu khin u khc nhau. Trong trng hp h 8051 th mi th nh vin k t nh sn xut n o hay phin bn n o 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 b y chng 4. Hay ni cch khc, khi 8051 c cp ngun th b m chng trnh c gi tr 0000. iu n y c ngha l n ch m lnh u tin c lu a cha ROM 0000H. V l do n y 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 n y bng cu lnh ORG trong chng trnh ngun nh trnh b y 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 t m vo ROM chng trnh.

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 v o ROM chng trnh 8051 nh th n o? 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 l m 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: [nh n:] [t gi nh] [cc ton hng] [; ch gii] Cc trng trong du ngoc vung l tu chn v khng phi dng lnh n o cng c chng. Cc du ngoc vung khng c vit v o. Vi dng thc trn y cn lu cc im sau:

Ebook Team

www.updatesofts.com

Trng nh n cho php chng trnh tham chiu n mt dng lnh bng tn. N khng c vit qu mt s k t nht nh. H y kim tra quy nh n y 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 ho n 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. H y nh rng cc ch lnh khng to ra m lnh n o (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). H y 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 (l m 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 d ng hn. M lnh Lu n nh n HERE trong trng nh n ca a ch 7D chng trnh 2.1. Mt nh n bt k tham chiu n mt 0000 0001 25 lnh phi c du hai chm (:) ng sau. Trong cu lnh 0002 F7 nhy ngn SJMP th 8051 c ra lnh li trong vng 0003 34 lp n y v hn. Nu h thng ca chng ta c mt chng 74 trnh gim st th takhng cn dng lnh n y 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 v o trong ROM ca 0008 24 th nh vin h 8051 nh 8751 hoc AT 8951 hoc DS 0009 12 5000 th m lnh v ton hng c a v o 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 v o thanh ghi R5 v a ch 0001 cha ton hng ( y l gi tr 254) cn c chuyn v o R5. Do vy, lnh MOV R5, #25H c m l 7D25 trong 7D l m lnh,

Ebook Team

www.updatesofts.com

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 Thc hin mt chng trnh theo tng byte.

Gi s rng chng trnh trn c t v o 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 n y l m 7D chuyn mt ton hng v o R5. Khi thc hin m lnh CPU np gi tr 25 v o 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 v o R7 MOV R7, .... 2. Khi thc hin m lnh 7F th gi tr 34H c chuyn v o R7 sau PC c tng ln 0004. 3. Ngn nh 0004 cha m lnh ca lnh MOV A, #0. Lnh n y 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 n y 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 n y PC c tng ln 0008. Qa trnh n y 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.

2.4.5

Nh ta thy chng trc, mt s th nh 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 th nh vin n o 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 v o dung lng ROM trn chp ca mi th nh vin h 8051. Trong s cc th nh vin h 8051 th 8751 v AT 8951 c 4k byte ROM trn chp. B nh ROM trn chp n y 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. H y xt v d 2.1. V d 2.1: Tm a ch b nh ROM ca mi th nh vin h 8051 sau y.
a) AT 8951 (hoc 8751) vi 4k byte b) DS 5000-32 vi 32k byte

Ebook Team
Li gii:

www.updatesofts.com

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 n y 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 th nh vin h 8051.

2.5
2.5.1

Cc kiu d liu v cc ch lnh.

Kiu d liu v cc ch lnh ca 8051.

B vi iu khin ch c mt kiu d liu, n l 8 bit v d i mi thanh ghi cng l 8 bit. Cng vic ca lp trnh vin l phn chia d liu ln hn 8 bit ra th nh 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 b y 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 b n chng 6.
2.5.2 Ch lnh DB (nh ngha byte).

Ch lnh DB l mt ch lnh d liu c s dng rng r i 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 n o th hp ng u chuyn i chng v th nh dng Hex. bo dng thc dng m ASCII th ch cn n gin t n v o du nhy n nh th n y. 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

Ebook Team

www.updatesofts.com

Cc chui ASCII c th s dng du nhy n nh th n y hoc nhy kp nh th n y. Dng du phy kp s hu ch hn i vi trng hp du nhy n c dng s hu cch nh th n y Nh O Leary. Ch lnh DB cng c dng cp pht b nh theo tng on kch thc 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 ORG c k dng Hex hoc thp phn. Nu s n y 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 th nh s Hex. Mt s hp ng s dng du chm ng trc ORG thay cho ORG. H y 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 n o. Ch lnh EQU khng d nh ch ct cho d liu nhng n gn mt gi tr hng s vi nh n d liu sao cho khi nh n xut hin trong chng trnh gi tr hng s ca n s c thay th i vi nh n. 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

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 to n 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 Cc quy nh vi nhn trong hp ng.

Bng cch chn cc tn nh n c ngha l mt lp trnh vin c th l m cho chng trnh d c v d bo tr hn, c mt s quy nh m cc tn nh n phi tun theo. Th nht l mi tn nh n phi thng nht, cc tn c s dng l m nh n 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 nh n 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 l m nh n trong chng trnh. V d nh MOV v ADD. Bn cnh cc t gi nh cn c mt s t d tr khc, h y kim tra bn lit k cc t d phng ca hp 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 s hc nh bit nh. Thanh ghi c trong 8051 c gi l thanh ghi t trng thi chng trnh PSW. Trong phn n y v a ra mt s v d v cch thay i chng.

Ebook Team
2.6.1 Thanh ghi t trng thi chng trnh PSW.

www.updatesofts.com

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 n y l c nh CY (carry), c AC (auxiliary cary), c chn l P (parity) v c tr n 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 n o.
CY CY AC AC PSW.7 PSW.6 PSW.4 PSW.3 PSW.2 F0 RS1 ; C nh ; C RS0 OV P

PSW.5
RS1 RS0 OV

; D nh cho ngi dng s dng mc ch chung


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

PSW.1
P

; Bit d nh cho ngi dng nh ngha

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

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 n y c thit lp mi khi c nh t bit D7. C n y 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 b n k chng 8. 2. C AC: C n y bo c nh t bit D3 sang D4 trong php cng ADD hoc tr SUB. C n y 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 ch n OV: C n y c thit lp mi khi kt qu ca mt php tnh s c du qu ln to ra bit bc cao l m tr n bit du. Nhn chung c nh c dng pht hin li trong cc php s hc khng du. Cn c tr n c dng ch pht hin li trong cc php s hc c du v c b n k chng 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 l m 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 v o 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.

Ebook Team

www.updatesofts.com

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: H y trnh b y 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: H y trnh b y 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 n o (chn)

V d 2.4: H y trnh b y 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)

Ebook Team

www.updatesofts.com

2.7

Cc bng thanh ghi v ngn xp ca 8051.

B vi iu khin 8051 c tt c 128 byte RAM. Trong mc n y ta b n v phn b ca 128 byte RAM n y v kho st cng dng ca chng nh cc thanh ghi v ngn xp.
2.7.1 Phn b khng gian b nh RAM trong 8051.

C 128 byte RAM trong 8051 (mt s th nh 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 n y c phn chia th nh tng nhm nh sau:
1. Tng cng 32 byte t ngn nh 00 n 1FH c d nh cho cc thanh ghi v ngn xp. 2. Tng cng 16 byte t ngn nh 20H n 2FH c d nh cho b nh c/ ghi nh a ch c theo bit. Chng 8 s b n 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 n y (80 byte) ca RAM c s dng rng r i 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 v o CPU qua cc cng v o-ra.
2.7.2 Cc bng thanh ghi trong 8051.

Nh ni trc, tng cng 32 byte RAM c d nh ring cho cc bng thanh ghi v ngn xp. 32 byte n y c chia ra th nh 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 RAM bng nh 7F RAM nh a 30 ch theo bit (Seratch Pad) R0 - R7 R0 - R7 R0 - R7 R0 - R7

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

Ebook Team

www.updatesofts.com

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: H y 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 Bng thanh ghi mc nh.

Nu cc ngn nh 00 n 1F c d nh ring cho bn bng thanh ghi, vy bng thanh ghi R0 n R7 n o 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 d ng hn nhiu khi tham chiu cc ngn nh RAM n y v cc tn R0, R1 v.v... hn l s v tr ca cc ngn nh. V d 2.6 l m r khi nim n y. V d 2.6: H y 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

Ebook Team
2.6.4 Chuyn mch cc bng thanh ghi nh th no?

www.updatesofts.com

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

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: H y 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 trong 8051.

Ngn xp l mt vng b nh RAM c CPU s dng lu thng tin tm thi. Thng tin n y c th l d liu, c th l a c CPU cn khng gian lu tr n y v s cc 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 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

Ebook Team

www.updatesofts.com

PCU trong ngn xp c gi l mt ln ct v o 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 v o 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 v o (PUSH) v ly ra (POP) c thc thi. bit ngn xp l m vic nh th n o h y xt cc lnh PUSH v POP di 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 v o ngn xp th con tr ngn xp SP c tng ln 1. Lu rng iu n y 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 v o 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 v o ngn xp v SP c tng ln 1. Lu l i vi mi byte ca d liu c ct v o ngn xp th SP c tng ln 1 ln. Cng lu rng ct cc thanh ghi v o ngn xp ta phi s dng a ch RAM ca chng. V d lnh PUSH 1 l ct thanh ghi R1 v o ngn xp. V d 2.8: H y 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

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

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 ngc vi cc ni dung thanh ghi v o ngn xp. Vi mi ln ly ra th byte trn nh ngn xp c sao chp v o 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 h y trnh b y 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

Ebook Team
POP 2 ; Ly ngn xp tr li R2

www.updatesofts.com

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

Gii hn trn ca ngn xp.

Nh ni trn, cc ngn nh 08 n 1FH ca RAM trong 8051 c th c dng l m 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 n y c thc hin bi lnh MOV SP, #XX.
2.6.10 Lnh gi CALL v ngn xp.

Ngo i 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 n y chnh l PCU bit ch n o 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.
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 hin thi d nh cho ngn xp. Khi d liu c lu ct c o 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 n y 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 d nh 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 ; t ngn nh t 60H ca RAM cho ngn xp

Ebook Team
PUSH 1

www.updatesofts.com

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

Ebook Team

www.updatesofts.com

chng 3 Cc lnh nhy, vng lp v lnh gi


Trong mt chui lnh cn thc hin thng c nhu cn cn chuyn iu khin chng trnh n mt v tr khc. C nhiu lnh thc hin iu n y trong 8051, chng n y ta s tm hiu cc lnh chuyn iu khin c trong hp ng ca 8051 nh cc lnh s dng cho vng lp, cc lnh nhy c v khng c iu khin, lnh gi v cui cng l m t v mt chng trnh con gi chm thi gian. 3.1 Vng lp v cc lnh nhy. 3.1.1 To vng lp trong 8051. Qa trnh lp li mt chui cc lnh vi mt s ln nht nh c gi l vng lp. Vng lp l mt trong nhng hot ng c s dng rng r i nht m bt k b vi s l n o u thc hin. Trong 8051 th hot ng vng lp c thc hin bi lnh DJNZ thanh ghi, nh n. Trong lnh n y thanh ghi c gim xung, nu n khng bng khng th n nhy n a ch ch c tham chiu bi nh n. Trc khi bt u vng lp th thanh ghi c np vi b m cho s ln lp li. Lu rng, trong lnh n y vic gim thanh ghi v quyt nh nhy c kt hp v o trong mt lnh n. V d 3.1: Vit mt chng trnh : a) xo ACC v sau b) cng 3 v o ACC 10 ln. Li gii:
BACK: MOV MOV ADD DJNZ MOV A, #0 R2, #10 A, #10 R2, AGAIN R5, A ; Xo ACC, A = 0 ; Np b m R2 = 10 ; Cng 03 v o ACC ; Lp li cho n khi R2 = 0 (10 ln) ; Ct A v o thanh ghi R5

Trong chng trnh trn y thanh ghi R2 c s dng nh l b m. B m lc u c t bng 10. Mi ln lp li lnh DJNZ gim R2 khng bng 0 th n nhy n a ch ch gn vi nh n AGAIN. Hot ng lp li n y tip tc cho n khi R2 tr v khng. Sau khi R2 = 0 n thot khi vng lp v thc hin ng ngay di n trong trng hp n y l lnh MOV R5, A. Lu rng trong lnh DJNZ th cc thanh ghi c th l bt k thanh ghi n o trong cc thanh ghi R0 - R7. B m cng c th l mt ngn nh trong RAM nh ta s thy chng 5. V d 3.2: S ln cc i m vng lp v d 3.1 c th lp li l bao nhiu? Li gii: V thanh ghi R2 cha s m v n l thanh ghi 8 bit nn n c th cha c gi tr cc i l FFH hay 155. Do vy s ln lp li cc i m vng lp v d 3.1 c th thc hin l 256. 3.2.1 Vng lp bn trong mt vng lp. Nh trnh b y v d 3.2 s m cc i l 256. Vy iu g xy ra nu ta mun lp mt h nh ng nhiu hn 256 ln? l m iu th ta s dng mt vng

Ebook Team

www.updatesofts.com

lp bn trong mt vng lp c gi l vng lp lng (Nested Loop). Trong mt vng lp lng ta s dng 2 thanh ghi gi s m. Xt v d 3.3 di y. V d 3.3: H y vit mt chng trnh a) np thanh ghi ACC vi gi tr 55H v b) b ACC 700 ln. Li gii: V 700 ln hn 256 (l s cc i m mt thanh ghi v th cha c) nn ta phi dng hai thanh ghi cha s m. on m di y trnh b y cch s dng hai thanh ghi R2 v R3 cha s m.
MOV MOV MOV CPL DJNZ DJNZ A, #55H R3, #10 R2, #70 A R2, AGAIN R3, NEXT ; Np A = 55H ; Np R3 = 10 s m vng lp ngo i ; Np R2 = 70 s m vng lp trong ; B thanh ghi A ; Lp li 70 ln (vng lp trong)

NEXT: AGAIN: `

Trong chng trnh n y thanh ghi R2 c dng cha s m vng lp trong. Trong lnh DJNZ R2, AGAIN th mi khi R2 = 0 n i thng xung v lnh JNZ R3, NEXT c thc hin. Lnh n y p CPU np R2 vi s m 70 v vng lp trong khi bt u li qu trnh n y tip tc cho n khi R3 tr v khng v vng lp ngo i kt thc. 3.1.3 Cc lnh nhy c iu kin. Cc lnh nhy c iu kin i vi 8051 c tng hp trong bng 3.1. Cc chi tit v mi lnh c cho trong ph lc AppendixA. Trong bng 3.1 lu rng mt s lnh nh JZ (nhy nu A = 0) v JC (nhy nu c nh) ch nhy nu mt iu kin nht nh c tho m n. K tip ta xt mt s lnh nhy c iu kin vi cc V d minh ho sau. a- Lnh JZ (nhy nu A = 0). Trong lnh n y ni dung ca thanh ghi A c kim tra. Nu n bng khng th n nhy n a ch ch. V d xt on m sau:
MOV JZ MOV JZ OVER ... A, R0 OVER A, R1 OVER ; Np gi tr ca R0 v o A ; Nhy n OVER nu A = 0 ; Np gi tr ca R1 v o A ; Nhy n OVER nu A = 0

Trong chng trnh n y nu R0 hoc R1 c gi tr bng 0 th n nhy n a ch c nh n OVER. Lu rng lnh JZ ch c th c s dng i vi thanh ghi A. N ch c th kim tra xem thanh ghi A c bng khng khng v n khng p dng cho bt k thanh ghi n o khc. Quan trng hn l ta khng phi thc hin mt lnh s hc n o nh m gim s dng lnh JNZ nh v d 3.4 di y. V d 3.4: Vit mt chng trnh xc nh xem R5 c cha gi tr 0 khng? Nu np th n cho gi tr 55H. Li gii:

Ebook Team
MOV JNZ MOV ... A, R5 NEXT R5, #55H

www.updatesofts.com
; Sao ni dung R5 v o A ; Nhy n NEXT nu A khng bng 0 ;

NEXT:

b- Lnh JNC (nhy nu khng c nh, c CY = 0). Trong lnh n y th bit c nh trong thanh ghi c PSW c dng thc hin quyt nh nhy. Khi thc hin lnh JNC nh n th b x l kim tra c nh xem n c c bt khng (CY = 1). Nu n khng bt th CPU bt u np v thc hin cc lnh t a ch ca nh n. Nu c CY = 1 th n s khng nhy v thc hin lnh k tip di JNC. Cn phi lu rng cng c lnh JC nh n. Trong lnh JC th nu CY = 1 n nhy n a ch ch l nh n. Ta s xt cc v d v cc lnh n y trong cc ng dng cc chng sau. Ngo i ra cn c lnh JB (nhy nu bit c mc cao) v JNB (nhy nu bit c mc thp). Cc lnh n y c trnh b y chng 4 v 8 khi ni v thao tc bit. Bng 3.1: Cc lnh nhy c iu kin.
Lnh JZ JNZ DJNZ CJNE A, byte CJNE re, # data JC JNC JB JNB JBC Hot ng Nhy nu A = 0 Nhy nu A 0 Gim v nhy nu A = 0 Nhy nu A byte Nhy nu Byte data Nhy nu CY = 1 Nhy nu CY = 0 Nhy nu bit = 1 Nhy nu bit = 0 Nhy nu bit = 1 v xo n

V d 3.5: H y tm tng ca cc gi tr 79H, F5H v E2H. t v o trong cc thanh ghi R0 (byte thp) v R5 (byte cao). Li gii:
MOV MOV ADD JNC INC ADD JNC INC N-2: ADD JNC INC OVER: MOV N-1: A, #0 R5, A A #79H N-1 R5 A, #0F5H N-2 R5 A, #0E2H OVER R5 R0, A ; Xo thanh ghi A = 0 ; Xo R5 ; Cng 79H v o A (A = 0 + 79H = 79H) ; Nu khng c nh cng k tip ; Nu CY = 1, tng R5 ; Cng F5H v o A (A = 79H + F5H = 6EH) v CY = 1 ; Nhy nu CY = 0 ; Nu CY = 1 tng R5 (R5 = 1) ; Cng E2H v o A (A = GE + E2 = 50) v CY = 1 ; Nhy nu CY = 0 ; Nu CY = 1 tng R5 ; By gi R0 = 50H v R5 = 02

Ebook Team

www.updatesofts.com

c- Tt c cc lnh nhy c iu kin u l nhng php nhy ngn. Cn phi lu rng tt c cc lnh nhy c iu kin u l cc php nhy ngn, c ngha l a ch ca ch u phi nm trong khong -127 n +127 byte ca ni dung b m chng trnh PC. 3.1.4 Cc lnh nhy khng iu kin. Lnh nhy khng iu kin l mt php nhy trong iu khin c truyn khng iu kin n a ch ch. Trong 8051 c hai lnh nhy khng iu kin l : LJMP - nhy xa v SJMP - nhy gn. a- Nhy xa LJMP: Nhy xa LJMP l mt lnh 3 byte trong byte u tin l m lnh cn hai byte cn li l a ch 16 bit ca ch. a ch ch 02 byte c php mt php nhy n bt k v tr nh n o trong khong 0000 - FFFFH. H y nh rng, mc d b m chng trnh trong 8051 l 16 bit, do vy cho khng gian a ch l 64k byte, nhng b nh chng trnh ROM trn chp ln nh vy. 8051 u tin ch c 4k byte ROM trn chp cho khng gian chng trnh, do vy mi byte u rt qu gi. V l do m c c lnh nhy gn SJMP ch c 2 byte so vi lnh nhy xa LZ0MP d i 3 byte. iu n y c th tit kim c mt s byte b nh trong rt nhiu ng dng m khng gian b nh c hn hp. b- Lnh nhy gm SJMP. Trong 2 byte n y th byte u tin l m lnh v byte th hai l ch tng i ca a ch ch. ch ch tng i trong phm vi 00 - FFH c chia th nh cc lnh nhy ti v nhy li: Ngha l -128 n +127 byte ca b nh tng i so vi a ch hin thi ca b m chng trnh. Nu l lnh nhy ti th a ch ch c th nm trong khong 127 byte t gi tr hin thi ca b m chng trnh. Nu a ch ch pha sau th n c th nm trong khong -128 byte t gi tr hin h nh ca PC. 3.1.5 Tnh ton a ch lnh nhy gn. Ngo i lnh nhy gn SJMP th tt c mi lnh nhy c iu kin nh JNC, JZ v DJNZ u l cc lnh nhy gn bi mt thc t l chng u lnh 2 byte. Trong nhng lnh n y th byte th nht u l m lnh, cn byte th hai l a ch tng i. a ch ch l tng i so vi gi tr ca b m chng trnh. tnh ton a ch ch byte th hai c cng v o thanh ghi PC ca lnh ng ngay sau lnh nhy. hiu iu n y h y xt v d 3.6 di y. V d 3.6: S dng tp tin lit k di y h y kim tra vic tn ton a ch nhy v trc.
01 02 03 04 05 06 07 08 09 10 0000 0000 0002 0004 0006 0007 0008 0009 000B 000D 7800 7455 6003 08 04 04 2477 5005 E4 ORG MOV MOV JZ NIC AGAIN: INC NEXT: INC ADD JNC CLR A A A, #77h OVER A 0000 R0, #0 A, #55H NEXT R0

Ebook Team
11 12 13 14 15 16 17 18 000E 000F 0010 0011 0012 0013 0015 0017 F8 F9 FA FB 2B 50F2 80FE MOV MOV MOV MOV ADD JNC SJMP END

www.updatesofts.com
R0, A R1, A R2, A R3, A A, R3 AGAIN SHERE

OVER: HERE:

Li gii: Trc ht lu rng cc lnh JZ v JNC u l lnh nhy v trc. a ch ch i vi lnh nhy v trc c tnh ton bng cch cng gi tr PC ca lnh i ngay sau v o byte th hai ca lnh nhy gn c gi l a ch tng i. dng 04 lnh JZ NEXT c m lnh 60 v ton hng 03 ti a ch 0004 v 0005. y 03 l a ch tng i, tng i so vi a ch ca lnh k tip l : INC R0 v l 0006. Bng vic cng 0006 v o 3 th a ch ch ca nh n NEXT l 0009 c to ra. Bng cch tng t nh vy i vi dng 9 th lnh JNC OVER c m lnh v ton hng l 50 v 05 trong 50 l m lnh v 05 l a ch tng i. Do vy, 05 c cng v o OD l a ch ca lnh CLA A ng ngay sau lnh JNC OVER v cho gi tr 12H chnh l a ch ca nh n OVER. V d 3.7: H y kim tra tnh ton a ch ca cc lnh nhy li trong v d 3.6. Li gii: Trong danh sch lit k chng trnh th lnh JNC AGAIN c m lnh l 50 v a ch tng i l F2H. Khi a ch tng i ca F2H c cng v o 15H l a ch ca lnh ng di lnh nhy ta c 15H + F2H = 07 (v phn nh c b i). rng 07 l a ch nh n AGAIN. V h y cng xt lnh SJMP HERE c m lnh 80 v a ch tng i FE gi tr PC ca lnh k tip l 0017H c cng v o a ch tng i FEH ta nhn c 0015H chnh l a ch nh n HERE (17H + FEH = 15H) phn nh c b i). Lu rng FEH l -2 v 17h + (-2) = 15H. V php cng s m s c b n chng 6. 3.1.6 Tnh ton a ch ch nhy li. Trong khi trng hp nhy ti th gi tr thay th l mt s dng trong khong t 0 n 127 (00 n 7F dng Hex) th i vi lnh nhy li gi tr thay th l mt s m nm trong khong t 0 n -128 nh c gii thch v d 3.7. Cn phi nhn mnh rng, bt lun SJMP nhy ti hay nhy li th i vi mt lnh nhy bt k a ch ca a ch ch khng bao gi c th ln hn 0 -128 n +127 byte so vi a ch gn lin vi lnh ng ngay sau lnh SJMP. Nu c mt s n lc n o vi phm lut n y th hp ng s to ra mt li bo rng lnh nhy ngo i phm vi. 3.2 Cc lnh gi CALL. Mt lnh chuyn iu khin khc l lnh CALL c dng gi mt chng trnh con. Cc chng trnh con thng c s dng thc thi cc cng vic cn phi c thc hin thng xuyn. iu n y l m cho chng trnh tr nn c cu trc hn ngo i vic tit kim c thm khng gian b nh. Trong 8051 c 2

Ebook Team

www.updatesofts.com

lnh gi l : Gi xa CALL v gi tuyt i ACALL m quyt nh s dng lnh n o ph thuc v o a ch ch. 3.2.1 Lnh gi xa LCALL. Trong lnh 3 byte n y th byte u tin l m lnh, cn hai byte sau c dng cho a ch ca chng trnh con ch. Do vy LCALL c th c dng gi cc chng trnh con bt k v tr n o trong phm vi 64k byte, khng gian a ch ca 8051. m bo rng sau khi thc hin mt chng trnh c gi 8051 bit c ch quay tr v th n t ng ct v o ngn xp a ch ca lnh ng ngay sau lnh gi LCALL. Khi mt chng trnh con c gi, iu khin c chuyn n chng trnh con v b x l ct b m chng trnh PC v o ngn xp v bt u np lnh v o v tr mi. Sau khi kt thc thc hin chng trnh con th lnh tr v RET chuyn iu khin v cho ngun gi. Mi chng trnh con cn lnh RET nh l lnh cui cng (xem v d 3.8). Cc im sau y cn phi c lu t v d 3.8. 1. Lu n chng trnh con DELAY khi thc hin lnh LCALL DELAY u tin th a ch ca lnh ngay k n l MOV A, #0AAH c y v o ngn xp v 8051 bt u thc hin cc lnh a ch 300H. 2. Trong chng trnh con DELAY, lc u b m R5 c t v gi tr 255 (R5 = FFH). Do vy, vng lp c lp li 256 ln. Khi R5 tr v 0 iu khin ri xung lnh quay tr v RET m n ko a ch t ngn xp v o b m chng trnh v tip tc thc hin lnh sau lnh gi CALL. V d 3.8: H y vit mt chng trnh cht tt c cc bit ca cng P1 bng cch gi n n gi tr 55H v AAH lin tc. H y t mt tr thi gian gia mi ln xut d liu ti cng P1. Chng trnh n y s c s dng kim tra cc cng ca 8051 trong chng tip theo. Li gii:
ORG 0000 BACK: MOV A, #55H ; Np A vi gi tr 55H MOV P1, A ; Gi 55H n cng P1 LCALL DELAY ; To tr thi gian MOV A, #0AAH ; Np A vi gi tr AAH MOV P1, A ; Gi AAH n cng P1 LCALL DELAY ; Gi chm SJMP BACK ; Lp li v tn ; ------------------ - y l chng trnh con to tr thi gian ORG 300H ; t chng trnh con tr thi gian a ch 300H DELAY: MOV R5, #00H ; Np b m R5 = 255H (hay FFH) AGAIN: DJNZ R5, AGAIN ; Tip tc cho n khi R5 v khng RET ; Tr iu khin v ngun gi (khi R5 = 0) END ; Kt thc tp tin ca hp ng

Lng thi gian tr trong v d 8.3 phc thuc v o tn s ca 8051. Cch tnh chnh xc thi gian s c gii thch chng 4. Tuy nhin ta c th tng thi gian tr bng cch s dng vng lp lng nh ch ra di y.
DELAY: MOV R4, #255 ; Vng lp lng gi chm ; Np R4 = 255 (FFH dng hex)

Ebook Team
NEXT: AGAIN: MOV DJNZ DJNZ RET R5, #255 R5, AGAIN R4, NEXT

www.updatesofts.com
; Np R5 = 255 (FFH dng hex) ; Lp li cho n khi RT = 0 ; Gim R4 ;Tip tc np R5 cho n khi R4 = 0 ; Tr v (khi R4 = 0)

3.2.2 Lnh gi CALL v vai tr ca ngn xp. Ngn xp v con tr ngn xp ta s nghin cu chng cui. hiu c tm quan trng ca ngn xp trong cc b vi iu khin by gi kho st ni dung ca ngn xp v con tr ngn xp i vi v d 8.3. iu n y c trnh b y v d 3.9 di y. V d 3.9: H y phn tch ni dung ca ngn xp sau khi thc hin lnh LCALL u tin di y.
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 0000 0000 0002 0004 0007 0009 000B 000E 0010 0010 0300 0300 0300 0302 0304 0305 7455 F590 120300 74AA F590 120300 80F0 OR6 BACK: MOV A, #55H MOV P1, A LCALL DELAY MOV A, #0AAH MOV P1, A LCALL DELAY SJMP BACK ; Np A vi gi tr 55H ; Gi 55H ti cng P1 ; To tr thi gian ; Np A vi gi tr AAH ; Gi AAH ti cng P1 ; To tr thi gian ; Tip tc thc hin

7DFF DDFE 22

; ..................... y l chng trnh con gi chm MOV 300H DELAY: MOV R5, #FFH ; Np R5 = 255 AGAIN:DJNZ R5, AGAIN ; Dng y RET ; Tr v ngun gi END ; Kt thc np tin hp ng

Li gii: Khi lnh LCALL u tin c thc hin th a ch ca lnh MOV A, #0AAH c ct v o ngn xp. Lu rng byte thp v o trc v byte cao v o sau. Lnh cui cng ca chng trnh con c gi phi l lnh tr v RET chuyn CPU ko (POP) cc byte trn nh ca ngn xp v o b m chng trnh PC v tip tc thc hin lnh ti a ch 07. S bn ch ra khung ca ngn xp sau ln gi LCALL u tin. 0A 09 08 SP 00 07 09

3.2.3 S dng lnh PUSH v POP trong cc chng trnh con. Khi gi mt chng trnh con th ngn xp phi bm c v tr m CPU cn tr v. Sau khi kt thc chng trnh con v l do n y chng ta phi cn thn mi khi thao tc vi cc ni dung ca ngn xp. Nguyn tc l s ln y v o (PUSH) v ko

Ebook Team

www.updatesofts.com

ra (POP) lun phi ph hp trong bt k chng trnh con c gi v o. Hay ni cch khc i vi mi lnh PUSH th phi c mt lnh POP. Xem v d 3.10. 3.2.4 Gi cc chng trnh con. Trong lp trnh hp ng thng c mt chng trnh chnh v rt nhiu chng trnh con m chng c gi t chng trnh chnh. iu n y cho php ta to mi chng trnh con trong mt m-un ring bit. Mi m-un c th c kim tra tch bit v sau c kt hp vi nhau cng vi chng trnh chnh. Quan trng hn l trong mt chng trnh ln th cc m-un c th c phn cho cc lp trnh vin khc nhau nhm rt ngn thi gian pht trin. V d 3.10: Phn tch ngn xp i vi lnh LCALL u tin trong on m .
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 0000 0000 7455 0002 F590 0004 7C99 0006 7D67 0008 120300 000B 74AA 000D F590 000F 120300 0012 80EC 0014 0300 0300 C004 0302 C005 0304 7CFF 0306 7DFF 0308 DDFE 030A DCFA 030C D005 030E D004 0310 22 0311 BACK: ORG 0 MOV A, #55H ; Np A vi gi tr 55H MOV P1, A ; Gi 55H ra cng P1 MOV R4, #99H MOV R5, #67H LCALL DELAY ; To gi chm thi gian MOV A, #0AAH ; Np A vi AAH MOV P1, A ; Gi AAH ra cng P1 LCALL DELAY SJMP BACK ; Tip tc thc hin ; ............ y l chng trnh con DELAY ORG 300H PUSH 4 ; y R4 v o ngn xp PUSH 5 ; y R5 v o ngn xp MOV R4, 00FH ; Gn R4 = FFH MOV R5, #00FH ; Gn R5 = 255 DJNZ R5, AGAIN DJNZ R4, NEXT POP 5 ; Ko nh ngn xp v o R5 POP 4 ; Ko nh ngn xp v o R4 RET ; Tr v ngun gi END ; Kt thc tp tin hp ng

DELAY NEXT: AGAIN:

Li gii: Trc ht lu rng i vi cc lnh PUSH v POP ta phi xc nh a ch trc tip ca thanh ghi c y v o, ko ra t ngn xp. Di y l s khung ca ngn xp.
Sau lnh LCALL th nht 0B 0A 09 00 PCH 08 0B PCL Sau lnh PUSH 4 0B 0A 09 0B 99 00 0B R4 PCH PCL 0B 0A 09 08 Sau lnh POSH 5 67 R5 09 R4 00 PCL 0B PCL

Cn phi nhn mnh rng trong vic s dng LCALL th a ch ch ca cc chng trnh con c th u trong phm vi 64k byte khng gian b nh ca

Ebook Team

www.updatesofts.com

8051. iu n y khng p dng cho tt c mi lnh gi CALL chng hn nh i vi ACALL di y:

; MAIN program calling subroutines ORG 0 MAIN: LCALL SUBR-1 LCALL SUBR-2 LCALL SUBR-3 HERE: SJMP MAIN ;----------------- end of MAIN ; SUBR-1l ... ... RET ; ----------------- end of subroutinel 1 ; SUBR-1l ... ... RET ; ----------------- end of subroutinel 2 ; SUBR-1l ... ... RET ; ----------------- end of subroutinel 3 END

; end of the asm file

Hnh 3.1: Chng trnh chnh hp ng ca 8051 c gi cc chng trnh con. 3.2.5 Lnh gi tuyt i ACALL (Absolute call). Lnh ACALL l lnh 2 byte khc vi lnh LCALL d i 3 byte. Do ACALL ch c 2 byte nn a ch ch ca chng trnh con phi nm trong khong 2k byte a ch v ch c 11bit ca 2 byte c s dng cho a ch. Khng c s khc bit n o gia ACALL v LCALL trong khi nim ct b m chng trnh v o ngn xp hay trong chc nng ca lnh tr v RET. S khc nhau duy nht l a ch ch ca lnh LCALL c th nm bt c u trong phm vi 64k byte khng gian a ch ca 8051, cn trong khi a ch ca lnh ACALL phi nm trong khong 2 byte. Trong nhiu bin th ca 8051 do cc h ng cung cp th ROM trn chp ch c 1k byte.. Trong nhng trng hp nh vy th vic s dng ACALL thay cho LCALL c th tit kim c mt s byte b nh ca khng gian ROM chng trnh. V d 3.11: Mt nh pht trin s dng chp vi iu khin Atmel AT89C1051 cho mt sn phm. Chp n y ch c 1k byte ROM Flash trn chp. Hi trong khi lnh LCALL v ACALL th lnh n o hu ch nht trong lp trnh cho chp n y. Li gii: Lnh ACALL l hu ch hn v n l lnh 2 byte. N tit kim mt byte mi ln gi c s dng.

Ebook Team

www.updatesofts.com

Tt nhin, vic s dng cc lnh gn nh, chng ta c th lp trnh hiu qu bng cch c mt hiu bit chi tit v tt c cc lnh c h tr bi b vi x l cho v s dng chng mt cch khn ngoan. Xt v d 3.12 di y. V d 3.12: H y vit li chng trnh v d 3.8 mt cch hiu qu m bn c th: Li gii:
ORG 0 MOV A, #55H ; Np Avi gi tr 55H BACK: MOV P1, A ; Xut gi tr trong A ra cng P1 ACALL DELAY ; Gi chm CPL A ; B th nh ghi A SJMP BACK ; Tip tc thc hin v hn ; -------- y l chng trnh con gi chm DELAY DELAY: MOV R5, #0FFH ; Np R5 = 255 (hay FFH) l m cho b m AGAIN: DJNZ R5, AGAIN ; Dng y cho n khi R5 = 0 RET ; Tr v END ; Kt thc

3.3 To v tnh ton thi gian gi chm. 3.3.1 Chu k my: i vi CPU thc hin mt lnh th mt mt chu k ng h n y c coi nh cc chu k my. Ph lc AppendixA.2 cung cp danh sch lit k cc lnh 8051 v cc chu k my ca chng. tnh ton mt tr thi gian, ta s dng danh sch lit k n y. Trong h 8051 th d i ca chu k my ph thuc v o tn s ca b dao ng thch anh c ni v o h thng 8051. B dao ng thch anh cng vi mch in trn chip cung cp xung ng h cho CPU ca 8051 (xem chng 4). Tn s ca tinh th thch anh c ni ti h 8051 dao ng trong khong 4MHz n 30 MHz ph thuc v o tc chp v nh sn xut. Thng xuyn nht l b dao ng thch anh tn s 10.0592MHz c s dng l m cho h 8051 tng thch vi cng ni tip ca PC IBM (xem chng 10). Trong 8051, mt chu k my ko d i 12 chu k dao ng. Do vy, tnh ton chu k my ta ly 1/12 ca tn s tinh th thch anh, sau ly gi tr nghch o nh ch ra trong v d 3.13. V d 3.13: on m di y trnh b y tn s thch anh cho 3 h thng da trn 8051 khc nhau. H y tm chu k my ca mi trng hp: a) 11.0592MHz b) 16MHz v c) 20MHz. Li gii: a) 11.0592/12 = 921.6kHz; Chu k my l 1/921.6kHz = 1.085s (micro giy) b) 16MHz/12 = 1.333MHz; Chu k my MC = 1/1.333MHz = 0.75s c) 20MHz/12 = 1.66MHz MC = 1/1.66MHz = 0.60s V d 3.14: i vi mt h thng 8051 c 11.0592MHz h y tm thi gian cn thit thc hin cc lnh sau y.
a) MOV R3, #55 b) DEC R3 c) DJNZ R2 ch

Ebook Team
d) LJMP e) SJMP f) NOP g) MUL AB

www.updatesofts.com

Li gii: Chu k my cho h thng 8051 c tn s ng h l 11.0592MHz L 1.085s nh tnh v d 3.13. Bng A-1 trong ph lc Appendix A trnh b y s chu k my i vi cc lnh trn. Vy ta c:

Lnh (a) MOV (b) DEC (c) DJNZ (d) LJMP (e) SJMP (f) NOP (g) MUL

R3, #55 R3 R2, target

AB

Chu k my 1 1 2 2 2 1 4

Thi gian thc hin 1 1.085 s = 1.085 s 1 1.085 s = 1.085 s 2 1.085 s = 2.17 s 2 1.085 s = 2.17 s 2 1.085 s = 2.17 s 1 1.085 s = 1.085 s 4 1.085 s = 4.34 s

3.3.2 Tnh ton tr. Nh trnh b y trn y, mt chng trnh con gi chm gm c hai phn: (1) thit lp b m v (2) mt vng lp. Hu ht thi gian gi chm c thc hin bi thn vng lp nh trnh b y v d 3.15. V d 3.15: H y tm kch thc ca thi gian gi chm trong chng trnh sau, nu tn s giao ng thach anh l 11.0592MHz.
AGAIN: MOV A, #55H P1, A ACALL DELAY CPL A SJMP AGAIN ; -------- Time delay DELAY: MOV R3, #200 HERE : DJNZ R3, HERE RET MOV

Li gii: T bng A-1 ca ph lc Appendix A ta c cc chu k my sao cho cc lnh ca chng trnh con gi chm l :
DELAY: HERE : MOV DJNZ RET R3, #200 R3, HERE 1 2 1

Do vy tng thi gian gi chm l [(200 2) + 1 + 1] 1.085 = 436.17s. Thng thng ta tnh thi gian gi chm da trn cc lnh bn trong vng lp v b qua cc chu k ng h lin quan vi cc lnh ngo i vng lp.

Ebook Team

www.updatesofts.com

Trong v d 3.15 gi tr ln nht m R3 c th cha l 255, do vy mt cch tng tr l s dng lnh UOP (khng l m g) trong vng lp tiu tn thi gian mt cch n gin. iu n y c ch ra trong v d 3.16 di y. V d 3.16: H y tm tr thi gian cho chng trnh con sau. Gi thit tn s dao ng thch anh l 11.0592MHz.
S chu k my
DELAY: HERE : MOV NOP NOP NOP NOP DJNZ RET R3, #250 1 1 1 1 1 2 1

R3, HERE

Li gii: Thi gian tr bn trong vng lp HERE l [250 (1 + 1 + 1 + 1 + 1 + 2)] 1.0851s = 1627.5s. Cng thm hai lnh ngo i vng lp ta c 1627.5s 1.085s = 1629.67s. 3.3.3 tr thi gian ca vng lp trong vng lp. Mt cch khc nhn c gi tr t tr ln l s dng mt vng lp bn trong vng lp v cng c gi l vng lp lng nhau. Xem v d 3.17 di y. V d 3.17: i vi mt chu k my 1.085s h y tnh thi gian gi chm trong chng trnh con sau:
DELAY: AGAIN: HERE: MOV MOV NOP NOP DJNZ DJNZ RET R2, #200 R3, #250 R3, HERE R2, AGAIN

chu k my
1 1 1 1 2 2 1

Li gii: i vi vng lp HERE ta c (4 250) 1.085s = 1085s. Vng lp AGAIN lp vng lp HERE 200 ln, do vy thi gian tr l 200 1085s 217000s, nn ta khng tnh tng ph. Tuy nhin, cc lnh MOV R3, #250 v DJNZ R2, AGAIN u v cui vng lp AGAIN cng (3 200 1.085s) = 651s v o thi gian tr v kt qu ta c 217000 + 651 = 217651s = 217.651 miligiy cho tng thi gian tr lin quan n chng trnh con gi chm DELAY ni trn. Lu rng,

Ebook Team

www.updatesofts.com

trong trng hp vng lp lng nhau cng nh trong mi vng lp gi chm khc thi gian xp x gn dng v ta b qua cc lnh u v cui trong chng trnh con.

Ebook Team

www.updatesofts.com

chng 4 Lp trnh cho cng v o - ra I/0


4.1 M t chn ca 8051. Mc d cc th nh vin ca h 8051 (v d 8751, 89C51, DS5000) u c cc kiu ng v khc nhau, chng hn nh hai h ng chn DIP (Dual In-Line Pakage) dng v dt vung QFP (Quad Flat Pakage) v dng chp khng c chn LLC (Leadless Chip Carrier) th chng u c 40 chn cho cc chc nng khc nhau nh v o ra I/0, c RD , ghi WR , a ch, d liu v ngt. Cn phi lu rng mt s h ng cung cp mt phin bn 8051 c 20 chn vi s cng v o-ra t hn cho cc ng dng yu cu thp hn. Tuy nhin, v hu ht cc nh pht trin chnh s dng chp ng v 40 chn vi hai h ng chn DIP nn ta ch tp chung m t phin bn n y.

P1.0 P1.1 P1.2

P1.3
P1.4 P1.5 P1.6 P1.7 RST (RXD) P3.0 (TXD) P3.1 (NT0) P3.2 (NT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

8051 (8031)

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

Vcc P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.6 (AD6) EA/CPP ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4(A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (AB)

Hnh 4.1: S b tr chn ca 8051. Trn hnh 4.1 l s b tr chn ca 8051. Ta thy rng trong 40 chn th c 32 chn d nh cho cc cng P0, P1, P2 v P3 vi mi cng c 8 chn. Cc chn cn li c d nh cho ngun VCC, t GND, cc chngiao ng XTAL1 v XTAL2 ti lp RST cho php cht a ch ALE truy cp c a ch ngo i EA , cho php ct chng trnh PSEN . Trong 8 chn n y th 6 chn VCC , GND, XTAL1, XTAL2, RST v EA c cc h 8031 v 8051 s dng. Hay ni cch khc l chng phi c

Ebook Team

www.updatesofts.com

ni cho h thng l m vic m khng cn bit b vi iu khin thuc h 8051 hay 8031. Cn hai chn khc l PSEN v ALE c s dng ch yu trong cc h thng da trn 8031. 1. Chn VCC: Chn s 40 l VCC cp in p ngun cho chp. Ngun in p l +5V. 2. Chn GND: Chn GND: Chn s 20 l GND. 3. Chn XTAL1 v XTAL2: 8051 c mt b giao ng trn chp nhng n yu cu c mt xung ng h ngo i chy n. B giao ng thch anh thng xuyn nht c ni ti cc chn u v o XTAL1 (chn 19) v XTAL2 (chn 18). B giao ng thch anh c ni ti XTAL1 v XTAL2 cng cn hai t in gi tr 30pF. Mt pha ca t in c ni xung t nh c trnh b y trn hnh 4.2a. Cn phi lu rng c nhiu tc khc nhau ca h 8051. Tc c coi nh l tn s cc i ca b giao ng c ni ti chn XTAL. V d, mt chp 12MHz hoc thp hn. Tng t nh vy th mt b vi iu khin cng yu cu mt tinh th c tn s khng ln hn 20MHz. Khi 8051 c ni ti mt b giao ng tinh th thch anh v cp ngun th ta c th quan st tn s trn chn XTAL2 bng my hin sng. Nu ta quyt nh s dng mt ngun tn s khc b giao ng thch anh chng hn nh l b giao ng TTL th n s c ni ti chn XTAL1, cn chn XTAL2 th h khng ni nh hnh 4.2b.
C2

XTAL2

NC EXTERRNAL OSCILLATAOR SIGNAL

XTAL2 XTAL1 GND

C1 XTAL1 30pF GND

Hnh 4.2: a) Ni XTAL ti 8051 b) Ni XTAL ti ngun ng b ngo i. 4. Chn RST. Chn s 9 l chn ti lp RESET. N l mt u v o v c mc tch cc cao (bnh thng mc thp). Khi cp xung cao ti chn n y th b vi iu khin s ti lp v kt thc mi hot ng. iu n y thng c coi nh l s ti bt ngun. Khi kch hot ti bt ngun s l m mt mi gi tr trn cc thanh ghi. Bng 4.1 cung cp mt cch lit k cc thanh ghi ca 8051 v cc gi tr ca chng sau khi ti bt ngun. Bng 4.1: Gi tr mt s thanh ghi sau RESET.

Ebook Team
Register PC ACC B PSW SP DPTR Reset Value 0000 0000 0000 0000 0000 0007 0000

www.updatesofts.com

Lu rng gi tr ca b m chng trnh PC l 0 khi ti lp p CPU np m lnh u tin t b nh ROM ti v tr ngn nh 0000. iu n y c ngha l ta phi t dng u tin ca m ngun ti v tr ngn nh 0 ca ROM v y l m CPU tnh thc v tm lnh u tin. Hnh 4.3 trnh b y hai cch ni chn RST vi mch bt ngun.
Vcc Vcc

------------------------ 31 30F
10F 30F

8.2K

EA/Vpp 19 X1 11.0592 MHz 18 X2 RST 9

10F

31

EA/Vpp X1 X2 RST

9 8.2K

Hnh 4.3: a) Mch ti bt ngun RESET. b) Mch ti bt ngun vi Debounce. Nhm l m cho u v o RESET c hiu qu th n phi c ti thiu 2 chu k my. Hay ni cch khc, xung cao phi ko d i ti thiu 2 chu k my trc khi n xung thp. Trong 8051 mt chu k my c nh ngha bng 12 chu k dao ng nh ni chng 3 v c trnh b y ti v tr 4.1. 5. Chn EA : Cc th nh vin h 8051 nh 8751, 98C51 hoc DS5000 u c ROM trn chp lu ct chng trnh. Trong cc trng hp nh vy th chn EA c ni ti VCC. i vi cc th nh vin c h nh 8031 v 8032 m khng c ROM trn chp th m chng trnh c lu ct trn b nh ROM ngo i v chng c np cho 8031/32. Do vy, i vi 8031 th chn EA phi c ni t bo rng m chng trnh c ct ngo i. EA c ngha l truy cp ngo i (External Access) l chn s 31 trn v kiu DIP. N l mt chn u v o v phi c ni hoc vi VCC hoc GND. Hay ni cch khc l n khng c h.

Ebook Team

www.updatesofts.com

chng 14 chng ta s trnh b y cch 8031 s dng chn n y kt hp vi PSEN truy cp cc chng trnh c ct trn b nh ROM ngo i 8031. Trong cc chp 8051 vi b nh ROM trn chp nh 8751, 89C51 hoc DS5000 th EA c ni vi VCC. V d 4: H y tm chu k my i vi a) XTAL = 11.0592MHz b) XTAL = 16MHz. Li gii: a) 11.0592MHz/12 = 921.6kHz. Chu k my = 1/921.6kHz = 1.085s. b) 16MHz/12 = 1.333MHz Chu k my = 1/1.333MHz = 0.75s. Cc chn m t trn y phi c ni m khng cn th nh vin n o c s dng. Cn hai chn di y c s dng ch yu trong h thng da trn 8031 v s c trnh b y chi tit chng 11. 6. Chn PSEN : y l chn u ra cho php ct chng trnh (Program Store Enable) trong h thng da trn 8031 th chng trnh c ct b nh ROM ngo i th chn n y c ni ti chn OE ca ROM. Chi tit c b n chng 14. 7. Chn ALE: Chn cho php cht a ch ALE l chn u ra v c tch cc cao. Khi ni 8031 ti b nh ngo i th cng 0 cng c cp a ch v d liu. Hay ni cch khc 8031 dn a ch v d liu qua cng 0 tit kim s chn. Chn ALE c s dng phn knh a ch v d liu bng cch ni ti chn G ca chp 74LS373. iu n y c ni chi tit chng 14. 8. Cc chn cng v o ra v cc chc nng ca chng. Bn cng P0, P1, P2 v P3 u s dng 8 chn v to th nh cng 8 bt. Tt c cc cng khi RESET u c cu hnh nh cc u ra, sn s ng c s dng nh cc cng u ra. Mun s dng cng n o trong s cc cng n y l m u v o th n phi c lp trnh. 9. Cng P0. Cng 0 chim tt c 8 chn (t chn 32 n 39). N c th c dng nh cng u ra, s dng cc chn ca cng 0 va l m u ra, va l m u v o th mi chn phi c ni ti mt in tr ko bn ngo i 10k. iu n y l do mt thc t l cng P0 l mt m ng m khc vi cc cng P1, P2 v P3. Khi nim mng m c s dng trong cc chp MOS v chng mc n o n ging nh C-lec-t h i vi cc chp TTL. Trong bt k h thng n o s dng 8751, 89C51 hoc DS5000 ta thng ni cng P0 ti cc in tr ko, Xem hnh 4.4 bng cch n y ta c c cc u im ca cng P0 cho c u ra v u v o. Vi nhng in tr ko ngo i c ni khi ti lp cng P0 c cu hnh nh mt cng u ra. V d, on m sau y s lin tc gi ra cng P0 cc gi tr 554 v AAH.
BACK: MOV A, #554 MOV P0, A ACALL DELAY

Ebook Team
CPL SJMP A BACK Vcc

www.updatesofts.com

10K

DS5000 8751 8951 P0.3 P0.4 P0.5 P0.6 P0.7

P0.0 P0.1 P0.2

Hnh 4.4: Cng P0 vi cc in tr ko. a) Cng P0 u v o: Vi cc in tr c ni ti cng P0 nhm to n th nh cng u v o th n phi c lp trnh bng cch ghi 1 ti tt c cc bit. on m di y s cu hnh P0 lc u l u v o bng cch ghi 1 n n v sau d liu nhn c t n c gi n P1. b)
MOV MOV BACK: MOV MOV SJMP A,#FFH P0, A A, P0 P1, A BACK ; Gn A = FF dng Hex ; To cng P0 l m cng u v o bng cch ; Ghi tt c cc bit ca n. ; Nhn d liu t P0 ; Gi n n cng 1 ; Lp li

b) Vai tr kp ca cng P0: Nh trnh b y trn hnh 4.1, cng P0 c gn AD0 AD7 cho php n c s dng va cho a ch, va cho d liu. Khi ni 8051/31 ti b nh ngo i th cng 0 cung cp c a ch v d liu 8051 dn d liu v a ch qua cng P0 tit kim s chn. ALE bo nu P0 c a ch hay d liu khi ALE 0 n cp d liu D0 - D7. Do vy, ALE c s dng tch a ch v d liu vi s tr gip ca cht 74LS373 m ta s bit c th chng 14. 10. Cng P1. Cng P1 cng chim tt c 8 chn (t chn 1 n chn 8) n c th c s dng nh u v o hoc u ra. So vi cng P0 th cng n y khng cn n in tr ko v n c cc in tr ko bn trong. Trong qu trnh ti lp th cng P1 c cu hnh nh mt cng u ra. V d, on m sau s gi lin tc cc gi tr 55 v AAH ra cng P1.
BACK: MOV MOV A, #55H P1, A

Port 0

Ebook Team
ACALL DELAY SJMP BACK

www.updatesofts.com

Cng P1 nh u v o: bin cng P1 th nh u v o th n phi c lp trnh bng cch ghi mt n tt c cc bit ca n. L do v iu n y c b n mc lc Appendix C.2. Trong on m sau, cng P1 lc u c cu hnh nh cng u v o bng cch ghi 1 v o cc bit ca n v sau d liu nhn c t cng n y c ct v o R7, R6 v R5.
MOV MOV MOV MOV ACALL MOV MOV ACALL MOV MOV A, #0FFH P1, A A, P1 R7, A DELAY A, P1 R6, A DELAY A, P1 R5, A ; Np A = FF dng hex ; To cng P1 th nh cng u v o bng ; cch ghi 1 v o cc bit ca n. ; Nhn d liu t P1 ; Ct n v o thanh ghi R7 ; Ch ; Nhn d liu khc t P1 ; Ct n v o thanh ghi R6 ; Ch ; Nhn d liu khc t cng P1 ; Ct n v o thanh ghi R5

11. Cng P2: Cng P2 cng chim 8 chn (cc chn t 21 n 28). N c th c s dng nh u v o hoc u ra ging nh cng P1, cng P2 cng khng cn in tr ko v n c cc in tr ko bn trong. Khi ti lp, th cng P2 c cu hnh nh mt cng u ra. V d, on m sau s gi lin tc ra cng P2 cc gi tr 55H v AAH. l tt c cc bit ca P2 ln xung lin tc.
BACK: MOV MOV ACALL CPL SJMP A, #55H P2,A DELAY A BACK

a) Cng P2 nh u v o. to cng P2 nh u v o th n phi c lp trnh bng cch ghi cc s 1 ti tt c cc chn ca n. on m sau y u tin cu hinh P2 l cng v o bng cch ghi mt n tt c cc chn ca n v sau d liu nhn c t P2 c gi lin tc n P1.
MOV MOV BACK: MOV MOV SJMP A, 0FFH P2, A A, 2 P1, A BACK ; Gn A gi tr FF dng Hex ; To P2 l cng u v o bng cch ; ghi mt n cc chn ca n ; Nhn d liu t P2 ; Gi n n P1 ; Lp li

b) Vai tr kp ca P2.

Ebook Team

www.updatesofts.com

Trong cc h thng da trn 8751, 89C51 v DS5000 th P2 c dng nh u ra n gin. Tuy nhin trong h thng da trn 80312 th cng P2 phi c dng cng vi P0 to ra a ch 16 brt i vi b nh ngo i. Nh ch ra trn hnh 4.1 cng P2 cng c ch nh nh l A8 - A15 bo chc nng kp ca n. V mt b 8031 c kh nng trung cp 64k byte b nh ngo i, n cn mt ng a ch 16 bt. Trong khi P.0 cung cp 8 bit thp qua A0 - A7. Cng vic ca P2 l cung cp cc bt a ch A8 - A15. Hay ni cch khc khi 8031c ni ti b nh ngo i th P2 c dng cho 8 bt ca a ch 16 bit v n khng th dng cho v o ra. iu n y s c trnh b y chi tit chng 14. T nhng trnh b y trn y ta c th kt lun rng trong cc h thng da trn cc b vi iu khin 8751, 89C51 hoc DS5000 th ta c 3 cng P0, P1v P2 cho cc thao tc v o ra v nh th l c th cho cc ng dng vi hu ht cc b vi iu khin. Cn cp P3 l d nh cho ngt v ta s cng b n di y. 11 - Cng P3: Cng P3 chim tng cng l 8 chn t chn 10 n chn 17. N c th c s dng nh u v o hoc u ra. Cng P3 khng cn cc in tr ko cng nh P1 v P2. Mc d cng P3 c cu hnh nh mt cng u ra khi ti lp, nhng y khng phi l cch n c ng dng ph bin nht. Cng P3 c chc nng b xung l cung cp mt s tn hiu quan trng c bit chng hn nh cc ngt. Bng 4.2 cung cp cc chc nng khc ca cng P3. Thng tin n y p dng cho c 8051 v 8031. Bng 4.2: Cc chc nng khc ca cng P3
Bt ca cng P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Chc nng Nhn d liu (RXD) Pht d liu (TXD) Ngt 0(INT0) Ngt 1(INT1) B nh thi 0 (TO) 1 B nh thi 1(T1) Ghi (WR) c (RD) chn s 10 11 12 13 14 15 16 17

Cc bit P3.0 v P3.1 c dng cho cc tn hiu nhn v pht d liu trong truyn thng d liu ni tip. Xem chng 10 t bit cc chng c ni ghp nh th n o. Cc bit P3.2 v P3.3 c d nh cho cc ngt ngo i v chng c trnh b y chi tit chng 11. Bit P3.4 v P3.5 c dng cho cc b nh thm 0 v 1v chi tit c trnh b y chng 9. Cui cng cc bit P3.6 v P3.7 c cp cho cc tn hiu ghi v c cc b nh ngo i c ni ti cc h thng da trn 8031. Chng 14 s trnh b y cch chng c s dng nh th n o trong cc h thng da trn 8031. Trong cc h thng da trn 8751, 89C51 hoc D35000 th cc chn P3.6 v P3.7 c dng cho v o - ra cn cc chn khc ca P3 c s dng bnh thng trong vai tr chc nng thay i. 4.2 Lp trnh v o - ra: thao tc bit. 4.2.1 cc cch khc nhau truy cp to n b 8 bit.

Ebook Team

www.updatesofts.com

Trong on m di y cng nh trong nhiu v d v o ra trc y to n b 8 bit ca cng P1 c cp.


BACK: MOV MOV ACALL MOV MOV ACALL SJMP A, # 55H P1,A DELAY A, #0AAH P1, A DELAY BACK

on m trn cht mi bit ca P1 mt cch lin tc. Chng ta thng mt bin th ca chng trnh trn trc . By gi ta c th vit li on m trn theo cch hiu qu hn bng cch truy cp trc tip cng m khng qua thanh ghi tng nh sau:
BACK: MOV ACALL MOV CALL SJMP P1, # 55H DELAY P1, #00H DELAY BACK

Ta c th vit mt dng khc ca on m trn bng k thut c - sa i ghi nh mc 4.2.2 di y. 4.2.2 c im c- sa i - ghi (Read - Modify Write). Cc cng trong 8051 c th c truy cp bngk thut c gi l c-sa i-ghi. c im n y tit kim rt nhiu dng lnh bng cch kt hp tt c 3 thao tc: 1c cng, 2 sa i nv 3 ghi n ra cng v o mt lnh n. on m di y trc ht t 01010101(nh phn) v o cng 1. Sau lnh XLR P1, #0FFH thc hin php l-gch OR loi tr l XOR trn cng p1 vi 1111 1111 ( nh phn ) v sau ghi kt qu tr li cng P1.
AGAIN: MOV XLR ACALL SJMP P1, #55H P1,# 0FFH DELAY AGAIN ; P1 = 01010101 ; EX - 0R P1 vi 1111 1111

Lu rng lnh X0R ca 55H v FFH s cho kt qu l AAH. Tng t nh vy lnh X0R ca AAH vi FFH li cho gi tr kt qu l 55H. Cc lnh l-gch c trnh b y chng 7. 4.2.3. Kh nng nh a ch theo bt ca cc cng C nhiu lc chng ta cn truy cp ch 1 hoc2 bt ca cng thay v truy cp c 8 bit ca cng. Mt im mnh ca cc cng 8051 l chng c kh nng truy cp tng bt ring r m khng l m thay i cc bt cn li trong cng v d, on m di y cht bit P1.2 lin tc:
BACK: CPL P1.2 ; Ly b 2 ch ring bit P1.2

Ebook Team
ACALL DELAY SJMP BACK

www.updatesofts.com

Mt bin th khc ca on m trn l :


AGACN: SETB ACALL CLR ACALL SJMP P1.2 DELAY P1.2 DELAY AGAIN ; Ch thay i bt P1.2 ln cao ; Xo bt P1.2 xung thp

Lu rng bt P1.2 l bt th 3 ca cng P1, v bt th nht l P1.0 v bit th hai l P1.1 v.v... Bng 4.3 trnh b y cc bt ca cc cng v o ra ca 8051. Xem v d 4.2 v thao tc bt ca cc bt v o - ra. Lu rng trong v d 4.2 cc bit khng dng n l khng b nh hng. y l kh nng nh a ch theo bit ca cc cng v o - ra v l mt trong nhng im mnh nht ca b vi iu khin 8051. V d 4.2: h y vit chng trnh thc hin cc cng vic sau: a) Duy tr hin th bit P1.2 cho n khi n ln cp b) Khi P1.2 ln cao, h y ghi gi tr 45H v o cng P0 c) Gi mt xung cao xung thp (H-to-L) ti P2.3 Li gii:
SET MOV JNB MOV SETB CLR P1.2 A, #45H P1.2, AGAIN P0, A P2.3 P2.3 ; To bit P1.2 l u v o ; Gn A = 45H ; Thot khi P1.2 = 1 ; Xut A ti cng P0 ; a P2.3 ln cao ; To P2.3 xung thp c xung H-T0-L

AGAIN:

Trong chng trnh n y lnh JNB P1.2, AGCN (JNB c ngha l nhy nu khng bit) li vng lp cho n khi P1.2 cha ln cao. Khi P1.2 ln cao n thot ra khi vng lp ghi gi tr 45H ti cng P0 v to ra xung H-to-L bng chui cc lnh SETB v CLR.

Ebook Team

www.updatesofts.com

Chng 5 Cc ch nh a ch ca 8051
CPC c th truy cp d liu theo nhiu cch khc nhau. D liu c th trong mt thanh ghi hoc trong b nh hoc c cho nh mt gi tr tc thi cc cch truy cp d liu khc nhau c gi l cc ch nh a ch. Chng n y chng ta b n lun v cc ch nh a ch ca 8051 trong phm vi mt s v d. Cc ch nh a ch khc nhau ca b vi x l c xc nh nh n c thit k v do vy ngi lp trnh khng th nh a ch khc nhau l : 1. tc thi 2. Theo thanh ghi 3. Trc tip 4. gin tip qua thanh ghi 5. Theo ch s 5.1 Cc ch nh a ch tc thi v theo thanh ghi 5.1.1 Ch nh a ch tc thi Trong ch nh a ch n y ton hng ngun l mt hng s. V nh tn gi ca n th khi mt lnh c hp dch ton hng i tc thi ngay sau m lnh. Lu rng trc d liu tc thi phi c t du (#) ch nh a ch n y c th c dng np thng tin v o bt k thanh ghi n o k c thanh ghi con tr d liu DPTR. V d:
MOV MOV MOV MOV A, # 25H R4, #62 B, #40H DPTR, #4521H ; Np gi tr 25H v o thanh ghi A ; Np gi tr 62 thp phn v o R4 ; Np gi tr 40 H v o thanh ghi B ; Np 4512H v o con tr d liu DPTR

Mc d thanh ghi DPTR l 16 bit n cng c th c truy cp nh 2 thanh ghi 8 bit DPH v DPL trong DPH l byte cao v DPL l byte thp. Xt on m di y:
MOV MOV MOV DPTR, #2550H A, #50H DPH, #25H

Cng lu rng lnh di y c th to ra li v gi tr np v o DPTR ln hn16 bit:


MOV DPTR, # 68975 ; Gi tri khng hp l > 65535 (FFFFH)

Ta c th dng ch lnh Eqw truy cp d liu tc thi nh sau


COUNT ... MOV MOV MYDATA: ORG DB EDU 30 ... R4, #COUNT DPTR, #MYDATA 200H America

; R4 = 1E (30 = 1EH) ; DPTR = 200H

Ebook Team

www.updatesofts.com

Lu rng ta cng c th s dng ch nh c ch tc thi gi d liu n cc cng ca 8051. V d MOV P1, #55H l mt lnh hp l. 5.1.2 ch nh a ch theo thanh ghi: Ch nh a ch theo thanh ghi lin quan n vic s dng cc thanh ghi d liu cn c thao tc cc v d v nh a ch theo thanh ghi nh sau:
MOV MOV ADD ADD MOV A, RO R2, A A; R5 A, R7 R6, A ; Sao ni dung thanh ghi RO v o thanh ghi A ; Sao ni dung thanh ghi A v o thanh ghi R2 ; Cng ni dung thanh ghi R5 v o thanh ghi A ; Cng ni dung thanh ghi R7 v o thanh ghi A ; Lu ni dung thanh ghi A v o thanh ghi R6

Cng nn lu rng cc thanh ghi ngun v ch phi ph hp v kch thc. Hay ni cch khc, nu vit MOV DPTR, A s cho mt li v ngun l thanh ghi 8 bit v ch li l thanh ghi 16 bit. Xt on m sau:
MOV MOV MOV DPTR, #25F5H R7, DPL R6, DPH

rng ta c th chuyn d liu gia thanh ghi tch lu A v thanh ghi Rn (n t 0 n 7) nhng vic chuyn d liu gia cc thanh ghi Rn th khng c php. V d, lnh MOV R4, R7 l khng hp l. Trong hai ch nh a ch u tin, cc ton hng c th hoc bn trong mt trong cc thanh ghi hoc c gn lin vi lnh. Trong hu ht cc chng trnh d liu cn c x l thng trong mt s ngn ca b nh RAM hoc trong khng gian m ca ROM. C rt nhiu cch truy cp d liu n y m phn tip theo s xt n. 5.2 Truy cp b nh s dng cc ch nh a ch khc nhau. 5.2.1 Ch nh a ch trc tip. Nh ni chng 2 trong 8051 c 128 byte b nh RAM. B nh RAM c gn cc a ch t 00 n FFH v c phn chia nh sau: 1. Cc ngn nh t 00 n 1FH c gn cho cc bng thanh ghi v ngn xp. 2. Cc ngn nh t 20H n 2FH c d nh cho khng gian nh a ch theo bit lu cc d liu 1 bit. 3. Cc ngn nh t 30H n 7FH l khng gian lu d liu c kch thc 1byte. Mc d to n b byte ca b nh RAM c th c truy cp bng ch nh a ch trc tip, nhng ch n y thng c s dng nht truy cp cc ngn nh RAM t 30H n 7FH. y l do mt thc t l cc ngn nh d nh cho bng ghi c truy cp bng thanh ghi theo cc tn gi ca chng l R0 - R7 cn cc ngn nh khc ca RAM th khng c tn nh vy. Trong ch nh a ch trc tip th d liu trong mt ngn nh RAM m a ch ca n c bit v a ch n y c cho nh l mt phn ca lnh. Khc vi ch nh a ch tc th m ton hng t n c cp vi lnh. Du (# 0 l s phn bit gia hai ch nh a ch. Xt cc v d di y v lu rng cc lnh khng c du (#):
MOV R0, 40H ; Lu ni dung ca ngn nh 40H ca RAM v o R0

Ebook Team
MOV MOV 56H, A R4, 7FH

www.updatesofts.com
; Lu ni dung thanh ghi A v o ngn nh 56H ca RAM ; Chuyn ni dung ngnnh 7FH ca RAM v o R4

Nh ni trc th cc ngn nh tr 0 n 7 ca RAM c cp cho bng 0 ca cc thanh ghi R0 - R7. Cc thanh ghi n y c th c truy cp theo 2 cch nh sau:
MOV MOV MOV MOV A, 4 A, R4 A, 7 A,R7 ; Hai lnh n y ging nhau u sao ni dung thanh ghi R4 v o A ; Hai lnh n y u nh nhau l sao ni dung R7 v o thanh ghi A

nhn mnh s quan trng ca du (#) trong cc lnh ca 8051. Xt cc m cho sau y:
MOV MOV MOV MOC R2, #05 A, 2 B, 2 7,2 ; Gn R2=05 ; Sao ni dung thanh ghi R2 v o A ; Sao ni dung thanh ghi R2 v o B ; Sao ni dung thanh ghi R7 v lnh MOV R7, R2 l khng hp l.

Mc d s dng cc tn R0 - R7 d hn cc a ch b nh ca chng nhng cc ngn nh 30H n 7FH ca RAM khng th c truy cp theo bt k cch n o khc l theo a ch ca chng v chng khng c tn. 5.2.2 cc thanh ghi SFSR v cc a ch ca chng. Trong cc thanh ghi c ni n t trc n gi ta thy rng cc thanh ghi R0 - R7 l mt phn trong 128 byte ca b nh RAM. Vy cn cc thanh ghi A, B, PSW v DPTR l mt b phn ca nhm cc thanh ghi nhn chung c gi l cc thanh ghi c bit SFR (Special Funtion Register). C rt nhiu thanh ghi vi chc nng c bit v chng c s dng rt rng r i m ta s trnh b y cc chng su. Cc thanh ghi FR c th c truy cp theo tn ca chng (m d hn rt nhiu) hoc theo cc a ch ca chng. V d a ch ca thanh ghi A l EOH v thanh ghi B l FOH nh cho trong bng 5.1. H y n nhng cp lnh c cng ngha di y:
MOV MOV MOV MOV MOV MOV MOV MOV 0E0H, #55H A, #55H 0F0H, #25H 3, #25H 0E0H A, R2 0F0 B, R0 ; Np 55H v o thanh ghi A(A=55H) ; ; Np 2SH v o thanh ghi B ( B = 25) ; ; Sao ni dung thanh ghi R2 v o A ; ; Sao ni dung thanh ghi R0 v o B ;

Bng 5.l di y lit k cc thanh ghi chc nng c bit SFR ca 8051 v cc a ch ca chng. Cn phi lu n hai im sau v cc a ch ca SFR:

Ebook Team

www.updatesofts.com

1. Cc thanh ghi SFR c a ch n m gia 80H v FFH cc a ch n y trn 80H, v cc a ch t 00 n 7FH l a ch ca b nh RAM bn trong 8051. 2. khng phi tt c mi a ch t 80H n FFH u do SFH s dng, nhng v tr ngn nh t 80H n FFH cha dngl d tr v lp trnh vin 8051 cng khng c s dng. Bng 5.1: Cc a ch ca thanh ghi chc nng c bit SFR
Lnh ACC* B* PSW* SP DPTR DPL DPH P0* P1* P2* P3* IP* IE* TMOD TCON* T2CON* T2MOD TH0 TL0 TH1 TL1 TH2 TL2 RCAP2H RCAP2L SCON* SBUF PCON Tn Thanh ghi tch lu (thanh ghi tng ) A Thanh ghi B T trng thi chng trnh Con tr ngn xp Con tr d liu hai byte Byte thp ca DPTR Byte cao ca DPTR Cng 0 Cng 1 Cng 2 Cng 3 iu khin u tin ngt iu khin cho php ngt iu khin ch b m/ B nh thi iu khin b m/ B nh thi iu khin b m/ B nh thi 2 iu khin ch b m/ B nh thi 2 Byte cao ca b m/ B nh thi 0 Byte thp ca b m/ B nh thi 0 Byte cao ca b m/ B nh thi 1 Byte thp ca b m/ B nh thi 1 Byte cao ca b m/ B nh thi 2 Byte thp ca b m/ B nh thi 2 Byte cao ca thanh ghi b m/ B nh thi 2 Byte thp ca thanh ghi b m/ B nh thi 2 iu khin ni tip B m d liu ni tip iu khin cng sut a ch 0E0H 0F0H 0D0H 81H 82H 83H 80H 90H 0A0H 0B0H 0B8H A08H 89H 88H 0C8H 0C9H 8CH 8AH 8DH 8BH 0CDH 0CCH 0CBH 0CAH 98H 99H 87H

*Cc thanh ghi c th nh a ch theo bit. Xt theo ch nh a ch trc tip th cn phi lu rng gi tr a ch c gii hn n 1byte, 00 - FFH. iu n y c ngha l vic s dng ca ch nh a ch n y b gii hn bi vic truy cp cc v tr ngn nh ca RAM v cc thanh ghi vi a ch c cho bn trong 8051. V d 5.1: Vit chng trnh gi 55H n cng P1 v P2 s dng hoc a) Tn cc cng b) Hoc a ch cc cng Li gii:
a) MOV A, #55H ; A = 55H

Ebook Team
MOV MOV P1, A P2, A ; P1 = 55H ; P2 = 55H

www.updatesofts.com

b) T bng 5.1 ta ly i ch cng P1 l 80H v P2 l A0H


MOV MOV MOV A, #55H 80H, A 0A0H, A ; A = 55H ; P1 = 55H ; P2 = 55H

5.2.3 Ngn xp v ch nh a ch trc tip. Mt cng dng chnh khc ca ch nh a ch trc tip l ngn xp. Trong h 8051 ch c ch nh a ch trc tip l c php y v o ngn xp. Do vy, mt lnh nh PVSH A l khng hp l. Vic y thanh ghi A v o ngn xp phi c vit di dng PVAH 0E0H vi 0E0H l a ch ca thanh ghi A. Tng t nh vy y thanh ghi R3 r nh 0 v o ngn xp ta phi vit l PVSH 03. Ch nh a ch trc tip phi c s dng cho c lnh POP. V d POP 04 s ko nh ca ngn xp v o thanh ghi R4 r nh 0. V d 5.2: Trnh b y m y thanh ghi R5, R6 v A v o ngn xp v sau ko chng ngc tr li R2, R3 v B tng ng. Li gii:
PUSH PUSH PUSH POP POP POP 05 06 0E0H 0F0H 02 03 ; y R5 v o ngn xp ; y R6 v o ngn xp ; y thanhghi A v o ngn xp ; Ko nh ngn xp cho v o thanh ghi B ; By gi B = A ; Ko nh ngn xp cho v o thanh ghi R2 ; By gi R2= R6 ; Ko nh ngn xp cho v o thanh ghi ; By gi R3 = R5

5.2.4 ch nh a ch gin tip thanh ghi. Trong ch n y, mt thanh ghi c s dng nh mt con tr n d liu. Nu d liu bn trong CPU th ch cc thanh ghi R0 v R1 c s dng cho mc ch n y. Hay ni cch khc cc thanh ghi R2 - R7 khng c th dng c gi a ch ca ton hng nm trong RAM khi s dng ch nh a ch n y khi Ro v R1 c dng nh cc con tr, ngha l khi chng gi cc a ch ca cc ngn nh RAM th trc chng phi t du (@) nh ch ra di y.
MOV MOV A, @ R0 @ R1, B ; Chuyn ni dung ca ngn nh RAM c a ch trong RO v A ; Chuyn ni dung ca B v o ngn nh RAM c a ch R1

Lu rng R0 cng nh R1 lun c du @ ng trc. Khi khng c du n y th l lnh chuyn ni dung cc thanh ghi Ro v R1 ch khng phi d liu ngn nh m a ch c trong R0 v R1. V d 5.3:

Ebook Team

www.updatesofts.com

Vit chng trnh sao chp gi tr 55H v o ngn nh RAM ti a ch 40H n 44H s dng: a) Ch nh a ch trc tip b) Ch nh a ch gin tip thanh ghi khng dng vng lp c) Ch b c dng vng lp Li gii:
MOV MOV MOV MOV MOV MOV b) MOV MOV MOV INC MOV INC MOV INC MOV MOV MOV MOV MOV MOV MOV INC DJNZ A, #55H 40H, A 41H, A 42H, A 43H, A 44H, A A, # 55H R0, #40H @R0, A R0 @R0, A R0 @R0,A R0 @R0, A @R0, A @R0, A A, # 55H R0, #40H R2, #05 @R0, A R2, AGAIN ; Np A gi tr 55H ; Sao chp A v o ngn nh RAM ; Sao chp A v o ngn nh RAM ; Sao chp A v o ngn nh RAM ; Sao chp A v o ngn nh RAM ; Sao chp A v o ngn nh RAM 40H 41H 42H 43H 44H

; Np v o A gi tr 55H ; Np con tr R0 = 40 H ; Sao chp A v o v tr ngn nh RAM do R0 ch n ; Tng con tr. By g R0 = 41H ; Sao chp A v o v tr ngn nh RAM do R0 ch ; Tng con tr. By gi R0 = 42H ; Sao chp Av o v tr ngn nh RAM do R0 ch ; Tng con tr. By gi R0 = 43H ; Sao chp A v o v tr ngn nh RAM do R0 ch ;Tng con tr. By g R0 = 44H ; Np v o A gi tr 55H ; Np con tr a ch ngn nh RAM R0 = 40H ; Np b m R2 = 5 ; Sao chp A v o v tr ngn nh RAM do Ro chi n ; Tng con tr Ro ; Lp li cho n khi b m = 0.

c)

AGAIN:

5.2.5 u im ca ch nh a ch gin tip thanh ghi. Mt trong nhng u im ca ch nh a ch gin tip thanh ghi l n l m cho vic truy cp d liu nng ng hn so vi ch nh a ch trc tip. V d 5.3 trnh b y trng hp sao chp gi tr 55H v o cc v tr ngn nh ca RAM t 40H n 44H . Lu rng li gii b) c hai lnh c lp li vi mt s ln. Ta c th to ra vng lp vi hai lnh n y nh li gii c). Li gii c) l hiu qu nht v ch c th khi s dng ch nh a ch gin tip qua thanh ghi. Vng lp l khng th trong ch nh a ch trc tip. y l s khc nhau ch yu gia nh a ch trc tip v gin tip. V d 5.4: H y vit chng trnh xo 16 v tr ngn nh RAM bt u ti a ch 60H. Li gii:
CLR MOV MOV A R1, #60H R7, #16H ; Xo A=0 ; Np con tr. R1= 60H ;Np b m, R7 = 1 6 (10 H dng hex)

Ebook Team
AGAIN: MOV INC DJNZ @R1, A R1 R7, AGAiN

www.updatesofts.com
; Xo v tr ngn nh RAM do R1 ch n ; Tng R1 ; Lp li cho n khi b m = 0

Mt v d v cch s dng c R0 v R1 trong ch nh a ch gin tip thanh ghi khi truyn khi c cho trong v d 5.5. V d 5.5: H y vit chng trnh sao chp mt khi 10 byte d liu t v tr ngn nh RAM bt u t 35H v o cc v tr ngn nh RAM bt u t 60H Li gii:
MOV R0, # 35H MOV R1, #60H MOV R3, #10 BACK: MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ R3, BACK ; Con tr ngun ; Con tr ch ; B m ; Ly 1byte t ngun ; Sao chp n n ch ; Tng con tr ngun ; Tng con tr ch ; Lp li cho n khi sao chp ht 10 byte

5.2.6 Hn ch ca ch nh a ch gin tip thanh ghi trong 8051. Nh ni phn trc rng R0 v R1 l cc thanh ghi duy nht c th c dng l m cc con tr trong ch nh a ch gin tip thanh ghi. V R0 v R1 l cc thanh ghi 8 bit, nn vic s dng ca chng b hn ch vic truy cp mi thng tin trong cc ngn nh RAM bn trong (cc ngn nh t 30H n 7FH v cc thanh ghi SFR). Tuy nhin, nhiu khi ta cn truy cp d liu c ct trong RAM ngo i hoc trong khng gian m lnh ca ROM trn chip. Hoc l truy cp b nh RAM ngo i hoc ROM trn chp th ta cn s dng thanh ghi 16 bit l DPTR. 5.2.7 Ch nh a ch theo ch s v truy cp b nh ROM trn chp. Ch nh a ch theo ch s c s dng rng r i trongvic truy cp cc phn t d liu ca bng trong khng gian ROM chng trnh ca 8051. Lnh c dng cho mc ch n y l Move A, @ A + DPTR. Thanh ghi 16 bit DPTR l thanh ghi A c dng to ra a ch ca phn t d liu c lu ct trong ROM trn chp. Do cc phn t d liu c ct trong khng gian m (chng trnh) ca ROM trn chip ca 8051, n phi dng lnh Move thay cho lnh Mov (ch C cui lnh l ch m lnh Code). Trong lnh n y th ni dung ca A c b xung v o thanh ghi 16 bit DPTR to ra a ch 16 bit ca d liu cn thit. Xt v d 5.6. V d 5.6: Gi s t VSA c lu trong ROM c a ch bt u t 200H v chng trnh c ghi v o ROM bt u t a ch 0. H y phn tch cch chng trnh hot ng v h y pht biu xem t VSA sau chng trnh n y c ct v o u? Li gii:
ORG MOV CLA MOVC MOV 0000H DPTR, #200H A A, @A + DPTR R0, A ; Bt u t ROM ti a ch 00H ; a ch bng trnh b y DPTR = 200H ; Xo thanh ghi A (A = 0) ; Ly k t t khng gian nh chng trnh ; Ct n v o trong R0

Ebook Team

www.updatesofts.com

INC DPTR ; DPTR = 201, ch n k t k tip CLR A ; Xo thanh ghi A MOVC A, @A + DPTR ; Ly k t k tip MOV R1, A ; Ct n v o trong R1 INC DPTR ; DPTR = 202 con tr ch n k t sau CLA A ; Xo thanh ghi A MOVC A, @A + DPTR ; Nhn k t k tip MOV R2, A ; Ct n v o R2 HERE: SJMP HERE ; Dng li y. ; D liu c t trong khng gian m lnh ti a ch 200H ORG 200H MYDATA: DB VSA END ; Kt thc chng trnh

trong chng trnh ni trn th cc v tr ngn nh ROM chng trnh 200H - 2002H c cc ni dung sau: 200 = (U); 201= (S) v 202 = (A). Chng ta bt u vi DPTR = 200H v A = 0.Lnh MOVC A, @ A + DPTR chuyn ni dung ca v tr nh 200H trong ROM (200H + 0 = 200H) v o A. Thanh ghi A cha gi tr 55H l gi tr m ASC ca k t U. k t n y c ct v o R0. K , DPTR c tng ln to th nh DPTR = 201H. A li c xo v 0 ly ni dung ca v tr nh k tip trong ROM l 201H cha k t S. Sau khi chng trnh n y chy ta c R0 = 55H, R1 = 53H v R2 = 41H l cc m ASCII ca cc k t U, S v A. V d 5.7: Gi s khng gian ROM bt u t a ch 250H c cha America, h y vit chng trnh truyn cc byte v o cc v tr ngn nh RAM bt u t a ch 40H. Li gii
; (a) Phng php n y s dng mt b m ORG 000 MOV DPTR, # MYDATA ; Np con tr ROM MOV R0, #40H ; Np con tr RAM MOV R2, #7 ; Np b m BACK: CLR A ; Xo thanh ghi A MOVC A, @A + DPTR ;Chuyn d liu t khong gian m MOV R0, A ;Ct n v o ngn nh RAM INC DPTR ; Tng con tr ROM INC R0 ; Tng con tr RAM DJNZ R2, BACK ; Lp li cho nkhi b m = 0 HERE: SJMP HERE ;-------------- -- khng gian m ca ROM trn chp dng ct d liu ORG 250H MYDATA: DB END AMER1CA

;(b) phng php n y s dng k t null kt thc chui ORG MOV MOV CLR 000 DPTR, #MYDATA R0, #40 A S ; Np con tr ROM ; Np con tr RAM ; Xo thanh ghi A(A=0)

BACK:

Ebook Team

www.updatesofts.com

MOVC A, @A + DPTR ; Chuyn d liu t khng gian m JZ HERE ; Thot ra nu c k t Null MOV DPTR, #MYDATA ; Ct n v o ngdn nh ca RAM INC @R0, A ; Tng con tr ROM INC R0 ; Tng con tr RAM SJM BACK ; Lp li HERE: SJMP HERE ;------------------ khng gian m ca ROM trn chp dng ct d liu ORG 250H MYADTA: DB AMER1CA, 0 ; K t Null kt thc chui END

Lu n cch ta s dng lnh JZ pht hin k t NOLL khi kt thc chui 5.2.8 Bng xp xp v s dng ch nh a ch theo ch s. Bng xp x l khi nim c s dng rt rng r i trong lp trnh cc b vi x l. N cho php truy cp cc phn t ca mt bng thng xuyn c s dng vi thao tc cc tiu. Nh mt v d, h y gi thit rng i vi mt ng dng nht nh ta cn x2 gi tr trong phm vi 0 n 9. Ta c th s dng mt bng xp xp thay cho vic tnh ton n. iu n y c ch ra trong v d 5.8. V d 5.8 H y vit mt chng trnh ly x gi tr cng P1 v gi gi tr x2 ti cng P2 lin tc. Li gii:
ORG MOV MOV MOV MOV MOVC MOV SJMP ORG XSQR - TABLE: DB END 000 DPTR, #300 H A, #0FFH P1, A A, P1 A, @A + DPTR P2, A BACK 300H 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ; Np a ch bng xp xlps ; Np A gi tr FFH ; t cng P1 l u v o ; Ly gi tr X t P1 ; Ly gi tr X t bng XSDQ-TABLE ; Xut n ra cng P2 ; Lp li

BACK:

Lu bng lnh u tin c th thay bng MOV DPTR, #XSQR - TABLE. V d 5.9: Tr li cc cu hi sau cho v d 5.8. a) H y ch ra ni dung cc v tr 300 - 309H ca ROM b) Ti v tr n o ca ROM c gi tr 6 v gi tr b o nhiu c) Gi s P1 c gi tr l 9 th gi tr P2 l bao nhiu ( dng nh phn)? Li gii: a) Cc gi tr trong cc ngn nh 300H - 309H ca ROM l : 300 = (00) 301 = (01) 302 = (04) 303 = (09) 304 = (10) 4 4 = 16 = 10 in hex 305 = (19) 5 5 = 25 = 19 in hex 306 = (24) 6 6 = 36 = 24H 307 = (31) 308 = (40) 309 = (51)

Ebook Team

www.updatesofts.com

b) v tr cha gi tr 306H v gi tr l 24H c) 01010001B l gi tr nh phn ca 51H v 81 (92 = 81) Ngo i vic s dng DPTR truy cp khng gian b nh ROM chng trnh th n cn c th c s dng truy cp b nh ngo i ni vi 8051 (chng 14). Mt thanh ghi khc na c dng trong ch nh a ch theo ch s l b m chng trnh (AppendixA). Trong nhiu v d trn y th lnh MOV c s dng m bo nh r r ng, mc d ta c th s dng bt k lnh n o khc chng n o n h tr cho ch nh a ch. V d lnh ADD A, @R0 s cng ni dung ngn nh cho RO ch n v o ni dung ca thanh ghi A.

Ebook Team

www.updatesofts.com

chng 6 Cc lnh s hc v cc chng trnh


6.1 Php cng v tr khng du. Cc s khng du c nh ngha nh nhng d liu m tt c mi bit ca chng u c dng biu din d liu v kh c bit d nh cho du m hoc dng. iu n y c ngha l ton hng c th nm gia 00 v FFH (0 n 255 h thp phn) i vi d liu 8 bit. 6.1.1 Php cng cc s khng du. Trong 8051 cng cc s vi nhau th thanh ghi tng (A) phi c dng n. Dng lnh ADD l : ADD A, ngun; A = A + ngun Lnh ADD c dng cng hai ton hng. Ton hng ch lun l thanh ghi A trong khi ton hng ngun c th l mt thanh ghi d liu trc tip hoc l trong b nh. H y nh rng cc php ton s hc t b nh n b nh khng bao gi c php trong hp ng. Lnh n y c th thay i mt trong cc bit AF, CF hoc PF ca thanh ghi c ph thuc v o cc ton hng lin quan. Tc ng ca lnh ADD ln c tr n s c trnh b y mc 6.3 v n ch yu c s dng trong cc php ton vi s c du. Xt v d 6.1 di y: V d 6.1: H y biu din xem c lnh di y tc ng n thanh ghi c nh th n o?
MOV MOV A, # 0F5H A, # 0BH ; A = F5H ; A = F5 + 0B = 00

Li gii:
F5H + 0BH 100H + 1111 0000 0000 0101 1011 0000

Sau php cng, thanh ghi A (ch) cha 00 v cc c s nh sau: CY = 1 v c php nh t D7 PF = 1 v s cc s 1 l 0 (mt s chn) c PF c t ln 1. AC = 1 v c php nh t D3 sang D4 6.1.1.1 Php cng cc byte ring r. chng 2 trnh b y mt php cng 5 byte d liu. Tng s c ct theo ch nh hn FFH l gi tr cc i mt thanh ghi 8 bit c th c gi. tnh tng s ca mt s bt k cc ton hng th c nh phi c kim tra sau mi ln cng mt ton hng. V d 6.2 dng R7 tch lu s ln nh mi khi cc ton hng c cng v o A. V d 6.2: Gi s cc ngn nh 40 - 44 ca RAM c gi tr sau: 40 = (7D); 41 = (EB); 42 = (C5); 43 = (5B) v 44 = (30). H y vit mt chng trnh tnh tng ca cc gi tr trn. Cui chng trnh gi tr thanh ghi A cha byte thp v R7 cha byte cao (cc gi tr trn c cho dng Hex).

Ebook Team
Li gii:
MOV MOV CLR MOV ADD JNC INC INC DJNZ R0, #40H R2, #5 A R7, A A, @R0 NEXT R7 R0 R2, AGAIN

www.updatesofts.com

AGAIN: NEXT:

; Np con tr ; Np b m ; Xo thanh ghi A ; Xo thanh ghi R7 ; Cng byte con tr ch n theo R0 ; Nu CY = 0 khng tch lu c nh ; Bm theo s ln nh ; Tng con tr ; Lp li cho n khi R0 = 0

Phn tch v d 6.2: Ba ln lp li ca vng lp c ch ra di y. Phn d theo chng trnh d nh cho ngi c t thc hin. Trong ln lp li u tin ca vng lp th 7DH c cng v o A vi CY = 0 v R7 = 00 v b m R2 = 04. Trong ln lp li th hai ca vng lp th EBH c cng v o A v kt qu trong A l 68H vi CY = 1. V c nh xut hin, R7 c tng ln. Lc n y b m R2 = 03. Trong ln lp li th ba th C5H c cng v o A nn A = 2DH v c nh li bn. Do vy R7 li c tng ln v b m R2 = 02. phn cui khi vng lp kt thc, tng s c gi bi thanh ghi A v R7, trong A gi byte thp v R7 cha byte cao. 6.1.1.2 Php cng v nh v php cng cc s 16 bit. Khi cng hai ton hng d liu 16 bit th ta cn phi quan tm n php truyn ca c nh t byte thp n byte cao. Lnh ADDC (cng c nh) c s dng trong nhng trng hp nh vy. V d, xt php cng hai s sau: 3CE7H + 3B8DH.
+ 3C E7 3B 8D 78 74 79

Khi byte th nht c cng (E7 + 8D = 74, CY = 1). C nh c truyn ln byte cao to ra kt qu 3C + 3B + 1 = 78. Di y l chng trnh thc hin cc bc trn trong 8051. V d 6.3: H y vit chng trnh cng hai s 16 bit. Cc s l 3CE7H v 3B8DH. Ct tng s v o R7v R6 trong R6 cha byte thp. Li gii:
CLR MOV ADD MOV MOV ADDC A, #0E7H A, #8DH R6, A A, #3CH A, #3BG ; Xo c CY = 0 ; Np byte thp v o A A = E7H ; Cng byte thp v o A a = 74H v CY = 1 ; Lu byte thp ca tng v o R6 ; Np byte cao v o A A = 3CH ; Cng byte cao c nh v o A A = 78H ;

Ebook Team
MOV R7, A

www.updatesofts.com
; Lu byte cao ca tng v o R7

6.1.1.3 H thng s BCD (s thp phn m ho theo nh phn). S BCD l s thp phn c m ho theo nh phn 9 m khng dng s thp phn hay s thp lc (Hex). Biu din nh phn ca cc s t 0 n 9 c gi l BCD (xem hnh 6.1). Trong t i liu my tnh ta thng gp hai khi nim i vi cc s BCD l : BCD c ng gi v BCD khng ng gi.
Digit 0 1 2 3 4 BCD 0000 0001 0010 0011 0100 Digit 5 6 7 8 9 BCD 0101 0110 0111 1000 1001

Hnh 6.1: M BCD. a- BCD khng ng gi. Trong s BCD khng ng gi th 4 bt thp ca s biu din s BCD cn 4 bit cn li l s 9. V d 00001001 v 0000 0101 l nhng s BCD khng ng gi ca s 9 v s 5. S BCD khng ng gi i hi mt byte b nh hay mt thanh ghi 8 bit cha n. b- BCD ng gi. Trong s BCD ng gi th mt byte c 2 s BCD trong n mt trong 4 bit thp v mt trong 4 bit cao. V d 0101 1001 l s BCD ng gi cho 59H. Ch mt 1 byte b nh lu cc ton hng BCD. y l l do dng s BCD ng gi v n hiu qu gp i trong lu gi liu. C mt vn khi cng cc s BCD m cn phi c khc phc. Vn l sau khi cng cc s BCD ng gi th kt qu khng cn l s BCD. V d:
MOV ADD A, #17H A, #28H

Cng hai s n y cho kt qu l 0011 1111B (3FH) khng cn l s BCD! Mt s BCD ch nm trong gii 0000 n 1001 (t s 0 n s 9). Hay ni cch khc php cng hai s BCD phi cho kt qu l s BCD. Kt qu trn ng l phi l 17 + 28 = 45 (0100 0101). gii quyt vn n y lp trnh vin phi cng 6 (0110) v o s thp 3F + 06 = 45H. Vn tng t cng c th xy ra trong s cao (v d khi cng hai s 52H + 87H = D94). gii quyt vn n y ta li phi cng 6 v o s cao (D9H + 60H = 139). Vn n y ph bin n mc mi b x l nh 8051 u c mt lnh s l vn n y. Trong 8051 l lnh DA A gii quyt vn cng cc s BCD. 6.1.1.4 Lnh DA. Lnh DA (Decimal Adjust for addition iu chnh thp phn i vi php cng) trong 8051 dng hiu chnh s sai lch ni trn y lin quan n php cng cc s BCD. Lnh gi DA. Lnh DA s cng 6 v o 4 bit thp hoc 4 bit cao nu cn. Cn bnh thng n nguyn kt qu tm c. V d sau s l m r cc im n y.

Ebook Team
MOV MOV ADD DA A, #47H B, #25H A, B A

www.updatesofts.com
; A = 47H l ton hng BCD u tin ; B = 25H l ton hng BCD th hai ; Cng cc s hex (nh phn) A = 6CH ; iu chnh cho php cng BCD (A = 72H)

Sau khi chng trnh c thc hin thanh ghi A s cha 72h (47 + 25 = 72). Lnh DA ch l m vic vi thanh ghi A. Hay ni cch khc trong thanh ghi ngun c th l mt ton hng ca ch nh a ch bt k th ch phi l thanh ghi A DA c th l m vic c. Cng cn phi nhn mnh rng lnh DA phi c s dng sau php cng cc ton hng BCD v cc ton hng BCD khng bao gi c th c s ln hn 9. Ni cch khc l khng cho php c cc s A - F. iu quan trng cng phi lu l DA ch l m vic sau php cng ADD, n s khng bao gi l m vic theo lnh tng INC. Tm tt v hot ng ca lnh DA. Hot ng sau lnh ADD hoc ADDC. 1. Nu 4 bit thp ln hn 9 hoc nu AC = 1 th n cng 0110 v o 4 bt thp. 2. Nu 4 bit cao ln hn 9 hoc c CY = 1 th n cng 0110 v o 4 bit cao. Trong thc t th c AC ch dng phc v cho php cng cc s BCD v hiu chnh n. V d, cng 29H v 18H s c kt qu l 41H sai vi thc t khi cc s BCD v sa li th lnh DA s cng 6 v o 4 bit thp c kt qu l ng (v AC = 1) dng BCD.
+ + 29H 18H 41H 6 47H + + 0100 0010 0001 0100 1001 1000 0001 0110 0111

AC = 1

V d 6.4: Gi s 5 d liu BCD c lu trong RAM ti a ch bt u t 40H nh sau: 40 = (71), 41 = (11), 42 = (65), 43 = (59) v 44 = (37). H y vit chng trnh tnh tng ca tt c 5 s trn v kt qu phi l dng BCD. Li gii:
MOV MOV CLR MOV ADD DA JNC JNC INC DJNZ R0, #40H R2, #5 A R7, A A, @R0 A NEXT R7 R0 R2, AGAIN ; Np con tr ; Np b m ; Xo thanh ghi A ; Xo thanhg ghi R7 ; Cng byte con tr ch bi R0 ; iu chnh v dng BCD ng ; Nu CY = 0 khng tch lu c nh ; Tng R7 bm theo s ln nh ; Tng R0 dch con tr ln nh k tip ; Lp li cho n khi R2 = 0

AGAIN:

NEXT:

6.1.2 Php tr cc s khng du. C php: SUBB A, ngun; A = A - ngun - CY. Trong rt nhiu cc b x l c hai lnh khc nhau cho php tr l SUB v SUBB (tr c mn - Sub, tract with Borrow). Trong 8051 ta ch c mt lnh SUBB

Ebook Team

www.updatesofts.com

duy nht. thc hin SUB t SUBB, do vy c hai trng hp cho lnh SUBB l : vi CY = 0 v vi CY = 1. Lu rng y ta dng c CY mn. 6.1.2.1 Lnh SUBB vi CY = 0. Trong php tr th cc b vi x l 8051 (thc t l tt c mi CPU hin i) u s dng phng php b 2. Mc d mi CPU u c mch cng, n c th qu cng knh (v cn nhiu bng bn dn) thit k mch tr ring bit. V ly do m 8051 s dng mch cng thc hin lnh tr. Gi s 8051 s dng mch cng thc hin lnh tr v rng CY - 0 trc khi thc hin lnh th ta c th tm tt cc bc m phn cng CPU thc hin lnh SUBB i vi cc s khng du nh sau: 1. Thc hin ly b 2 ca s tr (ton hng ngun) 2. Cng n v o s b tr (A) 3. o nh y l 3 bc thc hin bi phn cng bn trong ca CPU 8051 i vi mi lnh tr SUBB bt k n ngun ca cc ton hng c cp c c h tr ch nh a ch hay khng? Sau ba bc n y th kt qu c c v cc c c bt. V d 6.5 minh ho 3 bc trn y: V d 6.5: Trnh b y cc bc lin quan di y:
CLR MOV MOV SUBB C A, #3FH R3, #23H A, R3 ; To CY = 0 ; Np 3FH v o A (A = 3FH) ; Np 23H v o R3 (R3 = 23H) ; Tr A cho R3 t kt qu v o A

Li gii:
A = 3F R3 = 23 1C 0011 0010 1111 0011 + 0011 1101 1 0001 1111 1101 b 2 ca R3 (bc 1) 1100 - 1C (bc 2)

0 CF = 0 (bc 3) Cc c s c thit lp nh sau: CY = 0, AC = 0 v lp trnh vin phi c nhn n c nh xc nh xem kt qu l m hay dng. Nu sau khi thc hin SUBB m CY = 0 th kt qu l dng. Nu CY = 1 th kt qu m v ch c gi tr b 2 ca kt qu. Thng thng kt qu c dng b 2 nhng cc lnh b CPL v tng INC c th c s dng thay i n. Lnh CPL thc hin b 1 ca ton hng sau ton hng c tng ln 1 (INC) tr th nh dng b 2. Xem v d 6.6. V d 6.6: Phn tch chng trnh sau:
CLR MOV SUBB JNC CPL INC MOV C A, #4CH A, #6EH NEXT A A R1, A ; Np A gi tr 4CH (A = 4CH) ; Tr A cho 6EH ; Nu CY = 0 nhy n ch NEXT ; Nu CY = 1 thc hin b 1 ; Tng 1 c b 2 ; Lu A v o R1

NEXT:

Ebook Team
Li gii: Cc bc thc hin lnh "SUBB A, 6EH" nh sau:
4C 6E - 22 0100 0110 1100 1110 ly b 2 0 0100 1001 1101

www.updatesofts.com

1100 0010 (bc 1) 1110 = (bc 2) o CY = 1(bc 3)

C CY = 1, kt qu m dng b 2. 6.1.2.2 Lnh SUBB khi CY = 1. Lnh n y c dng i vi cc s nhiu byte v s theo di vic mn ca ton hng thp. Nu CY = 1 trc khi xem thc hin SUBB th n cng tr 1 t kt qu. Xem v d 6.7. V d 6.7: Phn tch chng trnh sau:
CLR MOV SUBB MOV MOV SUBB MOV C A, #62 A, #96H R7, A A, #27H A, #12H R6, A ; CY = 0 ; A = 62H ; 62H - 96H = CCH with CY = 1 ; Save the result ; A = 27H ; 27H - 12H - 1 = 14H ; Save the result

Li gii: Sau khi SUBB th A = 62H - 96H = CCH v c nh c lp bo rng c mn. V CY = 1 nn khi SUBB c thc hin ln th 2 th a = 27H - 12H - 1 = 14H. Do vy, ta c 2762H - 1296H = 14CCH. 6.2 Nhn v chia cc s khng du. Khi nhn v chia hai s trong 8051 cn phi s dng hai thanh ghi A v B v cc lnh nhn v chia ch hot ng vi nhng thanh ghi n y. 6.2.1 Nhn hai s khng du. B vi iu khin ch h tr php nhn byte vi byte. Cc byte c gi thit l d liu khng du. Cu trc lnh nh sau: MOV AB ; L php nhn A B v kt qu 16 bit c t trong A v B. Khi nhn byte vi byte th mt trong cc ton hng phi trong thanh ghi A v ton hng th hai phi trong thanh ghi B. Sau khi nhn kt qu trong cc thanh ghi A v B. Phn tip thp trong A, cn phn cao trong B. V d di y trnh b y php nhn 25H vi 65H. Kt qu l d liu 16 bit c t trong A v B.
MOV MOV MUL A, #25H B, 65H AB ; Np v o A gi tr 25H ; Np v o B gi tr 65H ; 25H*65H = E99 vi B = 0EH v A = 99H

Bng 6.1: Tm tt php nhn hai s khng du (MULAB)


Nhn Byte*Byte Ton hng 1 A Ton hng 2 B Kt qu A = byte thp, B = byte cao

Ebook Team

www.updatesofts.com

6.2.2 Chia hai s khng du. 8051 cng ch h tr php chia hai s khng du byte cho byte vi c php: DIV AB ; Chia A cho B Khi chia mt byte cho mt byte th t s (s b chia) phi trong thanh ghi A v mu s (s chia) phi trong thanh ghi B. Sau khi lnh chia DIV c thc hin th thng s c t trong A, cn s d c t trong B. Xt v d di y:
MOV MOV DIV A, #95 B, #10 AB ; Np s b chia v o A = 95 ; Np s chia v o B = 10 ; A = 09 (thng s); B = 05 (s d)

Lu cc im sau khi thc hin DIV AB Lnh n y lun bt CY = 0 v OV = 0 nu t s khng phi l s 0 Nu t s l s 0 (B = 0) th OV =1 bo li v CY = 0. Thc t chun trong tt c mi b vi x l khi chia mt s cho 0 l bng cch n o bo c kt qu khng xc nh. Trong 8051 th c OV c thit lp ln 1. Bng 6.2: Tm tt php chia khng du (DIV AB).
Php chia Byte cho Byte T s A Mu s B Thng s A S d B

6.2.3 Mt ng dng cho cc lnh chia. C nhng thi im khi mt b ADC c ni ti mt cng v ADC biu din mt s d nhit hay p sut. B ADC cp d liu 8 bit dng Hex trong di 00 - FFH. D liu Hex n y phi c chuyn i v dng thp phn. Chng ta thc hin chia lp nhiu ln cho 10 v lu s d v o nh v d 6.8. V d 6.8: a- Vit mt chng trnh nhn d liu dng Hex trong phm vi 00 - FFH t cng 1 v chuyn i n v dng thp phn. Lu cc s v o trong cc thanh ghi R7, R6 v R5 trong s c ngha nh nht c ct trong R7. b- Phn tch chng trnh vi gi thit P1 c gi tr FDH cho d liu. Li gii:
a) MOV MOV MOV MOV DIV MOV MOV DIV MOV MOV A, #0FFH P1, A A, P1 B, #10 AB R7, B B, #10 AB R6, B R5, A ; To P1 l cng u v o ; c d liu t P1 ; B = 0A Hex (10 thp phn) ; Chia cho 10 ; Ct s thp ; ; Chia 10 ln na ; Ct s tip theo ; Ct s cui cng

b) chuyn i s nh phn hay Hex v s thp phn ta thc hin chia lp cho 10 lin tc cho n khi thng s nh hn 10. Sau mi ln chia s d c lu ct.

Ebook Team

www.updatesofts.com

Trong trng hp mt s nh phn 8 bit nh FDH chng hn ta c 253 s thp phn nh sau (tt c trong dng Hex)
FD/0A 19/0A Thng s 19 2 S d 3 5 (S thp - cui) (S gia)

(S u)

Do vy, ta c FDH = 253. hin th d liu n y th n phi c chuyn i v ASCII m s c m t chng sau. 6.3 Cc khi nim v s c du v cc php tnh s hc. Tt c mi d liu t trc n gi u l cc s khng du, c ngha l to n b ton hng 8 bit u c dng cho b ln. C nhiu ng dng yu cu d liu c du, phn n y s b n v nhng lnh lin quan n cc s c du. 6.3.1 Khi nim v cc s c du trong my tnh. Trong cuc sng h ng ng y cc s c dng c th l s m hoc dng. V d 5 di 00C c biu din l -50C v 20 trn 00C c biu din l +200C. Cc my tnh cng phi c kh nng p ng ph hp vi cc s y. l m c iu y cc nh khoa hc my tnh pht minh ra s xp xp biu din cc s m c du v s dng c du nh sau: Bit cao nht MSB c d nh cho bit du (+) hoc (-), cn cc bit cn li c dng biu din ln. Du c biu din bi 0 i vi cc s dng v mt s i vi cc s m (-). Biu din ca mt byte c du c trnh b y trn hnh 6.2.
D7 Sign D6 D5 D4 D3 D2 D1 D0

Magnitu

Hnh 6.2: Cc ton hng 8 bit c du. a- Cc ton hng 8 bit c du: Trong cc ton hng A byte c du th bit cao nht MSB l D7 c dng biu din du, cn 7 bit cn li t D6 - D0 dng biu din ln ca s . Nu D7 = 0 th l ton hng dng v nu D7 = 1 th n l ton hng m. b- Cc s dng: Di ca cc s dng c th c biu din theo dng cho trn hnh 6.2 l t 0 n +127 th phi s dng ton hng 16 bit. V 8051 khng h tr d liu 16 bit nn ta khng b n lun n. c- Cc s m: i vi cc s m th D7 = 1, tuy nhin ln c biu din dng s b 2 ca n. Mc d hp ng thc hin vic chuyn i song iu quan trng l hiu vic chuyn i din ra nh th n o. chuyn i v dng biu din s m (b 2) th tin h nh theo cc bc sau: 1. Vit ln ca s dng nh phn 8 bit (khng du). 2. o ngc tt c cc bit 3. Cng 1 v o n. V d 6.9: H y trnh b y cch 8051 biu din s - 5.

Ebook Team
Li gii: H y quan st cc bc sau:
0000 1111 1111 0101 1010 1011 Biu din s 5 dng 8 bit nh phn o cc bit Cng (th nh s FB dng Hex)

www.updatesofts.com

Do vy, s FBH l biu din s c du dng b 2 ca s - 5. V d 6.10: Trnh b y cch 8051 biu din - 34H. Li gii: H y quan st cc bc sau:
0011 1100 1100 0200 1011 1100 S 34 c cho dng nh phn o cc bit Cng 1 (th nh s CC dng Hex)

Vy s CCH l biu din dng b 2 c du ca - 34H. V d 6.11: Trnh b y cch 8051 biu din - 128: Li gii: Quan st cc bc sau:
1000 0111 1000 0000 1111 0000 S 128 dng nh phn 28 bit o cc bit Cng 1 (tr th nh s 80 dng Hex)

Vy - 128 = 80H l biu din s c du dng b 2 ca - 128. T cc v d trn y ta thy r r ng rng di ca cc s m c du 8 bit l - 1 n - 128. Di y l lit k cc s c du 8 bit:
S thp phn -128 -127 -126 ... -2 -1 0 +1 +2 ... -127 S nh phn 1000 0000 1000 0001 1000 0010 ................. 1111 1110 1111 1111 0000 0000 0000 0001 0000 0010 .................. 0111 1111 S Hex 80 81 82 ... FE FF 00 01 02 ... FE

6.3.2 Vn tr n trong cc php ton vi s c du. Khi s dng cc s c du xut hin mt vn rt nghim trng m phi c s l. l vn tr n, 8051 bo c li bng cch thit lp c tr n OV nhng trch nhim ca lp trnh vin l phi cn thn vi kt qu sai. CPU ch hiu 0 v 1 v n l m ng vi vic chuyn i s m, s dng ca con ngi. Vy tr n s l g? Nu kt qu ca mt php ton trn cc s c du m qu ln i vi thanh ghi th xut hin s tr n s v lp trnh vin phi c cnh bo. Xt v d 6.12 di y.

Ebook Team
V d 6.12: Kho st on m sau v phn tch kt qu.
MOV MOV ADD A, # + 96 R1, # + 70 A, R1 ; A = 0110 ; R1 = 0100 ; A = 1010 Sai !!!

www.updatesofts.com

0000 (A = 60H) 0110 (R1 = 46H) 0110 = A6H = - 90

Li gii:
+ + 96 + 70 - 166 0110 0100 1010 0000 0110 0110

v OV = 1

Theo CPU kt qu l -90 v l kt qu sai nn CPU bt c OV = 1 bo tr n s. Trong v d 6.12 th + 96 c cng vi + 70 v kt qu theo CPU l - 90. Ti sao vy? L do l kt qu ca + 96 + 70 = 172 ln hn s m thanh ghi A c th cha c. Cng nh tt c mi thanh ghi 8 bit khc, thanh ghi A ch cha c n s + 127. Cc nh thit k ca PCU to ra c tr n OV phc v ring cho mc ch bo cho lp trnh vin rng kt qu ca php ton s c du l sai. 6.3.3 Khi n o th c tr n OV c thit lp? Trong cc php ton vi s c du 8 bit th c OV c bt ln 1 khi xut hin mt trong hai iu kin sau: 1. C nh t D6 sang D7 nhng khng c nh ra t D7 (c CY = 0) 2. C nh ra t D7 (c CY = 1) nhng khng c nh t D6 sang D7 Hay ni cch khc l c tr n OV c bt ln 1 nu c nh t D6 sang D7 hoc t D7 nhng khng ng thi xy ra c hai. iu n y c ngha l nu c nh c t D6 sang D7 v t D7 ra th c OV = 0. Trong v d 6.12 v ch c nh t D7 ra nn c OV = 1. Trong v d 6.13, v d 6.14 v 6.15 c minh ho thm v s dng c tr n trong cc php s hc vi s c du. V d 6.13: H y quan st on m sau n vai tr ca c OV.
MOV MOV ADD A, # -128 R4, # -2 A, R4 ; A = 1000 ; R4 = 1111 ; A = 0111 0000 (A= 80H) (R4 = FEH) 1110 (A = 7EH = +126, invalid)

Li gii:
- 128 +-2 -130 1000 1111 0111 0000 1110 1110

v OV = 1

Theo CPU th kt qu + 126 l kt qu sai, nn c OV = 1. V d 6.14: H y quan st on m sau v lu c OV.

Ebook Team
MOV MOV ADD A, # -2 R1, # -5 A, R1 ; A = 1111 ; R1 = 1111 ; A = 1111

www.updatesofts.com
1110 (A = FEH) 1011 (R1 = FBH) 1001 (A = F9H = -7, correct, OV = 0)

Li gii:
-2 +-5 - 7 1111 1111 1111 1110 1011 1001

v OV = 0

Theo CPU th kt qu - 7 l ng nn c OV = 0. V d 6.15: Theo di on m sau, ch vai tr ca c OV.


MOV MOV ADD A, # +7 R1, # +18 A, R1 ; A = 0000 ; R1 = 0001 ; A = 1111 0111 (A = 07H) 0010 (R1 = 12H) 1001 (A = 19H = -25, correct, OV = 0)

Li gii:
7 - 18 25 0000 0001 0001 0111 0010 1001

v OV = 0

Theo CPU th kt qu - 25 l ng nn c OV = 0. T cc v d trn y ta c th kt lun rng trng bt k php cng s c du n o, c OV u bo kt qu l ng hay sai. Nu c OV = 1 th kt qu l sai, cn nu OV = 0 th kt qu l ng. Chng ta c th nhn mnh rng, trong php cng cc s khng du ta phi hin th trng thi ca c CY (c nh) v trong php cng cc s c du th c tr n OV phi c theo di bi lp trnh vin. Trong 8051 th cc lnh nh JNC v JC cho php chng trnh r nhnh ngay sau php cng cc s khng du nh phn 6.1. i vi c tr n OV th khng c nh vy. Tuy nhin, iu n y c th t c bng lnh JB PSW.2 hoc JNB PSW.2 v PSW thanh ghi c c th nh a ch theo bit.

Ebook Team

www.updatesofts.com

chng 7 Cc lnh lgc v cc chng trnh


7.1 Cc lnh l-gc v so snh. 7.1.1 Lnh V (AND). C php: ANL ch, ngun; ch = ch V ngun (k bng). Lnh n y s thc hin mt php V l-gc trn hai ton hng ch v ngun v t kt qu v o ch. ch thng l thanh ghi tng (tch lu). Ton hngngun c th l thanh ghi trong b nh hoc gi tr cho sn. H y xem ph lc Appendix A1 bit thm v cc ch nh a ch d nh cho lnh n y. Lnh ANL i vi ton hng theo byte khng c tc ng ln cc c. N thng c dng che (t v 0) nhng bit nht nh ca mt ton hng. Xem v d 7.1. V d: Trnh b y kt qu ca cc lnh sau:
MOV ANL A, #35H A, #0FH ; Gn A = 35H ; Thc hin V l-gc A v 0FH (By gi A = 05)

Li gii:
35H 0FH 05H 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1

35H v 0FH = 05H

7.1.2: Lnh Hoc (OR). C php ORL ch = ch Hoc ngun (k bng) Cc ton hng ch v ngun c Hoc vi nhau v kt qu c t v o ch. Php Hoc c th c dng thit lp nhng bit nht nh ca mt ton hng 1. ch thng l thanh ghi tng, ton hng ngun c th l mt thanh ghi trong b nh hoc gi tr cho sn. H y tham kho ph lc Appendix A bit thm v cc ch nh a ch c h tr bi lnh n y. Lnh ORL i vi cc ton hng nh a ch theo byte s khng c tc ng n bt k c n o. Xem v d 7.2. V d 7.2: Trnh b y kt qu ca on m sau:
MOV MOV A, #04 ; A = 04 A, #68H ; A = 6C

Li gii:
04H 68H 6CH 0000 0100 0110 1000 0110 1100

04 OR 68 = 6CH

7.1.3 Lnh XOR (OR loi tr?). C php: XRL ch, ngun; ch = ch Hoc loi tr ngun (k bng).

Ebook Team

www.updatesofts.com

Lnh n y s thc hin php XOR trn hai ton hng v t kt qu v o ch. ch thng l thanh ghi tng. Ton hng ngun c th l mt thanh ghi trong b nh hoc gi tr cho sn. Xem ph lc Appendix A.1 bit thm v ch nh a ch ca lnh n y. Lnh XRL i vi cc ton hng nh a ch theo byte s khng c tc ng n bt k c n o. Xt v d 7.3 v 7.4. V d 7.3: Trnh b y kt qu ca on m sau:
MOV XRL A, #54H A, #78H

Li gii:
54H 78H 2CH 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1

54H XOR 78H = 2CH

V d 7.4: Lnh XRL c th c dng xo ni dung ca mt thanh ghi bng cch XOR n vi chnh n. Trnh b y lnh XRL A, A xo ni dung ca A nh th n o? gi thit AH = 45H. Li gii:
45H 45H 00 01000101 01000101 00000000

54H XOR 78H = 2CH

Lnh XRL cng c th c dng xem nu hai thanh ghi c gi tr ging nhau khng? Lnh XRL A, R1 s hoc loi tr vi thanh ghi R1 v t kt qu v o A. Nu c hai thanh ghi c cng gi tr th trong A s l 00. Sau c th dng lnh nh JZ thc hin theo kt qu. Xt v d 7.5. V d 7.5: c v kim tra cng P1 xem n c cha gi tr 45H khng? Nu c gi 99H n cng P2, nu khng xo n. Li gii:
MOV MOV MOV MOV XRL JNZ MOV EXIT: ... P2, #00 P1, #0FFH R3, #45H A, P1 A, R3 EXIT P2, #99H ; Xa P2 ; Ly P1 l cng u v o ; R3 = 45H ; c P1 ; Nhy nu A c gi tr khc 0

Trong chng trnh ca v d 7.5 lu vic s dng lnh nhy JNZ. Lnh JNZ v JZ kim tra cc ni dung ch ca thanh ghi tng. Hay ni cch khc l trong 8051khng c c 0.

Ebook Team

www.updatesofts.com

Mt ng dng rng r i khc ca b x l l chn cc bit ca mt ton hng. V d chn 2 bit ca thnh ghi A ta c th s dng m sau. M n y p bit D2 ca thanh ghi A chuyn sang gi tr nghch o, cn cc bit khc khng thay i.
XRL A, #04H ; Ngha hoc loi tr thanh ghi A vi ; Gi tr 0000 0100

7.1.4 Lnh b thanh ghi tng CPL A. Lnh n y b ni dung ca thanh ghi tng A. Php b l php bin i cc s 0 th nh cc s 1 v i cc s 1 sang s 0. y cng cn c gi l php b 1.
MOV CPL A, #55H A ; By gi ni dung ca thanh ghi A l AAH ; V 0101 0101 (55H) 1010 1010 (AAH)

nhn c kt qu b 2 th tt c mi vic ta cn phi l m l cng 1 v o kt qu b 1. Trong 8051 th khng c lnh b 2 n o c. Lu rng trong khi b mt byte th d liu phi trong thanh ghi A. Lnh CPL khng h tr mt ch nh a ch n o c. Xem v d 7.6 di y. V d 7.6: Tm gi tr b 2 ca 85H. Li gii:
MOV MOV ADD A, #85H A A, #1 ; Np 85H v o A (85H = 1000 0101) ; Ly b 1 ca A (kt qu = 0111 1010) ; Cng 1 v o A th nh b 2 A = 0111 1011 (7BH)

V d 7.1.5 Lnh so snh. 8051 c mt lnh cho php so snh. N c c php nh sau: CJNE ch, ngun, a ch tng i. Trong 8051 th php so snh v nhy c kt hp th nh mt lnh c tn l CJNE (so snh v nhy nu kt qu khng bng nhau). Lnh CJNE so snh hai ton hng ngun v ch v nhy n a ch tng i nu hai ton hng khng bng nhau. Ngo i ra n thay i c nh CY bo nu ton hng ch ln hn hay nh hn. iu quan trng cn l cc ton hng vn khng gi nguyn khng thay thay i. V d, sau khi thc hin lnh CJNE A, #67H, NEXT th thanh ghi A vn c gi tr ban u ca n (gi tr trc lnh CJNE). Lnh n y so snh ni dung thanh ghi A vi gi tr 67H v nhy n gi tr ch NEXT ch khi thanh ghi A c gi tr khc 67H. V d 7.7: Xt on m di y sau tr li cu hi: a) N s nhy n NEXT khng? b) Trong A c gi tr bao nhiu sau lnh CJNE?
MOV CJNE ... NEXT: ... A, #55H A, #99H, NEXT

Ebook Team

www.updatesofts.com

Li gii: a) C v 55H v 99H khng bng nhau b) A = 55H y l gi tr trc khi thc hin CJNE. Trong lnh CJNE th ton hng ch c th trong thanh ghi tng hoc trong mt cc thanh ghi Rn. Ton hng ngun c th trong mt thanh ghi, trong b nh hoc gi tr cho sn. H y xem ph lc Appendix A bit thm chi tit v cc ch nh a ch cho lnh n y. Lnh n y ch tc ng c nh CY. C n y c thay i nh ch ra trn bng 7.1. Di y trnh b y php so snh hot ng nh th n o i vi tt c cc iu kin c th:
CJNE ... JNC ... ... R5, #80, NOT-EQUAL NEXT ; Kim tra R5 c gi tr 80? ; R5 = 80 ; Nhy n R5 > 80

NOT-EQUAL: NEXT:

Bng 7.1: Thit k c CY cho lnh CJNE.


Compare Destinatio > Source Destination < Source Carry Flag CY = 0 CY = 1

rng trong lnh CJNE th khng c thanh ghi Rn n o c th c so snh vi gi tr cho sn. Do vy khng cn phi ni n thanh ghi A. Cng cn lu rng c nh CY lun c kim tra xem ln hn hay nh hn, nhng ch khi xc nh l n khng bng nhau. Xt v d 7.8 v 7.9 di y. V d 7.8: H y vit m xc nh xem thanh ghi A c cha gi tr 99H khng? Nu c th h y to R1 = FFH cn nu khng to R1 = 0. Li gii:
MOV CJNE MOV NEXT: ... OVER: ... R1, #0 ; Xo R1 A, #99H ; Nu A khng bng 99H th nhy n NEXT R1, #0FFH ; Nu chng bng nhau, gn R1 = 0FFH ; Nu khng bng nhau, gn R1 = 0

V d 7.9: Gi s P1 l mt cng u v o c ni ti mt cm bin nhit. H y vit chng trnh c nhit v kim tra n i vi gi tr 75. Theo kt qu kim tra h y t gi tr nhit v o cc thanh ghi c ch nh nh sau:
Nu T = 75 Nu T < 75 Nu T > 75 th A = 75 th R1 = T th R2 = T

Li gii:

Ebook Team
MOV MOV CJNE SJMP JNC MOV SJMP MOV ... P1, 0FFH A, P1 A, #75, OVER EXIT NEXT R1, A EXIT R2, A

www.updatesofts.com
; To P1 l m cng u v o ; c cng P1, nhit ; Nhy n OVER nu A 75 ; A = 75 thot ; Nu CY = 0 th A > 75 nhy n NEXT ; Nu CY = 1 th A < 75 lu v o R1 ; V thot ; A > 75 lu n v o R2

OVER: NEXT: EXIT:

Lnh so snh thc s l mt php tr, ngoi tr mt iu l gi tr ca cc ton hng khng thay i. Cc c c thay i tu theo vic thc hin lnh tr SUBB. Cn phi c nhn mnh li rng, trong lnh CJNE cc ton hng khng b tc ng bt k kt qu so snh l nh th n o. Ch c c CY l b tc ng, iu n y b chi phi bi thc t l lnh CJNE s dng php tr bt v xo c CY. V d 7.10: Vit mt chng trnh hin th lin tc cng P1 i vi gi tr 63H. N ch mt hin th khi P1 = 63H. Li gii:
HERE: MOV MOV CJNE P1, #0FFH A, P1 A, #63, HERE ; Chn P1 l m cng u v o ; Ly ni dung ca P1 ; Duy tr hin th tr khi P1 = 63H

V d 7.11: Gi s cc ngn nh ca RAM trong 40H - 44H cha nhit h ng ng y ca 5 ng y nh c ch ra di y. H y tm xem c gi tr n o bng 65 khng? Nu gi tr 65 c trong bng h y t ngn nh ca n v o R4 nu khng th t R4 = 0.
40H = (76); 41H = (79); 42H = (69); 43H = (65); 44H = (64)

Li gii:
MOV MOV MOV MOV CJNE MOV SJMP INC DJNZ R4, #0 R0, #40H R2, #05 A, #65 A, @R0, NEXT R4, R0 EXIT R0 R2, BACK ; Xo R4 = 0 ; Np con tr ; Np b m ; Gn gi tr cn tm v o A ; So snh d liu RAM vi 65 ; Nu l 65, lu a ch v o R4 ; Thot ; Nu khng tng b m ; Tip tc kim tra cho n khi b m bng 0.

BACK: NEXT: EXIT: ...

7.2 Cc lnh quay v o trao i. Trong rt nhiu ng dng cn phi thc hin php quay bit ca mt ton hng. Cc lnh quay 8051 l R1, RR, RLC v RRC c thit k c bit cho mc ch n y. Chng cho php mt chng trnh quay thanh ghi tng sang tri hoc phi. Trong 8051 quay mt byte th ton hng phi trong thanh ghi tng A. C hai kiu quay l : Quay n gin cc bit ca thanh ghi A v quay qua c nh (hay quay c nh).

Ebook Team

www.updatesofts.com

7.2.1 Quay cc bit ca thanh ghi A sang tri hoc phi. a) Quay phi: RR A ; Quay cc bit thanh ghi A sang phi. Trong php quay phi, 8 bit ca thanh ghi tng c quay sang phi mt bit v bit D0 ri t v tr bit thp nht v chuyn sang bit cao nht D7. Xem on m di y.
MOV RR RR RR RR A, #36H A A A A ; A = 0011 0110 ; A = 0001 1011 ; A = 1000 1101 ; A = 1100 0110 ; A = 0110 0011

MSB

LSB

b) Quay tri: C php: RL A ; Quay tri cc bit ca thanh ghi A (hnh v) Trong php quay tri th 8 bit ca thanh ghi A c quay sang tri 1 bit v bit D7 ri khi v tr bit cao nht chuyn sang v tr bit thp nht D0. Xem biu m di y.
MOV RL RL A, #72H A A ; A = 0111 0010 ; A = 1110 0100 ; A = 1100 1001 MSB LSB

Lu rng trong cc lnh RR v RL th khng c c n o b tc ng. 7.2.2 Quay c nh. Trong 8051 cn c 2 knh quay na l quay phi c nh v quay tri c nh. C php: RRC A v RLC A a) Quay phi c nh: RRC A Trong quay phi c nh th cc bit ca thanh ghi A c quay t tri sang phi 1 bit v bit thp nht c a v o c nh CY v sau c CY c a v o v tr bit cao nht. Hay ni cch khc, trong php RRC A th LSB c chuyn v o CY v CY c chuyn v o MSB. Trong thc t th c nh CY tc ng nh l mt bit b phn ca thanh ghi A l m n tr th nh thanh ghi 9 bit.
CLR MOV RRC RRC RCC C A #26H A A A ; make CY = 0 ; A = 0010 0110 ; A = 0001 0011 CY = 0 ; A = 0000 1001 CY = 1 ; A = 1000 0100 CY = 1

MSB

LSB

CY

b) Quay tri c nh (hnh v): RLC A. Trong RLC A th cc bit c dch phi mt bit v y bit MSB v o c nh CY, sau CY c chuyn v o bit LSB. Hay ni cch khc, trong RLC th bit MSB c chuyn v o CY v CY c chuyn v o LSB. H y xem on m sau.
SETB MOV RRC RRC C A #15H A A ; Make CY = 1 ; A = 0001 0101 ; A = 0101 1011 CY = 0 ; A = 0101 0110 CY = 0

CY

MSB

LSB

Ebook Team
RCC RCC A A ; A = 1010 1100 CY = 0 ; A = 1000 1000 CY = 1

www.updatesofts.com

7.2.3 Lnh trao i thanh ghi A: SWAP A Mt lnh hu ch khc na l lnh trao i SWAP. N ch hot ng trn thanh ghi A, n trao i na phn cao ca byte v na phn thp ca byte vi nhau. Hay ni cch khc 4 bit cao c chuyn th nh 4 bit thp v 4 bit thp th nh 4 bit cao.
before: D7 - D4 D3 - D0 after: D3 - D0 D7 - D0

before:

0111

0010

after:

0010

0111

V d 7.12: a) H y tm ni dung ca thanh ghi A on m sau. b) Trong trng hp khng c lnh SWAP th cn phi l m nh th n o trao i nhng bit n y? H y vit mt m chng trnh n gin v qu trnh . Li gii:
a) MOV SWAP b) MOV RL RL RL A, #72H ; A = 0111 0010 A ; A = 1110 0100 A ; A = 1100 1001 A ; A = 0010 0111 A, #72H ; A = 72H A ; A = 27H

V d 7.13: Vit mt chng trnh tm s cc s 1 trong mt byte cho. Li gii:


MOV MOV MOV RLC JNC INC DJNZ R1, #0 R7, #8 A, #97H A NEXT R1 R7, AGAIN ; Chn R1 gi s cc s 1 ; t b m = 8 quay 8 ln ; Tim cc s 1 trong byte 97H ; Quay tri c nh mt ln ; Kim tra c CY ; Nu CY = 1 th cng 1 v o b m ; Lp li qu trnh 8 ln

AGAIN: NEXT:

truyn 1 byte d liu ni tip th d liu c th c chuyn i t song song sang ni tip bng cc lnh quay nh sau:
RRC MOV RRC A P1.3, C A ; Bt th nht a v o c CY ; Xut CY nh mt bit d liu ; Bit th hai a v o CY

Ebook Team
MOV RRC MOV ... P1.3, C A P1.3, C ; Xut CY ra nh mt bit d liu ; ;

www.updatesofts.com

on m trn y l mt phng php c s dng rng r i trong truyn d liu ti cc b nh ni tip nh cc EEPROM ni tip. 7.3 Cc chng trnh ng dng ca m BCD v ASCII. Cc s m BCD c trnh chng 6. Nh ni rng trong rt nhiu b vi iu khin mi u c mt ng h thi gian thc RTC (Real Time Clock) gi cho thi gian v c lch cho c khi b tt ngun. Cc b vi iu khin n y cung cp thi gian v lch di dng BCD. Tuy nhin, hin th chng th chng phi c chuyn v m ASCII. Trong phn n y ta trnh b y ng dng ca cc lnh quay v cc lnh l-gc trong vic chuyn i m BCD v ASCII. Bng 7.2: M ASCII cho cc ch s t 0- 9. Phm 0 1 2 3 4 5 6 7 8 9 M ASCII (Hex) 30 31 32 33 34 35 36 37 38 39 M ASCII nh phn 011 0000 011 0001 011 0010 011 0011 011 0100 011 0101 011 0110 011 0111 011 1000 011 1001 M BCD (khng ng gi) 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001

7.3.1 Cc s m ASCII. Trn cc b n phm ASCII khi phm 0 c kch hot th 011 0001 (30H) c cp ti my tnh. Tng t nh vy 31H (011 0001) c cp cho phm 1 v.v... nh cyh ra trong bng 7.2. Cn phi ghi nh rng mc d m ASCII l chun m (v nhiu quc gia khc) nhng cc s m BCD l tng qut. V b n phm, my in v m n hnh u s dng m ASCII nn cn phi thc hin i chuyn gia cc s m ASCII v s m BCD v ngc li. 7.3.2 Chuyn i m BCD ng gi v ASCII. Cc b vi iu khin DS5000T u c ng b thi gian thc RTC. N cung cp hin th lin tc thi gian trong ng y (gi, pht v giy) v lch (nm, thng, ng y) m khng quan tm n ngun tt hay bt. Tuy nhin d liu n y c cp dng m BCD ng gi. hin th d liu n y trn mt LCD hoc in ra trn my in th n phi c chuyn v dng m ASCII. chuyn i m BCD ng gi v m ASCII th trc ht n phi c chuyn i th nh m BCD khng ng gi. Sau m BCD cha ng gi c mc vi 011 0000 (30H). Di y minh ho vic chuyn i t m BCD ng gi v m ASCII. Xem v d 7.14.

Ebook Team
M BCD ng gi 29H 0010 1001 M BCD khng ng gi 02H & 09H 0000 0010 & 0000 1001

www.updatesofts.com
M ASCII 32H & 39H 0011 0010 & 0011 1001

7.3.3 Chuyn i m ASCII v m BCD ng gi. chuyn i m ASCII v BCD ng gi trc th trc ht n phi c chuyn v m BCD khng ng gi ( c thm 3 s) v sau c kt hp to ra m SCD ng gi. V d s 4 v s 7 th b n phm nhn c 34 v 37. Mc tiu l to ra s 47H hay 0100 0111 l m BCD ng gi. Qa trnh n y nh sau:
Phm 4 7 MOV MOV ANL ANL SWAP ORL M ASCII 34 37 A, # 4 R1, # 7 A, #0FH R1, #0FH A A, R1 M BCD khng ng gi 0000 0100 0000 0111 ; Gn A = 34H m ASCII ca s 4 ; Gn R1 = 37H m ASCII ca s 4 ; Che na byte cao A (A = 04) ; Che na byte cao ca R1 (R1 = 07) ; A = 40H ; A = 47H, m BCD ng gi M BCD ng gi 0100 0111 hay 47H

Sau php chuyn i n y cc s BCD ng gi c x l v kt qu s l dng BCD ng gi. Nh ta bit chng 6 c mt lnh t bit l DA A i hi d liu phi dng BCD ng gi. V d 7.14: Gi s thanh ghi A c s m BCD ng gi h y vit mt chng trnh chuyn i m BCD v hai s ASCII v t chng v o R2 v R6. Li gii:
MOV MOV ANL ORL MOV MOV ANL RR RR RR RR ORL MOV A, #29H R2, A A, #0FH A, #30H R6, A A, R2 A, #0F0H A A A A A, #30H R2, A ; Gn A = 29, m BCD ng gi ; Gi mt bn sao ca BCD trong R2 ; Che phn na cao ca A (A = 09) ; To n th nh m ASCII A = 39H (s 9) ; Lu n v o R6 (R6 = 39H k t ca ASCII) ; Ly li gi tr ban u ca A (A = 29H) ; Che na byte phn thp ca A (A = 20) ; Quay phi ; Quay phi ; Quay phi ; Quay phi (A = 02) ; To n th nh m ASCII (A = 32H, s 2) ; Lu k t ASCII v o R2

Trong v d trn tt nhin l ta c th thay 4 lnh RR quay phi bng mt lnh trao i WAPA.

Ebook Team

www.updatesofts.com

chng 8 cc lnh mt bt v lp trnh


8.1 Lp trnh vi cc lnh mt bt. Trong hu ht cc b vi x l (BVXL) th d liu c truy cp theo tng byte. Trong cc b vi x lnh a ch theo byte n y th cc ni dung ca mt thanh ghi, b nh RAM hay cng u phi c truy cp tng byte mt. Hay ni cch khc, lng d liu ti thiu c th c truy cp l mt byte. V d, trong b vi x l Pentium cng v o/ ra (I/O) c nh hng theo byte, c ngha l thay i mt bt th ta phi truy cp to n b 8 bt. Trong khi c rt nhiu ng dng th ta phi ch cn thay i gi tr ca mt bt chng hn nh l bt hoc tt mt thit b. Do vy kh nng nh a ch n tng bt ca 8051 rt thch hp cho ng dng n y. Kh nng truy cp n tng bt mt thay v phi truy cp c byte l m cho 805 tr th nh trong nhng b vi iu khin (BVK) 8 bt mnh nht trn th trng. Vy nhng b phn n o ca CPU, RAM, cc thanh ghi, cng I/O hoc ROM l c th nh a ch theo bt c. V ROM ch n gin d m chng trnh thc thi nn n khng cn kh nng nh a ch theo bt. Tt c mi m lnh u nh hng theo byte ch c cc thanh ghi, RAM v cc cng I/O l cn c nh a ch theo bt. Trong 8051 th rt nhiu v tr ca RAM trong mt s thanh ghi v tt c cc cng I/O l c th nh a ch theo tng bt. Di y ta ch i su v o tng phn mt. 8.1.1 Cc lnh mt bt. Cc lnh dng cc php tnh mt bt c cho bng 8.1. Trong phn n y chng ta l m v cc lnh n y v a ra nhiu v d v cch s dng chng, cc lnh mt bt khc m ch lin quan n c nh CY (Cary Flag) s l m mc khc. Bng 8.1: Cc lnh mt bt ca 8051
Lnh SETB bt CLR bt CPL bt JB bt, ch JNB bt, ch JBC bt, ch Chc nng Thit lp bt (bt bng 1) Xo bt v khng (bt = 0) B bt (bt = NOT bt) Nhy v ch nu bt = 1 Nhy v ch nu bt = 0 Nhy v ch nu bt = 1 v sau xo bt

8.1.2 Cc cng I/O v kh nng nh a ch theo bt. B vi iu khin 8051 c bn cng I/O 8 bt l P0, P1, P2 v P3. Chng ta c th truy cp to n b 8 bt hoc theo mt bt bt k m khng l m thay i cc bt khc cn li. Khi truy cp mt cng theo tng bt, chng ta s dng cc c php SETB Y, Y vi X l s ca cng 0, 1, 2 hoc 3, cn Y l v tr bt t 0 n 7 i vi cc bt d liu o n 7. V d SETB P1.5 l thit lp bt cao s 5 ca cng 1. H y nh rng do l bt c ngha thp nht LSB v D7 l bt c ngha l cao nht MSB. Xem v d 8.1. V d 8.1: Vit cc chng trnh sau: a) To mt sng vung (h m xung vung) vi y xung 50% trn bt 0 ca cng 1. b) To mt h m xung vung vi 66% y xung trn bt 3 ca cng 1. Li gii:

a) H m xung vung vi y xung 50% c ngha l trng thi bt v tt (hoc phn cao v thp ca xung) c cng d i. Do vy ta cht P1.0 vi thi gian gi chm gia cc trng thi.
HERE: SETB P1.0 LCALL DELAY CLR P1.0 SJMP HERE HERE: CPL P1.0 LCALL DELAY SJMP HERE 8051 P1.0 ;Thit lp bt 0 cng 1 ln 1. ;Gi chng trnh con gi chm DELAY ;P1.0 = 0 ;Tip tc thc hin n. C th vit chng trnh n y theo cch khc: ;B bt 0 ca cng 1. ;Gi chng trnh con gi chm DELAY ;Tip tc thc hin n.

b) H m xung vung vi y xung 66% c ngha l trng thi bt c d i gp i trng thi tt.
BACK: SETB P1.3 LCALL DELAY LCALL DELAY CLR P1.3 LCALL DELAY SJMP BACK 8051 P1.0 ;Thit lp bt 3 cng 1 ln 1. ;Gi chng trnh con DELAY ;Gi chng trnh con DELAY ln na. ;Xo bt 3 ca cng 1 v 0. ;Gi chng trnh con DELAY ;Tip tc thc hin n.

Lu rng, khi m P1.0 c hp dch n tr th nh SETB 90H v P1.0 c a ch trong RAM l 90h. T hnh v 8.1 ta thy rng cc a ch bt cho P0 l 80H n 87H v cho P l 90H n 97H v.v... Hnh 8.1 cng ch ra tt c cc thanh ghi c kh nng nh a ch theo bt. Bng 8.2: Kh nng nh a ch theo bt ca cc cng.
P0 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Port's Bit D0 D1 D2 D3 D4 D5 D6 D7

V d 8.2: i vi cc lnh di y th trng thi ca bt n o ca SFR s b tc ng (h y s dng hnh 8.1).


a) SETB 86H, b) CLR 87H, c) SETB 92H b) SETB DA7H, e) CLR 0F2H, f) SETB OE7H

Li gii
a) SETB b) CLR c) SETB d) SETB e) CLR f) SETB 86H l d nh cho SETB P0.6 87H l d nh cho CLR P0.7 92H l d nh cho SETB P1.2 0A7H l d nh cho SETB P2.7 0F2H l d nh cho CLR D2 ca thanh ghi B 0E7H l d nh cho SETB ACC.7 (bt D7 ca thanh ghi A)

8.1.3 Kim tra mt bt u v o. Lnh JNB (nhy nu bt = 0) v JB (nhy nu bt bng 1) cng l cc php thao tc n bt c s dng rng r i. Chng cho php ta hin th mt bt v thc hin quyt nh ph thuc v o vic liu n l 0 hay l 1. V d 8.3: gi s bt P2.3 l mt u v o v biu din iu kin ca mt l. Nu n bt ln 1 th c ngha l l nng. H y hin th lin tc, mi khi n ln cao th h y gi mt xung cao-xung-thp (Aigh-to-low) n cng P1.5 bt ci bo. Li gii:
HERE: JNB P2.3, HERE SETB P1.5 CLR P1.5 ; Duy tr hin th cao. ; Thit lp P1.5 = 1 ; Thc hien chuyn xung t cao-xung-thp

Cc lnh JNB v JB c th c dng i vi cc bt bt k ca cc cng I/O 0, 1, 2 v 3 v tt c cc cng n y u c kh nng nh a ch theo bt. Tuy nhin, cng 3 hu nh dng cho cc tn hiu ngt v truyn thng ni tip v thng thng khng dng cho bt c v o/ ra theo bt hoc theo byte n o. iu n y s c b n chng 10 v 11. 8.1.4 Cc thanh ghi v kh nng nh a ch theo bt. Trong tt c cc cng I/O u c kh nng nh a ch theo bt th cc thanh ghi li khng c nh vy. Ta c th nhn thy iu t hnh 8.1: Ch thanh gh B, PSW, IP, IE, ACC, SCON v TCON l c th nh a ch theo bt, y ta s tp trung v o cc thanh ghi A, B v PSW cn cc thanh ghi khc s cp cc chng sau. T hnh 8.1 h y rng cng PO c gn a ch bt 80H-87H. Cn i ch bt 88-8FH c gn cho thanh ghi TCON. Cui cng a ch bt F0-F7H c gn cho thanh ghi B. Xt v d 8.4 v 8.5 v vic s dng cc thanh ghi n y vi kh nng nh a ch theo bt.

Byte address Bit address FF F0 E0 D0 B8 B0 A8 A0 99 98 90 8D 8C 8B 8A 89 88 87 83 82 81 80 E7 E7 D7 -B7 AF A7 F6 E6 D6 -B6 -A6 F5 E5 D5 -B5 -F4 E4 F3 E3 F2 E2 D2 F1 E1 F0 E0 B ACC PSW IP F3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0

D4 D3 BC BB B4 AC B3

D1 D0 B8

BA B9 B2

B1 B0 A9 A1 A8 A0

AB AA A3 A2

A5 A4

9F 97

9E 96

not bit addressable 9D 9C 9B 9A 95 94 93 92

99 91

99 90

8F

8E

not bit addressable not bit addressable not bit addressable not bit addressable not bit addressable 8D 8C 8B 8A not bit addressable

89

88

87

not bit addressable not bit addressable not bit addressable 86 85 84 83 82 81 Special Function Registers

80

Hnh 8.1: a cha theo Byte v bt ca b nh RAM cc thanh ghi chc nng c bit. V d 8.4: H y vit chng trnh kim tra xem thanh ghi tch lu c cha mt s chn khng? Nu c th chia n cho 2, nu khng th h y l m chn n v sau chia n cho 2. Li gii:
MOV B, # 2 JNB ACC 0, YES JNC A ; Gn B = 2 ; DO ca thanh ghi A c bng 0? ; Nu c th nhy v YES

YES:

DIX AB

; Nu l s l th tng ln 1 th nh chn ; Chia A/B

V d 8.5: H y vit on chng trnh kim tra xem cc bt 0 v 5 ca thanh ghi B c gi tr cao khng? Nu khng phi th t chng ln 1 v lu v o thanh ghi b. Li gii:
JNB OFOH, NEXT-1 SETB OFOH NEXT-1: JNB OF5H, NEXT-2 SETB OF5H NEXT-2: MOV RO, B ; Nhy v NEXT-1 nu B.0 = 0 ; t B.0 = 1 ; Nhy v NEXT-2 nu B.5 = 0 ; t B.5 = 1 ; Ct thanh ghi B

CY RS1 0 0 1 1

AC RS0 0 1 0 1

--

RS1 Register Bank 0 1 2 3

RS0

OV

-Address 00H - 07H 08H - 0FH 10H - 17H 18H - 1FH

Hnh 8.2: Cc bt ca thanh ghi PSW. Nh ni chng 2, trong than ghi PSW c hai bt d nh ring chn cc bng thanh ghi. Khi RESET th bng 0 c chn, chng ta c th chn cc bng bt k khc bng cch s dng kh nng nh a ch theo bt ca PSW. V d 8.6: H y vit chng trnh lu thanh ghi tch lu v o R7 ca bng 2. Li gii:
CLR SETB MOV PSW.3 PSW.4 R7.A

V d 8.7: Trong khi c hai lnh JNC v JC kim tra bt c nh CY th li khng c cc lnh cho bt c tr n (0V) l m th n o ta c th vit m kim tra 0V. Li gii: C 0V l bt PSW.2 ca thanh ghi PSW. PSW l thanh ghi c th nh a ch theo bt, do vy ta c th s dng lnh sau kim tra c 0V:
JB PSW.2, TARGET ; Nhy v TARGET nu 0V = 1

8.15 Vng nh RAM c th nh a ch theo bt. Trong 128 byte RAM trong ca 8051 th ch c 16 byte ca n l c th nh a ch theo bt c. Phn cn li c nh dng byte. Cc cng RAM c th nh a ch theo bt l 20H n 2FH. Vi 16 byte n y ca RAM c th cung cp kh nng nh a ch theo bt l 128 bt, v 16 8 = 128. Chng c nh a ch t 0 n 127. Do vy, nhng a ch bt t 0 n 7 d nh cho byte u tin, v tr RAM trong 20H v cc bt t 8 n OFH l a ch bt ca byte th hai ca v tr RAM trong 21H v.v... Byte cui cng ca 2FH c a ch bt t 78H n 7FH (xem hnh 8.3). Lu rng cc v tr RAM trong 20H n 2FH va c th nh a ch theo byte va c th nh a ch theo bt. t hnh 8.3 v 8.1 ta thy rng cc a ch bt 00 - 7FH thuc v cc a ch byte ca RAM t 20 - 2FH v cc a ch bt t 80 n F7H thuc cc thanh ghi c bit SFR, cc cng P0, P1, v.v... V d 8.8: H y kim tra xem cc bt sau y thuc byte n o? H y cho a ch ca byte RAM dng Hex.

a) SETB b) CLR c) CLR d) SETB e) CLR f) SETB

42H 67H 0FH 28H 12 05

; Set bit 42H to 1 ; Clear bit 67 ; Clear bit OFH ; Set bit 28H to 1 ; Clear bit 12 (decimal)

Li gii:
a) a ch bt 42H ca RAM thuc bt D2 ca v tr RAM 28H. b) a ch bt 67H ca RAM thuc bt D7 ca v tr RAM 20H. c) a ch bt 0FH ca RAM thuc bt D7 ca v tr RAM 21H. d) a ch bt 28H ca RAM thuc bt D0 ca v tr RAM 25H. e) a ch bt 12H ca RAM thuc bt D4 ca v tr RAM 21H. f) a ch bt 05H ca RAM thuc bt D5 ca v tr RAM 20H.

V d 8.9: Trng thi ca cc bt P1.2 v P1.3 ca cng v o/ra P1 phi c lu ct trc khi chng c thay i. H y vit chng trnh lu trng thi ca P1.2 v o v tr bt 06 v trng thi P1.3 v o v tr bt 07. Li gii:
CLR CLR JNB SETB OVER: JNB SETB NEXT: .... 06 07 P1.2, OVER 06 P1.3, NEXT 07 ;Xo a ch bt 06 ; Xo a ch bt 07 ;Kim tra bt P1.2 nhy v OVER nu P1.2 = 0 ; Nu P1.2 th thit lp v tr bt 06 = 0 ;Kim tra bt P1.3 nhy v NEXT nu n = 0 ;Nu P1.3 = 1th thit lp v tr bt 07 = 1

Cc cu hi n luyn: 1. Tt c cc cng I/O ca 8051 u c kh nng nh a ch theo bt? (ng sai) 2. Tt c mi thanh ghi ca 8051 u c kh nng nh a ch theo bt? (ng sai) 3. Tt c cc v tr RAM ca 8051 u c kh nng nh a ch theo bt? (ng sai) 4. H y ch ra nhng thanh ghi n o sau y c kh nng nh a ch theo bt:
a) A, b) B, (c) R4 (d) PSW (e) R7

5. Trong 128 byte RAM ca 8051 nhng byte n o c kh nng nh a ch theo bt. H y lit k chng. 6. L m th n o c th kim tra xem bt D0 ca R3 l gi tr cao hay thp. 7. H y tm xem cc bt dau thuc nhng byte n o? H y cho a ch ca cc byte RAM theo s Hex:
a) SETB 20 d) SETB 95 b) CLR 32 e) SETB 0ETB 12H c) SETB 12H

8. Cc a ch bt 00 - 7FH v 80 - F7H thuc cc v tr nh n o? 9. Cc cng P0, P1, P2 v P3 l mt b phn ca SFR? (ng sai) 10. Thanh ghi TCON c th nh a ch theo bt (ng sai) 8.2 Cc php ton mt bt vi c nh CY. Ngo i mt thc t l c nh CY c thay i bi cc lnh l-gc v s hc th trong 8051 cn c mt s lnh m c th thao tc trc tip c nh CY. Cc lnh n y c cho trong bng 8.3.

Trong cc lnh c ch ra sau trong bng 8.3 th chng ta trnh b y cng dng ca lnh JNC, CLR v SETB trong nhiu v d trong mt s chng trc y. Di y ta tip tc l m quen vi mt s v d v cch s dng mt s lnh khc t bng 8.3. Mt s lnh cho trong bng 8.3 l m vic vi cc php ton l-gc AND v OR. Cc v d mc n y s ch ra cch s dng chng nh th n o? chng tip theo chng ta s ch ra nhiu v d hn v vic s dng ca cc lnh n trong phm vi cc ng dng thc t. Bng 8.3: Cc lnh lin quan n c nh CY
Lnh SETB C CLR C CPL C MOV b, C MOV C, b JNC ch JC ch ANL C. bt ANL C./ bt ORL C. bt ORL C./ bt chc nng Thc hin (to) CY = 1 Xo bt nh CY = 0 B bt nh Sao chp trng thi bt nh v o v tr bt b = CY Sao chp bt b v o trng thi bt nh CY = b Nhy ti ch nu CY = 0 Nhy ti ch nu CY = 1 Thc hin php AND vi bt b v lu v o CY Thc hin php AND vi bt o v lu v o CY Thc hin php OR vi bt v lu v o CY Thc hin php OR vi bt o v lu v o CY

V d 8.10: H y vit mt chng trnh lu ct trng thi ca cc bt P1.2 v P1.3 v o v tr nh tng ng trong RAM 6 v 7. Li gii:
MOV MOV MOV MOV C, P1.2 06, C C, P1.3 07, C ; Lu trng thi P1.2 v o CY. ; Lu trng thi CY v o bt 6 ca RAM ; Lu trng thi P1.2 v o CY ; Lu trng thi CY v o v tr RAM 07

V d 8.11: gi s v tr nh 12H trong RAM gi trng thi ca vic c in thoi hay khng. Nu n trng thi cao c ngha l c mt cuc gi mi v n c kim tra ln cui. H y vit mt chng trnh hin th c li nhn mi (New Message) trn m n hnh LCD nu bt 12H ca RAM c gi tr cao. Nu n c gi tr thp th LCD hin th khng c li nhn mi (No New Message). Li gii:
MOV C, 12H JNC NO MOV DPTR, # 400H LCAL DISPLAY SJMP NEXT MOV DSTR, #420H LCAL DISPLAY ORG DB ORG DB ; Sao trng thi bt 12H ca RAM v o CY ; Kim tra xem c CY c gi tr cao khng. ; Nu n np a ch ca li nhn. ; Hin th li nhn. ; Thot ; Np a ch khng c li nhn. ; Hin th n. Thot data to be displayed on LCD

NO: EXIT: ;

YES-MG: NO-MG:

400H NEW Message 420H No New Message

V d 8.12: gi s rng bt P2.2 c dng kim tra n ngo i v bt P2.5 dng kim tra n trong ca mt to nh . H y trnh b y l m th n o bt n ngo i v tt n trong nh . Li gii:
SETB ORL MOV CLR ANL MOV C C, P2.2, C P2.2, C C C, P2.5 P2.5, C ; t CY = 1 ; Thc hin php OR vi CY ; Bt n nu n cha bt. ; Xo CY = 0 ; CY = (P2.5 AND CY) ; Tt n nu n cha tt.

Cu hi n luyn: 1. Tm trng thi ca c CY sau on m di y:


a) CLR ADD JWC CPL OVER: ... A A, #OFFH OVER C b) CLR C JNC OVER SETB C OVER: ... c) CLR C JC OVER CPL C OVER: ...

2. H y trnh b y cch l m th n o lu trng thi bt P2.7 v o v tr bt 31 ca RAM. 3. H y trnh b y cc chuyn trng thi bt 09 ca RAM n bt P1.4. 8.3 c cc chn u v o thng qua cht cng. Trong vic c cng th mt s lnh c trng thi ca cc chn cng, cn mt s lnh khc th c mt s trng thi ca cht cng trong. Do vy, khi c cc cng th c hai kh nng: 1. c trng thi ca chn v o. 2. c cht trong ca cng ra. Chng ta phi phn bit gia hai dng lnh n y v s ln ln gia chng l nguyn nhn chnh ca cc li trong lp trnh cho 8051, c bit khi kt ni vi phn cng bn ngo i. Trong phn n y ta b n v s qua cc lnh n y. Tuy nhin, c gi phi nghin cu v hiu v cc ni dung ca ch n y v v hot ng bn trong ca cc cng c cho trong ph lc Appendix C2. 8.3.1 Cc lnh c cng v o. Nh ni chng 4 th bin mt bt bt k ca cng 8051 n o th nh mt cng u v o, chng ta phi ghi (l-gc cao) v o bt . Ssu khi cu hnh cc bt ca cng l u v o, ta c th s dng nhng lnh nht nh nhn d liu ngo i trn cc chn v o trong CPU. Bng 8.4 l nhng lnh ni trn. Bng 8.4: Cc lnh c mt cng v o.
MOV JNB JB MOV Gi lnh A, PX PX.Y, ... PX.Y, C, PX.Y MOV JNB JB MOV V d A, P2 P2.1, ch P1.3, ch C, P2.4 M t Chuyn d liuj chn P2 v o ACC Nhy ti ch nu, chn P2.1 = 0 Nhy ch nu, chn P1.3 = 1 Sao trng thi chn P2.4 v o CY

8.3.2 c cht cho cng u ra.

Mt s lnh ni dung ca mt cht cng trong thay cho vic c trng thi ca mt chn ngo i. Bng 8.5 cung cp danh sch nhng lnh n y. V d, xt lnh ANL P1, A. Trnh t thao tc c thc hin bi lnh n y nh sau: 1. N cht trong ca mt cng v chuyn d liu v o trong CPU. 2. D liu n y c AND vi ni dung ca thanh ghi A. 3. Kt qu c ghi ngc li ra cht cng. 4. D liu ti chn cng c thay i v c cng gi tr nh cht cng. T nhng b n lun trn ta kt lun rng, cc lnh c cht cng thng c mt gi tr, thc hin mt php tnh (v c th thay i n) sau ghi ngc li ra cht cng. iu n y thng c gi c-sa-ghi, (Read-Modify-Write). Bng 8.5 lit k cc lnh c-sa-ghi s dng cng nh l ton hng ch hay ni cch khc, chng ta ch c dng cho cc cng c cu hnh nh cc cng ra. Bng 8.5: Cc lnh c mt cht (c-sa-ghi).
gi lnh ANL ORL XRL JBC CPL INC DEC DJN2 MOV CLR SETB PX PX PX PX.Y, ch PX PX PX PX.Y, ch PX.Y, C PX.Y PX.Y ANL ORL XRL JBC CPL INC DEC DJN2 MOV CLR SETB P1, A P2, A P0, A P1.1, ch P1.2 P1 P2 P1, ch P1.2, C P2.3 P2.3 V d

Lu : Chng ta nn nghin cu phn C2 ca ph lc Appendix C nu ta ni phn cng ngo i v o h 8051 ca mnh. Thc hin sai cc ch dn hoc ni sai cc chn c th l m hng cc cng ca h 8051. 8.4 Tm lc. Chng n y m t mt trong cc c tnh mnh nht ca 8051 l php ton mt bt. Cc php ton mt bt n y cho php lp trnh vin thit lp, xo, di chuyn v b cc bt ring r ca cc cng, b nh hoc cc thanh ghi. Ngo i ra c mt s lnh cho php thao tc trc tip vi c nh CY. Chng ta cng b n v cc lnh c cc chn cng thng qua vic c cht cng. 8.5 Cc cu hi kim tra. 1. Cc lnh SETB A, CLR A, CPL A ng hay sai? 2. Cc cng v o/ ra n o v cc thanh ghi n o c th nh a ch theo bt. 3. Cc lnh di y ng hay sai? nh du lnh ng.
a) SETB b) SETB c) CLR d) CRL P1 P2.3 ACC.5 90H e) SETB B4 f) CLR 80H g) CLR PSW.3 h) CLR 87H

4. H y git chng trnh to xung vung vi y xung 75%, 80% trn cc chn P1.5 v P2.7 tng ng. 5. Vit chng trnh hin th P1.4 nu n c gi tr cao th chng trnh to ra mt m thanh (sng dung vung 50% y xung) trn chn P2.7. 6. Nhng a ch bt n o c gn cho cc cng P0, P1, P2 v P3 cho cc thanh ghi PCON, A, B v PSW.

7. Nhng a ch bt di y thuc v cng hay thanh ghi n o?


a) 85H f) A5H b)87H c) 88H d)8DH g)A7H h) B3H i) D4H j) D8H e)93H

8. H y vit chng trnh lu cc thanh ghi A, B v o R3 v R5 bng nh 2 tng ng. 9. Cho mt lnh khc cho CLR C, so snh chng. 10. L m th n o kim tra trng thi cc bt c OV, CY, P v AC. H y tm a ch bt ca cc c n y. 11. Cc cng nh 128 byte ca RAM th nhng vng n o l nh a ch theo bt c? H y nh du chng. 12. Cc a ch sau thuc vng RAM n o?
a) 05H g) 15H b) 47 c) 18H h) 67H h) 55H i) 14H d) 2DH e) 53H k) 37FH

13. Cc a ch nh hn 80H c gn cho a ch 20-2FH ca RAM phi khng? (ng/ sai). 14. Vit cc lnh lu c CY, AC, D v o v tr bt 4, 16H v 12H tng ng. 15. Vit chng trnh kim tra D7 ca thanh ghi A. Nu D7 = 1 th gi thng bo sang LCD bo rng ACC c mt s m.

Ebook Team

www.updatesofts.com

Chng 9 Lp trnh cho b m/ b nh thi trong 8051


8051 c hai b nh thi/ b m. Chng c th c dng nh cc b nh thi to mt b tr thi gian hoc nh cc b m m cc s kin xy ra bn ngo i b BVK. Trong chng n y chng ta s tm hiu v cch lp trnh cho chng v s dng chng nh th n o? 9.1 Lp trnh cc b nh thi gian ca 8051. 8051 c hai b nh thi l Timer 0 v Timer1, phn n y chng ta b n v cc thanh ghi ca chng v sau trnh b y cch lp trnh chng nh th n o to ra cc tr thi gian. 9.1.1 Cc thanh ghi c s ca b nh thi. C hai b nh thi Timer 0 v Timer 1 u c d i 16 bt c truy cp nh hai thanh ghi tch bit byte thp v byte cao. Chng ta s b n ring v tng thanh ghi. 9.1.1.1 Cc thanh ghi ca b Timer 0. Thanh ghi 16 bt ca b Timer 0 c truy cp nh byte thp v byte cao. Thanh ghi byte thp c gi l TL0 (Timer 0 bow byte) v thanh ghi byte cao l TH0 (Timer 0 High byte). Cc thanh ghi n y 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 v o TL0, byte thp ca b nh thi 0. Cc thanh ghi n y cng c th c c nh cc thanh ghi khc. V d MOV R5, TH0 l lu byte cao TH0 ca Timer 0 v o R5.
TH0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 TL0 D5 D4 D3 D2 D1 D0

Hnh 9.1: Cc thanh ghi ca b Timer 0. 9.1.1.2 Cc thanh ghi ca b Timer 1. B nh thi gian Timer 1 cng d i 16 bt v thanh ghi 16 bt ca n c chia ra th nh hai byte l TL1 v TH1. Cc thanh ghi n y c truy cp v c ging nh cc thanh ghi ca b Timer 0 trn.
TH1 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 TL1 D5 D4 D3 D2 D1 D0

Hnh 9.2: Cc thanh ghi ca b Timer 1. 9.1.2 Thanh ghi TMOD (ch ca b nh thi). C hai b nh thi Timer 0 v Timer 1 u dng chung mt thanh ghi c gi l IMOD thit lp cc ch l m vic khc nhau ca b nh thi. Thanh ghi TMOD l thanh ghi 8 bt gm c 4 bt thp c thit lp d nh cho b Timer 0 v 4 bt cao d nh 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. Cc php ton n y s c b n di y.

Ebook Team
(MSB) GATE C/T M1 Timer1 M0 GATE

www.updatesofts.com
(MSB) C/T M1 Timer0 M0

Hnh 9.3: Thanh ghi IMOD. 9.1.2.1 Cc bt M1, M0: L cc bt ch ca cc b Timer 0 v Timer 1. Chng chn ch ca cc b nh thi: 0, 1, 2 v 3. Ch 0 l mt b nh thi 13, ch 1 l mt b nh thi 16 bt v ch 2 l b nh thi 8 bt. Chng ta ch tp chung v o cc ch thng c s dng rng r i nht l ch 1 v 2. Chng ta s sm khm ph ra cc c tnh c cc ch n y sau khi khm phn cn li ca thanh ghi TMOD. Cc ch c thit lp theo trng thi ca M1 v M0 nh sau: M1 0 0 1 1 M0 0 1 0 1 Ch 0 1 2 3 Ch hot ng B nh thi 13 bt gm 8 bt l b nh thi/ b m 5 bt t trc B nh thi 16 bt (khng c t trc) B nh thi 8 bt t np li Ch b nh thi chia tch

9.1.2.2 C/ T (ng h/ b nh thi). Bt n y trong thanh ghi TMOD c dng quyt nh xem b nh thi c dng nh mt my to tr hay b m s kin. Nu bt C/T = 0 th n c dng nh mt b nh thi to ch thi gian. Ngun ng h cho ch tr thi gian l tn s thch anh ca 8051. phn n y ch b n v la chn n y, cng dng ca b nh thi nh b m s kin th s c b n phn k tip. V d 9.1: H y hin th xem ch n o v b nh thi n o i vi cc trng hp sau: a) MOV TMOD, #01H b) MOV TMOD, #20H c) MOV TMDO, #12H Li gii: Chng ta chuyn i gi tr t s Hex sang nh phn v i chiu hnh 93 ta c:
a) TMOD = 0000 0001, ch 1 ca b nh thi Timer 0 c chn. b) TMOD = 0010 0000, ch 1 ca b nh thi Timer 1 c chn. c) TMOD = 0001 0010, ch 1 ca b nh thi Timer 0 v ch 1 ca Timer 1 c chn.

9.1.2.3 Ngun xung ng h cho b nh thi: 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 l m 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. Xem v d 9.2. V d 9.2: H y tm tn s ng b v chu k ca b nh thi cho cc h da trn 8051 vi cc tn s thch anh sau:

Ebook Team
a) 12MHz b) 16MHz c) 11,0592MHz B giao ng thch anh 12

www.updatesofts.com
Tn s ng h ca b nh thi

Li gii:
1 1 12MHz = 1MHz v T = = 1s 12 1 / 1MHz 1 1 b) 16MHz = 1,111Mz v T = = 0,75s 12 1,333MHz 1 1 c) 11,0592MHz = 921,6kHz v T = = 1,085s 12 0,9216MHz

a)

Mc d cc h thng da trn 8051 khc vi tn s thch anh t 10 n 40MHz, song ta ch tp chung v o tn s thch anh 11,0592MHz. L do ng sau mt s l nh vy l hi l m vic vi tn sut bouid i vi truyn thng ni tip ca 8051. Tn s XTAL = 11,0592MHz cho php h 8051 truyn thng vi IBM PC m khng c li, iu m ta s bit chng 10. 9.1.3 Bt cng GATE. Mt bt khc ca thanh ghi TMOD l bt cng GATE. trn hnh 9.3 ta thy c hai b nh thi Timer0 v Timer1 u c bt GATE. Vy bt GATE dng l m g? Mi b nh thi thc hin im khi ng v dng. Mt s b nh thi thc hin iu n y 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 tren 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 n y c c nh cc lnh SETB TR1 v CLR TR1 i vi b Timer1 v SETB TRO v CLR TR0 i vi b Timer0. Lnh SETB khi ng b nh thi v lnh CLR dng dng n. Cc lnh n y 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 ngo i 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 ngo i. 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. Vic s dng phn cng ngo i khi ng v dng b nh thi ta s b n chng 11 khi b n v cc ngt. V d 9.3: Tm gi tr cho TMOD nu ta mun lp trnh b Timer0 ch 2 s dng thch anh XTAL 8051 l m ngun ng h v s dng cc lnh khi ng v dng b nh thi. Li gii: TMOD = 0000 0010: B nh thi Timer0, ch 2 C/T = 0 dng ngun XTAL GATE = 0 dng phn mm trong khi ng v dng b nh thi. Nh vy, by gi chng ta c hiu bit c bn v vai tr ca thanh ghi TMOD, chng ta s xt ch ca b nh thi v cch chng c lp trnh nh th n o to ra mt tr thi gian. Do ch 1 v ch 2 c s dng rng r i nn ta i xt chi tit tng ch mt. 9.1.4 Lp trnh cho mi ch Mode1.

Ebook Team

www.updatesofts.com

Di y l nhng c tnh v nhng php ton ca ch Mode1: 1. N l b nh thi 16 bt, do vy n cho php cc gi tr 0000 n FFFFH c np v o cc thanh ghi TL v TH ca b nh thi. 2. Sau khi TL v TH c np mt gi tr khi to 16 bt th b nh thi phi c khi ng. iu n y c thc hin bi SETB TR0 i vi Timer 0 v SETB TR1 i vi Timer1. 3. Sau khi b nh thi c khi ng, n bt u m ln. N m ln cho n khi t c gii hn FFFFH ca n. Khi n quay qua t FFFFH v 0000 th n bt ln bt c TF c gi l c b nh thi. C b nh thi n y c th c hin th. Khi c b nh thi n y c thit lp t mt trong cc phng n dng b nh thi bng cc lnh CLR TR0 i vi Timer0 hoc CLR TR1 i vi Timer1. y cng cn phi nhc li l i vi b nh thi u c c TF ring ca mnh: TF6 i vi Timer0 v TF1 i vi Timer1.

XTAL oscillator

12

TH

TL

TF overflow flag

TF goes high when FFFF 0

C/T = 0

TR

4. Sau khi b nh thi t c gii hn ca n v quay quan gi tr FFFFH, mun lp li qu trnh th cc thanh ghi TH v TL phi c np li vi gi tr ban u v TF phi c duy tr v 0. 9.1.4.1 Cc bc lp trnh ch Mode 1. to ra mt tr thi gian dng ch 1 ca b nh thi th cn phi thc hin cc bc di y. 1. Np gi tr TMOD cho thanh ghi bo nh thi n o (Timer0 hay Timer1) c s dng v ch n o c chn. 2. Np cc thanh ghi TL v TH vi cc gia tr m ban u. 3. Khi ng b nh thi. 4. Duy tr hin th c b nh thi TF bng lnh JNB TFx, ch xem n c bt khng. Thot vng lp khi TF c ln cao. 5. Dng b nh thi. 6. Xo c TF cho vng k tip. 7. Quay tr li bc 2 np li TL v TH. tnh to n thi gian tr chnh xc v tn s sng vung c to ra trn chn P1.5 th ta cn bit tn s XTAL (xem v d 9.5). T v d 9.6 ta c th pht trin mt cng thc tnh ton tr s dng ch Mode1 (16 bt) ca b nh thi i vi tn s thch anh XTAL = 11, 0592MHz (xem hnh 9.4). My tnh trong th mc Accessrry ca Microsoft Windows c th gip ta tm cc gi tr TH v TL. My tnh n y h tr cc php tnh theo s thp phn, nh phn v thp lc.

Ebook Team

www.updatesofts.com

a) Tnh theo s Hex b) Tnh theo s thp phn (FFFF - YYXX + 1). 1,085s trong YYXX l cc gi Chuyn i cc gi tr YYXX ca TH, TL v s thp tr khi to ca TH, TL tng ng. Lu rng cc gi tr phn nhn mt s thp phn NNNNN sau ly YYXX l theo s Hex. (65536 - NNNNN).1,085s.

Hnh 9.4: Cng thc tnh ton tr thi gian i vi tn s XTAL = 11, 0592MHz. V d 9.4: Trong chng trnh di y ta to ra mt sng vung vi y xung 50% (cng t l gia phn cao v phn thp) trn chn P1.5. B nh thi Timer0 c dng to tr thi gian. H y phn tch chng trnh n y.
HERE: MOV TMOD, #01 MOV TL0, #0F2H MOV TH0, #0FFH CPL P1.5 ACALL DELAY SJMP HERE delay using timer0. SETB JNB CLR CLR RET TR0 TF0, AGAIN TR0 TF0 ; S dng Timer0 v ch 1(16 bt) ; TL0 = F2H, byte thp ; TH0 = FFH, byte cao ; S dng chn P1.5 ; Np li TH, TL ; Khi ng b nh thi Timer0 ; Hin th c b nh thi cho n khi n vt qua FFFFH. ; Dng b Timer ; Xo c b nh thi 0

; DELAY: AGAIN:

Li gii: Trong chng trnh trn y ch cc bc sau: 1. TMOD c np. 2. gi tr FFF2H c np v TH0 - TL0 3. Chn P1.5 c chn dng cho phn cao thp ca xung. 4. Chng trnh con DELAY dng b nh thi c gi. 5. Trong chng trnh con DELAY b nh thi Timer0 c khi ng bi lnh SETB TR0 6. B Timer0 m ln vi mi xung ng h c cp bi my pht thch anh. Khi b nh thi m tng qua cc trng thi FFF3, FFF4 ... cho n khi t gi tr FFFFH. V mt xung na l n quay v khng v bt c b nh thi TF0 = 1. Ti thi im n y th lnh JNB hn xung. 7. B Timer0 c dng bi lnh CLR TR0. Chng trnh con DELAY kt thc v qu trnh c lp li. Lu rng lp li qu trnh trn ta phi np li cc thanh ghi TH v TL v khi ng li b nh thi vi gi thit tn s XTAL = 11, 0592MHz.
FFF2 TF = 0 FFF3 TF = 0 FFF4 TF = 0 FFFF TF = 0 0000 TF = 1

V d 9.5:

Ebook Team

www.updatesofts.com

Trong v d 9.4 h y tnh ton lng thi gian tr trong chng trnh con DELAY c to ra bi b nh thi vi gi thit tn s XTAL = 11,0592MHz. Li gii: B nh thi l m vic vi tn s ng h bng 1/12 tn s XTAL, do vy ta c
11,0592 = 0,9216MHz l tn s ca b nh thi. Kt qu l mi nhp xung ng h c 12 1 chu k T = = 1,085s . Hay ni cch khc, b Timer0 m tng sau 1,085s 0,9216MHz

to ra b tr bng s m 1,085s. S m bng FFFFH - FFF2H = ODH (13 theo s thp phn). Tuy nhin, ta phi cng 1 v o 13 v cn thm mt nhp ng h n quay t FFFFH v 0 v bt c TF. Do vy, ta c 14 1,085s = 15,19s cho na chu k v c chu k l T = 2 15,19s = 30, 38s l thi gian tr c to ra bi b nh thi. V d 9.6: Trong v d 9.5 h y tnh ton tn s ca xung vung c to ra trn chn P1.5. Li gii: Trong tnh ton thi gian tr ca v d 9.5 ta khng tnh n tng ph ca cc lnh trong vng lp. tnh ton chnh xc hn ta cn b xung thm cc chu k thi gian ca cc lnh trong vng lp. l m iu ta s dng cc chu k my t bng A-1 trong ph lc Appendix A c ch di y.
HERE: MOV TL0, #0F2H MOV TH0, #0FFH CPL P1-5 ACALL DELAY SJMP HERE delay using timer0 SETB JNB CLR CLR RET TR0 TF0, AGAIN TR0 TF0 2 2 1 2 2 1 1 1 1 1

; DELAY: AGAIN:

Tng s chu k b xung l x7 nn chu k thi gian tr l T = 2 27 1.085s = 58,59s v tn s l F = 17067,75Hz. V d 9.7: H y tm ra tr c to ra bi Timer0 trong on m sau s dng c hai phng php ca hnh 9.4. Khng tnh cc tng ph ca cc lnh.
CLR MOV MOV MOV SETB SETB JNB P2.3 TMOD, #01 TL0, #3EH TH0, #0B8G P2.3 TR0 TF0, AGAIN ; Xo P2.3 ; Chn Timer0, ch 1 (16 bt) ; TL0 = 3EH, byte thp ; TH0 = B8H, byte cao ; Bt P2.3 ln cao ; Khi ng Timer0 ; Hin th c b nh thi TF0

Total T = (2 27 1.085s and F = 17067.75Hz).

27

HERE:

AGAIN:

Ebook Team
CLR CLR CLR TR0 TF0 P2.3

www.updatesofts.com
; Dng b nh thi. ; Xo c b nh thi cho vng sau

Li gii: a) tr c to ra trong m trn l : (FFFF - B83E + 1) = 47C2H = 18370 h thp phn 18370 1,085s = 19, 93145s. b) V TH - TL = B83EH = 47166 (s thp phn) ta c 65536 - 47166 = 18370. iu n y c ngha l b nh thi gian m t B83EH n FFFF. N c cng vi mt s m v 0 th nh mt b tng l 18370s. Do vy ta c 18370 1,085s = 19,93145ms l rng xung. V d 9.8: Sa gi tr ca TH v TL trong v d 9.7 nhn c tr thi gian ln nht c th. H y tnh tr theo miligiy. Trong tnh ton cn a v o c tng ph ca cc lnh. nhn tr thi gian ln nht c th ta t TH v TL bng 0. iu n y l m cho b nh thi m t 0000 n FFFFH v sau quay qua v 0.
CLR MOV MOV MOV SETB SETB JNB CLR CLR CLR P2.3 TMOD, #01 TL0, #0 TH0, #0 P2.3 TR0 TF0, AGAIN TR0 TF0 P2.3 ; Xo P2.3 ; Chn Timer0, ch 1 (16 bt) ; t TL0 = 0, byte thp ; t TH0 = 0, byte cao ; Bt P2.3 ln cao ; Khi ng b Timer0 ; Hin th c b nh thi TF0 ; Dng b nh thi. ; Xo c TF0

HERE:

AGAIN:

Thc hin bin TH v TL bng 0 ngha l b nh thi m tng t 0000 n FFFFH v sau quay qua v 0 bt c b nh thi TF. Kt qu l n i qua 65536 trng thi. Do vy, ta c tr = (65536 - 0) 1.085s = 71.1065s. Trong v d 9.7 v 9.8 chng ta khng np li TH v TL v n l mt xung n. Xt v d 9.9 di y xem vic np li l m vic nh th n o ch 1. V d 9.9: Chng trnh di y to ra mt sng vung trn chn P2.5 lin tc bng vic s dng b Timer1 to ra tr thi gian. H y tm tn s ca sng vung nu tn s XTAL = 11.0592MHz. Trong tnh ton khng a v o tng ph ca cc lnh vng lp:
HERE: MOV MOV MOV SETB JNB CLR CPL CLR SJMP TMOD, #01H TL1, #34H TH0, #76H TR1 TF1, BACK TR1 P1.5 TF AGAIN ; Chn Timer0, ch 1 (16 bt) ; t byte thp TL1 = 34H ; t byte cao TH1 = 76H ; (gi tr b nh thi l 7634H) ; Khi ng b Timer1 ; li cho n khi b nh thi m qua 0 ; Dng b nh thi. ; B chn P1.5 nhn Hi, L0 ; Xo c b nh thi ; Np li b nh thi do ch 1 khng t ng np li .

AGAIN:

Li gii:

Ebook Team

www.updatesofts.com

Trong chng trnh trn y ta lu n ch ca SJMP. ch 1 chng trnh phi np li thanh ghi. TH v TL mi ln nu ta mun c sng dng lin tc. Di y l kt qu tnh ton: V FFFFH - 7634H = 89CBH + 1 = 89CCH v 90CCH = 35276 l s ln m xung ng h, tr l 35276 1.085s = 38274ms v tn s l
1 (Hz) = 26127 Hz. 38274

Cng rng phn cao v phn thp ca xung sng vung l bng nhau. Trong tnh ton trn y l cha k n tng ph cc lnh vng lp. 9.1.4.2 Tm cc gi tr cn c np v o b nh thi. gi s rng chng ta bit lng thi gian tr m ta cn th cu hi t ra l l m th n o tm ra c cc gi tr cn thit cho cc thanh thi TH v TL. tnh ton cc gi tr cn c np v o cc thanh ghi TH v TL chng ta h y nhn v o v d sau vi vic s dng tn s dao ng XTAL = 11. 0592MHz i vi h 8051. T v d 9.10 ta c th s dng nhng bc sau tm cc gi tr ca cc thanh ghi TH v TL. 1. Chia thi gian tr cn thit cho 1.0592s 2. Thc hin 65536 - n vi n l gi tr thp phn nhn c t bc 1. 3. Chuyn i kt qu bc 2 sang s Hex vi yyxx l gi tr .hex ban u cn phi np v o cc thanh ghi b nh thi. 4. t TL = xx v TH = yy. V d 9.10: gi s tn s XTAL = 11.0592MHz. H y tm cc gi tr cn c np v o cc thanh ghi v o cc thanh ghi TH v TL nu ta mun thi gian tr l 5s. H y trnh b y chng trnh cho b Timer0 to ra b xung vi rng 5s trn chn P2.3. Li gii: V tn s XTAL = 11.0592MHz nn b m tng sau mi chu k 1.085s. iu c ngha l phi mt rt nhiu khong thi gian 1,085s c c mt xung 5s. c c ta chia 5ms cho 1.085s v nhn c s n = 4608 nhp. nhn c gi tr cn c np v o TL v TH th ta tin h nh ly 65536 tr i 4608 bng 60928. Ta i s n y ra s hex th nh EE00H. Do vy, gi tr np v o TH l EE V TL l 00.
CLR MOV MOV MOV SETB SETB JNB CLR CLR P2.3 TMOD, #01 TL0, #0 TH0, #EEH P2.3 TR0 TF0, AGAIN TR0 TF0 ; Xo bt P2.3 ; Chn Timer0, ch 1 (16 bt) ; Np TL = 00 ; Np TH = EEH ; Bt P2.3 ln cao ; Khi ng b nh thi Timer0 ; Hin th c TF0 cho n khi b m quay v 0 ; Dng b nh thi. ; Xo c TF0 cho vng sau.

HERE:

AGAIN:

V d 9.11: gi s ta c tn s XTAL l 11,0592MHz h y vit chng trnh to ra mt sng vung tn s 2kHz trn chn P2.5. y l trng hp ging vi v d 9.10 ngo i tr mt vic l ta phi chn bt to ra sng vung. Xt cc bc sau:

Ebook Team
a) T =

www.updatesofts.com

1 1 = = 500s l chu k ca sng vung. f 2kHz 1 b) Khong thi gian cao v phn thp l T bng 250s. 2 250s c) S nhp cn trong thi gian l = 230 v gi tr cn np v o cc thanh ghi 1,085s

cn tm l 65536 - 230 = 65306 v dng hex l FF1AH. d) gi tr np v o TL l 1AH v TH l FFH. Chng trnh cn vit l :
AGAIN: BACK: MOV TMOD, #10H MOV TL1, #1AH MOV TH1, #0FFH SETB TR1 JNB TF1, BACK CLR TR1 CPL P1.5 CLR TF1 SUMP AGAIN ; Chn b nh thi Timer0, ch 1 (16 bt) ; Gn gi tr byte thp TL1 = 1AH ; Gn gi tr byte cao TH1 = FFH ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; B bt P1.5 nhn gi tr cao, thp. ; Xo c TF1 ; Np li b nh thi v ch 1 khng t np li.

V d 9.12: Trc ht ta thc hin cc bc sau:


1 = 20s 50Hz 1 b) Tnh thi gian na chu k cho phn cao: T = 10s 2 10s c) Tnh s nhp ng h: n = = 9216 1,085s

a) Tnh chu k sng vung: T =

d) Tnh gi tr cn np v o TH v TL: 65536 - 9216 = 56320 chuyn v dng Hex l DC00H v TH = DCH v TL = 00H.
AGAIN: BACK: MOV TMOD, #10H MOV TL1, #00 MOV TH1, #0DHCH SETB TR1 JNB TF1, BACK CLR TR1 CPL P2.3 CLR TF1 SUMP AGAIN ; Chn b nh thi Timer0, ch 1 (16 bt) ; Gn gi tr byte thp TL1 = 00 ; Gn gi tr byte cao TH1 = DC ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; B bt P1.5 nhn gi tr cao, thp. ; Xo c TF1 ; Np li b nh thi v ch 1 khng t np li.

9.1.4.3 To mt tr thi gian ln. Nh ta bit t cc v d trn l lng thi gian tr cn to ra ph thuc v o hai yu t: a) Tn s thch anh XTAL b) Thanh ghi 16 bt ca b nh thi ch 1 C hai yu t n y nm ngo i kh nng iu chnh ca lp trnh vin 8051. V nh ta bit gi tr ln nht ca tr thi gian c th t c bng cch t c TH v TL

Ebook Team

www.updatesofts.com

bng 0. Nhng iu n y xy ra khi nh vy u khng ? V d 9.13 di y cch l m th n o c gi tr tr thi gian ln. 9.1.4.4 S dng b n tnh ca Windows tm TH v TL. B n tnh Calculator ca Windows c ngay trong my tnh PC ca chng ta v rt d s dng tm ra cc gi tr cho TH v TL. gi s tm gi tr cho TH v TL vi tr thi gian ln l 35.000 nhp ng h vi chu k 1,085s. Ta thc hin cc bc nh sau: 1. Chn my tnh Calculator t Windows v t ch tnh v s thp phn Decimal. 2. Nhp s 35.000 v o t b n phm. 3. Chuyn v ch Hex trn Calculator n cho ta gi tr 88B8H. 4. Chn +/- nhn s i du - 35.000 dng thp phn v chuyn v dng Hex l 7748H. 5. Hai s hex cui l cho TL = 48 v hai s Hex tip theo l cho TH = 77. Ta b quan cc s F pha bn phi trn Calculator v s ca ta l 16 bt. V d 9.13: H y kim tra chng trnh sau v tm tr thi gian theo giy, khng tnh n tng ph cc lnh trong vng lp.
AGAIN: MOV MOV MOV MOV SETB JNB CLR CLR DJNZ TMOD, #10H R3, #200 TL1, #08 TH1, #08 TR1 TF1, BACK TR1 TF1 R3, AGAIN ; Chn b Timer1, ch 1 (16 bt) ; Chn b m gi chm ln ; Np byte thp TL1 = 08 ; Np byte cao TH1 = 01 ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; Xo c b nh thi TF1 ; Nu R3 khng bng khng th np li b nh thi.

BACK:

9.1.5 Ch O. Ch 0 ho n to n ging ch 1 ch khc l b nh thi 16 bt c thay bng 13 bt. B m 13 bt c th gi cc gi tr gia 0000 n 1FFFF trong TH - TL. Do vy khi b nh thi t c gi tr cc i ca n l 1FFFH th n s quay tr v 0000 v c TF c bt ln. 9.1.6 Lp trnh ch 2. Cc c trng v cc php tnh ca ch 2: 1. N l mt b nh thi 8 bt, do vy n ch cho php cc gi tr t 00 n FFH c np v o thanh ghi TH ca b nh thi. 2. Sau khi TH c np vi gi tr 8 bt th 8051 ly mt bn sao ca n a v o TL. Sau b nh thi phi c khi ng. iu n y c thc hin bi lnh SETB TR0 i vi Timer0 v SETB TR1 i vi Timer1 ging nh ch 1. 3. Sau khi b nh thi c khi ng, n bt u m tng ln bng cch tng thanh ghi TL. N m cho n khi i gi tr gii hn FFH ca n. Khi n quay tr v 00 t FFH, n thit lp c b nh thi TF. Nu ta s dng b nh thi Timer0 th l c TF0, cn Timer1 th l c TF1.

Ebook Team

www.updatesofts.com

XTAL oscillator

12

TL reload

TF TF goes high when FFFF 0

C/T = 0

TR

TF

4. Khi thanh ghi TL quay tr v 00 t FFH th TF c bt ln 1 th thanh ghi TL c t ng np li vi gi tr ban u c gi bi thanh ghi TH. lp li qu trnh chng ta n gin ch vic xo c TF v cho n chy m khng cn s can thip ca lp trnh vin np li gi tr ban u. iu n y l m cho ch 2 c gi l ch t np li so vi ch 1 th ta phi np li cc thanh ghi TH v TL. Cn phi nhn mnh rng, ch 2 l b nh thi 8 bt. Tuy nhin, n li c kh nng t np khi t np li th TH thc cht l khng thay i vi gi tr ban u c gi nguyn, cn TL c np li gi tr c sao t TH. Ch n y c nhiu ng dng bao gm vic thit lp tn s baud trong truyn thng ni tip nh ta s bit chng 10. 9.1.5.1 Cc bc lp trnh cho ch 2. to ra mt thi gian tr s dng ch 2 ca b nh thi cn thc hin cc bc sau: 1. Np thanh ghi gi tr TMOD bo b nh thi gian n o (Timer0 hay Timer1) c s dng v ch l m vic n o ca chng c chon. 2. Np li cc thanh ghi TH vi gi tr m ban u. 3. Khi ng b nh thi. 4. Duy tr hin th c b nh thi TF s dng lnh JNB TFx, ch xem n s c bt cha. Thot vng lp khi TF ln cao. 5. Xo c TF. 6. Quay tr li bc 4 v ch 2 l ch t np li. V d 9.14 minh ho nhng iu n y. c c ch ln chng ta c th dng nhiu thanh ghi nh c ch ra trong v d 9.15. V d 9.14: gi s tn s XTAL = 11.0592MHz. H y tm a) tn s ca sng vung c to ra trn chn P1.0 trong chng trnh sau v b) tn s nh nht c th c c bng chng trnh n y v gi tr TH t c iu .
MOV MOV SETB JNB CPL CLR SJMP TMOD, #20H TH1, #5 TR1 TF1, BACK P1.0 TF1 BACK ; Chn Timer1/ ch 2/ 8 bt/ t np li. ; TH1 = 5 ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; Xo c b nh thi TF1 ; Ch 2 t ng np li.

BACK:

Li gii:

Ebook Team

www.updatesofts.com

a) Trc ht n ch ca lnh SJMP. Trong ch 2 ta khng cn phi np li TH v n l ch t np. By gi ta ly (256 - 05).1.085s = 2511.085s = 272.33s l phn cao ca xung. C chu k ca xung l T = 544.66s v tn s l
1 = 1,83597 kHz. T

b) nhn tn s nh nht c th ta cn to T chu k ln nht c th c ngha l TH = 00. Trong trng hp n y ta c T = 2 256 1.085s = 555.52s v tn s nh nht s l
1 = 1,8kHz. T

V d 9.15: H y tm tn s ca xung vung c to ra trn P1.0. Li gii:


AGAIN: MOV TMOD, #2H ; Chn Timer0, ch 1 (8 bt t np li) MOV TH0, #0 ; Np TH0 = 00 MOV R5, #250 ; m cho tr ln ACALL DELAY CPL P1.0 SJMP AGAIN DELAY: SETB TR0 ; Khi ng Timer0 BACK: JNB TF1, BACK ; gi nguyn cho n khi b nh thi quay v 0 CLR TR0 ; Dng Timer0. CLR TF0 ; Xo c TF0 cho vng sau. DJNZ R5, DELAY RET T = 2 (250 256 1.085s) = 1.38.88ms v f = 72Hz.

V d 9.16: gi s ta ang lp trnh ch 2 h y tm cc gi tr (dng Hex) cn np v o TH cho cc trng hp sau:


a) MOV TH1, #200 c) MOV TH1, #-3 e) MOV TH0, #-48 b) MOV TH0, #-60 d) MOV TH1, #-12

Li gii: Chng ta c th s dng b n tnh Calculator ca Windows kim tra kt qu c cho bi trnh hp ng. H y chn Calculator ch Decimal v nhp v o s 200. Sau chn Hex, ri n +/ - nhn gi tr ca TH. H y nh rng chng ta ch s dng ng hai ch s v b qua phn bn tri v d liu chng ta l 8 bt. Kt qu ta nhn c nh sau: Dng thp phn S b hai (gi tr TH)
- 200 - 60 -3 - 12 - 48 38H C4H FDH F4H DOH

9.1.5.2 Cc trnh hp ng v cc gi tr m.

Ebook Team

www.updatesofts.com

V b nh thi l 8 bt trong ch 2 nn ta c th cho trnh hp ng tnh gi tr cho TH. V d, trong lnh MOV TH0, # - 100 th trnh hp ng s tnh ton 100 = 9C v gn TH = 9CH. iu n y l m cho cng vic ca chng ta d d ng hn. V d 9.17: H y tm a) tn s sng vung c to ra trong on m di y v y xung ca sng n y.
MOV TMOD, #2H MOV TH0, # - 150 SETB TR1 SETB P1.3 ACALL DELAY ACALL P1.3 ACALL DELAY SJMP AGAIN SETB JNB CLR CLR RET TR0 TF0, BACK TR0 TF0 ; Chn b Timer0/ ch 2/ (8 bt, t np li). ; Np TH0 = 6AH l s b hai ca - 150 ; Khi ng Timer1 ; P1.3 = 1 ; P1.3 = 0

AGAIN:

BACK:

; Khi ng Timer0 ;gi nguyn cho n khi b nh thi quay v 0 ; Dng Timer0 ; Xo c TF cho vng sau.

Li gii: tm gi tr cho TH ch 2 th trnh hp ng cn thc hin chuyn i s m khi ta nhp v o. iu n y cng l m cho vic tnh ton tr n d d ng. V ta ang s dng 150 xung ng h, nn ta c thi gian tr cho chng trnh con DELAY l 150 1.085s v tn s l f =
1 = 2,048kHz. T

rng trong nhiu tnh ton thi gian tr ta b cc xung ng h lin quan n tng ph cc lnh trong vng lp. tnh ton chnh xc hn thi gian tr v c tn s ta ang cn phi a chng v o. Nu ta dng mt my hin sng s v ta khng nhn c tn s ng nh ta tnh ton th l do tng ph lin quan n cc lnh gi trong vng lp. Trong phn n y ta dng b nh thi 8051 to thi gian tr. Tuy nhin, cng dng mnh hn v sng to hn ca cc b nh thi n y l s dng chng nh cc b m s kin. Chng ta s b n v cng dng ca b m n y phn k tip. 9.2 Lp trnh cho b m. phn trn y ta s dng cc b nh thi ca 8051 to ra cc tr thi gian. Cc b nh thi n y cng c th c dng nh cc b m cc s kin xy ra bn ngo i 8051. Cng dng ca b m/ b nh thi nh b m s kin s c tnh b y phn n y. Chng n o cn lin quan n cng dng c b nh thi nh b m s kin th mi vn m ta ni v lp trnh b nh thi phn trc cng c p dng cho vic lp trnh nh l mt b m ngoi tr ngun tn s. i vi b nh thi/ b m khi dng n nh b nh thi th ngun tn s l tn s thch anh ca 8051. Tuy nhin, khi n c dng nh mt b m th ngun xung tng ni dung cc thanh ghi TH v TL l t bn ngo i 8051. ch b m, h y lu rng cc thanh ghi TMOD v TH, TL cng ging nh i vi b nh thi c b n phn trc, thm ch chng vn c cng tn gi. Cc ch ca cc b nh thi cng ging nhau. 9.2.1 Bt C/T trong thanh ghi TMOD.

Ebook Team

www.updatesofts.com

Xem li phn trn y v bt C/T trong thanh ghi TMOD ta thy rng n quyt nh ngun xung ng h cho b nh thi. Nu bt C/T = 0 th b nh thi nhn cc xung ng h t b giao ng thch anh ca 8051. Ngc li, khi C/T = 1 th b nh thi c s dng nh b m v nhn cc xung ng h t ngun bn ngo i ca 8051. Do vy, khi bt C/T = 1 th b m ln, khi cc xung c a n chn 14 v 15. Cc chn n y c tn l T0 (u v o ca b nh thi Timer0) v T1 (u v o ca b Timer1). Lu rng hai chn n y thuc v cng P3. Trong trng hp ca b Timer0 khi C/T = 1 th chn P3.4 cp xung ng h v b m tng ln i vi mi xung ng h i n t chn n y. Tng t nh vy i vi b Timer1 th khi C/T = 1 vi mi xung ng h i n t P3.5 b m s m tng ln 1. Bng 9.1: Cc chn cng P3 c dng cho Timer0 v Timer1.
Chn 14 15 Chn cng P3.4 P3.5 Chc nng T0 T1 M t u v o ngo i ca b m 0 u v o ngo i ca b m 1

V d 9.18: gi s rng xung ng h c cp ti chn T1, h y vit chng trnh cho b m 1 ch 2 m cc xung v hin th trng thi ca s m TL1 trn cng P2. Li gii:
MOV MOV SETB SETB MOV MOV JNB CLR CLR SJMP TMOD, #01100000B TH1, #0 P3.5 TR1 A, TL1 P2, A TF1, Back TR1 TF1 AGAIN ; Chn b m 1, ch 2, bt C/T = 1 xung ngo i. ; Xo TH1 ; Ly u v o T1 ; Khi ng b m ; Ly bn sao s m TL1 ; a TL1 hin th ra cng P2. ; Duy tr n nu TF = 0 ; Dng b m ; Xo c TF ; Tip tc thc hin

AGAIN: BACK:

trong chng trnh trn v vai tr ca lnh SETB P3.5 v cc cng c thit lp d nh cho u ra khi 8051 c cp ngun nn ta mun P3.5 tr th nh u v o th phi bt n ln cao. Hay ni cch khc l ta phi cu hnh (a ln cao) chn T1 8051 (P3.5) cho php cc xung c cp v o n.
P2
T1 P3.5 to LEDs

Trong v d 9.18 chng ta s dng b Timer1 nh b m s kin n m ln mi khi cc xung ng h c cp n chn P3.5. Cc xung ng h n y c th biu din s ngi i qua cng hoc s vng quay hoc bt k s kin n o khc m c th chuyn i th nh cc xung. Trong v d 9.19 cc thanh ghi TL c chuyn i v m ASCII hin th trn mt LCD.

Ebook Team

www.updatesofts.com

Timer exterrnal input Pin 3.4

overflow flag TH0 TL0 TR0 TF0 goes high when FFFF 0 TF0

Timer exterrnal input Pin 3.5

overflow flag TH1 TR1 TL1 TF1

C/T =1

C/T =1

TF1 goes high when FFFF 0

Hnh 9.5: a) B Timer0 vi u v o ngo i (ch 1) b) B Timer1 vi u v o ngo i (ch 1) V d 9.19: gi s rng mt xung tn s 1Hz c ni ti chn u v o P3.4. H y vit chng trnh hin th b m 0 trn mt LCD. H y t s ban u ca TH0 l - 60. Li gii: hin th s m TL trn mt LCD ta phi thc hin chuyn i gi liu 8 bt nh phn v ASCII.
; Gi chng trnh con khi to CLD ; Chn b m 0, ch 2, bt C/T = 1 ; m 60 xung ; Ly u v o T0 AGAIN: ; Sao chp s m TL0 BACK: ; Gi chng trnh con chuyn i trong cc thanh ghi R2, R3, R4. ACALL CONV ; Gi chng trnh con hin th trn LCD ACALL DISLAY ; Thc hin vng lp nu TF = 0 JNB TF0, BACK ; Dng b m 0 CLR TR0 ; Xo c TF0 = 0 CLR TF0 ; Tip tc thc hin SJMP AGAIN ; Vic chuyn i nh phn v m ASCII khi tr d liu ASCII c trong cc thanh ghi R4, R3, R2 (R2 c LSD) - ch s nh nht. CONV: MOV B, #10 ; Chia cho 10 DIV AB MOV R2, B ; Lu gi s thp MOV B, #10 ; Chia cho 10 mt ln na DIV AB ORL A, #30H ; i n v ASCII MOV R4, A ; Lu ch s c ngha ln nht MSD MOV A, B ; ORL A, #30H ; i s th hai v ASCII MOV R3, A ; Lu n MOV A, R2 ORL A, #30H ; i s th ba v ASCII MOV R2, A ; Lu s ASCII v o R2. RET ACALL MOV MOV SETB SETB MOV LCD-SET UP TMOD, #000110B TH0, # - 60 P3.4 TR0 A, TL0

Ebook Team
8051 P1 1 Hz clock T0 P3.4 to LEDs

www.updatesofts.com

S dng tn s 60Hz ta c th to ra cc giy, pht, gi. Lu rng trong vng u tin, n bt u t 0 v khi RESET th TL0 = 0; gii quyt vn n y h y np TL0 vi gi tr - 60 u chng trnh.
Timer0 exterrnal input Pin 3.4 overflow flag TL0 TR0 TH0 reload TF0 goes high when FF 0 TF0 Timer01e xterrnal input Pin 3.5 overflow flag TL1 TR1 TH1 reload TF1 goes high when FF 0 TF1

C/T =1

C/T =1

Hnh 9.6: B Timer0 vi u v o ngo i (ch 2) Hnh 9.7: B Timer0 vi u v o ngo i (ch 2) Nh mt v d ng dng khc ca b nh thi gian vi bt C/T = 1, ta c th np mt sng vung ngo i vi tn s 60Hz v o b nh thi. Chng trnh s to ra cc n v thi gian chun theo giy, pht, gi. T u v o n y ta hin th ln mt LCD. y s l mt ng h s tuyt vi nhng n khng tht chnh xc. V d n y c th tm thy ph lc Appendix E. Trc khi kt thc chng n y ta cn nhc li hai vn quan trng. 1. Chng ta c th ngh rng cng dng ca lnh JNB TFx, ch hin th mc cao ca c TF l mt s l ng ph thi gian ca BVK. iu ng c mt gii php cho vn n y l s dng cc ngt. Khi s dng cc ngt ta c th i thc hin cc cng vic khc vi BVK. Khi c TF c bt th n bo cho ta bit y l im quan trng v th mnh ca 8051 (m ta s b n chng 11). 2. Chng ta mun bit cc thanh ghi TR0 v TR1 thuc v u. Chng thuc v mt thanh ghi gi l TCON m s c ban sau y (TCON - l thanh ghi iu khin b m (b nh thi)). Bng 9.2: Cc lnh tng ng i vi thanh ghi iu khin b nh thi.
i vi Timer0 SETB TR0 = SETB TCON.4 CLR TR0 = CLR TCON.4 SETB TF = SETB TCON.5 CLR TF0 = CLR TCON.5 i vi Timer1 SETB TR1 = SETB TCON.6

Ebook Team
CLR TR1 = CLR TCON.6 SETB TF1 = SETB TCON.7 CLR TF1 = CLR TCON.7

www.updatesofts.com

9.2.2 Thanh ghi TCON. Trong cc v d trn y ta thy cng dng ca cc c TR0 v TR1 bt/ tt cc b nh thi. Cc bt n y l mt b phn ca thanh ghi TCON (iu khin b nh thi). y l thanh ghi 8 bt, nh c ch ra trong bng 9.2 th bn bt trn c dng lu ct cc bt TF v TR cho c Timer0 v Timer1. Cn bn bt thp c thit lp d nh cho iu khin cc bt ngt m ta s b n chng 11. Chng ta phi lu rng thanh ghi TCON l thanh ghi c th nh a ch theo bt c. Nn ta c th thay cc lnh nh SETB TR1 l CLR TR1 bng cc lnh tng ng nh SET TCON.6 v CLR TCON.6 (Bng 9.2). 9.3 Trng hp khi bt GATE = 1 trong TMOD. Trc khi kt thc chng ta cn b n thm v trng hp khi bt GATE = 1trong thanh ghi TMOD. Tt c nhng g chng ta va ni trong chng n y u gi thit GATE = 0. Khi GATE = 0 th b nh thi c khi ng bng cc lnh SETB TR0 v SETB TR1 i vi Timer0 v Timer1 tng ng. Vy iu g xy ra khi bt GATE = 1? Nh ta c th nhn thy trn hnh 9.8 v 9.9 th nu GATE = 1 th vic khi ng v dng b nh thi c thc hin t bn ngo i qua chn P2.3 v P3.3 i vi Timer0 v Timer1 tng ng. Mc d rng TRx c bt ln bng lnh SETB TRx th cng cho php ta khi ng v dng b nh thi t bn ngo i ti bt k thi im n o thng qua cng tc chuyn mch n gin. Phng php iu khin phn cng dng v khi ng b nh thi nay c th c rt nhiu ng dng. V d, chng hn 8051 c dng trong mt sn phm pht bo ng mi giy dng b Timer0 theo nhiu vic khc. B Timer0 c bt ln bng phn mm qua lnh SETB TR0 v nm ngo i s kim sot ca ngi dng sn phm . Tuy nhin, khi ni mt cng tc chuyn mch ti chn P2.3 ta c th dng v khi ng b nh thi gian bng cch tt bo ng.
XTAL oscillator 12

C/T = 0
T0 Pin Pin 3.4 TR0 Gate

C/T =1

INTO Pin Pin 3.2

Hnh 9.8: B nh thi/ b m 0.

Ebook Team

www.updatesofts.com

XTAL oscillator

12

C/T = 0
T1 Pin Pin 3.5 TR0
Gate

C/T =1

INT1 Pin Pin 3.3

Hnh 9.9: B nh thi/ b m 1.

Ebook Team

www.updatesofts.com

Chng 10 Truyn thng ni tip ca 8051


Cc my tnh truyn d liu theo hai cch: Song song v ni tip. Trong truyn d liu song song thng cn 8 hoc nhiu ng dy dn truyn d liu n mt thit b ch cch xa v i bc. V d ca truyn d liu song song l cc my in v cc cng, mi thit b s dng mt ng cp vi nhiu dy dn. Mc d trong cc trng hp nh vy th nhiu d liu c truyn i trong mt khong thi gian ngn bng cch dng nhiu dy dn song song nhng khong cch th khng th ln c. truyn ddx liu i xa th phi s dng phng php truyn ni tip. Trong truyn thng ni tip d liu c gi i tng bt mt so vi truyn song song th mt hoc nhiu byte c truyn i cng mt lc. Truyn thng ni tip ca 8051 l ch ca chng n y. 8051 c c i sn kh nng truyn thng ni tip, do vy c th truyn nhnh d liu vi ch mt s t dy dn. 10.1 Cc c s ca truyn thng ni tip. Khi mt b vi x l truyn thng vi th gii bn ngo i 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 n y c th l m vic ch khi ng cp bus khng qu d i v cc ng cp d i l m suy gim thm ch l m mo tn hiu. Ngo i ra, ng d liu 8 bt gi thng t. V nhng l do n y, vic truyn thng ni tip c dng truyn d liu gia hai h thng cch xa nhau h ng trm n h ng triu dm. Hnh 10.1 l s truyn ni tip so vi s truyn song song.
Serial Transfer Parallen Transfer
D0

Sender

Receiver

Sender

Receiver

D7

Hnh 10.1: S truyn d liu ni tip so vi s truyn song song. 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 l m 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 l m c cc byte d liu phi c chuyn i th nh cc bt ni tip s dng thanh ghi giao dch v o - song song - ra ni tip. Sau n c th c truyn quan mt ng d liu n. iu n y cng c ngha l u thu cng phi c mt thanh ghi v o - ni tip - ra - song song nhn d liu ni tip v sau gi chng th nh 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 n y thc thi bi mt thit b c tn gi l Modem l ch vit tt ca Modulator/ demodulator (iu ch/ gii iu ch).

Ebook Team

www.updatesofts.com

Khi c ly truyn ngn th tn hiu s c th c truyn nh ni trn, mt dy dn n gin v khng cn iu ch. y l cch cc b n PC v IBM truyn d liu n bo mch m. Tuy nhin, truyn d liu i xa dng cc ng truyn chng hn nh ng thoi th vic truyn thng d liu ni tip yu cu mt modem iu ch (chuyn cc s 0 v 1 v tn hiu m thanh) v sau gii iu ch (chuyn tn hiu m thanh v cc s 0 v 1). Truyn thng d liu ni tip s dng hai phng php ng b v d b. Phng php ng b truyn mt khi d liu (cc k t) ti cng thi im trong khi truyn d b ch truyn tng byte mt. C th vit phn mm s dng mt trong hai phng php n y, nhng chng trnh c th rt d i v bun t. V l do n y m nhiu nh sn xut cho ra th trng nhiu loi IC chuyn dng phc v cho truyn thng d liu ni tip. Nhng IC n y phc v nh cc b thu - pht d b tng hp VART (Universal Asynchronous Receiver Transmitter) v cc b thu - pht ng - d b tng hp UBART (Universal Asynchronous Receiver Transmitter). B vi iu khin 8051 c mt c i sn mt UART m n s c b n k mc 10.3.
n cng B pht B thu

Bn n cng

B pht B thu

B thu B pht

Song cng

B pht B thu

B thu B pht

Hnh 10.2: Truyn d liu n cng, bn cng v song cng. 10.1.1 Truyn d liu bn cng v song cng. Trong truyn d liu nu d liu c th c va pht v va c thu th gi l truyn song cng. iu n y tng phn vi truyn n cng chng hn nh cc my in ch nhn d liu t my tnh. Truyn song cng c th c hai loi l bn song cng v song cng ho n to n ph thuc v o truyn d liu c th xy ra ng thi khng? Nu d liu c truyn theo mt ng ti mt thi im th c gi l truyn bn song cng. Nu d liu c th i theo c hai ng cng mt lc th gi l song cng to n phn. Tt nhin, truyn song cng i hi hai ng d liu (ngo i ng m ca tn hiu), mt pht v mt thu d liu cng mt lc. 10.1.2 Truyn thng ni tip d b v ng khung d liu. D liu i v o u thu ca ng d liu trong truyn d liu ni tip to n l cc s 0 v 1, n tht l kh l m cho d liu y c ngha l nu bn pht v bn thu khng cng thng nht v mt tp cc lut, mt th tc, v cch d liu c ng gi, bao nhiu bt to nn mt k t v khi n o d liu bt u v kt thc. 10.1.3 Cc bt bt u v dng. Truyn thng d liu ni tip d b c s dng rng r i cho cc php truyn hng k t, cn cc b truyn d liu theo khi th s dng phng pht ng b.

Ebook Team

www.updatesofts.com

Trong phng php d b, mi k t c b tr gia cc bt bt u (start) v bt dng (stop). Cng vic n y gi l ng gi d liu. Trong ng gi d liu i vi truyn thng d b th d liu chng hn l cc k t m ASCII c ng gi gia mt bt bt u v mt bt dng. Bt bt u lun lun ch l mt bt, cn bt dng c th l mt hoc hai bt. Bt bt u lun l bt thp (0) v cc bt dng lun l cc bt cao (bt 1). V d, h y xt v d trn hnh 10.3 trong k t A ca m ASCII (8 bt nh phn l 0100 0001) ng gi khung gia mt bt bt u v mt bt dng. Lu rng bt thp nht LSB c gi ra u tin.

Space Goes out last

Stop bt d7

Start Mark bt Goes out first

d0

Hnh 10.3: ng khung mt k t A ca m ASCII (41H) c tn hiu l 1 (cao) c coi nh l mt du (mark), cn khng c tn hiu tc l 0 (thp) th c coi l khong trng (space). Lu rng php truyn bt u vi start sau bt D0, bt thp nht LSB, sau cc bt cn li cho n bt D7, bt cao nht MSB v cui cng l bt dng stop bo kt thc k t A. Trong truyn thng ni tip d b th cc chp IC ngoi vi v cc modem c th c lp trnh cho d liu vi kch thc theo 7 bt hoc 8 bt. y l cha k cc bt dng stop c th l 1 hoc 2 bt. Trong khi cc h ASCII c hn (trc y) th cc k t l 7 bt th ngay nay do vic m rng cc k t ASCII nn d liu nhn chung l 8 bt. Trong cc h c hn do tc chm ca cc thit b thu th phi s dng hai bt dng m bo thi gian t chc truyn byte k tip. Tuy nhin, trong cc my tnh PC hin ti ch s dng 1 bt stop nh l chun. Gi s rng chng ta ang truyn mt tp vn bn cc k t ASCII s dng 1 bt stop th ta c tng cng l 10 bt cho mi k t gm: 8 bt cho k t ASCII chun v 1 bt start cng 1 bt stop. Do vy, i vi mi k t 8 bt th cn thm 2 b v chi l mt 25% tng ph. Trong mt s h thng nhm duy tr tnh to n vn ca d liu th ngi ta cn thm mt bt l (parity bt). iu n y c ngha l i vi mi k t (7 hoc 8 bt tu tng h) ta c thm mt bt ngo i cc bt start v stop. Bt chn l l bt chn hoc bt l. Nu l bt l l s bt ca d liu bao gm c bt chn l s l mt s l cc s 1. Tng t nh vy i vi trng hp bt chn th s bt ca d liu bao gm c bt chn - l s l mt s chn ca cc s 1. V d, k t A ca m ASCII dng nh phn l 0100 0001, c bt 0 l bt chn. Cc chp UART u cho php vic lp trnh bt chn - l v chn, l hoc khng phn bit chn l. 10.1.4 Tc truyn d liu. Tc truyn d liu trong truyn thng d liu ni tip c gi l bt trong giy bps (bt per second). Ngo i ra, cn c s dng mt thut ng rng r i na l tc baud. Tuy nhin, cc tc baud v bps l ho n to n khng bng nhau. iu n y l do tc baud l thut ng ca modem v c nh ngha nh l s ln thay i ca tn hiu trong mt giy. Trong cc modem c nhng trng hp khi mt s thay i ca tn hiu th n truyn v i bt d liu. Nhng i vi mt dy dn th tc baud

Ebook Team

www.updatesofts.com

v bps l nh nhau nn trong cun sch n y chng ta c th dng thay i cc thut ng n y cho nhau. Tc truyn d liu ca mt h my tnh cho ph thuc v o cc cng truyn thng kt ni v o trong h thng o. V d, cc my tnh PC/XT trc y ca IBM c th truyn d liu vi tc 100 n 9600 bps. Tuy nhin, trong nhng nm gn y th cc my tnh PC da trn Pentium truyn d liu vi tc ln ti 56kbps. Cn phi ni thm rng trong truyn thng d liu ni tip d b th tc baud nhn chung l b gii hn 100.000 bps. 10.1.5 Cc chun RS232. cho php tng thch gia cc thit b truyn thng d liu c sn xut bi cc h ng khc nhau th mt chun giao din c gi l RS232 c thit lp bi hip hi cng nghip in t EIA v o nm 19960. Nm 1963 n c sa chnh v c gi l RS232A v v o cc nm 1965 v 1969 th c i th nh RS232B v RS232C. y chng ta n gin ch ni n RS232. Ng y nay RS232 l chun giao din I/O v o - ra ni tip c s dng rng r i nht. Chun n y c s dng trong my tnh PC v h ng lot cc thit b khc nhau. Tuy nhin, v n c thit lp trc h l-gc TTL rt lu do vy in p u v o v u ra ca n khng tng thch vi mc TTL. Trong RS232 th mc 1 c biu din bi - 3v n 25v trong khi mc 0 th ng vi in p + 3v n +25v l m cho in p - 3v n + 3v l khng xc nh. V l do n y 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. Cc chp IC MAX232 nhn chung c coi nh c b iu khin ng truyn. Kt ni RS232 n MAX232 c tho thun phn 10.2. 10.1.6 Cc chn ca RS232. Bng 10.1 cung cp s chn ca cp RSE232 v cc tn gi ca chng thng c gi l u ni DB - 25. Trong l hiu th u ni cm v o (u c) gi l DB - 25p v u ni ci c gi l DB - 25s.
1 13

14

25

Hnh 10.4: u ni DB - 25 ca RS232. V khng phi tt c mi chn u c s dng trong cp cu my tnh PC, nn IBM a ra phin bn ca chun v o/ra ni tip ch s dng c 9 chn gi l DB 9 nh trnh b y bng 10:2 v hnh 10.5. Bng 10.1: Cc chn ca RS232, 25 chn (DB - 25).
S chn 1 2 3 4 5 6 M t t cch ly (Protective Cround) D liu c truyn TxD (TrNsmitted data) D liu c phn RxD (Received data) Yu cu gi RTS (Request To Send) Xo gi CIS (Clear To Send) D liu sn s ng DSR (Data Set Ready)

Ebook Team
7 8 9/10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

www.updatesofts.com
t ca tn hiu GND (Signal Cround) Tch tn hiu mng d liu DCD (Data Carrier Detect) Nhn kim tra d liu (Received for data testing) Cha dng Tch tn hiu mng d liu th cp (Secondary data carrier detect) Xo nhn d liu th cp (Secondary Clear to Send) D liu c truyn th cp (Secondary Transmit Signal Element Timing) Truyn phn chia thi gian phn t tn hiu (Transmit Signal Element Timing) D liu c nhn th cp (Secondary Received data) Nhn phn chia thi gian phn t tn hiu (Receiveo Signal Element Timing) Cha dng Yu cu nhn th cp (Secondary Request to Send) u d liu sn s ng (Data Terminal Ready) Pht hin cht lng tn hiu (Signal Qualyty Detector) Bo chung (Ring Indicator) Chn tc tn hiu d liu (Data Signal Rate Select) Truyn phn chia thi gian tn hiu (Transmit Signal Element Timing) Cha dng

10.1.7 Phn loi truyn thng d liu. Thut ng hin nay phn chia thit b truyn thng d liu th nh mt thit b u cui d liu DTE (Data Terminal Equipment) hoc thit b truyn thng d liu DCE (Data Communication Equipment). DTE ch yu l cc my tnh v cc thit b u cui gi v nhn d liu, cn DCE l thit b truyn thng chng hn nh cc modem chu trch nhim v truyn d liu. Lu rng tt c mi nh ngha v chc nng cc chn RS232 trong cc bng 10.1 v 10.2 u xut pht t gc ca DTE. Kt ni n gin nht gia mt PC v b vi iu khin yu cu ti thiu l nhng chn sau: TxD, RxD v t nh ch ra hnh 10.6. rng trn hnh n y th cc chn TxD v RxD c i cho nhau. Hnh 10.5: S u ni DB - 9 ca RS232.
1 5

Bng 10.2: Cc tn hiu ca cc chn u ni DB - 9 trn my tnh IBM PC.

Ebook Team
M t 1 2 3 4 5 6 7 8 9 Da ta carrier detect (DCD) Received data (RxD) Transmitted data (TxD) Data terminal ready (DTR) Signal ground (GND) Data set ready (DSR) Request to send (RTS) Clear to send (CTS) Ring indicator (RL)

www.updatesofts.com
S chn Trnh tn hiu mng d liu D liu c nhn D liu c gi u d liu sn s ng t ca tn hiu D liu sn s ng Yu cu gi Xo gi Bo chung

DTE
TxD RxD TxD RxD

DTE

ground Hnh 10.6: Ni kt khng modem. 10.1.8 Kim tra cc tn hiu bt tay ca RS232. bo m truyn d liu nhanh v tin cy gia hai thit b th vic truyn d liu phi c phi hp tt. Chng hn nh trong trng hp ca my in, do mt thc t l trong truyn thng d liu ni tip thit b thu c th khng c ch cha d liu, do phi c cch bo cho bn pht dng gi d liu. Rt nhiu chn ca RS232 c dng cho cc tn hiu bt tay. Di y l m t v chng nh l mt tham kho v chng c th c b qua v chng khng c h tr bi chp UART ca 8051. 1. u d liu sn s ng DTR: Khi thit b u cui (hoc mt cng COM ca PC) c bt th sau khi t kim tra n gi mt tn hiu DTR bo rng n sn s ng cho truyn thng. Nu c mt ci g trc trc vi cng COM th tn hiu n y khng c kch hot. y l tn hiu tch cc mc thp v c th c dng bo cho modem bit rng my tnh ang hot ng v ang sn s ng. y l chn u ra t DTC (cng COM ca PC) v chn u ra ca modem. 2. D liu sn s ng QSR: Khi DCE (chng hn modem) c bt ln v chy xong chng trnh t kim tra th n i hi DSR bo rng c sn s ng cho truyn thng. Do vy, n l u ra ca modem (DCE) v u v o ca PC (DTE). y l tn hiu tch cc mc thp. Nu v l do n o m modem khng kch hot bo cho PC bit (hoc thit b u cui) rng n khng th nhn hoc gi d liu. 3. Yu cu gi RTS: Khi thit b DTE (chng hn mt PC) c mt byte d liu cn gi th n yu cu RTS bo cho modem bit rng n c mt byte cn phi gi i. RTS l mt u ra tch cc mc thp t DTE v mt u v o ti modem. 4. Tn hiu xo gi CTS: p li RTS th khi modem c cha d liu m n cn nhn th n gi mt tn hiu CTS ti DTE (PC) bo rng by gi n

Ebook Team

www.updatesofts.com

c th nhn d liu. Tn hiu u v o n y ti DTE dng khi ng vic truyn d liu. 5. Tch tn hiu mang d liu DCD: Modem yu cu tn hiu DCD bo cho DTE bit rng tch c mt tn hiu mang d liu hp l v rng kt ni gia n v modem khc c thit lp. Do vy, DCD l mt u ra ca modem v u v o ca PC (DTE). 6. Bo chung RI: Mt u ra t modem (DCE) v mt u v o ti my tnh PC (DTE) bo rng in thoi ang bo chung. N tt v bt ng b vi m thanh ang chung. Trong 6 tn hiu bt tay th tn hiu n y l t c dng nht do mt thc t l cc modem chu trch nhim v tr li in thoi. Tuy nhin, nu trong mt h thng cho m PC phi chu trch nhim tr li in thoi th tn hiu n y c th c dng. T m t trn th vic truyn thng PC v modem c th c tm tt nh sau: Trong khi cc tn hiu DTR v DSR c dng bi PC v modem bo rng chng ang hot ng tt th cc tn hiu RTS v CTS thc t ang kim tra lung d liu. Khi PC mun gi d liu th n yu cu RTS v p li, nu modem sn s ng (c ch cha d liu) nhn d liu th n gi li tn hiu CTS. Cn nu khng c ch cho d liu th modem khng kch hot CTS v PC thi khng yu cu DTR v th li. Cc tn hiu RTS v CTS cng c ci nh tn hiu lung iu khin phn cng. n y kt thc s m tt 9 chn quan trng nht ca cc tn hiu bt tay RS232 v cc tn hiu TxD, RxD v t (Ground). Tn hiu Ground n y cng c coi nh l tn hiu SG - t ca tn hiu. 10.1.9 Cc cng COM ca IBM PC v tng thch. Cc my tnh IBM PC v tng thch da trn cc b vi x l 86 (8086, 286, 384, 486 v Pentium) thng c hai cng COM. C hai cng COM u c cc u ni kiu RS232. Nhiu my tnh PC s dng mi u ni mt kiu cm DB - 25 v DB 9. Trong nhng nm gn y, cng COM1 c dng cho chut v COM2 c dng cho cc thit b chng hn nh Modem. Chng ta c th ni cng ni tip ca 8051 n cng COM2 ca mt my tnh PC cho cc th nghim v truyn thng ni tip. Vi nn kin thc v truyn thng ni tip n y chng ta sn s ng l m vic vi 8051. 10.2 Ni ghp 8051 ti RS232. Nh ni phn 10.1, chun RS232 khng tng thch vi mc l-gc TTL, do vy n yu cu mt b iu khin ng truyn chng hn nh chp MAX232 chuyn i cc mc in p RS232 v cc mc TTL v ngc li. Ni dung chnh ca phn n y l b n v ni ghp 8051 vi cc u ni RS232 thng qua chp MAX232. 10.2.1 Cc chn RxD v TxD trong 8051. 8051 c hai chn c dng chuyn cho truyn v nhn d liu ni tip. Hai chn n y 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 n y 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. 10.2.2 B iu khin ng truyn MAX232. V RS232 khng tng thch vi cc b vi x l v vi iu khin hin nay nn ta cn mt b iu khin ng truyn (b chuyn i in p) chuyn i cc tn hiu RS232 v cc mc in p TTL s c chp nhn bi cc chn TxD v RxD ca 8051. Mt v d ca mt b chuyn i nh vy l chp MAX232 t h ng Maxim a ch Website ca h ng www.maxim-ic.com. B MAX232 chuyn i t cc mc in

Ebook Team

www.updatesofts.com

p RS232 s v mc in p TTL v ngc li. Mt im mnh ca chp MAX232 l n dng in p ngung +5v cng vi in p ngun ca 8051. Hay nic cch khc vi ngun in p nui +5 chng ta m c th nui 8051 v MAX232 m khng phi dng hai ngun nui khc nhau nh ph bin trong cc h thng trc y. B iu khin MAX232 c hai b iu khin thng nhn v truyn d liu nh trnh b y trn hnh 10.7. Cc b iu khin ng c dng cho TxD c gi l T1 v T2. Trong nhiu ng dng th ch c mt cp c dng. V d T1 v R1 c dng vi nhau i vi TxD v RxD ca 8051, cn cp R2 v T2 th cha dng n. rng trong MAX232 b iu khin T1 c gn T1in v T1out trn cc chn s 11 v 1 tng ng. Chn T1in l pha TTL v c ni ti chn RxD ca b vi iu khin, cn T1out l pha RS232 c ni ti chn RxD ca u ni DB ca RS232. B iu khin ng R1 cng c gn R1in v R1out trn cc chn s 13 v 12 tng ng. Chn R1in (chn s 13) l pha RS232 c ni ti chn TxD ca u ni DB ca RS232 v chn R1out (chn s 12) l pha TTL m n c ni ti chn RxD ca b vi iu khin, xem hnh 10.7. rng ni ghp modem khng l ni ghp m chn TxD bn pht c ni vi RxD ca bn thu v ngc li.
Vcc + C1 + C2 11 2 12 T1IIN R1OUT T2IIN R2OUT 15 16 2 6 T1OUT R1IIN T2OUT R2IIN C3 + C4 + 14 13 7 8 8051
P3.1 11 TxD P3.0 RxD

2 3

Max232

2 5

10

4 2 DB - 9

2 10

TTL side

Rs232 side

Hnh 10.7: a) S bn trong ca MAX232 b) S ni ghp ca MAX232 vi 8051 theo moden khng. B MAX232 i hi 4 t in gi tr t 1 n 22F. gi tr ph bin nht cho cc t n y l 22F. 10.2.3 B iu khin MAX232. tit kim khng gian trn bng mch, nhiu nh thit k s dng chp MAX232 t h ng Maxim. B iu khin MAX232 thc hin cng nhng cng vic nh MAX232 li khng cn n cc t in. Tuy nhin, chp MAX232 li t hn rt nhiu so vi MAX233 khng c s chn ging nhau (khng tng thch). Chng ta khng th ly mt chp MAX232 ra khi mt bng mch v thay v o RS233. H y xem hnh 10.8 thy MAX233 khng cn n t.
Vcc 7 11 15 16 10 T1OUT R1IIN T2OUT 8051
P3.1 11 TxD P3.0 RxD

13 14 12 17 2 3 1 T1IIN

2 3

Max232

5 4

2 5 2 DB - 9

R1OUT T2IIN

5 4 18

T1IIN

10

Ebook Team

www.updatesofts.com

Hnh 10.8: a) S bn trong ca MAX233. b) S ni ghp ca MAX233 vi 8051 theo modem khng. 10.3 Lp trnh truyn thng ni tip cho 8051. Trong phn n y chng ta s nghin cu v cc thanh ghi truyn thng ni tip ca 8051 v cch lp trnh chng truyn v nhn d liu ni tip. V cc my tnh IBM PC v tng thch c s dng rt rng r i truyn thng vi cc h da trn 8051, do vy ta ch yu tp trung v o truyn thng ni tip ca 8051 vi cng COM ca PC. cho php truyn d liu gia my tn PC v h thng 8051 m khng c bt k li n o th chng ta phi bit chc rng tc baud ca h 8051 phi ph hp vi tc baud ca cng COM my tnh PC c cho trong bng 10.3. Chng ta c th kim tra cc tc baud n y bng cch v o chng trnh Windows Terminal v bm chut ln tu chn Communication Settings. Chng trnh Terminal.exe ca Window3.1 cng l m vic tt trn Windows95 v Window98. Trong Window95 v cao hn ta c th s dng chc nng Hyperterrminal. H m Hyperterminal h tr cc tc Baud cao hn nhiu so vi cc tc cho trong bng 10.3. Bng 10.3: Cc tc Baud ca my tnh PC486 v Pentium cho trong BIOS.
100 150 300 600 1200 2400 4800 9600 19200

V d 10.1: Vi tn s XTAL l 11.0592MHz. H y tm gi tr TH1 cn thit c tc baud sau: a) 9600 b) 2400 c) 1200 Li gii: Vi tn s XTAL l 11.0592MHz th ta c tn s chu trnh my ca 8051 l 11.0592MHz : 12 = 921.6kHz v sau ly 921.6kHz/32 = 28.800Hz l tn s c cp bi UART ti b nh thi Timer1 thit lp tc . a) 28.800/3 = 9600 trong - 3 = FD c np v o TH1 b) 28.800/12 = 2400 trong - 12 = F4 c np v o TH1 c) 28.800/24 = 1200 trong - 24 = F8 c np v o TH1 Lu rng vic chia 1/12 ca tn s thch anh cho 32 l gi tr mc nh khi kch hot chn RESET ca 8051. Chng ta c th thay i gi tr c i t mc nh n y. iu n y s c gii thch cui chng.
28800Hz

XTAL oscillator

12

921.6kHz

32 by UART

Ebook Team

www.updatesofts.com

10.3.1 Tc baud trong 8051. 8051 truyn v nhn d liu ni tip theo nhiu tc khc nhau. Tc truyn ca n c th lp trnh c. iu y thc hin nh s tr gip ca b nh thi Timer1. Trc khi ta i v o b n cch l m iu nh th n o th ta s xt quan h gia tn s thch anh v tc baud trong 8051. Nh ta ni chng trc y th 8051 chia so thch anh cho 12 ly tn s chu trnh my. Trong trng hp XTAL = 11.0592MHz th tn s chu trnh l 921.6kHz (11.0592MHz : 12 = 921.6kHz). Mch in UART truyn thng ni tip ca 8051 li chia tn s chu trnh my cho 32 mt ln na trc khi n c dng bi b nh thi gian Timer1 to ra tc baud. Do vy, 921.6kHz : 32 = 28.800Hz. y l s ta s dng trong c phn n y tm gi tr ca Timer1 t tc baud. Mun Timer1 t tc baud th n phi c lp trnh v ch l m vic mode2, l ch thanh ghi 8 bt t ng np li. c tc baud tng thch vi PC ta phi np TH1 theo cc gi tr cho trong bng 10.3. V d 10.1 trnh b y cch kim tra gi tr d liu cho trong bng 10.3. Bng 10.3: Cc gi tr ca thanh ghi TH1 trong Timer1 cho cc tc baud khc nhau.
Tc baud 9600 4800 2400 1200 TH1 (thp phn) - 3 - 6 - 12 - 24 TH1 (s Hex) FD FA F4 F8

10.3.2 Thanh ghi SBUF. SBUF l thanh ghi 8 bt c dng ring cho truyn thng ni tip trong 8051. i vi mt byte d liu cn phi c truyn qua ng TxD th n phi c t trong thanh ghi SBUF. Tng t nh vy SBUF gi mt byte d liu khi n c nhn b ng RxD ca 8051. SBUF c th c truy cp bi mi thanh ghi bt k trong 8051. Xt mt v d di y thy SBUF c truy cp nh th n o?
MOV MOV MOV SBUF, # D SBUF, A A, SBUF ; Np v o SBUF gi tr 44H m ACSII ca k t D. ; Sao thanh ghi A v o SBUF. ; Sao SBUF v o thanh ghi A.

Khi mt byte c ghi v o thanh ghi SBUF n c ng khung vi cc bt Start v Stop v ng truyn ni tip quan chn TxD. Tng t nh vy, khi cc bt c nhn ni tip t RxD th 8051 m khung n loi tr cc bt Start v Stop ly ra mt byte t d liu nhn c v t n v o thanh ghi SBUF. 10.3.3 Thanh ghi iu khin ni tip SCON. Thanh ghi SCON l thanh ghi 8 bt c dng lp trnh vic ng khung bt bt u Start, bt dng Stop v cc bt d liu cng vi vic khc. Di y l m t cc bt khc nhau ca SCON:
SM0 SM1 SM2 REN TB8 RB8 T1 R1

SM0 SM1 SM2 REN TB8 RB8

SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2

S xc nh ch l m vic cng ni tip S xc nh ch l m vic cng ni tip Dng cho truyn thng gia cc b vi x l (SM2 = 0) Bt/xo bng phn mm cho php/ khng cho thu Khng s dng rng r i Khng s dng rng r i

Ebook Team

www.updatesofts.com

Hnh 10.2: Thanh ghi iu khin cng ni tip SCON. 10.3.3.1 Cc bt SM0, SM1. y l cc bt D7 v D6 ca thanh ghi SCON. Chng c dng xc nh ch ng khung d liu bng cch xc nh s bt ca mt k t v cc bt Start v Stop. Cc t hp ca chng l : SM0 0 0 1 1 SM1 0 1 0 1 Ch ni tip 0 Ch ni tip 1, 8 bt d liu, Start, Stop Ch ni tip 2 Ch ni tip 3

Trong bn ch ta ch quan tm n ch 1, cc ch khc c gii thch Appendisk A3. Trong thanh ghi SCON khi ch 1 c chn th d liu c ng khung gm 8 bt d liu, 1 bt Start, 1 bt Stop tng thch vi cng COM ca IBM PC v cc PC tng thch khc. Quan trng hn l ch ni tip 1 cho php tc baud thay i v c thit lp bi Timer1 ca 8051. Trong ch ni tip 1 th mi k t gm c 10 bt c truyn trong c bt u l bt Start, sau l 8 bt d liu v cui cng l bt Stop. 10.3.3.2 Bt SM2. Bt SM2 l bt D5 ca thanh ghi SCON. Bt n y cho php kh nng a x l ca 8051 v n nm ngo i phm vi trnh b y ca chng n y. i vi cc ng dng ca chng ta t SM2 = 0 v ta khng s dng 8051 trong mi trng a x l. 10.3.3.3 Bt REN. y l bt cho php thu (Receive Enable), bt D4 ca thanh ghi SCON. Bt REN cng c tham chiu nh l SCON.4 v SCON l thanh ghi c th nh a ch theo bt. Khi bt REN cao th n cho php 8051 thu d liu trn chn RxD ca n. V kt qu l nu ta mun 8051 va truyn v nhn d liu th bt REN phi c t ln 1. Khi t REN th b thu b cm. Vic t REN = 1 hay REN = 0 c th t c bng lnh SETB SCON.4 v CLR SCON.4 tng ng. Lu rng cc lnh n y s dng c im nh a ch theo bt ca thanh ghi SCON. Bt n y c th c dng khng ch mi vic nhn d liu ni tip v n l bt cc k quan trng trong thanh ghi SCON. 10.3.3.4 Bt TB8 v RB8. Bt TB8 l bt SCON.3 hay l bt D3 ca thanh ghi SCON. N c dng cho ch ni tip 2 v 3. Ta t TB8 v n khng c s dng trong cc ng dng ca mnh. Bt RB8 (bt thu 8) l bt D2 ca thanh ghi SCON. Trong ch ni tip 1 th bt n y nhn mt bn sao ca bt Stop khi mt d liu 8 bt c nhn. Bt n y cng

Ebook Team

www.updatesofts.com

nh bt TB8 rt him khi c s dng. Trong cc ng dng ca mnh ta t RB8 = 0 v n c s dng cho ch ni tip 2 v 3. 10.3.3.5 Cc bt TI v RI. Cc bt ngt truyn TI v ngt thu RI l cc bt D1 v D0 ca thanh ghi SCON. Cc bt n y l cc k quan trng ca thanh ghi SCON. Khi 8051 kt thc truyn mt k t 8 bt th n bt TI bo rng n sn s ng truyn mt byte khc. Bt TI c bt ln trc bt Stop. Cn khi 8051 nhn c d liu ni tip qua chn RxD v n tch cc bt Start v Stop ly ra 8 bt d liu t v o SBUF, sau khi ho n tt n bt c RI bo rng n nhn xong mt byte v cn phi ly i ko n b mt c RI c bt khi ang tch bt Stop. Trong cc v d di y s ni v vai tr ca cc bt TI v RI. 10.3.4 Lp trnh 8051 truyn d liu ni tip. Khi lp trnh 8051 truyn cc byte k t ni tip th cn phi thc hin cc bc sau y: 1. Np thanh ghi TMOD gi tr 204 bo rng s dng Timer1 ch 2 thit lp ch baud. 2. Np thanh ghi TH1 cc gi tr cho trong bng 10.4 thit lp ch baud truyn d liu ni tip (vi gi thit tn s XTAL = 11.0592MHz). 3. Np thanh ghi SCON gi tr 50H bo ch ni tip 1 ng khung 8 bt d liu, 1 bt Start v 1 bt Stop. 4. Bt TR1 = 1 khi ng Timer1. 5. Xo bt TI bng lnh CLR TI 6. Byte k t cn phi truyn c ghi v o SBUF. 7. Bt c TI c hin th bng lnh JNB TI, xx bo k t c truyn ho n tt cha. 8. truyn k t tip theo quay tr v bc 5. V d 10.2 trnh b y chng trnh truyn ni tip vi tc 4800 baud. V d 10.3 trnh b y cch truyn lin tc ch YES. V d 10.2: H y vit chng trnh cho 8051 truyn ni tip mt k t A vi tc 4800 baud lin tc. Li gii:
MOV MOV MOV SETB MOV JNB CLR SJMP TMOD, #20H TH1, # - 6 SCON, #A TR1 SBUF, #A TI, HERE TI AGAIN ; Chn Timer1, ch 2 (t ng np li) ; Chn tc 4800 baud ; Truyn 8 bt d liu, 1 bt Stop cho php thu ; Khi ng Timer1 ; Cn truyn k t A ; Ch n bt cui cng ; Xo bt TI cho k t k tip ; Tip tc gi li ch A

AGAIN: HERE:

V d 10.3: H y vit chng trnh truyn ch YES ni tip lin tc vi tc 9600 baud (8 bt d liu, 1 bt Stop). Li gii:
MOV MOV MOV SETB AGAIN: MOV ACALL TMOD, #20H TH1, # - 3 SCON, #50H TR1 A, # "Y" TRANS ; Chn b Timer1, ch 2 ; Chn tc 9600 baud ; Truyn 8 bt d liu, 1 bt Stop cho php thu ; Khi ng Timer1 ; Truyn k t Y

Ebook Team
MOV A, # "E" ACALL TRANS MOV A, # "S" ACALL TRANS SJMP AGAIN ; Chng trnh con truyn d liu ni tip. TRANS: MOV SBUF, A HERE: JNB TI, HERE CLR TI RET ; Truyn k t E ; Truyn k t S ; Tip tc

www.updatesofts.com

; Np SBUF ; Ch cho n khi truyn bt cui cng ; Ch sn cho mt byte k tip

10.3.4.1 Tm quan trng ca c TI. hiu tm quan trng ca c ngt TI ta h y xt trnh t cc bc di y m 8051 phi thc hin khi truyn mt k t quan ng TxD: 1. Byte k t cn phi truyn c ghi v o SBUF. 2. Truyn bt Start 3. Truyn k t 8 bt ln lt tng bt mt. 4. Bt Stop c truyn xong, trong qu trnh truyn bt Stop th c TI c bt (TI = 1) bi 8051 bo sn s ng truyn k t k tip. 5. Bng vi hin th c TI ta bit chc rng ta khng np qu v o thanh ghi SBUF. Nu ta np mt byte v o SBUF trc ghi TI c bt th phn d liu ca byte trc cha truyn ht s b mt. Hay ni cch khc l 8051 bt c TI khi truyn xong mt byte v n sn s ng truyn byte k tip. 6. Sau khi SBOF c np mt byte mi t c nhm c th truyn byte mi n y. T phn trnh b y trn y ta kt lun rng bng vic kim tra bt c ngt TI ta bit c 8051 c sn s ng truyn mt byte khc khng. Quan trng hn cn phi ni y l bt c TI c bt bi t 8051 khi n ho n tt vic truyn mt byte d liu, cn vic xo n th phi c lp trnh vin thc hin bng lnh CLR TI. Cng cn lu rng, nu ta ghi mt byte v o thanh ghi SBUF trc khi c TI c bt th s c nguy c mt phn d liu ang truyn. Bt c TI c th kim tra bng lnh JNB TI hoc c th s dng ngt nh ta s thy trong chng 11. 10.3.5 Lp trnh 8051 nhn d liu. Trong lp trnh ca 8051 nhn cc byte k t ni tip th phi thc hin cc bc sau y. 1. Np gi tr 20H v o thanh ghi TMOD bo s dng b Timer1, ch 2 (8 btm, t ng np li) thit lp tc baud. 2. Np TH1 cc gi tr cho trong bng 10.4 to ra tc baud vi gi thit XTAL = 10.0592MHz. 3. Np gi tr 50H v o thanh ghi SCON bo s dng ch truyn ni tip 1 l d liu c ng gi bi 8 bt d liu, 1 bt Start v 1 bt Stop. 4. Bt TR1 = 1 khi ng Timer1. 5. Xo c ngt RI bng lnh CLR RI 6. Bt c RI c hin th bng lnh JNB RI, xx xem to n b k t c nhn cha. 7. Khi RI c thit lp th trong SBUF c 1 byte. Cc ni dung ca n c ct lu v o mt ni an to n. 8. nhn mt k t tip theo quay tr v bc 5. V d 10.4: H y lp trnh cho 8051 nhn cc byte d liu ni tip v t chng v o cng P1. t tc baud l 4800, 8 bt d liu v 1 bt Stopl. Li gii:

Ebook Team
MOV MOV MOV SETB HERE: JNB MOV MOV CLR SJMP TMOD, #20H TH1, # - 6 SCON, #50H TR1 R1, HERE A, SBUF P1, A RI HERE

www.updatesofts.com
; Chn b Timer1, ch 2 (t ng np li) ; Chn tc 4800 baud ; Chn khung d liu 8 bt Stop, bt. ; Khi ng b Timer1 ; i nhn to n b l t v o ht ; Lu ct k t v o thanh A ; Gi ra cng P.1 ; Sn s ng nhn byte k tip ; Tip tc nhn d liu

V d 10.5: Gi s cng ni tip ca 8051 c ni v o cng COM ca my tnh IBM CP v m ang s chng trnh Termina. Exe gi v nhn d liu ni tip. Cng P1 v P2 ca 8051 c n ti cc LED v cc cng tc chuyn mch tng ng. H y vit mt chng trrnh cho 8051. a) Gi thng bo We Are Ready (chng ti sn s ng) ti my tnh PC. b) Nhn bt k d liu g c PC gi n v chuyn n cc n LED ang ni n cc chn ca cng P1. c) Nhn d liu trn cc chuyn mch c ni ti P2 v gi n ti my tnh PC ni tip. Chng trnh phi thc hin mt ln a), nhng b) v c) chy lin tc vi tc 4800 baud. Li gii:
ORG MOV MOV MOV MOV SETB MOV CLR MOVC JZ ACALL INC SJMP MOV ACALL ACALL MOV SJMP 0 P2, #0FFH TMOD, #20H TH1, # 0FAH SCON, #50H ; Ly cng P2 l m cng v o ; Chn b Timer1, ch 2 (t ng np li) ; Chn tc 4800 baud ; To khung d liu 8 bt, 1bt Stop cho php REN. ; Khi ng b Timer1 ; Np con tr n thng bo

H - 1:

B - 1:

; SEND: H- 2: ; RECV:

; RECV:

TR1 DPTR, #MYDATA A A, A + DPTR ; Ly k t DPTR ; Nu k t cui cng mun gi ra SEND ; Nu cha th gi chng trnh con SEND DPTR ; Chy tip H-1 ; Quay li vng lp A, P2 ; c d liu trn cng P2 RECV ; Truyn n ni tip RECV ; Nhn d liu ni tip F1, A ; Hin th n ra cc n LED B-1 ; li vng lp v hn Truyn d liu ni tip ACC c d liu MOV SBUF, A ; Np d liu JNB TI, H - 2 ; li vng lp v hn CLR TI ; Truyn d liu ni tip RET ; Nhn d liu Truyn d liu ni tip ACC c d liu JNB RI, RECV ; Np d liu MOV A, SBUF ; li y cho n khi gi bt cui cng CLR RI ; Sn s ng cho k t mi RET ; Tr v mi gi Nhn d liu ni tip trong ACC JNB RI, RECV ; i y nhn k t MOV A, SBUF ; Lu n v o trong ACC

Ebook Team
CLR RET DB END RI

www.updatesofts.com
; Sn s ng nhn k t m tip theo ; Tr v ni gi Ngn xp cha thng bo Chng ti sn s ng 0 8051 To PC COM port P1 LED

; MYDATA:

TxD RxD

P2

SW

10.3.5.1 Tm quan trng ca c RT. Khi nhn cc bt quan chn RxD ca n th 8051 phi i quan cc bc sau: 1. N nhn bt Start bo rng bt sau n l bt d liu u tin cn phi nhn. 2. K t 8 bt c nhn ln lt tng bt mt. Khi bt cui cng c nhn th mt byte c hnh th nh v t v o trong SBUF. 3. Khi bt Stop c nhn th 8051 bt RT = 1 bo rng to n b k t c nhn v phi ly i trc khi n b byte mi nhn v ghi ln. 4. Bng vic kim tra bt c RI khi n c bt ln chng ta bit rng mt k t c nhn v ang nm trong SBUF. Ti sao ni dung SBUF v o ni an to n trong mt thanh ghi hay b nh khc trc khi n b mt. 5. Sau khi SBUF c ghi v o ni an to n th c RI c xo v 0 bng lnh CLR RI nhm cho cc k t k tip nhn c a v o SBUF. Nu khng l m c iu n y th gy ra mt k t va nhn c. T m t trn y ta rt ra kt lun rng bng vic kim tra c RI ta bit 8051 nhn c mt byte k t cha hay ri. Nu ta khng sao c ni dung ca thanh ghi SBUF v o ni an to n th c nguy c ta b mt k t va nhn c. Quan trng hn l phi nh rng c RI c 8051 bt ln nh lp trnh vin phi xo n bng lnh CLR RI. Cng nn nh rng, nu ta sao ni dung SBUF v o ni an to n trc khi RI c bt ta mo him sao d liu cha y . Bt c RI c th c kim tra bi lnh JNB RI, xx hoc bng ngt s c b n chng 11. 10.3.6 Nhn i tc baud trong 8051. C hai cch tng tc baud truyn d liu trong 8051. 1. S dng tn s thch anh cao hn. 2. Thay i mt bt trong thanh ghi iu khin cng sut PCON (Power Control) nh ch ra di y.
D7 SM0D GF0 GF0 PD D0 IDL

Phng n mt l khng thc thi trong nhiu trng hp v tn s thch anh ca h thng l c nh. Quan trng hn l n khng kh thi v tn s thch anh mi khng tng thch vi tc baud ca cc cng COM ni tip ca IBM PC. Do vy, ta s tp trung thm d phng n hai, c mt cch nhn i tn s baud bng phn mm trong 8051 vi tn s thch anh khng i. iu n y c thc hin nh thanh ghi PCON, y l thanh ghi 8 bt. Trong 8 bt n y th c mt s bt khng c dng iu khin cng sut ca 8051. Bt d nh cho truyn thng l D7, bt SMOD (ch ni tip - serial mode). Khi 8051 c bt ngun th bt SMOD ca thanh ghi PCON

Ebook Team

www.updatesofts.com

mc thp 0. Chng ta c th t n ln 1 bng phn mm v do vy nhn i c tc baud. Th t cc lnh c s dng thit lp bt D7 ca PCON ln cao nh sau (thanh ghi PCON l th nh a ch theo bt).
MOV SETB MOV A, PCON ACC.7 PCON, A ; t bn sao ca PCON v o ACC ; t D7 ca ACC ln 1. ; By gi SMOD = 1 m khng thay i bt k bt n o khc.

bit tc baud c tng ln gp i nh th n o bng phng php n y ta xt vai tr ca bt SMOD trong PCON khi n l 0 v 1. a) Khi SMOD = 0. Khi SMOD = 0 th 8051 chia 1/12 tn s thch anh cho 32 v s dng n cho b Timer1 thit lp tc baud. Trong trng hp XTAL = 11.0592MHz th ta c: Tn s chu trnh my = 0. y l tn s c Timer1 s dng t tc baud. y l c s cho tt c v d t trc n gi v n l gi tr mc nh ca 8051 khi bt ngun. Cc tc baud i vi SMOD = 0 c cho trong bng 10.4. b) Khi SMOD = 1. Vi tn s c nh thch anh ta c th nhn i tc baud bng cch t bt SMOD = 1. Khi bt D7 ca PCON (bt SMOD) c a ln 1 th 1/12 tn s XTAL c chia cho 16 (thay v chia cho 32 nh khi SMOD = 0) v y l tn s c Timer dng thit lp tc baud. Trong trng hp XTAL = 11.0592MHz ta c: Tn s chu trnh my =
11.0592MHz = 921.6kHz v 12 921.6kHz = 57.600kHz v 16 11.0592MHz 921.6kHz = 921.6kHz v = 28.800Hz v SMOD = 12 32

SMOD = 1. y l tn s m Timer1 dng t tc baud. Bng 10.5 l cc gi tr cn c np v o TH1 cng vi cc tc baud ca 8051 khi SMOD = 0 v 1. Bng 10.5: So snh tc baud khi SMOD thay i.
TH1 (thp phn) -3 -6 -12 -24 TH1 (Hex) FD DA F4 E8 Tc baud SMOD = 0 SMOD = 1 9600 19200 4800 9600 2400 4800 1200 2400

V d 10.6: gi s tn s XTAL = 11.0592MHz cho chng trnh di y, h y pht biu a) chng trnh n y l m g? b) h y tnh ton tn s c Timer1 s dng t tc baud? v c) h y tm tc baud truyn d liu.
MOV SETB MOV MOV MOV MOV A, PCON ACC.7 PCON, A TMOD, #20H TH1, - 3 SCON, #50H ; Sao ni dung thanh ghi PCON v o thanh ghi ACC ; t D7 = 0 ; t SMOD = 1 tng gp i tn s baud vi tn s XTAL c nh ; ; Chn b Timer1, ch 2, t ng np li ; Chn tc baud 19200 (57600/3=19200) v SMOD = 1 ; ; ng khung d liu gm 8 bt d liu, 1 Stop v cho php RI.

Ebook Team
SETB MOV CLR MOV JNB SJMP TR1 A, #B TI SBUF, A TI, H-1 A-1

www.updatesofts.com
; Khi ng Timer1 ; Truyn k t B ; Khng nh TI = 0 ; Truyn n ; Ch y cho n khi bt cui c gi i ; Tip tc gi B

A-1: H-1:

Li gii: a) Chng trnh n y truyn lin tc m ASCII ca ch B ( dng nh phn l 0100 0010) b) Vi tn s XTAL = 11.0592MHz v SMOD = 1 trong chng trnh trn ta c: 11.0592MHz/12 = 921.6kHz l tn s chu trnh my 921.6kHz/16 = 57.6kHz l tn s c Timer1 s dng t tc baud c) 57.6kHz/3 = 19.200 l tc cn tm V d 10.7: Tm gi tr TH1 ( dng thp phn v hex) t tc baud cho cc trng hp sau. a) 9600 b) 4800 nu SMOD = 1 v tn s XTAL = 11.0592MHz Li gii: Vi tn s XTAL = 11.0592MHz v SMOD = 1 ta c tn s cp cho Timer1 l 57.6kHz. a) 57.600/9600 = 6 do vy TH1 = - 6 hay TH1 = FAH b) 57.600/4800 = 12 do vy TH1 = - 12 hay TH1 = F4H
11.0592MHz 28800Hz XTAL oscillator 12 921.6kHz SMOD=1 16 32 SMOD=0 57600Hz 28800Hz To timer1 to set baud rate

V d 10.8: H y tm tc baud nu TH1 = -2, SMOD = 1 v tn s XTAL = 11.0592MHz. Tc n y c c h tr bi cc my tnh IBM PC v tng thch khng? Li gii: Vi tn s XTAL = 11.0592MHz v SMOD = 1 ta c tn s cp cho Timer1 l 57.6kHz. Tc baud l 57.600kHz/2 = 28.800. Tc n y khng c h tr bi cc my tnh IBM PC v tng thch. Tuy nhin, PC c th c lp trnh truyn d liu vi tc nh vy. Phn mm ca nhiu modem c th l m cho iu n y v Hyperterminal ca Windows 95 cng c th h tr tc n y v cc tc khc na. 10.3.7 Truyn d liuda trn cc ngt. Ta phi thy rng tht l ng ph cc b vi iu khin phi bt ln xung cc c TI v RI. Do vy, tng hiu sut ca 8051 ta c th lp trnh cc cng truyn thng ni tip ca n bng cc ngt. y chnh l ni dung chnh s b n lun chng 11 di y.

Ebook Team

www.updatesofts.com

Ebook Team

www.updatesofts.com

Chng 11 Lp trnh cc ngt


Mt ngt l mt s kin bn trong hoc bn ngo i l m ngt b vi iu khin bo cho n bit rng thit b cn dch v ca n. Trong chng n y ta tm hiu khi nim ngt v lp trnh ngt. 11.1 Cc ngt ca 8051. 11.1.1 Cc ngt ngc vi thm d. Mt b vi iu khin c th phc v mt v i thit b, c hai cch thc hin iu n y l s dng cc ngt v thm d (polling). Trong phng php s dng cc ngt th mi khi c mt thit b bt k cn n dch v ca n th n bao cho b vi iu khin bng cch gi mt tn hiu ngt. Khi nhn c tn hiu ngt th b vi iu khin ngt tt c nhng g n ang thc hin chuyn sang phc v thit b. 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 m n 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 v i thit b v phc v mi thit b khi cc iu kin nht nh c tho m n 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 l m l mt yu cu dch v ca thit b. iu n y 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 l m l ng ph thi gian ca b vi iu khin bng cch hi d tng thit b k c khi chng khng cn n dch v. Nhm trnh .. th ngi ta s dng phng php ngt. V d trong cc b nh thi c b n n chng 9 ta dng lnh JNB TF, ch v i cho n khi b nh thi quay tr v 0. Trong v d , trong khi ch i th ta c th l m vic c g khc c ch hn, chng hn nh khi s dng phng php ngt th b vi iu khin c th i l m cc vic khc v khi c TF bt ln n s ngt b vi iu khin cho d n ang l m bt k iu g. 11.1.2 Trnh phc v ngt. i vi mi ngt th phi c mt trnh phc v ngt ISR hay trnh qun l ngt. khi mt ngt c gi th b vi iu khin phc v ngt. Khi mt ngt c gi th b vi iu khin chy trnh phc v ngt. i vi mi ngt th c mt v tr c nh trong b nh gi a ch ISR ca n. Nhm cc v tr nh c d nh ring gi cc a ch ca cc ISR c gi l bng vc t ngt (xem hnh 11.1). 11.1.3 Cc bc khi thc hin mt ngt. 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) v o ngn xp.

Ebook Team

www.updatesofts.com

2. N cng lu tnh trng hin ti ca tt c cc ngt v o bn trong (ngha l khng lu v o ngn xp). 3. N nhy n mt v tr c nh trong b nh c gi l bng vc t 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 v o 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 n y 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 n o s ln y v o ngn xp (Push) v s ln ly ra t n (Pop) phi bng nhau. 11.1.4 Su ngt trong 8051. Thc t ch c 5 ngt d nh cho ngi dng trong 8051 nhng nhiu nh sn xut a ra cc bng d liu ni rng c su ngt v h tnh c lnh ti thit lp li RESET. Su ngt ca 8051 c phn b nh sau: 1. RESET: Khi chn RESET c kch hot t 8051 nhy v a ch 0000. y l a ch bt li ngun c b n chng 4. 2. Gm hai ngt d nh cho cc b nh thi: 1 cho Timer0 v 1 cho Timer1. a ch ca cc ngt n y l 000B4 v 001B4 trong bng vc t ngt d nh cho Timer0 v Timer1 tng ng. 3. Hai ngt d nh cho cc ngt phn cng bn ngo i chn 12 (P3.2) v 13 (P3.3) ca cng P3 l cc ngt phn cng bn ngo i INT0 v INT1 tng ng. Cc ngt ngo i cng cn c coi nh EX1 v EX2 v tr nh trong bng vc t ngt ca cc ngt ngo i n y l 0003H v 0013H gn cho INT0 v INT1 tng ng. 4. Truyn thng ni tip c mt ngt thuc v c thu v pht. a ch ca ngt n y trong bng vc t ngt l 0023H. Ch rng trong bng 11.1 c mt s gii hn cc byte d nh ring cho mi ngt. V d, i vi ngt INT0 ngt phn cng bn ngo i 0 th c tng cng l 8 byte t a ch 0003H n 000AH d nh cho n. Tng t nh vy, 8 byte t a ch 000BH n 0012H l d nh cho ngt b nh thi 0 l TI0. Nu trnh phc v ngt i mt vi mt ngt cho m ngn t va khng gian nh c. Nu khng va th mt lnh LJMP c t v o trong bng vc t ngt ch n a ch ca ISR, trng hp n y th cc byte cn li c cp cho ngt n y khng dng n. Di y l cc v d v lp trnh ngt minh ho cho cc iu trnh b y trn y. T bng 11.1 cng thy mt thc t rng ch c 3 byte ca khng gian b nh ROM c gn cho chn RESET. l nhng v tr a ch 0, 1 v 2 ca ROM. V tr a ch 3 thuc v ngt phn cng bn ngo i 0 vi l do n y trong chng trnh chng ta pha t lnh LJMP nh l lnh u tin v hng b x l lnh khi bng vc t ngt nh ch ra trn hnh 11.1. Bng 11.1: Bng vc t ngt ca 8051.

Ebook Team
Ngt Bt li ngun (RESET) Ngt phn cng ngo i (INT0) Ngt b Timer0 (TF0) Ngt phn cng ngo i 1 (INT1) Ngt b Timer1 (TF1) Ngt COM ni tip (RI v TI) a ch ROM 0000 0003 000B 0013 001B 0023

www.updatesofts.com
Chn 9 12 (P3.2) 13 (P3.3)

11.1.5 Cho php v cm ngt. Khi bt li ngun th tt c mi ngt u b cm (b che) c ngha l khng c ngt n o s c b vi iu khin p ng nu chng c kch hot. Cc ngt phi c kch hot bng phn mm b vi iu khin p ng chng. C mt thanh ghi c gi l cho php ngt IE (Interrupt Enable) chu trch nhim v vic cho php (khng che) v cm (che) cc ngt. Hnh 11.2 trnh b y thanh ghi IE, lu rng IE l thanh ghi c th nh a ch theo bt. T hnh 11.2 ta thy rng D7 ca thanh ghi IE c gi l bt cho php tt c cc ngt EA (Euable All). Bt n y phi c thit lp ln 1 phn cn li ca thanh ghi hot ng c. Bt D6 cha c s dng. Bt D54 c d nh cho 8051, cn bt D4 dng cho ngt ni tip v.v 11.1.6 Cc bc khi cho php ngt. cho php mt ngt ta phi thc hin cc bc sau: 1. Bt D7 ca thanh ghi IE l EA phi c bt ln cao cho php cc bt cn li ca thanh ghi nhn c hiu ng. 2. Nu EA = 1 th tt c mi ngt u c php v s c p ng nu cc bt tng ng ca chng trong IE c mc cao. Nu EA = 0 th khng c ngt n o s c p ng cho d bt tng ng ca n trong IE c gi tr cao. hiu im quan trong n y h y xt v d 11.1. Hnh 11.2: Thanh ghi cho php ngt IE.
D7 D0

EA
EA

--

ET2

ES

ET1

EX1

ET0

EX0

IE.7 Nu EA = 0 th mi ngt b cm Nu EA = 1 th mi ngun ngt c cho php hoc b cm bng cc bt hoc xo bt cho php ca n. -IE.6 D phng cho tng lai ET2 IE.5 Cho php hoc cm ngt tr n hoc thu ca Timer2 (8051) ES IE.4 Cho php hoc cm ngt cng ni tip ET1 IE.3 Cho php hoc cm ngt tr n ca Timer1 EX1 IE.2 Cho php hoc cm ngt ngo i 1 ET0 IE.1 Cho php hoc cm ngt tr n ca Timer0 EX0 IE.0 Cho php hoc cm ngt ngo i 0 * Ngi dng khng phi ghi 1 v o bt d phng n y. Bt n y c th dng cho cc b vi iu khin nhanh vi c tnh mi V d 11.1:

Ebook Team

www.updatesofts.com

H y ch ra nhng lnh a) cho php ngt ni tip ngt Timer0 v ngt phn cng ngo i 1 (EX1) v b) cm (che) ngt Timer0 sau c) trnh b y cch cm tt c mi ngt ch bng mt lnh duy nht. Li gii:
a) MOV IE, #10010110B ; Cho php ngt ni tip, cho php ngt Timer0 v cho php ngt phn cng ngo i.

V IE l thanh ghi c th nh a ch theo bt nn ta c th s dng cc lnh sau y truy cp n cc bt ring r ca thanh ghi:
SETB SETB SETB SETB IE.7 IE.4 IE.1 IE.2 ; EA = 1, Cho php tt c mi ngt ; Cho php ngt ni tip ; Cho php ngt Timer1 ; Cho php ngt phn cng ngo i 1

(tt c nhng lnh n y tng ng vi lnh MOV IE, #10010110B trn y).
b) CLR IE.1 c) CLR IE.7 ; Xo (che) ngt Timer0 ; Cm tt c mi ngt.

11.2 Lp trnh cc ngt b nh thi. Trong chng 9 ta ni cch s dng cc b nh thi Timer0 v Timer1 bng phng php thm d. Trong phn n y ta s s dng cc ngt lp trnh cho cc b nh thi ca 8051. 11.2.1 C quay v 0 ca b nh thi v ngt. Trong chng 9 chng ta ni rng c b nh thi TF c t ln cao khi b nh thi t gi tr cc i v quay v 0 (Roll - over). Trong chng trnh n y chng ta cng ch ra cch hin th c TF bng lnh JNB TF, ch. Khi thm d c TF th ta phi i cho n khi c TF c bt ln. Vn vi phng php n y l b vi iu khin b tri buc khi c TF c bt ln v khng th l m c bt k vic g khc. S dng cc ngt gii quyt c vn n y v trnh c s tri buc ca b vi iu khin. Nu b ngt nh thi trong thanh ghi IE c php th mi khi n quay tr v 0 c TF c bt ln v b vi iu khin b ngt ti bt k vic g n ang thc hin v nhy ti bng vc t ngt phc v ISR. Bng cch n y th b vi iu khin c th l m nhng cng vic khc cho n khi n o n c thng bo rng b nh thi quay v 0. Xem hnh 11.3 v v d 11.2.
Timer 0 Interruptor 000BH Jumps to Timer 1 Interruptor 001BH Jumps to

TF0 1

TF1 1

Hnh 11.3: Ngt b nh thi TF0 v TF1. H y nhng im chng trnh di y ca chng trnh trong v d 11.2. 1. Chng ta phi trnh s dng khng gian b nh d nh cho bng vc t ngt. Do vy, ta t tt c m khi to ti a ch 30H ca b nh. Lnh LJMP l lnh u

Ebook Team

www.updatesofts.com

tin m 8051 thc hin khi n c cp ngun. Lnh LJMP li b iu khin trnh khi bng vc t ngt. 2. Trnh phc v ISR ca b Timer0 c t trong b nh bt u t a ch 000BH v v n qu nh cho v o khng gian nh d nh cho ngt n y. 3. Chng ta cho php ngt b Timer0 vi lnh MOV IE, #1000 010H trong chng trnh chnh MAIN. 4. Trong khi d liu cng P0 c nhn v o v chuyn lin tc sang cng vic P1 th mi khi b Timer0 tr v 0, c TF0 c bt ln v b vi iu khin thot ra khi vng lp BACK v i n a ch 000BH thc hin ISR gn lin vi b Timer0. 5. Trong trnh phc v ngt ISR ca Timer0 ta thy rng khng cn n lnh CLR TF0 trc khi lnh RETI. L do n y l v 8051 xo c TF bn trong khi nhy n bng vc t ngt. V d 11.2: H y vit chng trnh nhn lin tc d liu 8 bt cng P0 v gi n n cng P1 trong khi n cng lc to ra mt sng vung chu k 200s trn chn P2.1. H y s dng b Timer0 to ra sng vung, tn s ca 8051 l XTAL = 11.0592MHz. Li gii: Ta s dng b Timer0 ch 2 (t ng np li) gi tr np cho TH0 l 100/1.085s = 92.
; - - Khi khi to v o chng trnh main trnh dng khng gian. ; a ch d nh cho bng vc t ngt. ORG 0000H CPL P2.1 ; Nhy n bng vc t ngt. ; ; - - Trnh ISR d nh cho Timer0 to ra sng vung. ORG 0030H ; Ngay sau a ch bng vc-t ngt MAIN: TMOD, #02H ; Chn b Timer0, ch 2 t np li MOV P0, #0FFH ; Ly P0 l m cng v o nhn d liu MOV TH0, # - 92 ; t TH0 = A4H cho 92 MOV IE, #82H ; IE = 1000 0010 cho php Timer0 SETB TR0 ; Khi ng b Timer0 BACK: MOV A, P0 ; Nhn d liu v o t cng P0 MOV P1, A ; Chuyn d liu n cng P1 SJMP BACK ; Tip tc nhn v chuyn d liu ; Chng n o b ngt bi TF0 END

Trong v d 11.2 trnh phc v ngt ISR ngn nn n c th t va v o khng gian a ch d nh cho ngt Timer0 trong bng vc t ngt. Tt nhin khng phi lc n o cng l m c nh vy. Xt v d 11.3 di y. V d 11.3: H y vit li chng trnh v d 11.2 to sng vung vi mc cao ko d i 1085s v mc thp d i 15s vi gi thit tn s XTAL = 11.0592MHz. H y s dng b nh thi Timer1. Li gii:

Ebook Team

www.updatesofts.com

V 1085s l 1000 1085s nn ta cn s dng ch 1 ca b nh thi Timer1.


; - - Khi khi to trnh s dng khng gian d nh cho bng vc t ngt. ORG 0000H LJMP MAIN ; Chuyn n bng vc t ngt. ; ; - - Trnh ISR i vi Timer1 to ra xung vung OR6 001BH ; a ch ngt ca Timer1 trong bng vc t ngt LJMP ISR-T1 ; Nhy n ISR ; ; - - Bt u cc chng trnh chnh MAIN. ORG 0030H ; Sau bng vc t ngt MAIN: MOV TMOD, #10H ; Chn Timer1 ch 1 MOV P0, #0FFH ; Chn cng P0 l m u v o nhn d liu MOV TL1, #018H ; t TL1 = 18 byte thp ca - 1000 MOV TH1, #0FCH ; t TH1 = FC byte cao ca - 1000 MOV IE, #88H ; IE = 10001000 cho php ngt Timer1 SETB TR1 ; Khi ng b Timer1 BACK: MOV A, P0 ; Nhn d liu u v o cng P0 MOV P1, A ; Chuyn d liu n P1 SJMP BACK ; Tip tc nhn v chuyn d liu ; ; - - Trnh ISR ca Timer1 phi c np li v ch 1 ISR-T1: CLR TR1 ; Dng b Timer1 CLR P2.1 ; P2.1 = 0 bt u xung mc thp MOV R2, #4 ; 2 chu k my MC (Machine Cycle) HERE: DJNZ R2, HERE ; 4 2 MC = 8 MC MOV TL1, #18H ; Np li byte thp gi tr 2 MC MOV TH1, #0FCH ; Np li byte cao gi tr 2 MC SETB TR1 ; Khi ng Timer1 1 MC SETB P2.1 ; P2.1 = 1 bt P2.1 tr li cao RETI ; Tr v chng trnh chnh END

Lu rng phn xung mc thp c to ra bi 14 chu k mc MC v mi MC = 1.085s v 14 1.085s = 15.19s. V d 11.4: Vit mt chng trnh to ra mt sng vung tn s 50Hz trn chn P1.2. V d n y tng t v d 9.12 ngoi tr ngt Timer0, gi s XTAL = 11.0592MHz. Li gii:
ORG 0 LJMP MAIN ORG 000BH CPL P1.2 MOV TL0, # 00 MOV TH0, # 0DCH RETI ORG 30H ; ------------ main program for initialization MAIN: MOV TMOD, # 00000001B ; Chng trnh con phc v ngt cho Timer0

; Chn Timer0 ch 1

Ebook Team
MOV TL0, # 0DCH MOV IE, # 82H SETB TR0 HERE END 8051

www.updatesofts.com
; Cho php ngt Timer0

HERE: SJMP

P1.2

50Hz square ware

11.3 Lp trnh cc ngt phn cng bn ngo i. B vi iu khin 8051 c hai ngt phn cng bn ngo i l chn 12 (P3.2) v chn 13 (P3.3) dng cho ngt INT0 v INT1. Khi kch hot nhng chn n y th 8051 b ngt ti bt k cng vic n o m n ang thc hin v n nhy n bng vc t ngt thc hin trnh phc v ngt.
Level - tringgered INTO (Pin 3.2) 0 1 Edge - triggered ITO IE0 (TCON.1) 0003

Level - tringgered INTO (Pin 3.3) 0 1 Edge - triggered IT1 IE0 (TCON.3) 0013

11.3.1 Cc ngt ngo i INT0 v INT1. Ch c hai ngt phn cng ngo i trong 8051 l INT0 v INT1. Chng c b tr trn chn P3.2 v P3.3 v a ch ca chng trong bng vc t ngt l 0003H v 0013H. Nh ni mc 11.1 th chng c ghp v b cm bng vic s dng thanh ghi IE. Vy chng c kch hot nh th n o? C hai mc kch hot cho cc ngt phn cng ngo i: Ngt theo mc v ngt theo sn. Di y l m t hot ng ca mi loi. 11.3.2 Ngt theo mc. ch ngt theo mc th cc chn INT0 v INT1 bnh thng mc cao (ging nh tt c cc chn ca cng I/O) v nu mt tn hiu mc thp c cp ti chng th n ghi nh n ngt. Sau b vi iu khin dng tt c mi cng vic n

Ebook Team

www.updatesofts.com

ang thc hin v nhy n bng vc t ngt phc v ngt. iu n y c gi l ngt c kch hot theo mc hay ngt theo mc v l ch ngt mc nh khi cp ngun li cho 8051. Tn hiu mc thp ti chn INT phi c lu i trc khi thc hin lnh cui cng ca trnh phc v ngt RETI, nu khng mt ngt khc s li c to ra. Hay ni cch khc, nu tn hiu ngt mc thp khng c ly i khi ISR kt thc th n khng th hin nh mt ngt khc v 8051 nhy n bng vc t ngt thc hin ISR. Xem v d 11.5. V d 11.5. Gi s chn INT1 c ni n cng tc bnh thng mc cao. Mi khi n xung thp phi bt mt n LED. n LED c ni n chn P1.3 v bnh thng ch tt. Khi n c bt ln n phi sng v i phn trm giy. Chng n o cng tc c n xung thp n LED phi sng lin tc. Li gii:
ORG 0000H LJMP MAIN ; Nhy n bng vc t ngt ; - - Chng trnh con ISR cho ngt cng INT1 bt n LED. ORG 0013H ; Trnh phc v ngt ISR cho INT1 SETB P1.3 ; Bt n LED MOV R3, # 255 ; BACK: DJNZ R3, BACK ; Gi n LED sng mt lc CLR P1.3 ; Tt n LED RETI ; Tr v t ISR ; - - Bt u chng trnh chnh Main. ORG 30H MAIN: MOV IE, #10000100B ; Cho php ngt d i SJMP HERE ; Ch y cho n khi c ngt END

n cng tc xung s l m cho n LED sng. Nu n c gi trng thi c kch hot th n LED sng lin tc.
Vcc 8051 P1.3 INTI to LED

Trong chng trnh n y b vi iu khin quay vng lin tc trong vng lp HERE. Mi khi cng tc trn chn P3.3 (INT1) c kch hot th b vi iu khin thot khi vng lp v nhy n bng vc t ngt ti a ch 0013H. Trnh ISR cho INT1 bt n LED ln gi n mt lc v tt n trc khi tr v. Nu trong lc n thc hin lnh quay tr v RET1 m chn INT1 vn cn mc thp th b vi iu khin khi to li ngt. Do vy, gii quyt vn n y th chn INT1 phi c a ln cao ti thi im lnh RET1 c thc hin. 11.3.3 Trch mu ngt theo mc.

Ebook Team

www.updatesofts.com

Cc chn P3.2 v P3.3 bnh thng c dng cho v o - ra nu cc bt INT0 v INT1 trong thanh ghi IE khng c kch hot. Sau khi cc ngt phn cng trong thanh gi IE c kch hot th b vi iu khin duy tr trch mu trn chn INTn i vi tn hiu mc thp mt ln trong mt chu trnh my. Theo bng d liu ca nh sn xut ca b vi iu khin th chn ngt phi c gi mc thp cho n khi bt u thc hin trnh phc v ngt ISR. Nu chn INTn c a tr li mc cao trc khi bt u thc hin ISR th s chng c ngt n o xy ra. Tuy nhin trong qu trnh kch hot ngt theo mc thp nn n li phi a ln mc cao trc khi thc hin lnh RET1 v li theo bng d liu ca nh sn xut th nu chn INTn vn mc thp sau lnh RETI ca trnh phc v ngt th mt ngt khc li s c kch hot sau khi lnh RET1 c thc hin. Do vy, bo m vic kch hot ngt phn cng ti cc chn INTn phi khng nh rng thi gian tn ti tn hiu mc thp l khong 4 chu trnh my v khng c hn. iu n y l do mt thc t l ngt theo mc khng c cht. Do vy chn ngt phi c gia mc thp cho n khi bt u thc hin ISR. 1 chu trnh my 1.085s 4 chu trnh my (4MC) n chn INT0 hoc INT1

4 1.085s Ghi ch: Khi bt li ngun (RESET) th c hai chn INT0 v INT1 u mc thp to cc ngt ngo i theo mc. Hnh 11.5: Thi gian ti thiu ca ngt theo mc thp (XTAL = 11.0592MHz) 11.3.4 Cc ngt theo sn. Nh ni trc y trong qu trnh bt li ngun th 8051 l m cc chn INT0 v INT1 l cc ngt theo mc thp. bin cc chn n y tr th nh cc ngt theo sn th chng ta phi vit chng trnh cho cc bt ca thanh ghi TCON. Thanh thi TCON gi cc bt c IT0 v IT1 xc nh ch ngt theo sn hay ngt theo mc ca cc ngt phn cng IT0 v IT1 l cc bt D0 v D2 ca thanh ghi TCON tng ng. Chng c th c biu din nh TCON.0 v TCON.2 v thanh ghi TCON c th nh a ch theo bt. Khi bt li ngun th TCON.0 (IT0) v TCON.2 (IT1) u mc thp (0) ngha l cc ngt phn cng ngo i ca cc chn INT0 v INT1 l ngt theo mc thp. Bng vic chuyn cc bt TCON.0 v TCON.2 ln cao qua cc lnh SETB TCON.0 v SETB TCON.2 th cc ngt phn cng ngo i INT0 v INT1 tr th nh cc ngt theo sn. V d, lnh SETB TCON.2 l m cho INT1 m c gi l ngt theo sn trong khi mt tn hiu chuyn t cao xung thp c cp n chn P3.3 th trng hp n y b vi iu khin s b ngt v b cng bc nhy n bng vc t ngt ti a ch 0013H thc hin trnh phc v ngt. Tuy nhin l vi gii thit rng bt ngt c cho php trong thanh ghi IE.

Ebook Team
D7

www.updatesofts.com
D0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Hnh 11.6: Thanh ghi TCON. Bt TF1 hay TCON.7 l c tr n ca b Timer1. N c lp bi phn cng khi b m/ b nh thi 1 tr n, n c xo bi phn cng khi b x l ch n trnh phc v ngt. Bt TR1 hay TCON.6 l bt iu khin hot ng ca Timer1. N c thit lp v xo bi phn mm bt/ tt Timer1. Bt TF0 hay TCON.5 tng t nh TF1 d nh cho Timer0. Bt TR0 hay TCON.4 tng t nh TR1 d nh cho Timer0. Bt IE1 hay TCON.3 c ngt ngo i 1 theo sn. N c thit lp bi CPU khi sn ngt ngo i (chuyn t cao xung thp) c pht hin. N c xa bi CPU khi ngt c x l. Lu : C n y khng cht nhng ngt theo mc thp. Bt IT1 hay TCON.2 l bt iu khin kiu ngt. N c thit lp v xo bi phn mm xc nh kiu ngt ngo i theo sn xung hay mc thp. Bt IE0 hay TCON.1 tng t nh IE1 d nh cho ngt ngo i 0. Bt IT0 hay TCON.0 tng t nh bt IT1 d nh cho ngt ngo i 0. Xt v d 11.6, ch rng s khc nhau duy nht gia v d n y v v d 11.5 l trong h ng u tin ca MAIN khi lnh SETB TCON.2 chuyn ngt INT1 v kiu ngt theo sn. Khi sn xung ca tn hiu c cp n chn INT1 th n LED s bt ln mt lc. n LED c thi gian sng ph thuc v o tr bn trong ISR ca INT1. bt li n LED th phi c mt sn xung xung khc c cp n chn P3.3. iu n y ngc vi v d 11.5. Trong v d 11.5 do bn cht ngt theo mc ca ngt th n LED cn sng chng n o tn hiu chn INT1 vn cn mc thp. Nhng trong v d n y bt li n LED th xung chn INT1 phi c a ln cao ri sau b h xung thp to ra mt sn xung l m kch hot ngt. V d 11.6: Gi thit chn P3.3 (INT1) c ni vi mt my to xung, h y vit mt chng trnh trong sn xung ca xung s gi mt tn hiu cao n chn P1.3 ang c ni ti n LED (hoc mt ci bo). Hay ni cch khc, n LED c bt v tt cng tn s vi cc xung c cp ti chn INT1. y l phin bn ngt theo sn xung ca v d 11.5 trnh b y trn. Li gii:
ORG 0000H LJMP MAIN ; - - Trnh phc v ngt ISR d nh cho ngt INT1 bt n LED ORG 0013H ; Nhy n a ch ca trnh phc v ngt INT1 SETB P1.3 ; Bt n LED (hoc ci) MOV R3, #225 BACK: DJNZ R3, HERE ; gi n LED (hoc ci) mt lc CLR P1.3 ; Tt n LED (hoc ci) RETI ; Quay tr v t ngt ; - - Bt u chng trnh chnh ORG 30H SETB TCON.2 ; Chuyn ngt INT1 v kiu ngt theo sn xung

Ebook Team
HERE: MOV SJMP END IE, #10001B HERE

www.updatesofts.com
; Cho php ngt ngo i INT1 ; Dng y cho n khi b ngt

11.3.5 Trnh mu ngt theo sn. Trc khi kt thc phn n y ta cn tr li cu hi vy th ngt theo sn c trch mu thng xuyn nh th n o? Trong cc ngt theo sn, ngun ngo i phi gi mc cao ti thiu l mt chu trnh my na m bo b vi iu khin nhn thy c s chuyn dch t cao xung thp ca sn xung.
1MC 1.085s 1MC

1.085s

Thi hn xung ti thiu pht hin ra cc ngt theo sn xung vi tn s XTAL = 11.0592MHz Sn xung ca xung c cht bi 8051 v c gia bi thanh ghi TCON. Cc bt TCON.1 v TCON.3 gi cc sn c cht ca chn INT0 v INT1 tng ng. TCON.1 v TCON.3 cng cn c gi l cc bt IE0 v IE1 nh ch ra trn hnh 11.6. Chng hot ng nh cc c ngt ang c phc v (Interrupt-inserver). Khi mt c ngt ang c phc v bt ln th n bo cho th gii thc bn ngo i rng ngt hin nay ang c x l v trn chn INTn n y s khng c ngt n o c p ng chng n o ngt n y cha c phc v xong. y ging nh tn hiu bo bn my in thoi. Cn phi nhn mnh ht im di y khi quan tm n cc bt IT0 v IT1 ca thanh ghi TCON. 1. Khi cc trnh phc v ngt ISR kt thc (ngha l trong thanh ghi thc hin lnh RETI). Cc bt n y (TCON.1 v TCON.3) c xo bo rng ngt c ho n tt v 8051 sn s ng p ng ngt khc trn chn . ngt khc c nhn v th tn hiu trn chn phi tr li mc cao v sau nhy xung thp c pht hin nh mt ngt theo sn. 2. Trong thi gian trnh phc v ngt ang c thc hin th chn INTn b l m ng khng quan tm n n c bao nhiu ln chuyn dch t cao xung thp. Trong thc t n l mt trong cc chc nng ca lnh RETI xo bt tng ng trong thanh ghi TCON (bt TCON.1 v TCON.3). N bo cho ta rng trnh phc v ngt xp kt thc. V l do n y m cc bt TCON.1 v TCON.3 c gi l cc c bo ngt ang c phc v c n y s ln cao khi mt sn xung c pht hin trn chn INT v dng mc cao trong to n b qu trnh thc hin ISR. N ch b xo bi lnh RETI l lnh cui cng ca ISR. Do vy, s khng bo gi cn n cc lnh xo bt n y nh CLR TCON.1 hay CLR TCON.3 trc lnh RETI trong trnh phc v ngt i vi cc ngt cng INT0 v INT1. iu n y khng ng vi trng hp ca ngt ni tip. V d 11.7: S khc nhau gia cc lnh RET v RETI l g? Gii thch ti sao ta khng th dng lnh RET thay cho lnh RETI trong trnh phc v ngt. Li gii:

Ebook Team

www.updatesofts.com

Cc hai lnh RET v RETI u thc thi cc h nh vi ging nhau l ly hai byte trn nh ngn xp v o b m chng trnh v a 8051 tr v ni b i. Tuy nhin, lnh RETI cn thc thi mt nhim v khc na l xo c ngt ang c phc v bo rng ngt kt thc v 8051 c th nhp mt ngt mi trn chn n y. Nu ta dng lnh RET thay cho RETI nh l lnh cui cng ca trnh phc v ngt nh vy l ta v tnh kho mi ngt mi trn chn n y sau ngt u tin v trng thi ca chn bo rng ngt vn ang c phc v. y l trng hp m cc c TF0, TF1, TCON.1 v TCON.3 c xo bi lnh RETI. 11.3.6 V i iu b xung v thanh ghi TCON. By gi ta xt k v cc bt ca thanh ghi TCON hiu vai tr ca n trong vic duy tr cc ngt. 11.3.6.1 Cc bt IT0 v IT1. Cc bt TCON.0 v TCON.2 c coi nh l cc bt IT0 v IT1 tng ng. y l cc bt xc nh kiu ngt theo sn xung hay theo mc xung ca cc ngt phn cng trn chn INT.0 v INT.1 tng ng. Khi bt li ngun c hai bt n y u c mc 0 bin chng th nh ngt theo tn hiu mc thp. Lp trnh vin c th iu khin mt trong s chng ln cao chuyn ngt phn cng bn ngo i th nh ngt theo ngng. Trong mt h thng da trn 8051 cho th mt khi ta t v 0 hoc 1 th cc bt n y s khng thay i v ngi thit k c nh kiu ngt l ngt theo sn hay theo mc ri. 11.3.6.2 Cc bt IE0 v IE1. Cc bt TCON.1 v TCON.3 cn c gi l IE0 v IE1 tng ng. Cc bt n y c 8051 dng bm kiu ngt theo sn xung. Ni cc khc l nu IT0 v IT1 bng 0 th c ngha l cc ngt phn cng l ngt theo mc thp, cc bt IE0 v IE1 khng dng n l m g. Cc bt IE0 v IE1 c 8051 ch dng cht sn xung t cao xung thp trn cc chn INT0 v INT1. Khi c chuyn dch sn xung trn chn INT0 (hay INT1) th 8051 nh du (bt ln cao) cc bt IEx trn thanh ghi TCON nhy n bng vc t ngt v bt u thc hin trnh phc v ngt ISR. Trong khi 8051 thc hin ISR th khng c mt sn xung n o c ghi nhn trn chn INT0 (hay INT1) ngn mi ngt trong ngt. Ch trong khi thc hin lnh RETI cui trnh phc v ngt ISR th cc bt IEx mi b bo rng mt sn xung cao xung thp mi trn chn INT0 (hay INT1) s kch hot ngt tr li. T phn trnh b y trn ta thy rng cc bt IE0 v IE1 c 8051 s dng bn trong bo c mt ngt ang c x l hay khng. Hay ni cch khc l lp trnh vin khng phi quan tm n c bt n y. 11.3.6.3 Cc bt TR0 v TR1. y l nhng bt D4 v D6 (hay TCON.4 v TCON.6) ca thanh ghi TCON. Cc bt n y c gii thiu chng 9 chng c dng khi ng v dng cc b nh thi Timer0 v Timer1 tng ng. V thanh ghi TCON c th nh a ch theo bt nn c th s dng cc lnh SETB TRx v CLR TRx cng nh cc lnh SETB TCON.4 v CLR TCON.4. 11.3.6.4 Cc bt TF0 v TF1. Cc bt n y l D5 (TCON.5) v D7 (TCON.7) ca thanh ghi TCON m c gii thiu chng 9. Chng ta c s dng bi cc b Timer0 v Timer1 tng ng bo rng cc b nh thi b tr n hay quay v khng. Mc d ta dng cc lnh JNB TFx, ch v CLR TFx nhng chng ta cng khng th s

Ebook Team

www.updatesofts.com

dng cc lnh nh SETB TCON.5, ch v CLR TCON.5 v TCON l thanh ghi c th nh a ch theo bt. 11.4 Lp trnh ngt truyn thng ni tip. Trong chng 10 chng ta nghin cu v truyn thng ni tip ca 8051. Tt c cc v d trong chng y u s dng phng php thm d (polling). chng n y ta khm ph truyn thng da trn ngt m n cho php 8051 l m vic rt nhiu vic ngo i vic truyn v nhn d liu t cng truyn thng ni tip. 11.4.1 Cc c RI v TI v cc ngt. Nh ni chng 10 th c ngt truyn TI (Transfer interrupt) c bt ln khi bt cui cng ca khung d liu, bt stop c truyn i bo rng thanh ghi SBUF sn s ng truyn byte k tip. Trong trng hp c RI (Receive Interrupt) th n c bt ln khi to n b khung d liu k c bt stop c nhn. Hay ni cch khc khi thanh ghi SBUF c mt byte th c RI bt ln bo rng byte d liu nhn c cn ly i ct v o ni an to n trc khi n b mt (b ghi ) bi d liu mi nhn c. Chng n o cn ni v truyn thng ni tip th tt c mi khi nim trn y u p dng ging nh nhau cho d s dng phng php thm d hay s dng phng php ngt. S khc nhau duy nht gia hai phng php n y l cch phc v qu trnh truyn thng ni tip nh th n o. Trong phng php thm d th chng ta phi i cho c (TI hay RI) bt ln v trong lc ch i th ta khng th l m g c c. Cn trong phng php ngt th ta c bo khi 8051 nhn c mt byte hoc n sn s ng chuyn (truyn) byte k tip v ta c th l m cc cng vic khc trong khi truyn thng ni tip ang c phc v. Trong 8051 ch c mt ngt d nh ring cho truyn thng ni tip. Ngt n y c dng cho c truyn v nhn d liu. Nu bt ngt trong thanh gi IE (l bt IE.4) c php khi RI v TI bt ln th 8051 nhn c ngt v nhy n a ch trnh phc v ngt d nh cho truyn thng ni tip 0023H trong bng vc t ngt thc hin n. Trong trnh ISR n y chng ta phi kim tra cc c TI v RI xem c n o gy ra ngt p ng mt cch ph hp (xem v d 11.8).

TI RI

0023H

Hnh 11.7: Ngt truyn thng c th do hai c TI v RI gi. 11.4.2 S dng cng COM ni tip trong 8051. Trong phn ln cc ng dng, ngt ni tip ch yu c s dng nhn d liu v khng bao gi c s dng truyn d liu ni tip. iu n y ging nh vic bo chung nhn in thoi, cn nu ta mun gi in thoi th c nhiu cch khc ngt ta ch khng cn n chung. Tuy nhin, trong khi nhn in thoi ta phi tr li ngay khng bit ta ang l m g nu khng thuc gi s (mt) i qua. Tng t nh vy, ta s dng cc ngt ni tip khi nhn d liu i n sao chp cho n khng b mt: H y xt v d 11.9 di y. V d 11.8:

Ebook Team

www.updatesofts.com

H y vit chng trnh trong 8051 c d liu t cng P1 v ghi n ti cng P2 lin tc trong khi a mt bn sao d liu ti cng COM ni tip thc hin truyn ni tip gi thit tn s XTAL l 11.0592MHz v tc baud l 9600. Li gii:
ORG 0 LJMP MAIN ORG 23H LJMP SERIAL MOVQP1, # 0FFH MOV TMOD, # 20h MOV TH1, # 0FDH MOV SCON, # 50H MOV IE, # 10010000B SETB TR1 MOV A, P1 MOV SBUF, A MOV P2, A SJMP BACK

MAIN:

BACK:

; Nhy n trnh phc v ngt truyn thng ni tip ; Ly cng P1 l m cng u v o ; Chn Timer1, ch 2 t np li ; Chn tc baud = 9600 ; Khung d liu: 8 bt d liu, 1 stop cho php REN ; Cho php ngt ni tip ; Khi ng Timer1 ; c d liu t cng P1 ; Ly mt bn sao ti SBUF ; Gi n n cng P2 ; li trong vng lp

; ; --------------------------Trnh phc v ngt cng ni tip ORG 100H SERIAL: JB TI,TRANS ; Nhy n c TI cao MOV A, SBUF ; Nu khng tip tc nhn d liu CLR RI ; Xo c RI v CPU khng l m iu n y RETI ; Tr v t trnh phc v ngt TRANS: CLR TI ; Xo c TI v CPU khng l m iu n y RETI ; Tr v t ISR END

Trong vn trn thy ch n vai tr ca c TI v RI. Thi im mt byte c ghi v o SBUF th n c ng khung v truyn i ni tip. Kt qu l khi bt cui cng (bt stop) c truyn i th c TI bt ln cao v n gy ra ngt ni tip c gi khi bt tng ng ca n trong thanh ghi IE c a ln cao. Trong trnh phc v ngt ni tip, ta phi kim tra c c TI v c RI v c hai u c th gi ngt hay ni cch khc l ch c mt ngt cho c truyn v nhn. V d 11.9: H y vit chng trnh trong 8051 nhn d liu t cng P1 v gi lin tc n cng P2 trong khi d liu i v o t cng ni tip COM c gi n cng P0. Gi thit tn s XTAL l 11.0592MHz v tc baud 9600. Li gii:
ORG LJMP ORG LJMP ORG MOV MOV MOV 0 MAIN 23H SERIAL 03H P1, # FFH TMOD, # 20H TH1, # 0FDH ; Ly cng P1 l cng u v o ; Chn Timer v ch hai t np li ;Khung d liu: 8 bt d liu, 1 stop, cho php REN

MAIN:

Ebook Team

www.updatesofts.com

MOV SCON, # 50H ; Cho php ngt ni tip MOV IE, # 10010000B ; Khi ng Timer1 SETB TR1 ; c d liu t cng P1 BACK: MOV A, P1 ; Gi d liu n cng P2 MOV P2, A ; li trong vng lp SJMP BACK ; -------------------------Trnh phc v ngt cng ni tip. ORG 100H SERIAL: JB TI, TRANS ; Nhy nu Ti cao MOV A, SBUF ; Nu khng tip tc nhn d liu MOV P0, A ; Gi d lu u v o n cng P0 CLR RI ; Xo v RI v CPU khng xo c n y RETI ; Tr v t ISR TRANS: CLS TI ; Xo c TI v CUP khng xo c n y. RETI ; ; tr v t ISR END

11.4.3 Xo c RI v TI trc lnh RETI. rng lnh cui cng trc khi tr v t ISR l RETI l lnh xo cc c RI v TI. y l iu cn thit bi v l ngt duy nht d nh cho nhn v truyn 8051 khng bit c ngun gy ra ngt l ngun n o, do vy trnh phc v ngt phi c xo cc c n y cho php cc ngt sau c p ng sau khi kt thc ngt. iu n y tng phn vi ngt ngo i v ngt b nh thi u c 8051 xo cc c. Cc lnh xo cc c ngt bng phn mm qua cc lnh CLR TI v CLR RI. H y xt v d 11.10 di y v n cc lnh xo c ngt trc lnh RETI. V d 11.10: H y vit mt chng trnh s dng cc ngt thc hin cc cng vic sau: a) Nhn d liu ni tip v gi n n cng P0. b) Ly cng P1 c v truyn ni tip v sao n cng P2. c) S dng Timer0 to sng vung tn s 5kHz trn chn P0.1 git thit tn s XTAL = 11.0592MHz v tc baud 4800. Li gii:
ORG LJMP ORG CPL RETI ORG LJMP ORG MOV MOV MOV MOV MOV MOV SETB SETB MOV MOV MOV 0 MAIN 000BH P0.1 23H SERIAL 30H P1, # 0FFH TMOD, # 22H TH1, # 0F6H SCON, # 50H TH0, # - 92 IE, # 10010010B TR1 TR0 A, P1 SBUF, A P2, A ; Trnh phc v ngt d nh cho Timer0 : To xung chn P0.1 ; Tr v t ISR ; Nhy n a ch ngt truyn ni tip ; Ly cng P1 l m cng u v o ; Chn Timer0 v Timer1 ch 2 t np li ; Chn Timer0 v Timer1 ch 2 t np li ; Chn tc baud 4800 ; Khung d liu: 8 bt d liu, 1 stop, cho php REN ; To tn s 5kHz ; Cho php ngt ni tip ; Khi ng Timer1 ; Khi ng Timer0 ; c d liu t cng P1 ; Ly mt ln bn sao d liu ; Ghi n v o cng P2

MAIN :

BACK:

Ebook Team
SJMP BACK ; ---------------------- Trnh phc v ngt cng ni tip. ORG 100H SERIAL: JB TI, TRANS MOV A, SBUF MOV P0, A CLR RI RETI TRANS: CLR TI RETI END ; li trong vng lp

www.updatesofts.com

; Nhy nu TI v o ; Nu khng tip tc nhn d liu ; Gi d liu ni tip n P0 ; Xo c RI v 8051 khng l m iu n y ; Tr v t ISR ; Xo c TI v 8051 khng xo ; Tr v t ISR.

Trc khi kt thc phn n y h y n danh sch tt c mi c ngt c cho trong bng 11.2. Trong khi thanh thi TCON gi 4 c ngt cn hai c TI v RI trong thanh ghi SCON ca 8051. Bng 11.2: Cc bt c ngt. Ngt Ngt ngo i 0 Ngt ngo i 1 Ngt Timer0 Ngt Timer1 Ngt cng ni tip Ngt Timer2 Ngt Timer2 C IE0 IE1 TF0 TF1 T1 TF2 EXF2 Bt ca thanh ghi SFR TCON.1 TCON.3 TCON.5 TCON.7 SCON.1 T2CON.7 (TA89C52) T2CON.6 (TA89C52)

11.5 Cc mc u tin ngt trong 8051. 11.5.1 Cc mc u tin trong qu trnh bt li ngun. Khi 8051 c cp ngun th cc mc u tin ngt c gn theo bng 11.3. T bng n y ta thy v d nu cc ngt phn cng ngo i 0 v 1 c kch hot cng mt lc th ngt ngo i 0 s c p ng trc. Ch sau khi ngt INT0 c phc v xong th INT1 mi c phc v v INT1 c mc u tin thp hn. Trong thc t s mc u tin ngt trong bng khng c ngha g c m mt quy trnh thm d trong 8051 thm d cc ngt theo trnh t cho trong bng 11.3 v p ng chng mt cch ph hp. Bng 11.3: Mc u tin cc ngt trong khi cp li ngun. Mc u tin cao xung thp Ngt ngo i 0 Ngt b nh thi 0 Ngt ngo i 1 Ngt b nh thi 1 Ngt truyn thng ni tip V d 11.1: INT0 TF0 INT1 TF1 (RI + TI)

Ebook Team

www.updatesofts.com

H y bnh lun xem iu g xy ra nu cc ngt INT0, TF0 v INT1 c kch hot cng mt lc. Gi thit rng cc mc u tin c thit lp nh khi bt li ngun v cc ngt ngo i l ngt theo sn xung. Li gii: Nu ba ngt n y c kch hot cng mt thi im th chng c cht v c gi bn trong. Sau kim tra tt c nm ngt theo trnh t cho trong bng 11.3. Nu mt ngt bt k c kch hot th n c phc v theo trnh t. Do vy, khi c ba ngt trn y cng c kch hot mt lc th ngt ngo i 0 (IE0) c phc v trc ht sau n ngt Timer0 (TF0) v cui cng l ngt ngo i 1 (IE1).
D7 D0

--

--

PT2

PS

PT1

PX1

PT0

PX0

Hnh 11.8: Thanh ghi mc u tin ngt IP, bt u tin = 1 l mc u tin cao, bt u tin = 0 l mc u tin thp. - Bt D7 v D6 hay IP.7 v IP.6 - cha dng. - Bt D5 hay IP.5 l bt u tin ngt Timer2 (dng cho 8052) - Bt D4 hay IP.4 l bt u tin ngt cng ni tip - Bt D3 hay IP.3 l bt u tin ngt Timer1 - Bt D2 hay IP.2 l mc u tin ngt ngo i 1 - Bt D1 hay IP.1 l mc u tin ngt Timer 0 - Bt D0 hay IP.0 l mc u tin ngt ngo i 0 Ngi dng khng c vit phn mm ghi cc s 1 v o cc bt cha dng v chng d nh cho cc ng dng tng li. 11.5.2 Thit lp mc u tin ngt vi thanh ghi IP. Chng ta c th thay i trnh t trong bng 11.3 bng cch gn mc u tin cao hn cho bt k ngt n o. iu n y c thc hin bng cch lp trnh mt thanh ghi gi l thanh ghi mc u tin ngt IP (Interrupt Priority). Trn hnh 11.8 l cc bt ca thanh ghi n y, khi bt li ngun thanh thi 1P cha ho n to n cc s 0 to ra trnh t u tin ngt theo bng 11.3. mt ngt n o mc u tin cao hn ta thc hin a bt tng ng ln cao. H y xem v d 11.12. Mt im khc na cn c l m sng t l mc u tin ngt khi hai hoc nhiu bt ngt trong thanh ghi IP c t ln cao. Trong trng hp n y th trong khi cc ngt n y c mc u tin cao hn cc ngt khc chng s c phc v theo trnh t cho trong bng 11.3. Xem v d 11.13. V d 11.12: a) H y lp trnh thanh ghi IP gn mc u tin cao nht cho ngt INT1 (ngt ngo i 1) sau . b) H y phn tch iu g xy ra khi INT0, INT1 v TF0 c kch hot cng lc. Gi thit tt c cc ngt u l cc ngt theo sn. Li gii: a) MOV IP, #0000 0100B ; t bt IP.2 = 1 gn INT1 mc u tin cao nht. Lnh SETB IP.2 cng tc ng tng t bi v IP l thanh ghi c th nh a ch theo bt. b) Lnh trong bc a) gn mc u tin cao hn INT1 so vi cc ngt khc, do vy khi INT0, INT1 v TF0 c kch hot cng lc th trc ht INT1 c phc v

Ebook Team

www.updatesofts.com

trc ri sau n INT0 v cui cng l TF0. iu n y l do INT1 c mc u tin cao hn hai ngt kia bc a). Sau khi thc hin song ngt INT1 th 8051 tr v phc v ngt cn li theo trnh t u tin trong bng 11.3. V d 11.13: Gi thit rng sau khi bt li ngun th mc u tin ngt c thit lp bi lnh MOV IP, #0000 1100B. H y bnh lun v qu trnh cc ngt c phc v nh th n o? Li gii: Lnh MOV IP, #0000 1100B (ch B l gi tr thp phn) thit lp ngt ngo i (INT1) v ngt b Timer1 (TF1) c mc u tin cao hn cc ngt khc. Tuy nhin, v chng c thm d theo bng 11.3 nn chng s c phc v theo trnh t sau: Mc u tin cao nht: Ngt ngo i 1 (INT1) Ngt b Timer 1 (TF1) Ngt ngo i 0 (INT0) Ngt b Timer0 (TF0) Mc u tin thp nht: Ngt cng truyn thng ni tip (RI + RT). 11.5.3 Ngt trong ngt. iu g xy ra nu 8051 ang thc hin mt trnh phc v ngt thuc mt ngt n o th li c mt ngt khc c kch hot? Trong nhng trng hp nh vy th mt ngt c mc u tin cao hn c th ngt mt ngt c mc u tin thp hn. y gi l ngt trong ngt. Trong 8051 mt ngt u tin thp c th b ngt bi mt ngt c mc u tin cao hn ch khng b ngt bi mt ngt c mc u tin thp hn. Mc d tt c mi ngt u c cht v gi bn trong nhng khng c ngt mc thp n o c CPU quan tm ngay tc khc nu 8051 cha kt thc phc v cc ngt mc cao. 11.5.4 Thu chp ngt bng phn mm (Triggering). C nhiu lc ta cn kim tra mt trnh phc v ngt bng con ng m phng. iu n y c th c thc hin bng cc lnh n gin thit lp cc ngt ln cao v bng cch buc 8051 nhy n bng vc t ngt. V d, nu bt IE d nh cho b Timer1 c bt ln 1 th mt lnh nh SETB TF1 s ngt 8051 ngng thc hin cng vic ang l m bt k v buc n nhy n bng vc t ngt. Hay ni cch khc, ta khng cn i cho Timer1 quay tr v 0 mi to ra ngt. Chng ta c th gy ra mt ngt bng cc lnh a cc bt ca ngt tng ng ln cao. Nh vy chng n y chng ta bit ngt l mt s kin bn trong hoc bn ngo i gy ra ngt b vi iu khin bo cho n bit rng thit b cn c phc v. Mi mt ngt c mt chng trnh i km vi n c gi l trnh phc v ngt ISR. B vi iu khin 8051 c su ngt, trong nm ngt ngi dng c th truy cp c. l hai ngt cho cc thit b phn cng bn ngo i INT0 v INT1, hai ngt cho cc b nh thi l TF0 v TF1 v ngt l nh cho truyn thng ni tip. 8051 c th c lp trnh cho php hoc cm mt ngt bt k cng nh thit lp mc u tin cho n theo yu cu ca thut ton ng dng.

Ebook Team

www.updatesofts.com

Chng 12 Phi ghp vi th gii thc: LCD, ADC v cc cm bin Chng n y khm ph mt s ng dng ca 8051 vi th gii thc. Chng ta gii thch l m cch n o phi ghp 8051 vi cc thit b nh l LCD, ADC v cc cm bin. 12.1 Phi ghp mt LCD vi 8051. phn n y ta s m t cc ch hot ng ca cc LCD v sau m t cch lp trnh v phi ghp mt LCD ti 8051. 12.1.1 Hot ng ca LCD. Trong nhng nm gn y LCD ang ng y c ng c s dng rng r i thay th dn cho cc n LED (cc n LED 7 on hay nhiu on). l v cc nguyn nhn sau: 1. Cc LCD c gi th nh h. 2. Kh nng hin th cc s, cc k t v ho tt hn nhiu so vi cc n LED (v cc n LED ch hin th c cc s v mt s k t). 3. Nh kt hp mt b iu khin l m ti v o LCD l m gii phng cho CPU cng vic l m ti LCD. Trong khi n LED phi c l m ti bng CPU (hoc bng cch n o ) duy tr vic hin th d liu. 4. D d ng lp trnh cho cc k t v ho. 12.1.2 M t cc chn ca LCD. LCD c ni trong mc n y c 14 chn, chc nng ca cc chn c cho trong bng 12.1. V tr ca cc chn c m t trn hnh 12.1 cho nhiu LCD khc nhau. 1. Chn VCC, VSS v VEE: Cc chn VCC, VSS v VEE: Cp dng ngun - 5v v t tng ng th VEE c dng iu khin tng phn ca LCD. 2. Chn chn thanh ghi RS (Register Select). C hai thanh ghi rt quan trng bn trong LCD, chn RS c dng chn cc thanh ghi n y nh sau: Nu RS = 0 th thanh ghi m lnh c chn cho php ngi dng gi mt lnh chng hn nh xo m n hnh, a con tr v u dng v.v Nu RS = 1 th thanh ghi d liu c chn cho php ngi dng gi d liu cn hin th trn LCD. 3. Chn c/ ghi (R/W). u v o c/ ghi cho php ngi dng ghi thng tin ln LCD khi R/W = 0 hoc c thng tin t n khi R/W = 1. 4. Chn cho php E (Enable). Chn cho php E c s dng bi LCD cht thng tin hin hu trn chn d liu ca n. Khi d liu c cp n chn d liu th mt xung mc cao xung thp phi c p n chn n y LCD cht d liu trn cc chn d liu. Xung n y phi rng ti thiu l 450ns. 5. Chn D0 - D7.

Ebook Team

www.updatesofts.com

y l 8 chn d liu 8 bt, c dng gi thng tin ln LCD hoc c ni dung ca cc thanh ghi trong LCD. hin th cc ch ci v cc con s, chng ta gi cc m ASCII ca cc ch ci t A n Z, a n f v cc con s t 0 - 9 n cc chn n y khi bt RS = 1. Cng c cc m lnh m c th c gi n LCD xo m n hnh hoc a con tr v u dng hoc nhp nhy con tr. Bng 12.2 lit k cc m lnh. Chng ta cng s dng RS = 0 kim tra bt c bn xem LCD c sn s ng nhn thng tin. C bn l D7 v c th cc khi R/W = 1 v RS = 0 nh sau: Nu R/W = 1, RS = 0 khi D7 = 1 (c bn 1) th LCD bn bi cc cng vic bn trong v s khng nhn bt k thng tin mi n o. Khi D7 = 0 th LCD sn s ng nhn thng tin mi. Lu chng ta nn kim tra c bn trc khi ghi bt k d liu n o ln LCD. Bng 12.1: M t cc chn ca LCD. Chn 1 2 3 4 5 6 7 8 9 10 11 12 13 14 K hiu VSS VCC VEE RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 I/O I I I/O I/O I/O I/O I/O I/O I/O I/O I/O M t t Dng ngun 5v Cp ngun iu khin phn RS = 0 chn thanh ghi lnh. RS = 1 chn thanh d liu R/W = 1 c d liu. R/W = 0 ghi Cho php Cc bt d liu Cc bt d liu Cc bt d liu Cc bt d liu Cc bt d liu Cc bt d liu Cc bt d liu Cc bt d liu

Bng 12.2: Cc m lnh LCD. M (Hex) 1 2 4 6 5 Lnh n thanh ghi ca LCD Xo m n hnh hin th Tr v u dng Gi con tr (dch con tr sang tri) Tng con tr (dch con tr sang phi) Dch hin th sang phi

Ebook Team 7 8 A C E F 10 14 18 1C 80 C0 38 Dch hin th sang tri Tt con tr, tt hin th Tt hin th, bt con tr Bt hin th, tt con tr Bt hin th, nhp nhy con tr Tt con tr, nhp nhy con tr Dch v tr con tr sang tri Dch v tr con tr sang phi Dch to n b hin th sang tri Dch to n b hin th sang phi p con tr V u dng th nht p con tr V u dng th hai Hai dng v ma trn 5 7

www.updatesofts.com

Ghi ch: Bng n y c m rng t bng 12.4.


12 14 14 2 DMC1610A DMC1606C DMC16117 DMC16128 DMC16129 DMC1616433 DMC20434 14 DMC16106B 21 DMC16207 DMC16230 DMC20215 DMC32216 1 DMC20261 DMC24227 DMC24138 DMC32132 DMC32239 DMC40131 DMC40218 13

Hnh 12.1: Cc v tr chn ca cc LCD khc nhau ca Optrex. 12.1.3 Gi cc lnh v d liu n LCD vi mt tr. gi mt lnh bt k t bng 12.2 n LCD ta phi a chn RS v 0. i vi d liu th bt RS = 1 sau gi mt sn xung cao xung thp n chn E cho php cht d liu trong LCD. iu n y c ch ra trong on m chng trnh di y (xem hnh 12.2). ; gi thi gian tr trc khi gi d liu/ lnh k tip. ; chn P1.0 n P1.7 c ni ti chn d d liu D0 - D7 ca LCD. ; Chn P2.0 c ni ti chn RS ca LCD. ; Chn P2.1 c ni ti chn R/W ca LCD. ; Chn P2.2 c ni n chn E ca LCD.

Ebook Team ORG MOV ACALL ACALL MOV ACALL ACALL MOV ACALL ACALL MOV ACALL ACALL MOV ACALL ACALL MOV ACALL A, # 38H

www.updatesofts.com ; Khi to LCD hai dng vi ma trn

57

COMNWRT ; Gi chng trnh con lnh DELAY ; Cho LCD mt tr A, # 0EH ; Hin th m n hnh v con tr COMNWRT ; Gi chng trnh con lnh DELAY ; Cp mt tr cho LCD AM # 01 ; Xo LCD COMNWRT ; Gi chng trnh con lnh DELAY ; To tr cho LCD A, # 06H ; Dch con tr sang phi COMNWRT ; Gi chng trnh con lnh DELAY ; To tr cho LCD AM # 48H ; a con tr v dng 1 ct 4 COMNWRT ; Gi chng trnh con lnh DELAY ; To tr cho LCD A, # N ; Hin th ch N DATAWRT ; Gi chng trnh con hin thij

DISPLAY ACALL DELAY ; To tr cho LCD MOV AM # 0 ; Hin th ch 0 ACALL DATAWRT ; Gi DISPLAY AGAIN: SJMP AGAIN ; Ch y COMNWRT: ; Gi lnh n LCD MOV P1, A ; Sao chp thanh ghi A n cng P1 CLR P2.0 ; t RS = 0 gi lnh CLR P2.1 ; t R/W = 0 ghi d liu SETB P2.2 ; t E = 1 cho xung cao CLR P2.2 ; t E = 0 cho xung cao xung thp RET DATAWRT: ; Ghi d liu ra LCD MOV P1, A ; Sao chp thanh ghi A n cng P1 SETB P2.0 ; t RS = 1 gi d liu CLR P2.1 ; t R/W = 0 ghi SETB P2.2 ; t E = 1 cho xung cao CLR P2.2 ; t E = 0 cho xung cao xung thp RET DELAY: MOV R3, # 50 ; t tr 50s hoc cao hn cho CPU nhanh HERE2: MOV R4, # 255 ; t R4 = 255

Ebook Team HERE: DJNZ RET END DJNZ R4, HERE R3, HERE2

www.updatesofts.com ; i y cho n khi R4 = 0

LCD 8051 D0 VCC VEE P1.0 P1.0 P2.1 P2.2 D7 V RS R/W E SS

+5v 10K POT

Hnh 12.2: Ni ghp LCD. 12.1.4 Gi m lnh hoc d liu n LCD c kim tra c bn. on chng trnh trn y ch ra cch gi cc lnh n LCD m khng c kim tra c bn (Busy Flag). Lu rng chng ta phi t mt tr ln trong qu trnh xut d liu hoc lnh ra LCD. Tuy nhin, mt cch tt hn nhiu l hin th c bn trc khi xut mt lnh hoc d liu ti LCD. Di y l mt chng trnh nh vy. ; Kim tra c bn trc khi gi d liu, lnh ra LCD ; t P1 l cng d liu ; t P2.0 ni ti cng RS ; t P2.1 ni ti chn R/W ; t P2.2 ni ti chn E ORG MOV A, # 38H ; Khi to LCD hai dng vi ma trn 57 ACALL COMMAND ; Xut lnh MOV A, # 0EH ; Dch con tr sang phi ACALL COMMAND ; Xut lnh MOV A, # 01H ; Xo lnh LCD ACALL COMMAND ; Xut lnh MOV A, # 86H ; Dch con tr sang phi ACALL COMMAND ; a con tr v dng 1 lnh 6 MOV A, # N ; Hin th ch N ACALL DATA DISPLAY

Ebook Team

www.updatesofts.com

MOV A, # 0 ; Hin th ch 0 ACALL DATA DISPLAY HERE: SJMP HERE ; Ch y COMMAND: ACALL READY ; LCD sn s ng cha? MOV P1, A ; Xut m lnh CLR P2.0 ; t RS = 0 cho xut lnh CLR P2.1 ; t R/W = 0 ghi d liu ti LCD SETB P2.2 ; t E = 1 i vi xung cao xung thp CLR P2.2 ; t E = 0 cht d liu RET DATA-DISPLAY:: ACALL READY ; LCD sn s ng cha? MOV P1, A ; Xut d liu SETB P2.0 ; t RS = 1 cho xut d liu CLR P2.1 ; t R/W = 0 ghi d liu ra LCD SETB P2.2 ; t E = 1 i vi xung cao xung thp CLR P2.2 ; t E = 0 cht d liu RET DELAY: SETB P1.7 ; Ly P1.7 l m cng v o CLR P2.0 ; t RS = 0 truy cp thanh ghi lnh SETB P2.1 ; t R/W = 1 c thanh ghi lnh ; c thanh ghi lnh v kim tra c lnh BACK: CLR P2.2 ; E = 1 i vi xung cao xung thp SETB P2.2 ; E = 0 cho xung cao xung thp? JB P1.7, BACK ; i y cho n khi c bn = 0 RET END Lu rng trong chng trnh c bn D7 ca thanh ghi lnh. c thanh ghi lnh ta phi t RS = 0, R/W = 1 v xung cao - xung - thp cho bt E cp thanh ghi lnh cho chng ta. Sau khi c thanh ghi lnh, nu bt D7 (c bn) mc cao th LCD bn v khng c thng tin (lnh) n o c xut n n ch khi n o D7 = 0 mi c th gi d liu hoc lnh n LCD. Lu trong phng pht n y khng s dng tr thi gian n o v ta ang kim tra c bn trc khi xut lnh hoc d liu ln LCD. 12.1.5 Bng d liu ca LCD. Trong LCD ta c th t d liu v o bt c ch n o. di y l cc v tr a ch v cch chng c truy cp. RS 0 E/W 0 DB7 1 DB6 A DB5 A DB4 A DB3 A DB2 A DB1 A DB0 A

Ebook Team

www.updatesofts.com

Khi AAAAAAA = 0000000 n 0100111 cho dng lnh 1 v AAAAAAA = 1100111 cho dng lnh2. Xem bng 12.3. Bng 12.3: nh a ch cho LCD. Dng 1 (min) Dng 1 (max) Dng 2 (min) Dng 2 (max) DB7 1 1 1 1 DB6 0 0 1 1 DB5 0 1 0 1 DB4 0 0 0 0 DB3 0 0 0 0 DB2 0 1 0 1 DB1 0 1 0 1 DB0 0 1 0 1

Di a ch cao c th l 0100111 cho LCD. 40 k t trong khi i vi CLD 20 k t ch n 010011 (19 thp phn = 10011 nh phn). rng di trn 0100111 (nh phn) = 39 thp phn ng vi v tr 0 n 39 cho LCD kch thc 40 2. T nhng iu ni trn y ta c th nhn c cc a ch ca v tr con tr c cc kch thc LCD khc nhau. Xem hnh 12.3 ch rng tt c mi a ch u dng s Hex. Hnh 12.4 cho mt biu ca vic phn thi gian ca LCD. Bng 12.4 l danh sch lit k chi tit cc lnh v ch lnh ca LCD. Bng 12.2 c m rng t bng n y. 16 2 LCD 20 1 LCD 20 2 LCD 20 4 LCD 80 C0 80 80 C0 80 C0 94 D4 80 C0 81 C0 81 81 C0 81 C0 95 D5 81 C0 82 C2 82 82 C2 82 C2 96 D6 82 C2 83 C3 83 83 C3 83 C3 97 D7 83 C3 84 85 86 C4 C5 C6 Through 93 Through 93 Through D3 Through 93 Through D3 Through A7 Through E7 Through A7 Through E7 Through 8F Through CF

20 2 LCD Note: All data is in hex.

Hnh 12.3: Cc a ch con tr i vi mt s LCD.

Ebook Team

www.updatesofts.com

Data

tDSW tAS tPWH

tH tAH

R/W
RS

tPwh = Enable pulse width = 450 ns (minimum) tDSW = Data set up time = 195 ns (minimum) tH = Data hold time 10 ns (minimum) tAS = Set up time prior to E (going high) for both RS and R/W = 140 ns (minimum) tAH = Hold time afterr E has come down for both RS and R/W = 10 ns (minimum)

Hnh 12.4: Phn khe thi gian ca LCD. Bng 12.4: Danh sch lit k cc lnh v a ch lnh ca LCD. Lnh RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 M t Thi gian thc hin 1.64 s

Xo m n hnh Tr v u dng t ch truy nhp

0 0 0 0 0 0 0 0 0 1 Xo to n b m n hnh v t a ch 0 ca DD RAM v o b m a ch 0 0 0 0 0 0 0 0 1 - t a ch 0 ca DD RAM 1.64 s nh b m a ch. Tr hin th dch v v tr gc DD RAM khng thay i 0 0 0 0 0 0 0 1 1 S t hng chuyn dch 40 s / con tr v xc nh dch D hin th cc thao tc n y c thc hin khi c v ghi d liu

Ebook Team iu khin Bt/t t hin th Dch hin th v con tr t chc nng t a ch CGR AM Thit lp a ch DD RAM C bn c v a ch Ghi d liu CG hoc DD RAM

www.updatesofts.com 40 s

0 0 0 0 0 0 1 D C B t Bt/ tt m n hnh (D) Bt/ tt con tr (C) v nhp nhy k t v tr con tr (B) 0 0 0 0 0 1 S R / / C L 0 0 0 0 1 D N F L 0 0 0 1 AGC Dch con tr v dch hin th m khng thay i DD RAM Thit lp d i d liu (DL) s dng hin th (L) v phng k t (F) Thit lp a ch C6 RAM d liu CG RAM c gi i v nhn sau thit lp n y Thit lp a ch DD RAM d liu DD RAM c gi v nhn sau thit lp n y

40 s

40 s 40 s

0 0 1

ADD

40 s

0 1

BF

ADD

C bn c (BF) bo hot ng bn trong ang c thc hin v c ni dung b m a ch Ghi d liu v o DD RAM hoc CG RAM

40 s

1 0

Ghi d liu

40 s

Ebook Team c d liu CG hoc DD RAM 1 1 c d liu

www.updatesofts.com c d liu t DD RAM hoc CG RAM 40 s

Ghi ch: 1. Thi gian thc l thi gian cc i khi tn s fCP hoc fosc l 250KHz 2. Thi gian thc thay i khi tn s thay i. Khi tn s fEP hay fosc L 270kHz th thi gian thc hin c tnh 250/270 40 = 35s v.v 3. Cc k hiu vit tt trong bng l : 4. DD RAM RAM d liu hin th (Display Data RAM) CG RAM RAM my pht k t (character Generator) ACC a cha ca RAM my pht k t ADD a ch ca RAM d liu hin th ph hp vi a ch con tr. AC B m a ch (Address Counter) c dng cho cc a ch DD RAM v CG RAM. 1/D = 1 Tng 1/D = 0 Gim S=1 Km dch hin th S/C = 1 Dch hin th S/C = 0 Dch con tr R/L = 1 Dch sang phi R/L = 0 Dch tri DL = 1 8 bt DL = 0 4 bt N=1 2 dng N=1 1 dng F=1 Ma trn im 5 10 F=0 Ma trn im 5 7 BF = 1 Bn BF = 0 C th nhn lnh 12.2 Phi ghp 8051 vi ADC v cc cm bin. Phn n y s khm ph ghp cc chp ADC (b chuyn i tng t s) v cc cm bin nhit vi 8051. 12.1.1 Cc thit b ADC. Cc b chuyn i ADC thuc trong nhng thit b c s dng rng r i nht thu d liu. Cc my tnh s s dng cc gi tr nh phn, nhng trong th gii vt l th mi i lng dng tng t (lin tc). Nhit , p sut (kh hoc cht lng), m v vn tc v mt s t trng nhng i lng vt l ca th gii thc m ta gp h ng ng y. Mt i lng vt l c chuyn v dng in hoc in p qua mt thit b c gi l cc b bin i.

Ebook Team

www.updatesofts.com

Cc b bin i cng c th c coi nh cc b cm bin. Mc d ch c cc b cm bin nhit, tc , p sut, nh sng v nhiu i lng t nhin khc nhng chng u cho ra cc tn hiu dng dng in hoc in p dng lin tc. Do vy, ta cn mt b chuyn i tng t s sao cho b vi iu khin c th c c chng. Mt chp ADC c s dng rng r i l ADC 804. 12.2.2 Chp ADC 804. Chp ADC 804 l b chuyn i tng t s trong h cc lot ADC 800 t h ng National Semiconductor. N cng c nhiu h ng khc sn xut, n l m vic vi +5v v c phn gii l 8 bt. Ngo i phn gii th thi gian chuyn i cng l mt yu t quan trng khc khi nh gi mt b ADC. Thi gian chuyn i c nh ngha nh l thi gian m b ADC cn chuyn mt u v o tng t th nh mt s nh phn. Trong ADC 804 thi gian chuyn i thay i ph thuc v o tn s ng h c cp ti chn CLK v CLK IN nhng khng th nhanh hn 110s. Cc chn ca ADC 804 c m t nh sau: 1. Chn CS - chn chp: L mt u v o tch cc mc thp c s dng kch hot chp ADC 804. truy cp ADC 804 th chn n y phi mc thp. 2. Chn RD (c): y l mt tn hiu u v o c tch cc mc thp. Cc b ADC chuyn i u v o tng t th nh s nh phn tng ng vi n v gi n trong mt thanh ghi trong. RD c s dng nhn d liu c chuyn i u ra ca ADC 804. Khi CS = 0 nu mt xung cao - xung thp c p n chn RD th u ra s 8 bt c hin din cc chn d liu D0 - D7. Chn RD cng c coi nh cho php u ra. 3. Chn ghi WR (thc ra tn chnh xc l Bt u chuyn i). y l chn u v o tch cc mc thp c dng bo cho ADC 804 bt u qu trnh chuyn i. Nu CS = 0 khi WR to ra xung cao - xung - thp th b ADC 804 bt u chuyn i gi tr u v o tng t Vin v s nh phn 8 bt. Lng thi gian cn thit chuyn i thay i ph thuc v o tn s a n chn CLK IN v CLK R. Khi vic chuyn i d liu c ho n tt th chn INTR c p xung thp bi ADC 804. 4. Chn CLK IN v CLK R. Chn CLK IN l mt chn u v o c ni ti mt ngun ng h ngo i khi ng h ngo i c s dng to ra thi gian. Tuy nhin 804 cng c mt my to xung ng h. s dng my to xung ng h trong (cng cn c gi l my to ng h ring) ca 804 th cc chn CLK IN v CLK R c ni ti mt t in v mt in tr nh ch ra trn hnh 12.5. Trong trng hp n y tn s ng h c xc nh bng biu thc:
f= 1 1,1RC

gi tr tiu biu ca cc i lng trn l R = 10k v C= 150pF v tn s nhn c l f = 606kHz v thi gian chuyn i s mt l 110s.

Ebook Team

www.updatesofts.com

ADC0804 +5V 10k


POT

1 1 1 9 19

20 Vin(+) Vin(-) A GND Vref/2 CLK R CLK in CS RD D GND Vcc D0 D1 D2 D3 D4 D5 D6 D7 WR INTR 18 17 16 15 14 13 12 11 3 5

to
LEDs

10k
150pF

4 1 2 10

Nomally
Open START

Hnh 12.5: Kim tra ADC 804 ch chy t do. 5. Chn ngt INTR (ngt hay gi chnh xc hn l kt thc chuyn i). y l chn u ra tch cc mc thp. Bnh thng n trng thi cao v khi vic chuyn i ho n tt th n xung thp bo cho CPU bit l d liu c chuyn i sn s ng ly i. Sau khi INTR xung thp, ta t CS = 0 v gi mt xung cao 0 xung - thp ti chn RD ly d liu ra ca 804. 6. Chn Vin (+) v Vin (-). y l cc u v o tng t vi sai m Vin = Vin (+) - Vin (-). Thng thng Vin (-) c ni xung t v Vin (+) c dng nh u v o tng t c chuyn i v dng s. 7. Chn VCC. y l chn ngun nui +5v, n cng c dng nh in p tham chiu khi u v o Vref/2 (chn 9) h. 8. Chn Vref/2. Chn 9 l mt in p u v o c dng cho in p tham chiu. Nu chn n y h (khng c ni) th in p u v o tng t cho ADC 804 nm trong di 0 n +5v (ging nh chn VCC). Tuy nhin, c nhiu ng dng m u v o tng t p n Vin cn phi khc ngo i di 0 n 5v. Chn Vref/2 cdng thc thi cc in p u v o khc ngo i di 0 - 5v. V d, nu di u v o tng t cn phi l 0 n 4v th Vref/2 c ni vi +2v.

Ebook Team

www.updatesofts.com

Bng 12.5 biu din di in p Vin i vi cc u v o Vref/2 khc nhau. Bng 12.5: in p Vref/2 lin h vi di Vin.

Vref/ 2(V) H * 2.0 1.5 1.28 1.0 0.5

Vin(V) 0 n 5 0 n 4 0 n 3 0 n 2.56 0 n 2 0 n 1

Step Size (mV) 5/256 = 19.53 4/255 = 15.62 3/256 = 11.71 2.56/256 = 10 2/256 = 7.81 1/256 = 3.90

Ghi ch: - VCC = 5V - * Khi Vref/2 h th o c khong 2,5V - Kch thc bc ( phn di) l s thay i nh nht m ADC c th phn bit c. 9. Cc chn d liu D0 - D7. Cc chn d liu D0 - D7 (D7 l bt cao nht MSB v D0 l bt thp nht LSB) l cc chn u ra d liu s. y l nhng chn c m ba trng thi v d liu c chuyn i ch c truy cp khi chn CS = 0 v chn RD b a xung thp. tnh in p u ra ta c th s dng cng thc sau:
D out = V in kich thuoc buoc

Vi Dout l u ra d liu s (dng thp phn). Vin l in p u v o tng t v phn di l s thay i nh nht c tnh nh l (2 Vref/2) chia cho 256 i vi ADC 8 bt. 10.Chn t tng t v chn t s. y l nhng chn u v o cp t chung cho c tn hiu s v tng t. t tng t c ni ti t ca chn Vin tng t, cn t s c ni ti t ca chn Vcc. L do m ta phi c hai t l cch ly tn hiu tng t Vin t cc in p k sinh to ra vic chuyn mch s c chnh xc. Trong phn trnh b y ca chng ta th cc chn n y c ni chung vi mt t. Tuy nhin, trong thc t thu o d liu cc chn t n y c ni tch bit. T nhng iu trn ta kt lun rng cc bc cn phi thc hin khi chuyn i d liu bi ADC 804 l : a) Bt CS = 0 v gi mt xung thp ln cao ti chn WR bt u chuyn i. b) Duy tr hin th chn INTR . Nu INTR xung thp th vic chuyn i c ho n tt v ta c th sang bc k tip. Nu INTR cao tip tc thm d cho n khi n xung thp.

Ebook Team

www.updatesofts.com

c) Sau khi chn INTR xung thp, ta bt CS = 0 v gi mt xung cao - xung thp n chn RD ly d liu ra khi chp ADC 804. Phn chia thi gian cho qu trnh n y c trnh b y trn hnh 12.6.

CS

WR
D0 D7 Data out

INTR
RD
Start conversion End conversion

Read it

Hnh 12.6: Phn chia thi gian c v ghi ca ADC 804. 12.2.3 Kim tra ADC 804. Chng ta c th kim tra ADC 804 bng cch s dng s mch trn hnh 12.7. thit lp n y c gi l ch kim tra chy t do v c nh sn xut khuyn cao nn s dng. Hnh 12.5 trnh b y mt bin tr c dng cp mt in p tng t t 0 n 5V ti chn u v o. Vin(+) ca ADC 804 cc u ra nh phn c hin th trn cc n LED ca bng hun luyn s. Cn phi lu rng trong ch kim tra chy t do th u v o CS c ni ti t v u v o WR c ni ti u ra INTR . Tuy nhin, theo t i liu ca h ng National Semiconductor nt WR v INTR phi c tm thi a xung thp k sau chu trnh cp ngun bo m hot ng.
8051 P2.5 P2.6 P1.0 ADC804 5V
10k

RD

WR
D0

VCC CLK R CLK IN Vin(+) Vin(-)

150pF 10k POT

Ebook Team

www.updatesofts.com

Hnh 12.7: Ni ghp ADC 804 vi ngun ng h ring. V d 12.7: H y th ni ghp ADC 804 vi 8051 theo s 12.7. Vit mt chng trnh hin th chn INTR v ly u v o tng t v o thanh ghi A. Sau gi mt chng trnh chuyn i m Hex ra ASCII v mt chng trnh hin th d liu. Thc hin iu n y lin tc. Li gii: ; t P2.6 = WR (bt u chuyn i cn 1 xung thp ln cao) ; t chn P2.7 = 0 khi kt thc chuyn i ; t P2.5 = RD (xung cao - xung - thp s c d liu t ADC) ; P1.0 P1.7 ca ADC 804 MOV P1, # 0FFH ; Chn P1 l cng u v o BACK: CLR P2.6 ; t WR = 0 SETB P2.6 ; t WR = 1 bt u chuyn i HERE: JB P2.7, HERE ; Ch cho P2.7 to kt thc chuyn i CLR P2.5 ; Kt thc chuyn i, cho php c RD MOV A, P1 ; c d liu v o thanh ghi A ACALL CONVERSION ; Chuyn i s Hex ra m ASCII ACALL DATA-DISPLAY ; Hin th d liu SETB P2.5 ; a RD = 1 cho ln c sau. SJMP BACK
8051 P2.5 P2.6 P1.0 ADC804 5V

RD

WR
D0

VCC CLK R CLK IN Vin(+) Vin(-)

10k

Ebook Team

www.updatesofts.com

Hnh 12.8: Ni ghp ADC 804 vi ng h t XTAL2 ca 8051. Trn hnh 12.8 ta c th thy rng tn hiu ng h i v o ADC 804 l t tn s thch anh ca 8051. V tn s n y qu cao nn ta s dng hai mch lt Rlip - Flop kiu D (74LS74) chia tn s n y cho 4. Mt mch lt chia tn s cho 2 nu ta ni u Q ti u v o D. i vi tn s cao hn th ta cn s dng nhiu mch Flip - Plop hn. 12.2.4 Phi ghp vi mt cm bin nhit ca 8051. Cc b bin i (Transducer) chuyn i cc i lng vt l v d nh nhit , cng nh sng, lu tc v tc th nh cc tn hiu in ph thuc v o b bin i m u ra c th l tn hiu dng in p, dng, tr khng hay dung khng. V d, nhit c bin i th nh v cc tn hiu in s dng mt b bin i gi l Rhermistor (b cm bin nhit), mt b cm bin nhit p ng s thay i nhit bng cch thay i tr khng nhng p ng ca n khng tuyn tnh (xem bng 12.6). Bng 12.6: Tr khng ca b cm bin nhit theo nhit . Nhit (0C) 0 25 50 75 100 Tr khng ca cm bin (k) 29.490 10.000 3.893 1.700 0.817

Bng 12.7: Hng dn chn lot cc cm bin h LM34.

Ebook Team M k hiu LM34A LM34 LM34CA LM34C LM34D Di nhit -55 F to + 300 C -55 F to + 300 C -40 F to + 230 C -40 F to + 230 C -32 F to + 212 C chnh xc + 2.0 F + 3.0 F + 2.0 F + 3.0 F + 4.0 F

www.updatesofts.com u ra 10mV/F 10mV/F 10mV/F 10mV/F 10mV/F

Bng 12.8: Hng dn chn lot cc cm bin nhit h LM35. M sn phm LM35A LM35 LM35CA LM35C LM35D Di nhit -55 C to + 150 C -55 C to + 150 C -40 C to + 110 C -40 C to + 110 C 0 C to + 100 C chnh xc + 1.0 C + 1.5 C + 1.0 C + 1.5 C + 2.0 C u ra 10 mV/F 10 mV/F 10 mV/F 10 mV/F 10 mV/F

Tnh cht gn lin vi vic vit phn mm cho cc thit b phi tuyn nh vy a nhiu nh sn xut tung ra th trng cc lot b cm bin nhit tuyn tnh. Cc b cm bin nhit n gin v c s dng rng r i bao gm cc lot h LM34 v LM35 ca h ng National Semiconductor Corp. 12.2.5 Cc b cm bin nhit h LM34 v LM35. Lot cc b cm bin LM34 l cc b cm bin nhit mch tch hp chnh xc cao m in p u ra ca n t l tuyn tnh v nhit Fahrenheit (xem hnh 12.7). lot LM34 khng yu cu cn chnh bn ngo i v vn n c cn chnh ri. N a ra in p 10mV cho s thay i nhit 10F. bng 12.7 hng dn ta chn cc cm bin lot LM34. Lot cc b cm bin LM35 cng l cc b cm bin nhit mch tch hp chnh xc cao m in p u ra ca n t l tuyn tnh vi nhit theo thang Celsius. Chng cng khng yu cu cn chnh ngo i v vn chng c cn chnh. Chng a ra in p 10Mv cho mi s thay i 10C. Bng 12.8 hng dn ta chn cc cm bin h LM35. 12.2.6 Phi hp tn hiu v phi ghp LM35 vi 8051. Phi hp tn hiu l mt thut ng c s dng rng r i trong lnh vc thu o d liu. Hu ht cc b bin i u a ra cc tn hiu in dng in p, dng in, dung khng hoc tr khng. Tuy nhin, chng ta cn chuyn i cc tn hiu n y v in p nhm gi u v o n b chuyn i ADC. S chuyn i (bin i) n y c gi chung l phi hp tn hiu. Phi hp tn hiu c th l vic chuyn i dng in th nh in p hoc s khuych i tn hiu. V d, b cm bin nhit thay i tr khng vi nhit . S thay i tr khng phi c chuyn th nh in p c th c s dng cho cc ADC. Xt trng hp ni mt LM35 ti mt ADC 804 v ADC 804 c phn di 8 bt vi ti a 256 bc (28) v LM35 (hoc ML34) to in p 10mV cho mi

Ebook Team

www.updatesofts.com

s thay i nhit 10C nn ta c th to iu kin Vin ca ADC 804 to ra mt Vout = 2560mV (2,56V) cho u ra u thang o. do vy, nhm to ra Vout y thang 2,56V cho ADC 804 ta cn t in p Vref/2 = 1,28V. iu n y l m cho Vout ca ADC 804 p ng trc tip vi nhit c hin th trn LM35 (xem bng 12.9). Cc gi tr ca Vref/2 c cho bng 12.5. Bng 12.9: Nhit . Nhit (0C) 0 1 2 3 10 30 Vin (mV) 0 10 20 30 100 300 Vout (D7 D0) 0000 0000 0000 0001 0000 0010 0000 0011 0000 1010 0001 1110

Cc i lng vt l (nhit , p sut, lu tc v.v) B bin i Phi hp tn hiu ADC B vi iu khin

Hnh 12.9: Thu o cc i lng vt l.


8051 P2.5 P2.6 P1.0 ADC804 5V LM35 or LM34

RD

WR
D0

VCC CLK R CLK IN Vin(+) Vin(-) A GND Vref/2 GND

GND

2.5k

Q
P1.7 P2.7 D7 INTR

LM336

CS

Set to 1.28V

10k

Ebook Team

www.updatesofts.com

Hnh 12.10 Hnh 12.10: Ni ghp 8051 vi DAC 804 v cm bin nhit . Hnh 12.10 biu din ni ghp ca b cm bin nhit n ADC 804. Lu rng ta s dng i t zener LM336 - 2.5 c nh in p qua bin tr 10k ti 2,5V. Vic s dng LM336 - 2.5 c th vt qua c mi dao ng ln xung ca ngun nui. 12.2.7 Chp ADC 808/809 vi 8 knh tng t. Mt chp hu ch khc ca National Semiconductor l ADC 808/809 (xem hnh 12.11). Trong khi ADC 804 ch c mt u v o tng t th chp n y c 8 knh u v o. Nh vy n cho php ta hin th ln 8 b bin i khc nhau ch qua mt chp duy nht. Lu rng, ADC 808/809 c u ra d liu 8 bt nh ADC 804. 8 knh u v o tng t c dn knh v c chn theo bng 12.10 s dng ba chn a ch A, B v C.

IN0

GND

Clock

Vcc

D0

IN7

ADC808/809
Vref(+) EOC Vref(-) OE SC ALE A C C

D7

(LSB)

Hnh 12.11: B bin i ADC 808/809. Bng 12.10: Chn knh tng t ca ADC 808. Chn knh tng t IN0 IN1 IN2 C 0 0 0 B 0 0 1 A 0 1 0

Ebook Team IN3 IN4 IN5 IN6 IN7 0 1 1 1 1 1 0 0 1 1

www.updatesofts.com 1 0 1 0 1

Trong ADC 808/809 th Vrer(+) v Vref(-) thit lp in p tham chiu. Nu Vref (-1) = Gnd v Vref (+) = 5V th phn di l 5V/256 = 19,53mV. Do vy, c phn di 10mV ta cn t Vref (+) = 2,56V v Vref (-) = Gnd. T hnh 12.11 ta thy c chn ALE. Ta s dng cc a ch A, B v C chn knh u v o IN0 IN7 v kch hot chn ALE cht a ch. Chn SetComplete bt u chuyn i (Start Conversion). Chn EOC c dng kt thc chuyn i (End - Of - Conversion) v chn OE l cho php c u ra (Out put Enable). 12.2.7 Cc bc lp trnh cho ADC 808/809. Cc bc chuyn d liu t u v o ca ADC 808/809 v o b vi iu khin nh sau: 1. Chn mt knh tng t bng cch to a ch A, B v C theo bng 12.10. 2. Kch hot chn ALE (cho php cht a ch Address Latch Enable). N cn xung thp ln cao cht a ch. 3. Kch hot chn SCbng xung cao xung thp bt u chuyn i. 4. Hin th OEC bo kt thc chuyn i. u ra cao - xung - thp bo rng d liu c chuyn i v cn phi c ly i. 5. Kch hot OE cho php c d liu ra ca ADC. Mt xung cao xung thp ti chn OE s em d liu s ra khi chp ADC. Lu rng trong ADC 808/809 khng c ng h ring v do vy phi cp xung ng b ngo i n chn CLK. Mc d tc chuyn i ph thuc v o tn s ng h c ni n CLK nhng n khng nhanh hn 100ms.

Ebook Team

www.updatesofts.com

Chng 13 Phi ghp vi th gii kiu II ng c bc, b n phm v cc b DAC


13.1 Phi ghp vi mt ng c bc. Phn n y bt u vi vic gii thiu tng quan v hot ng ca cc ng c bc. Sau chng ta m t cch phi ghp mt ng c bc vi b vi iu khin 8051. Cui cng ta s dng cc chng trnh hp ng trnh din iu khin gc v hng quay ca ng c bc. 13.1.1 Cc ng c bc. ng c bc l mt thit b s dng rng r i chuyn cc xung in th nh chuyn ng c hc. Trong cc ng dng chng hnnh cc b iu khin a, cc my in kim ma trn v cc my r-bt th ng c bc c dng iu khin chuyn ng. Mi ng c bc u c phn quay rto l nam chm vnh cu (cng cn c gi l trc dn - shaft) c bao bc xung quanh l mt ng yn gi stato (xem hnh 131.1). Hu ht cc ng c bc u c chung c 4 stato m cc cun dy ca chng c b tr theo cp i xng vi im gia chung (xem hnh 13.2), Kiu ng c bc n y nhn chung cn c coi nh ng c bc 4 pha. im gia cho php mt s thay i ca hng dng ca mt trong hai li khi mt cun dy c ni t to ra s thay i cc ca stato. Lu rng, trc ca mt ng c truyn thng th quay t do, cn trc ca ng c bc th chuyn ng theo mt tng c nh lp li cho php ta chuyn dch n n mt v tr chnh xc. Chuyn ng c nh lp li n y c c l nh kt qu ca l thuyn t trng c s l cc cc cng du th y nhau v cc cc khc du th ht nhau. Hng quay c xc nh bi t trng ca stato. T trng ca stato c xc nh bi dng chyt quan li cun dy. khi hng ca dng thay i th cc t trng cng thay i gy ra chuyn ng ngc li ca ng c (o chiu). ng c bc c ni y c 6 u dy: 4 u ca cun dy stato v hai u dy chung im gia ca cc cp dy. Khi chui xung ngun c cp n mi cun dy stato th ng c s quay. C mt s chui xung c s dng rng r i vi cp chnh xc khc nhau. Bng 13.1 trnh b y chui 4 bc thng thng.

Ebook Team

www.updatesofts.com

N C O S D N S

Average North N

N C O S Average South D N S

Hnh 13.1: Cn chnh rto. Bng 13.1: Chui ngun nui 4 bc thng thng.

Ebook Team
Chiu kim ng h Bc 1 2 3 4 Cun dy A 1 1 0 0 Cun dy B 0 1 1 0 Cun dy C 0 0 1 1

www.updatesofts.com
Cun dy D 1 0 0 1 Chiu quay b m

Bng13.2: Cc gc bc ca ng c bc. Gc bc 0.72 1.8 2.0 2.5 5.0 7.5 15 S bc/ vng 500 200 180 144 72 48 24 Hnh 13.2:

Bng13.2: Cc gc bc ca ng c bc. Hnh 13.2: B tr cc cun dy ca stato.

Hnh 13.3: Phi ghp 8051 vi mt ng c bc. Cn phi nh rng mc d ta c th bt u vi cc chui bt k trong bng 13.1. Nhng khi bt u th ta phi tip tc vi cc chui theo ng th t. V d ta bt u bc th ba l chui (0110) th ta phi tip tc vi chui ca bc 4 ri sau 1, 2, 3 v.v... V d 13.1:

Ebook Team

www.updatesofts.com

H y m t kt ni 8051 vi ng c bc ca hnh 13.3 v vit mt chng trnh quay n lin tc. Li gii: Cc bc di dy trnh b y vic kt ni 8051 vi ng c bc v lp trnh ca n. 1. S dng mt m k o tr khng ca cc u dy. iu n y xc nh u chung (COM) n o c ni ti cun dy n o? 2. Cc dy chung c ni ti u dng ca ngun cp cho ng c. Trong nhiu ng c th + 5V l . 3. Bn u c cun dy stato c iu khin bi 4 bt ca cng P1 trong 8051 (P1.0 - P1.3). Tuy nhin, v 8051 khng dng iu khin cc cun dy ng c bc nn ta phi s dng mt b iu khin chng hn nh ULN2003 cp nng lng cho stato. Thay cho ULN2003 ta c th s dng cc bng bn dn l m cc b iu khin nh ch ra trn hnh 13.4. Tuy nhin ta rng, nu cc bng bn dn c s dng nh cc b iu khin chng ta cng phi s dng cc i t ngn dng cm ng c to ra khi tt cun dy. Mt l do m ULN2003 c u chung hn cc bng bn dn nh cc b iu khin l n c i t bn trong ngn cm ng in t ngc.
BACK: MOV MOV RR ACALL SJMP -------MOV MOV DJNZ DJNZ RET A, # 66H P1, A A DELAY BACK R2, # 100 R3, # 255 R3, H2 R2, H1 ; Np chui xung bc ; Xut chui xung n ng c ; Quay theo chiu kim ng h ; Ch ; Tip tc chy

DELAY H1: H2:

H y thay i gi tr ca DELAY t tc quay. Ta c th s dng lnh n bt SETB v CLR thay cho lnh RRA to ra chui xung. 13.1.2 Gc bc (Step Angle). Vy mi bc c dch chuyn l bao nhiu? iu n y ph thuc v o cu trc bn trong ca ng c, c bit l s rng ca stato v r to. Gc bc l quay nh nht ca mt bc. Cc ng c khc nhau c cc gc bc khc nhau. Bng 13.2 trnh b y mt s gc bc i vi cc ng c khc nhau. Bng 13.2 c s dng thut ng s bc trong mt vng (Steps per revolution). y l tng s bc cn quay ht mt vng 3600 (chng hn 180 bc 20 = 3600). Cn phi ni rng dng nh tri ngc vi n tng ban u. Mt ng c bc khng cn nhiu u dy cho stato hn c cc bc nh hn. Tt c mi ng c bc c ni y ch c 4 u dy cho cun dy stato v 2 u dy chung cho nt gia. Mc d nhiu h ng sn xut ch d nh mt u chung thay cho hai th h cng vn phi c 4 u cun dy stato. 13.1.3 Quan h s bc trong giy v s vng quay trong pht RPM.

Ebook Team

www.updatesofts.com

Quan h gia s vng quay trong pht RPM (revolutions per minute), s bc trong vng quay v s bc trong vng giy l quan h thuc v trc gic v n c biu din nh sau:
So buoc trong giay = RPM So buoc trong vong quay 60

13.1.4 Chui xung bn bc v s rng trn r to. Chui xung chuyn mch c trnh b y trong bng 13.1 c gi l chui chuyn mch 4 bc bi v sau 4 bc th hai cun dy ging nhau s c bt ON. Vy dch chuyn ca 4 bc n y s l bao nhiu? Sau mi khi thc hin 4 bc n y th r to ch dch c mt bc rng. Do vy, trong ng c bc vi 200 bc/ vng th r to ca n c 50 rng v 50 4 = 200 bc cn quay ht mt vng. iu n y dn n mt kt lun l gc bc ti thiu lun l h m ca s rng trn r to. Hay ni cch khc gc bc c ng nh th r to quay c c ng nhiu rng. H y xt v d 13.2. V d 13.2: H y tnh s ln ca chui 4 bc trong bng 13.1 phi cp cho mt ng c bc to ra mt dch chuyn 800 nu ng c gc bc l 20. Li gii: Mt ng c c gc bc l 20 th phi c nhng c tnh sau: gc bc 20, s bc/ vng l 1800, s rng ca r to l 45, dch chuyn sau mi chui 4 bc l 80. Vy dch chuyn 800 th cn 40 chui 4 bc v 10 4 2 = 80. Nhn v o v d 13.2 th c ngi s hi vy mun dch chuyn i 450 th l m th n o khi gc bc l 20. Mun c phn gii nh hn th tt c mi ng c bc u cho php chui chuyn mch 8 bc, chui 8 bc cng cn c gi chui na bc (half - stepping), v trong chui 8 bc di y th mi bc l mt na ca gc bc bnh thng. V d, mt ng c c gc bc l 20 c th s dng gc bc 10 nu p dng chui bng 13.3. Bng 13.3: Chui xung 8 bc. Bc 1 2 3 4 5 6 7 8 Cun A 1 1 1 0 0 0 0 0 Cun B 0 0 1 1 1 0 0 0 Cun C 0 0 0 0 1 1 1 0 Cun D 1 0 0 0 0 0 1 1

Chiu kim ng h

Chiu quay b m

13.1.5 Tc ng c. Tc ng c c o bng s bc trong mt giy (bc/giy) l mt h m ca tc chuyn mch. trong v d 13.1 ta thy rng bng vic thay i thi gian tr ta c th t c cc tc quay khc nhau. 13.1.6 M mem gi.

Ebook Team

www.updatesofts.com

Di y l mt nh ngha v m men gi: M men gi l lng m men ngo i cn thit l m quay trc ng c t v tr gi ca n vi iu kin trc ng c ang ng yn hoc ang quay vi tc RPM = 0. i lng n y c o bng t l in p v dng cp n ng c. n v ca m men gi l kilgam - centimet (hay ounce - inch). 13.1.7 Chui 4 bc iu khin dng sng. Ngo i cc chui 4 bc v 8 bc n trn y cn c mt chui khc c gi l chui 4 bc dng sng. N c trnh b y trong bng 13.4. 8 bc trong bng 13.3 l mt s kt hp n gin ca cc chui 4 bc thng v chui 4 bc iu khin dng sng c cho bng 13.1 v 13.4. Chiu kim ng h Bc 1 2 3 4 Cun dy A 1 0 0 0 Cun dy B 0 1 0 0 Cun dy C 0 0 1 0 Cun dy D 0 0 0 1 Chiu quay b m

Hnh 13.4: S dng cc bng bn dn iu khin ng c bc. 13.2 Phi ghp 8051 vi b n phm. Cc b n phm v LCD l nhng thit b v o/ ra c s dng rng r i nht ca 8051 v cn phi thu hiu mt cch c bn v chng. phn n y trc ht ta gii thiu cc kin thc c bn v b n phm vi c cu n phm v tch phm, sau gii thiu v giao tip 8051 vi b n phm. 13.2.1 Phi ghp b n phm vi 8051. mc thp nht cc b n phm c t chc di dng mt ma trn cc h ng v cc ct. CPU truy cp c h ng ln ct thng qua cc cng. Do vy, vi hai cng 8 bt th c th ni ti mt b n phm 8 8 ti b vi x l. Khi mt phm c n th mt h ng v mt ct c tip xc, ngo i ra khng c s tip xc n o gia cc h ng v cc ct. Trong cc b n phm my tnh IBM PC c mt b vi iu khin (bao gm mt b vi x l, b nh RAM v EPROM v mt s cng tt c c b tr trn mt chp) chu trch nhim phi ghp phn cng v phn mm ca b n phm. Trong nhng h thng nh vy, n l chc nng ca cc chng trnh c lu trong EPROM ca b vi iu khin qut lin tc cc phm, xc nh xem phm n o c kch hot v gi n n bo mch chnh. Trong phn n y nghin cu v c cu 8051 qut v xc nh phm. 13.2.2 Qut v xc nh phm. Hnh 13.5 trnh b y mt ma trn 4 4 c ni ti hai cng. Cc h ng c ni ti mt u ra v cc ct c ni ti mt cng v o. Nu khng c phm n o c n th vic ng cng v o s ho n to n l 1 cho tt c cc ct v tt c c ni ti dng ngun VCC. Nu tt c cc h ng c ni t v mt phm c n th mt trong cc ct s c gi tr 0 v phm c n to ng xung t. Chc nng ca b vi iu khin l qut lin tc pht hin v xc nh phm c n. Hnh 13.5 Hnh 13.5: Ni ghp b n phm ma trn ti cc cng.

Ebook Team

www.updatesofts.com

13.2.3 Ni t cc h ng v c cc ct. pht hin mt phm c n th b vi iu khin ni t tt c cc h ng bng cch cp 0 to cht u ra, sau n c cc h ng. Nu d c c t cc ct l D3 - D0 = 1101 th khng c phm n o c n v qu trnh tip tc cho n khi pht hin mt phm c n. Tuy nhin, nu mt trong cc bt ct c s 0 th iu c ngha l vic n phm xy ra. V d, nu D3 - D0 = 1101 c ngha l mt phm ct 1 c n. Sau khi mt n phm c pht hin, b vi iu khin s chy qu trnh xc nh phm. Bt u vi h ng trn cng, b vi iu khin ni t n bng cch ch cp mc thp ti chn D0, sau n c cc ct. Nu d liu c c l to n s 1 th khng c phm n o ca h ng n y c n v qu trnh n y chuyn sang h ng k tip. N ni t h ng k tip, c cc ct v kim tra xem c s 0 n o khng? Qa trnh n y tip tc cho n khi xc nh c h ng n o c phm n. Sau khi xc nh c h ng c phm c n th cng vic tip theo l tm ra phm n thuc ct n o. iu n y tht l d d ng v b vi iu khin bit ti thi im bt k h ng n o v ct n o c truy cp. H y xt v d 13.3. V d 13.3: T hnh 13.5 h y xc nh h ng v ct ca phm c n cho cc trng hp sau y: a) D3 - D0 = 1110 cho h ng v D3 - D0 = 1011 cho ct. b) D3 - D0 = 1101 cho h ng v D3 - D0 = 0111 cho ct. Li gii: T hnhf 13.5 ct v h ng c th c s dng xc nh phm. a) H ng thuc D0 v ct thuc D2, do vy phm s 2 c n. b) H ng thuc D1 v ct thuc D3, do vy phm s 7 c n. Chng trnh 13.1 l chng trnh hp ng ca 8051 pht hin v xc nh s kch hot phm. Trong chng trnh n y P1 v P2 c gi thit l cng ra v cng v o tng ng. Chng trnh 13.1 i qua 4 giai on chnh sau y. 1. Khng nh phm trc c nh, cc s khng l u ra ti tt c cc h ng cng mt lc v cc ct c c v c kim tra chng n o tt c mi ct u cao. Khi tt c cc ct c pht hin l u cao th chng trnh ch mt thi gian ngn trc khi n chuyn sang giai on k tip ch mt phm c n. 2. bit c mt phm n o c n cc ct c qut i qut li trong vng v tn cho n khi c mt ct c s 0. H y nh rng cc cht u ra c ni ti cc h ng vn c cc s 0 ban u (c cp giai on 1) l m cho chng c ni t. Sau khi pht hin n phm, n i 20ms ch cho phm nh ra v sau qut li cc ct. iu n y phc v hai chc nng: a) n m bo rng vic pht hin n phm u tin khng b sai do nhiu v b) thi gian gi chm l 20ms ngn nga vic n cng mt phm nh l nhiu ln n. Nu sau 20ms gi chm m phm vn c n n chuyn sang giai on k tip pht hin phm n thuc h ng n o, nu khng n quay tr vng lp pht hin c mt phm n tht. 3. pht hin n phm thuc h ng, n ni t mi h ng ti mt thi im, c cc ct mi ln. Nu n pht hin tt c mi ct u cao, iu n y c ngha l n phm khng thuc h ng , do vy n ni t h ng k tip v tip tc cho n khi pht hin ra h ng c phm n. Khi tm h ng c phm n, n thit lp a ch bt u cho bng trnh b y gi cc m qut (hoc gi tr ASCII) cho h ng v chuyn sang giai on k tip xc nh phm.

Ebook Team

www.updatesofts.com

4. xc nh phm n, n quay cc bt ct, mi ln mt bt v o c nh v kim tra xem n c gi tr thp khng? Khi tm ra s 0, n ko m ASCII d nh cho phm ra t bng trnh b y. Nu khng tm c s 0 th n tng con tr ch n phn t k tip ca bng trnh b y. Hnh 13.6 trnh b y lu qu trnh tm phm n n y. Bt u Ni t mi h ng Ni t h ng k tip Ni t mi h ng c mi ct Khng Khng Mi phm h C C phm h h ng n y C Tm phm n o c n

c mi ct

Khng

C phm n C

Tm phm n o c n

Tr v

Ch nh phm c mi ct

Khng

C phm n

Ebook Team

www.updatesofts.com

Hnh 13.6: Lu tm phm n ca chng trnh 13.1. Trong khi vic pht hin n l chun cho tt c mi b n phm th qu trnh xc nh phm n o c n li khng ging nhau. Phng pht s dng bng trnh b y c a ra trong chng trnh 13.1 c th c sa i l m vic vi bt k ma trn kch thc 8 8 n o. Hnh 13.6 l lu thut ton ca chng trnh 13.1 qut v xc nh phm n. C nhng chp IC chng hn nh MM74C924 ca h ng National Semiconductor kt hp vic qut v gii m b n phm tt c v o mt chp. Cc chp nh vy s s kt hp cc b m v cc cng l gc (khng phi b vi iu khin) thc thi cc khi nim c trnh b y trong chng trnh 13.1 di y. Chng trnh 13.1: ; Chng trnh con b n phm Keyboard n y gi m ASCII ; Cha phm c n n chn P0.1 ; Cc chn P1.0 P1.3 c ni ti cc h ng cn P2.0 P2.3 ti cc ct. 13.3 Phi ghp mt DAC vi 8051. Phn n y s trnh b y cch phi ghp mt b bin i s tng t DAC vi 8051. Sau minh ho to mt sng hnh sin trn my hin sng s dng b DAC. 13.3.1 B bin i s - tng t DAC. B bin i - tng t DAC l mmt thit b c s dng rng r i chuyn i cc xung s ho v cc tn hiu tng t. Trong phn n y ta gii thiu c s phi ghp mt b DAC vi 8051. Xem li cc kin thc in t s ta thy c hai cch to ra b DAC: Phng pht trng s nh phn v phng trnh thang R/2R. Nhiu b DAC da trn cc mch t hp, bao gm MC1408 (DAC808) c s dng trong phn n y u s dng phng php hnh thang R/2R v n c th t chnh xc cao hn. Tiu chun nh gi mt b DAC u tin l phn gii h m ca s u v o nh phn. Cc phn gii chng l 8, 10 v 12 bt. S cc u v o bt d liu quyt nh phn gii ca b DAC, v s mc u ra tng t bng 2n vi n l u v o bt d liu. Do vy, mt b DAC 8 bt nh DAC808 chng hn c 256 mc u ra in p (dng in) ri rc. Tng t nh vy, mt b DAC 12 bt cho 4096 mc in p ri rc. cng c cc b DAC 16 bt nhng chng rt t. 13.3.2 B bin i DAC MC1408 (hay DAC808). Trong b ADC808 cc u v o s c chuyn i th nh dng (Iout) v vic ni mt in tr ti chn Iout ta chuyn kt qu th nh in p. dng tng c cp bi chn Iout l mt h m s nh phn cc u v o D0 D7 ca DAC808 v tham chiu Iref nh sau:
I out = I ref ( D7 D6 D5 D 4 D3 D 2 D1 D0 + + + + + + + ) 2 4 8 16 32 64 128 256

Trong D0 l bt thp nht LSB v D7 l bt cao nht MSB i vi cc u v o

Ebook Team

www.updatesofts.com

Ebook Team

www.updatesofts.com
Chng 14 Phi php 8031/51 vi b nh ngo i

14.1 B nh bn dn. Trong phn n y ta nh v cc kiu loi b nh bn dn khc nhau v cc c tnh ca chng nh dng lng, t chc v thi gian truy cp. Trong thit k ca tt c cc h thng da trn b vi s l th cc b nh bn dn c dng nh hi lu gi chng trnh v d liu chnh. Cc b nh bn dn c ni trc tip vi CPU v chng l b nh m CPU u tin hi v thng tin chng trnh v d liu. V l do n y m cc b nh nhiu khi c coi nh l n phi p ng nhanh cho CPU m cc iu n y ch c cc b nh bn dn mi c th l m c. Cc b nh bn dn c s dng rng r i nht l ROM v RAM. Trc khi i v o b n cc kiu b nh ROM v RAM chng ta l m quen vi mt s thut ng quan trng chung cho tt c mi b nh bn dn nh l dung lng, t chc v tc . 14.1.1 Dung lng nh. S lng cc bt m mt chp nh bn dn c th lu c gi l dung lng ca chp, n c n v c th l ki-l-bt (Kbt), m-ga-bit (Mbt) v.v iu n y phi phn bit vi dung lng lu tr ca h thng my tnh. Trong khi dung lng nh ca mt IC nh lun c tnh theo bt, cn dung lng nh ca mt h thng my tnh lun c cho tnh byte. Chng hn, trn tp ch k thut c mt b i bo ni rng chp 16M tr nn ph dng th mc d n khng ni rng 16M ngha l 16 m-ga-bit th n vn c hiu l b i bo ni v chp IC nh. Tuy nhin, nu mt qung co ni rng mt my tnh vi b nh 16M v n ang ni v h thng my tnh nn n c hiu 16M c ngha l 16 m-ga-byte. 14.1.2 T chc b nh. Cc chp c t chc v o mt s ngn nh bn trong mch tch hp IC. Mi ngn nh c cha b bt, 4 bt, 8 bt thm ch n 16 bt ph thuc v o cch n c thit k bn trong nh th n o? S bt m mi ngn nh bn trong chp nh c th cha c lun bng s chn d liu trn chp. Vy c bao nhiu ngn nh bn trong mt chp nh? N ph thuc v o s chn a ch, s ngn nh bn trong mt IC nh lun bng 2 lu tha vi s chn a ch. Do vy, tng s bt m IC nh c th lu tr l bng s ngn nh nhn vi bt d liu trn mi ngn nh. C th tm tt li nh sau: 1. Mt chp nh c th cha 2x ngn nh, vi x l s chn a ch. 2. Mi ngn nh cha y bt vi y l s chn d liu trn chp. 3. To n b chp cha (2x y)bt vi x l s chn a ch v y l s chn d liu trn chp. 14.1.3 Tc . Mt trong nhng c tnh quan trng nht ca chp nh l tc truy cp d liu ca n. truy cp d liu th a ch phi c cc chn a cha, chn c READ c tch cc v sau mt khong thi gian th d liu s xut hin cc chn d liu. Khong thi gian n y c ng ngn c ng tt v tt nhin l chp nh c ng t. Tc ca chp nh thng c coi nh l thi gian truy cp ca n. Thi gian truy cp ca cc chp nh thay i t v i na-n-giy n h ng trm na-n-giy ph thuc v o cng ngh s dng trong qu trnh thit k v sn xut IC. C ba c tnh quan trng ca b nh l dung lng nh, t chc b nh v thi gian truy cp s c s dng nhiu trong chng trnh. Bng 14.1 nh mt

Ebook Team

www.updatesofts.com

tham chiu tnh ton cc c tnh ca b nh. Cc v d 14.1 v 14.2 s minh ho nhng khi nim va trnh b y. Bng 14.1: Dung lng b nh vi s chn ac ch ca IC. x 2x 10 11 12 13 1K 2K 4K 8K 14 16 K 15 32 K 16 64 K 17 18 19 12 25 51 8K 6K 2K 20 1 M 21 2 M 22 4 M 23 8 M 24 16 M

V d 14.1: Mt chp nh c 12 chn a ch v 4 chn d liu. H y tm t chc b nh v dung lng nh ca n. Li gii: a) Chp nh n y c 4096 ngn nh (212 = 4096) v mi ngn nh cha 4 bt d liu nn t chc nh ca n l 4096 4 v thng c biu din l 4K 4. b) Dung lng nh ca chp nh l 16K v c 4 K ngn nh v mi ngn nh c 4 bt d liu. V d 14.2: Mt chp nh 512k c 8 chn d liu. H y tm a) t chc ca n v b) s chn a ch ca chp n y. Li gii: a) Mt chp c 8 chn d liu c ngha l mi ngn nh c 8 bt d liu. S ngn nh trn chp n y bng dung lng nh chia cho s chn d liu = 512k/8 = 64. Do vy t chc nh ca chp l 64k 8. b) S ng a ch ca chp s l 16 v 116 = 64k. 14.1.4 B nh ROM. B nh ROM l b nh ch c (Read - only Memory). y l mt kiu b nh m khng mt cc ni dung ca n khi tt ngun. Vi l do n y m b nh ROM cn c gi l b nh khng bay hi, c nhiu loi b nh ROM khc nhau nh: PROM, EPROM, EEPROM, EPROM nhanh (flash) v ROM che. 14.1.4.1 B nh PROM. B nh PROM l b nh ROM c th lp trnh c. y l loi b nh m ngi dng c th t ghi thng tin v o. hay ni cch khc, PROM l b nh ngi dng c th lp trnh c. i vi mi bt ca PROM c mt cu ch. B nh PROM c lp trnh bng cch l m t nhng cu tr. Nu thng tin c t v o trong PROM m sau th phi b v cc cu tr ca n bn trong b t vnh vin vi l do n y m PROM m c gi l b nh ROM lp trnh mt ln. Vic lp trnh ROM cng c gi l t ROM v n i hi phi c mt thit b c bit gi l b t ROM hay cn gi l thit b lp trnh ROM. 14.1.4.2 B nh EPROM v UV - EPROM. B nh EPROM c pht minh ra cho php thc hin thay i ni dung ca PROM sau khi n c t. Trong b nh EPROM ta c th lp trnh chp nh v xo n h ng nghn ln. iu n y l c bit cn thit trong qu trnh pht trin mu th ca mt d n da trn b vi x l. Mt EPR s dng rng r i c gi l UV - EPROM (UV l ch vit tt ca tia cc tm Ultra - Violet). Vn tn ti duy nht ca UV - EPROM l thi gian xo ca n qu lu (20 pht).

Ebook Team

www.updatesofts.com

Tt c cc chp nh UV - EPROM c mt ca s c dng chiu tia bc x cc tm xo cc ni dung ca n. Vi l do n y m EPROM cng cn c coi nh l b nh EPROM c xo bng tia cc tm hay n gin c gi l UV EPROM. Hnh 14.1 trnh b y cc chn ca mt chp UV - EPROM. lp trnh cho mt UV - EPROM cn thc hin cc bc. 1. Xo cc ni dung ca n, xo mt chp th phi tho n ra khi cm trn bng mch h thng v t n v o thit b xo EPROM chiu x tia cc tm khong 15 - 20 pht. 2. Lp trnh cho chp. lp trnh cho mt chp UV - EPROM th t n v o thit b t (thit b lp trnh ). t chng trnh v d liu v o EPROM th thit b t ROM s dng in p 12.5V hoc cao hn ph thuc v o loi EPROM. in p n y c gi l Vpp trong bng d liu ca UV - EPROM. 3. Lp chp nh tr li cm trn h thng. T cc bc trn y ta thy cng nh cc thit b t EPROM th cng c cc thit b xo EPROM khc nhau. V tt c cc kiu b nh UV EPROM u c mt nhc im chnh l khng th c lp trnh trc tip trn bng mch ca h thng. Do vy, b nh EPROM c ra i gii quyt vn n y. H y n cc k hiu m s ca cc IC trong bng 14.2. v d, m s b phn 27128 - 25 d nh cho UV - EPROM c dung ln v thi gian truy cp l 250ns. Dung lng ca chp nh c k hiu trn m s b phn (part number) v thi gian truy cp c b i mt s 0. Trong cc m s b phn th ch C l cng ngh CMOS, cn 27xx lun ch cc chp nh EPROM. bit thm chi tit ta v o mc s tay cc chp nh ca cc h ng chng hn JAMECO (jameco.com) hay JDR (jdr.com) theo ng mng internet. Bng 14.2: Mt s chp nh UV - EPROM.

HNH 14.1 Hnh 14.1: B tr cc chn ca h cc chp nh ROM 27xx. V d 14.3: i vi ROM c m b phn l 27128 c dung lng nh l 128k bt. Tra bng ta thy t chc ca n l 16k 8 (tt c mi ROM u c 8 chn d liu) iu n y ni ln rng n c 8 chn d liu v s chn a ch c tm thy l 14 v 214 = 16k. 14.1.4.3 B nh PROM c th xo c bng in EEPROM. B nh EEPROM c mt s u im so vi EPROM l do v c xo bng in nn qu trnh xo rt nhanh, nhanh rt nhiu so vi thi gian xo 20 pht ca UEPROM. Ngo i ra trong EEPROM ta phi xo to n b ni dung ca ROM. Tuy nhin, u im chnh ca EEPROM l ta c th lp trnh v xo khi chp nh vn trn gi cm ca bng mch h thng m khng phi ly ra nh i vi UV EPROM. Hay ni cch khc l EPROM khng cn thit b lp trnh v thit b xo ngo i nh i vi UV - EPROM. ho n to n to thun li cho EPROM nh thit k phi kt hp v o bng mch ca h thng c mch in lp trnh EEPROM s dng in p Vpp = 5V nhng chng rt t. nhn chung, gi th nh cho 1 bt ca EEPROM t hn rt nhiu so vi UV - EPROM.

Ebook Team

www.updatesofts.com

Bng 14.3: Mt s chp EEPROM v chp nh Flash (nhanh). Cui trang 160

Ebook Team

www.updatesofts.com

chng 15 Php ghp 8031/51 vi 8255


Nh ni chng 14 trong qu trnh ni ghp 8031/51 vi b nh ngo i th hai cng P0 v P2 b mt. Trong chng n y chng ta s trnh b y l m th n o m rng cc cng v o/ ra I/O ca 8031/51 bng vic ni n ti chp 8255. 15.1 Lp trnh 8255. Trong mc n y ta nghin cu 8255 nh l mt trong nhng chp v o/ ra c s dng rng r i nht. Trc ht ta m t nhng c tnh ca n v sau s ch ra cch ni 8031/51 vi 8255 nh th n o? 15.1 Lp trnh 8255. Trong mc n y ta nghin cu 8255 nh l mt trong nhng chp v o/ ra c s dng rng r i nht. Trc ht ta m t nhng c tnh ca n v sau ch ra cch ni 8031/51 vi 8255 nh th n o? 15.1.1 Cc c tnh ca 8255. 8255 l mt chp DIP 4 chn (xem hnh 15.1). N c 3 cng truy cp c ring bit. Cc cng c tn A, B v C u l cc cng 8 bit. Cc cng n y u c th lp trnh nh cng u v o hoc u ra ring r v c th thay i mt cch nng ng. Ngo i ra, cc cng 8255 c kh nng bt tay. Do vy cho php giao din vi cc thit b khc cng c gi tr tn hiu bt tay nh cc my in chng hn. Kh nng bt tay ca 8255 s c b n ti mc 15.3.

PA3 PA2 PA1

PA0
P1.4 P1.5 GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3

PB0
PB1 PB2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

8 2 5 5 A

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

PA4 PA5 PA6 PA7 WR RESE D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3

Hnh 15.1: Chp 8255. 15.1.1.1 Cc chn PA0 - PA7 (cng A). C 8 bt ca cng A PA0 - PA7 c th c lp trnh nh 8 bit u v o hoc 8 bit u ra hoc c 8 bt hai chiu v o/ ra.S

D7

D0 8 2 5 5

PA PB PC

RD

WR
A0 A1

CS

RESET

Ebook Team

www.updatesofts.com

Hnh 15.2: S khi ca 8255. 15.1.1.2 Cc chn PB0 - PB7 (cng B). C 8 bit ca cng B c th c lp trnh hoc nh 8 bit u v o hoc 8 bit u ra hoc c 8 bit hai chiu v o/ ra. 15.1.1.3 Cc chn PC0 - PC7 (cng C). Tt c 8 bit ca cng C (PC0 - PC7) u c th c lp trnh nh cc bit u v o hoc cc bit u ra. 8 bit n y cng c th c chia l m hai phn: Cc bit cao (PC4 - PC7) l CU v cc bit thp (PC0 - PC3) l CL. Mi phn c th c dng hoc l m u v o hoc l m u ra. Ngo i ra tng bit ca cng C t PC0 PC7 cng c th c lp trnh ring r. 15.1.1.4 Cc chn RD v WR . y l hai tn hiu iu khin tch cc mc thp ti 8255 c ni ti cc chn d liu RD v WR t 8031/51 c ni ti cc chn u v o n y. 15.1.1.5 Cc chn d liu D0 - D7. Cc chn d liu D0 - D7 ca 8255 c ni ti cc chn d liu ca b vi iu khin cho php n gi d liu qua li gia b vi iu khin v chp 8255. 15.1.1.6 Chn RESET. y l u v o tn hiu tch cc mc cao ti 8255 c dng xo thanh ghi iu khin. Khi chn RESET c kch hot th tt c cc cng c khi to li nh cc cng v o. Trong nhiu thit k th chn n y c ni ti u ra RESET ca bus h thng hoc c ni ti t khng kch hot n. Cng nh tt c cc chn u v o ca IC th n cng c th h. 15.1.1.7 Cc chn A0, A1 v CS . Trong khi CS chn to n b chp th A0 v A1 li chn cc cng ring bit. Cc chn n y c dng truy cp cc cng A, B, C hoc thanh ghi iu khin theo bng 15.1. Lu CS l tch cc mc thp. 15.1.2 Chn ch ca 8255. Trong khi cc cng A, B v C c dng nhp v xut d liu th thanh ghi iu khin phi c lp trnh chn ch l m vic ca cc cng n y. Cc cng ca 8255 c th c lp trnh theo mt ch bt k di y. 1. Ch 0 (Mode0): y l ch v o/ ra n gin. ch n y cc cng A, B CL v CU c th c lp trnh nh u v o hoc u ra. Trong ch n y th tt c cc bit hoc l u v o hoc l u ra. Hay ni cch khc l khng c iu khin theo tng bit ring r nh ta thy cc cng P0 - P3 ca 8051. V a phn cc ng dng lin quan n 8255 u s dng ch v o/ ra n gin n y nn ta s tp chung i su v o ch n y. 2. Ch 1 (Mode1): Trong ch n y cc cng A v B c th c dng nh cc cng u v o hoc u ra vi cc kh nng bt tay. Tn hiu bt tay c cp bi cc bit ca cng C (s c trnh b y mc 15.3). 3. Ch 2 (Mode2): Trong ch n y cng A c th c dng nh cng v o/ ra hai chiu vi kh nng bt tay v cc tn hiu bt tay c cp bi cc bit cng C. Cng B c th c dng nh ch v o/ ra n gin hoc ch c bt tay Mode1. Ch n y s khng c trnh b y trong t i liu n y. Ch BSR: y l ch thit lp/ xo bit (Bit Set/ Reset). ch n y ch c nhng bit ring r ca cng C c th c lp trnh (s c trnh b y mc 15.3). Bng 15.1: Chn cng ca 8255.

Ebook Team

www.updatesofts.com

CS
0 0 0 0 1

A1 0 0 1 1 x

A0 0 1 0 1 X

Chn cng Cng A Cng B Cng C Thanh ghi iu khin 8255 khng c chn

Group A D7 D6 D5 D4 D3 D2

Group A D1 D0

1 = I/O Mode 0 = BSR Mode Mode Selection 00 = Mode 0 01 = Mode 1 1x = Mode2

Pont A 1 = Input 0 = Output

Mode Selcction 0 = Mode 0 1 = Mode 1 Port C (Upper PC7 - PCA) 1 = Input 0 = Output

Port 0 (Lowe PC3 - PCC) 1 = Input 0 = Output

Port B 1 = Input 0 = Output

Hnh 15.3: nh dng t iu khin ca 8255 (ch v o/ ra). 15.1.3 Lp trnh ch v o/ ra n gin. H ng Intel gi ch 0 l ch v o/ ra c s. Mt thut ng c dng chung hn l v o/ ra n gin. Trong ch n y th mt cng bt k trong A, B, C c lp trnh nh l cng u v o hoc cng u ra. Cn lu rng trong ch n y mt cng cho khng th va l m u v o li va l m u ra cng mt lc. V d 15.1: H y tm t iu khin ca 8255 cho cc cu hnh sau: Tt c cc cng A, B v C u l cc cng u ra (ch 0). PA l u v o, PB l u ra, PCL bng u v o v PCH bng u ra. Li gii: T hnh 15.3 ta tm c:
a) 1000 0000 = 80H; b) 1001 000 = 90H

15.1.4 Ni ghp 8031/51 vi 8255. Chp 8255 c lp trnh mt trong bn ch va trnh b y trn bng cch gi mt byte (h ng Intel gi l mt t iu khin) ti thanh ghi iu khin ca 8255. Trc ht chng ta phi tm ra cc a ch cng c gn cho mi cng A, B, C v thanh ghi iu khin. y c gi l nh x cng v o/ ra (mapping). Nh c th nhn thy t hnh 15.4 th 8255 c ni ti mt 8031/51 nh th n l b nh RAM. vic s dng cc tn hiu RD v WR . Phng php ni mt chp v o/ ra b nh v n c nh x v o khng gian b nh. Hay ni cch khc, ta s dng khng gian b nh truy cp cc thit b v o/ ra. V ly??? do n y m ta dng lnh MOVX truy cp RAM v ROM. i vi mt 8255

Ebook Team

www.updatesofts.com

c ni ti 8031/51 th ta cng phi dng lnh MOVX truyn thng vi n. iu n y c th hin trn v d 15.2. V d 15.2: i vi hnh 15.4: a) H y tm cc a ch v o/ ra c gn cho cng A, B, C v thanh ghi iu khin. b) H y lp trnh 8255 cho cc cng A, B v C th nh cc cng u ra. c) Vit mt chng trnh gi 55H v AAH n cng lin tc. Li gii: a) a ch c s d nh cho 8255 nh sau:
A1 5 x x x x A1 4 1 1 1 1 A1 3 x x x x A1 2 x x x x A1 1 x x x x A1 0 x x x x A9 x x x x A8 x x x x A7 x x x x A6 x x x x A5 x x x x A4 x x x x A3 x x x x A2 X X X X A1 0 0 1 1 A0 0 1 0 1 =4000HPA =4000HPB =4000HPC =4000HCR

b) Byte (t) iu khin cho tt c cc cng nh u ra l 80H nh c tnh v d 15.1. c)


MOV MOV MOVX MOV MOV MOVX INC MOVX INC MOVX CPL ACALL SJMP 8051 P3.7 P3.6 P2.7 ALE P0.7 P0.0 AD7 G A, #80H DPTR, # 4003H @DPTR, A A, # 55H DPTR, # 4000H @DPTR, A DPTR @DPTR, A DPTR @DPTR, A A DELAY AGAIN ; T in khin ; Np a ch cng ca thanh ghi iu khin ; Xut t in khin ; Gn A = 55 ; a ch cng PA ; Ly cc bit cng PA ; a ch cng PB ; Ly cc bt cng PB ; a ch cng PC ; Ly cc bt cng PC ; Ly cc bt thanh ghi A ; Ch ; Tip tc

AGAIN:

RD WR
A1

CS WR RD
8255 A1 A1 A0 D7 PA PB PC D0

DQ 74LS373 OC

AD0

A0 D7

D0

Ebook Team

www.updatesofts.com

Hnh 15.4: Ni ghp 8051 vi 8255 cho v d 15.2. V d 15.3: i vi hnh 15.5: a) Tm cc a ch cng v o ra c gn cho cc cng A, B, C v thanhg ghi iu khin. b) Tm byte iu khin i vi PA bng u v o, PB bng u ra, PC bng u ra c) Vit mt chng trnh nhn d liu t PA gi n n c cng B v cng C. Li gii: a) Gi s tt cc cc bit khng dng n l 0 th a ch cng c s cho 8255 l 1000H. Do vy ta c:
1000H l PA; 1001H l PB; 1002H l PC v 1003H l thanh ghi iu khin.

b) T iu khin cho trng hp n y l 10010000 hay 90H. c)


MOV MOV MOVX MOV MOVX INC MOVX INC MOVX 8051 P3.7 P3.6 P2.7 A, #90H ; PA l DPTR, #1003H @DPTR, A DPTR, #1000H A, @DPTR DPTR @DPTR, A DPTR @DPTR, A u v o, PB l u ra, PC l u ra ; Np a ch cng ca thanh ghi iu khin ; Xut t iu khin ; a ch PA ; Nhn d liu t PA ; a ch PB ; Gi d liu ra PB ; a ch PC ; Gi d liu ra PC

RD WR
A15

CS
ALE P0.7 P0.0 A12 G AD7 D Q 74LS373 AD0 OC A0 D7 A1 A1 A0 D7

WR RD
8255
PA PB PC D0 RE

D0

Hnh 15.5: Ni ghp 8051 ti 8255 cho v d 15.3. i vi v d 15.3 ta nn dng ch lnh EQU cho a ch cc cng A, B, C v thanh ghi iu khin CNTPORT nh sau:
APORT EQU BPORT EQU CPORT EQU 1000H 1001H 1002H

Ebook Team
CNTPORT EQU 1003H

www.updatesofts.com

MOV A, #90H ; PA l u v o, PB l u ra, PC l u ra MOV DPTR, #CNTPORT ; Np a ch ca cng thanh ghi iu khin MOVX @DPTR, A ; Xut t iu khin MOV DPTR, #CNTPORT ; a ch PA MOVX DPTR, APORT ; Nhn d liu PA INC A, @DPTR ; a ch PB MOVX DPTR ; Gi d liu ra PB INC DPTR ; a ch PC MOVX DPTR, A ; Gi d liu ra PC hoc c th vit li nh sau: CONTRBYT EQU 90H Xc nh PA u v o, PB v PC u ra BAS8255P EQU 1000H ; a ch c s ca 8255 MOV MOV MOVX MOV ... A, #CONTRBYT DPTR, #BAS8255P+3 @DPTR, A DPTR, #BASS8255P ; Np a ch cng C ; Xut t iu khin ; a ch cng A

trong v d 15.2 v 15.3 ta s dng thanh ghi DPTR v a ch c s gn cho 8255 l 16 bit. Nu a ch c s d nh cho 8255 l 8 bit, ta c th s dng cc lnh MOVX A, @R0 v MOVX @R0, A trong R0 (hoc R1) gi a ch cng 8 bit ca cng. Xem v d 15.4, ch rng trong v d 15.4 ta s dng mt cng lgc n gin gii m a cha cho 8255. i vi h thng c nhiu 8255 ta c th s dng 74LS138 gii m nh s trnh b y v d 15.5. 15.1.5 Cc b danh ca a ch (Addren Alias). Trong cc v d 15.4 v 15.4 ta gii m cc bt a ch A0 - A7, tuy nhin trong v d 15.3 v 15.2 ta gii m mt phn cc a ch cao ca A8 - A15. Vic gii m tng phn n y dn n ci gi l cc b danh ca a ch (Address Aliases). Hay ni cch khc, cng cng vt l ging nhau c cc a ch khc nhau, do vy cng mt cng m c bit vi cc tn khc nhau. Trong v d 15.2 v 15.3 ta c th thay i tt x th nh cc t hp cc s 1 v 0 khc nhau th nh cc a ch khc nhau, song v thc cht chng tham chiu n cng mt cng vt l. Trong t i liu thuyt minh phn cng ca mnh chng ta cn phi bo m ghi ch y cc b danh a cha nu c sao cho mi ngi dng bit c cc a ch c sn h c th m rng h thng. V d 15.4: Cho hnh 15.6: a) H y tm cc a ch cng v o/ ra c gn cho cc cng A, B, C v thanh ghi iu khin. b) Tm t iu khin cho trng hp PA l u ra, PB l u v o, PC - PC3 l u v o v CP4 - CP7 l u ra. c) Vit mt chng trnh nhn d liu t PB v gi n ra PA. Ngo i ra, d liu t PC1 c gi n CPU. Li gii: a) Cc a ch cng c tm thy nh sau:
BB 0010 0010

CS
00 00

A1 0 0

A0 0 1

a ch 20H 21H Cng A Cng B

Cng

Ebook Team
0010 0010 00 00 1 1 0 1 22H 23H

www.updatesofts.com
Cng C Thanh ghi iu khin

b) T iu khin l 10000011 hay 83H.


c) CONTRBYT APORT BPORT CPORT CNTPORT EQU EQU EQU EQU EQU ... MOV MOV MOV MOVX MOV MOVX DEC MOVX MOV MOVX ANL SWAP MOVX 83H 20H 21H 22H 23H A, #CONTRBYT A, #CONTRBYT R0, #CNTPORT @R0, A R0, #BPORT A, @R0 R0 @R0, A R0, #CPORT A, @R0 A, #0FH A @R0, A ; PA l u ra, PB,PCL l u v o

; PA, PCU l u ra, PB v PCL l u v o ; Np a ch ca cng thanh ghi iu khin ; Xut t iu khin ; Np a ch PB ; c PB ; Ch n PA (20H) ; Gi n n PA ; Np a ch PC ; c PCL ; Che phn cao ; Trao i phn cao v thp ; Gi n PCU

8051 P3.7 P3.6

RD WR
A7

CS
A2 ALE P0.7 P0.0 AD7 G D Q 74LS373 AD0 OC A0 D7 A1 A1 A0 D7

WR RD
PA 8255 PB PCL PCU D0 RES

D0

Hnh 15.6: Ni ghp 8051 vi 8255 cho v d 15.4. V d 15.5: H y tm a ch c s cho 8255 trn hnh 15.7. Li gii:
GA A7

G 2B
A6

G 2A
A5

C A4

B A3

A A2 A1 A0

a ch

Ebook Team
1 0 0 0 1 0

www.updatesofts.com
0 0 88H

74LS138 A2 A3 A4 A5 A6 A7 A B C Y2 A0 A1 8255

G 2A

G 2B
G1

CS

Hnh 15.7: Gii m a ch ca 8255 s dng 74LS138. 15.1.6 H 8031 vi 8255. Trong mt h thng da trn 8031 m b nh chng trnh ROM ngo i l mt s bt buc tuyt i th s dng mt 8255 l rt c tr o n. iu n y l do mt thc t l trong gii trnh phi ghp 8031 vi b nh chng trnh ROM ngo i ta b mt hai cng P0 v P2 v ch cn li duy nht cng P1. Do vy, vic ni vi mt 8255 l cch tt nht c thm mt s cng. iu n y c ch ra trn hnh 15.8.
8031 P3.7 P3.6

RD WR
VCC

EA

PSEN
P2.7 P2.0 ALE P0.7 P0.0 AD7 AD0 G A12 A8 A0 A0 A0 D7

CE OE VCC
A12 A8 2864 (2764) 8K8 Program RAM D0

WR RD
8 2 5 5
A1

PA PB PC RES

D q 74LS373
OC

A0 D7

A0

D0

Hnh 15.8: Ni 8031 ti mt ROM chng trnh ngo i v 8255. 15.2 Ni ghp vi th gii thc. 15.2.1 Phi ghp 8255 vi ng c bc.

Ebook Team

www.updatesofts.com

Chng 13 ni chi tit v phi ghp ng c bc vi 8051, y ta trnh b y ni ghp ng c bc ti 8255 v lp trnh (xem hnh 15.9).

0855 D0 from 8051 A0 A1 A2 A7 Decoding Circuyiry D7 D0 D7 PA0 PA1 PA2 PA3 1 2 3 4

ULN2003 16 15 14 13

Stepper Motor

WR
RD
A0 A1

CS

ULN2003 Conection for Stepper Motor Pin 8 = GND Pin 9 = +5v

COM COM +5V

Hnh 15.9: Ni ghp 8255 vi mt ng c bc. Chng trnh cho s ni ghp n y nh sau:
MOV MOV MOVX MOV MOV MOVX RR ACALL SJMP A, #80H R1, #CRPORT @R1, A R1, #APORT A, #66H @R1, A A DELAY AGAIN ; Chn t iu khin PA l u ra ; a ch cng thanh ghi iu khin ; Cu hnh cho PA u ra ; Np a ch cng PA ; Gn A = 66H, chuyn xung ca ng c bc ; Xut chui ng c n PA ; Quay chui theo chiu kim ng h ; Ch

AGAIN:

15.2.2 Phi ghp 8255 vi LCD. Chng trnh 15.1 trnh b y cch xut cc lnh v d liu ti mt LCD c ni ti 8255 theo s hnh 15.10. Trong chng trnh 15.1 ta phi t mt tr trc mi ln xut thng tin bt k (lnh hoc d liu) ti LCD. Mt cch tt hn l kim tra c bn trc khi xut bt k th g ti LCD nh ni chng 12. Chng trnh 15.2 lp li chng trnh 15.1 c s dng kim tra c bn. rng lc n y khng cn thi gian gi chm nh v tr 15.1. Chng 15.1:
0855 PA0 LCD D0 VCC VEE PA1 PB0 PB1 PB2 RESET A7 VSS RS R/W E 10K POT

Hnh 5.10: Ni ghp 8255 vi LCD.

Ebook Team

www.updatesofts.com

; Ghi cc lnh v d liu ti LCD khng c kim tra c bn. ; Gi s PA ca 8255 c ni ti D0 - D7 ca LCD v ; IB - RS, PB1 = R/W, PB2 = E ni cc chn iu khin LCD MOV A, #80H ; t tt c cc cng 8255 l u ra MOV R0, #CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; Xut t iu khin MOV A, #38H ; Cu hnh LCD c hai dng v ma trn 57 ACALL CMDWRT ; Ghi lnh ra LCD ACALL DELAY ; Ch n ln xut k tip (2ms) MOV A, # 0EH ; Bt con tr cho LCD ACALL CMDWRT ; Ghi lnh n y ra LCD ACALL DELAY ; Ch ln xut k tip MOV A, # 01H ; Xo LCD ACALL CMDWRT ; Ghi lnh n y ra LCD ACALL DELAY ; Dch con tr sang phi MOV A, # 06 ; Ghi lnh n y ra LCD ACALL CMDWRT ; Ch ln xut sau ACALL DELAY ; Ghi lnh n y ra LCD ... ; v.v... cho tt c mi lnh LCD MOV A, # 'N' ; Hin th d liu ra (ch N) ACALL DATAWRT ; Gi d liu ra LCD hin th ACALL DELAY ; Ch ln xut sau MOV A, # '0' ; Hin th ch "0" ACALL DATAWRT ; Gi ra LCD hin th ACALL DELAY ; Ch ln xut sau ... ; v.v... cho cc d liu khc ; Chng trnh con ghi lnh CMDWRT ra LCD CMDWRT: MOV R0, # APORT ; Np a ch cng A MOVX @R0, A ; Xut thng tin ti chn d liu ca LCD MOV R0, # BPORT ; Np a ch cng B MOV A, # 00000100B ; RS=0, R/W=1, E=1 cho xung cao xung thp MOVX NOP NOP MOV @R0, A ; Kch hot cc chnRS, R/W, E ca LCD ; To xung cho chn E

A, # 00000000B ; RS=0, R/W=1, E=1 cho xung cao xung thp

MOVX @R0, A ; Cht thng tin trn chn d liu ca LCD RET ; Chng trnh con ghi lnh DATAWRT ghi d liu ra LCD. CMDWRT: MOV R0, # APORT ; Np a ch cng A MOVX @R0, A ; Xut thng tin ti chn d liu ca LCD MOV R0, # BPORT ; t RS=1, R/W=0, E=0 cho xung cao xung thp MOV A, # 00000101B ; Kch hot cc chn RS, R/W, E MOVX @R0, A ; To xung cho chn E NOP NOP MOV A, # 00000001B ; t RS=1, R/W=0, E=0 cho xung cao xung thp MOVX @RC, A ; Cht thng tin trn chn d liu ca LCD RET

Chng trnh 15.2:


; Ghi cc lnh v d liu ti LCD c s dng kim tra c bn. ; Gi s PA ca 8255 c ni ti D0 - D7 ca LCD v ; PB0 = RS, PB1 = R/W, PB2 = E i vi 8255 ti cc chn iu khin LCD

Ebook Team
MOV MOV MOVX MOV ACALL MOV ACALL A, #80H R0, #CNTPORT @R0, A A, #38H NMDWRT A, # 0EH NMDWRT

www.updatesofts.com
; t tt c cc cng 8255 l u ra ; Np a ch thanh ghi iu khin ; Xut t iu khin ; Chn LCD c hai dng v ma trn 57 ; Ghi lnh ra LCD ; Lnh ca LCD cho con tr bt ; Ghi lnh ra LCD

MOV

A, # 01H

; Xo LCD

ACALL NMDWRT ; Ghi lnh ra LCD MOV A, # 06 ; Lnh dch con tr sang phi ACALL CMDWRT ; Ghi lnh ra LCD ... ; v.v... cho tt c mi lnh LCD MOV A, # 'N' ; Hin th d liu ra (ch N) ACALL NCMDWRT ; Gi d liu ra LCD hin th MOV A, # '0' ; Hin th ch "0" ACALL NDADWRT ; Gi ra LCD hin th ... ; v.v... cho cc d liu khc ; Chng trnh con ghi lnh NCMDWRT c hin th c bn NCMDWRT: MOV R2, A ; Lu gi tr thanh ghi A MOV A, #90H ; t PA l cng u v o c trng thi LCD MOV R0, # CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; t PA u v o, PB u ra MOV A, # 00000110B ; RS=0, R/W=1, E=1 c lnh MOV @R0, BPORT ; Np a ch cng B MOVX R0, A ; RS=0, R/W=1 cho cc chn RD v RS MOV R0, APORT ; Np a ch cng A MOVX @R0 ; c thanh ghi lnh RLC A ; Chuyn D7 (c bn) v o bit nh carry JC READY ; Ch cho n khi LCD sn s ng MOV A, #80H ; t li PA, PB th nh u ra MOV R0, #CNTPORT ; Np a ch cng iu khin MOVX @R0, A ; Xut t iu khin ti 8255 MOV A, R2 ; Nhn gi tr tr li ti LCD MOV R0, #APORT ; Np a ch cng A MOVX @R0, A ; Xut thng tin ti cc chn d liu ca LCD MOV R0, #BPORT ; Np a ch cng B MOV A, #00000100B ; t RS=0, R/W=0, E=1 cho xung thp ln cao MOVX @R0, A ; Kch hot RS, R/W, E ca LCD NOP ; To rng xung ca chn E NOP MOV A, #00000000B ; t RS=0, R/W=0, E=0 cho xung cao xung thp MOVX @R0, A ; Cht thng tin chn d liu LCD RET ; Chng trnh con ghi d liu mi NDATAWRT s dng c bn NCMDWRT: MOV R2, A ; Lu gi tr thanh ghi A MOV A, #90H ; t PA l cng u v o c trng thi LCD MOV R0, # CNTPORT ; Np a ch thanh ghi iu khin MOVX @R0, A ; t PA u v o, PB u ra MOV A, # 00000110B ; RS=0, R/W=1, E=1 c lnh MOV @R0, BPORT ; Np a ch cng B MOVX R0, A ; RS=0, R/W=1 cho cc chn RD v RS READY: READY: MOV MOVX RLC R0, APORT @R0 A ; Np a ch cng A ; c thanh ghi lnh ; Chuyn D7 (c bn) v o bit nh carry

Ebook Team
JC MOV MOV MOVX MOV MOV MOVX MOV MOV MOVX NOP NOP MOV MOVX RET READY A, #80H R0, #CNTPORT @R0, A A, R2 R0, #APORT @R0, A R0, #BPORT A, #00000101B @R0, A

www.updatesofts.com
; Ch cho n khi LCD sn s ng ; t li PA, PB th nh u ra ; Np a ch cng iu khin ; Xut t iu khin ti 8255 ; Nhn gi tr tr li ti LCD ; Np a ch cng A ; Xut thng tin ti cc chn d liu ca LCD ; Np a ch cng B ; t RS=1, R/W=0, E=1 cho xung thp ln cao ; Kch hot RS, R/W, E ca LCD ; To rng xung ca chn E

A, #00000001B ; t RS=1, R/W=0, E=0 cho xung cao xung thp @R0, A ; Cht thng tin chn d liu LCD

15.2.3 Ni ghp ADC ti 8255. Cc b ADC c trnh b y chng 12. Di y mt chng trnh ch mt b ADC c ni ti 8255 theo s cho trn hnh 115.11.
MOV MOV MOVX MOV MOVX ANL JNZ MOV MOVX A, #80H R1, #CRPORT @R1, A R1, #CPORT A, @R1 A,, #00000001B BACK R1, #APORT A, @R1 ; T iu khin vi PA = u ra v PC = u v o ; Np a ch cng iu khin ; t PA = u ra v PC = u v o ; Np a ch cng C ; c a ch cng C xem ADC sn s ng cha ; Che tt c cc bt cng C xem ADC sn ; Gi hin th PC0 che EOC ; Kt thc hi thoi v by gi nhn d liu ca ADC ; Np a ch PA ; A = u v o d liu tng t

BACK: s ng cha

Cho n y ta c trao i ch v o/ ra n gin ca 8255 v trnh b y nhiu v d v n. Ta xt tip cc ch khc.


ADC804 5V 10k 150pF

RD
8255 D0 D7 PA0

WR
D0

VCC CLK R CLK IN Vin(+) Vin(-) A GND Vref/2 GND

10K POT

A2 A7

Decoding Circuyiry RESET

PA7 PC0

D7 INTR

CS

Hnh 15.11: Ni ghp ADC 804 vi 8255.

Ebook Team

www.updatesofts.com

15.3 Cc ch khc ca 8255. 15.3.1 Ch thit lp/ xo bit BSR. Mt c tnh duy nht ca cng C l cc bit c th c iu khin ring r. Ch BSR cho php ta thit lp cc bit PC0 - PC7 ln cao xung thp nh c ch ra trn hnh 15.12. V d 15.6 v 15.7 trnh b y cch s dng ch n y nh th n o?

D7 0

D6 x

D5 x

D4 x

D3

D2 Bit Select

D1

D0 S/R

BSR Mode

Not Used. Generally = 0.

000=Bit0 100=Bit4 001 = Bit1 101=Bit5 010 = Bit2 110=Bit6 011 = Bit3 111=Bit7

Set=1 Reset=0

Hnh 15.12: T iu khin ca ch BSR. V d 15.6: H y lp trnh PCA ca 8255 ch BSR th bit D7 ca t iu khin phi mc thp. PC4 mc cao, ta cn mt t iu khin l "0xxx1001" v mc thp ta cn "0xxx1000". Cc bt c nh du x l ta khng cn quan tm v thng chng c t v 0.
MOV MOV MOVX ACALL MOV MOVX ACALL A, 00001001B R1, #CNTPORT @R1, A DELAY A, #00001000B @R1, A DELAY ; t byte iu khin cho PC4 =1 ; Np cng thanh ghi iu khin ; To PC4 = 1 ; Thi gian gi chm cho xung cao ; t byte iu khin cho PC4 = 0 ; To PC4 = 0

D0 D7

8255

WR RD
A2 A7 Decoding Circuyiry A0 A7

WR
RD
A0 A7 PC4

CS

Hnh 15.13: Cu hnh cho v d 15.6 v 15.7. V d 15.7: H y lp trnh 8255 theo s 15.13 : a) t PC2 ln cao b) S dng PC6 to xung vung lin tc vi 66% y xung. Li gii:

Ebook Team
a) MOV R0, # CNTPORT MOV A, # 0XXX0101 MOV @R0, A b) AGAIN: MOV MOV MOVX ACALL ACALL MOV ACALL SJMP ; Byte iu khin

www.updatesofts.com

A, #00001101B ; Chn PC6 = 1 R0, #CNTPORT ; Np a ch thanh ghi iu khin @R0, A ; To PC6 = 1 DELAY DELAY A, #00001100B ; PC6 = 0 DELAY ; Thi gian gi chm AGAIN ControlWord-Mode1Output Port A Output Port A with Hanshake Signals D7 D6 D5 D4 D3 D2 D1 D0

INTEA

PC4 PC4 PC7 PC6

OBFA

0 1/0 PC4.51=Input,0=Outpput

ACKA

Port B Mode1

Port A Mode1

Port A Mode1

Port A Output

Port B Output

Port B Output

I/O Mode

INTEA PC6 INTEB PC1 PC2

OBFB

ACKB

Port B with Hanshake Signals

StatusWord-Mode1Output D7 D6 D5 D4 D3 D2 D1 D0 INTEB INTEB iNTEA INTEA OBFA OBFB I/O I/O

INTEB PC0

WR

INTEA is controlled by PC6 in BSR mode PC4.5 INTEB is controlled by PC2 in BSR mode Hnh 15.14: Biu u ra ca 8255 ch 1.

PB7 PB0

Port A Output

WR OBF
INTEB

ACK
Output

Hnh 15.15: Biu nh thi ca 8255 ch 1. 15.3.2 8255 ch 1: V o/ ra vi kh nng n y bt tay.

Ebook Team

www.updatesofts.com

Mt trong nhng c im mnh nht ca 8255 l kh nng bt tay vi cc thit b khc. Kh nng bt tay l mt qu trnh truyn thng qua li ca hai thit b thng minh. V d v mt thit b c cc tn hiu bt tay l my in. Di y ta trnh b y cc tn hiu bt tay ca 8255 vi my in. Ch 1: Xut d liu ra vi cc tn hiu bt tay. Nh trnh b y trn hnh 15.14 th cng A v B c th c s dng nh cc cng u ra gi d liu ti mt thit b vi cc tn hiu bt tay. Cc tn hiu bt tay cho c hai cng A v B c cp bi cc bit ca cng C. Hnh 15.15 biu nh thi ca 8255. Di y l cc phn gii thch v cc tn hiu bt tay v tnh hp l ca chng i vi cng A, cn cng B th ho n to n tng t. Tn hiu OBFa : y l tn hiu b m u ra y ca cng A c tch cc mc thp i ra t chn PC7 bo rng CPU ghi 1 byte d liu ti cng A. Tn hiu n y phi c ni ti chn STROBE ca thit b thu nhn d liu (chng hn nh my in) bo rng n by gi c th c mt byte d liu t cht cng. Tn hiu ACKa : y l tn hiu chp nhn do cng A c mc tch cc mc thp c nhn ti chn PC6 ca 8255. Qua tn hiu ACKa th 8255 bit rng tn hiu ti cng A c thit b thu nhn ly i. Khi thit b nhn ly d liu i t cng A n bo 8255 qua tn hiu ACKa . Lc n y 8255 bt OBFa ln cao bo rng d liu ti cng A by gi l d liu c v khi CPU ghi mt byte d liu mi ti cng A th OBFa li xung thp v.v... Tn hiu INTRa: y l tn hiu yu cu ngt ca cng A c mc tch cc cao i ra t chn PC3 ca 8255. Tn hiu ACK l tn hiu c d i hn ch. Khi n xung thp (tch cc) th n l m cho OBFa khng tch cc, n mc thp mt thi gian ngn v sau tr nn cao (khng tch cc). Sn ln ca ACK kch hot INTRa ln cao. Tn hiu cao n y trn chn INTRa c th c dng gy ch ca CPU. CPU c thng bo qua tn hiu INTRa rng my in nhn byte cui cng v n sn s ng nhn byte d liu khc. INTRa ngt CPU ngng mi th ang l m v p n gi byte k tip ti cng A in. iu quan trng l ch rng INTRa c bt ln 1 ch khi nu INTRa, OBFa v ACKa u mc cao. N c xo v khng khi CPU ghi mt byte ti cng A. Tn hiu INTEa: y l tn hiu cho php ngt cng A 8255 c th cm INTRa ngn n khng c ngt CPU. y l chc nng ca tn hiu INTEa. N l mt mch lt Flip - Flop bn trong thit k che (cm) INTRa. Tn hiu INTRa c th c bt ln hoc b xo qua cng C trong ch BSR v INTEa l Flip - Plop c iu khin bi PC6. T trng thi: 8255 cho php hin th trng thi ca cc tn hiu INTR, OBF v INTE cho c hai cng A v B. iu n y c thc hin bng cch c cng C v o thanh ghi tng v kim tra cc bit. c im n y cho php thc thi thm d thay cho ngt phn cng.
1 13

14

25

Ebook Team

www.updatesofts.com

Hnh 15.16: u cm DB-25. (hnh 15.17 m qu khng v c) Hnh 15.17: u cp ca my in Centronics. Bng 15.2: Cc chn tn hiu ca my in Centronics.
Chn s 1 2 3 4 5 6 7 8 9 10 M t STROBE D liu D0 D liu D1 D liu D2 D liu D3 D liu D4 D liu D5 D liu D6 D liu D7 ACK (chp nhn) Chn s 11 12 13 14 15 16 17 18-25 M t Bn (busy) Ht giy (out of paper) Chn (select) T np ( Autofeed ) Li ( Error ) Khi to my in Chn u v o ( Select input ) t (ground)

Cc bc truyn thng c bt tay gia my in v 8255. Mt byte d liu c gi n bus d liu my in. My in c bo c 1 byte d liu cn c in bng cch kch hot tn hiu u v o STROBE ca n. Khi my nhn c d liu n bo bn gi bng cch kch hot tn hiu u ra c gi l ACK (chp nhn). Tn hiu ACK khi to qu trnh cp mt byte khc n my in. Nh ta thy t cc bc trn th ch khi mt byte d liu ti my in l khng . My in phi c thng bo v s hin din ca d liu. Khi d liu c gi th my in c th bn hoc ht giy, do vy my in phi c bo cho bn gi khi n o n nhn v ly c d liu ca n. Hnh 15.16 v 15.17 trnh cc cm DB25 v u cp ca my in Centronics tng ng.

You might also like