chương 1 tổng quan về vi Điều khiển 8051

Upload: gio-buon

Post on 15-Oct-2015

40 views

Category:

Documents


0 download

TRANSCRIPT

Lun Van Tot Nghip

Chng 1: TNG QUAN V VI IU KHIN 8051

1.1.Gii thiu: Chng ny ta tm hiu cu trc phn cng ca vi iu khin 1.2. Cu to ca vi iu khin 80511.2.1 Lch s:-B vi iu khin 8051 c Intel sn xut vo nm 1981.-L thnh vin u tin ca h 8051 v c hng Intel k hiu l MCS51.-AT89C51 l phin bn ca Flash ROM ca 8051 c hang Atmel Corp sn xut1.2.2.Thng s k thut:

c tnhS lng

ROM4 KB

RAM128 B

B nh thi ( Timer )2

Chn vo ra ( Input/Output )32

Cng ni tip ( Serial Port ) 1

Ngun ngt ( Interrupt sources )6

Vcc5 V

Chn ( Pin )40

Bng 1 Cc thong s k thut s lc ca vi iu khin 8051

1.2.3 S khi ca 8051B x k 8 bit Tc l CPU ch c th lm vic vi 8 bit d liu ti mt thi im. D liu ln hn 8 bit th c chia thnh d liu 8 bit truyn cho CPUC 4 cng vo ra I/O, mi cng 8 bit ( quy c Px.0 ti Px.7 xem Hnh 1.1)ROM c 4 KB dung lng: dng lu tr chng trnh iu khin c np vo gi l firmware ( phn sn hay phn mm h thng thng tr trong RAM )

Hnh1.1 S khi ca 8051

RAM hay gi l b nh ni: c dung lng 128 B. RAM bao gm: + Cc dy thanh ghi (00H1FH): 32 B+Vng RAM nh a ch bit (20H2FH): 16 B+Vng RAM a mc ch (30H7FH): 80 BCng ni tip: thng qua chn RXD v TXD ( chn s 10 v s 11 hay chnh l P3.0 v P3.1) giao tip vi bn ngoi.Ngt ngoi: thng qua chn INT0 v INT1 ( tc chn s 12 v s 13, hay chnh l P3.2 v P3.3) thc hin truyn cc ngt cho vi iu khin.B nh thi: T0 v T1 ( chn s 14 v s 15 hay chnh l P3.4 v P3.5) thc hin ci t 4 mode nh thi (nh thi 8 bit, 13 bit, 16bit v ) cho vi iu khin.B to giao ng: trn chn XTAL1 v XTAL2 (tc chn s 19 v s 18) thng ni vi thch anh to tn s ngoi iu khin tn s xung nhp ca b vi iu khin.

1.2.4 Chc nng ca tng chn:Mc d cc thnh vin ca h 8051 (v d 8751, 89C51, DS5000) u c cc kiu ng v khc nhau, chng hn nh hai hng 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 vo/ra I/0, c RD, ghi WR, a ch, d liu v ngt. Cn phi lu rng mt s hng cung cp mt phin bn 8051 c 20 chn vi s cng vo-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 hng chn DIP nn ta ch tp trung m t phin bn ny.

Hnh 1.2 :S b tr chn ca 8051.

Trnhnh 1.2l s b tr chn ca 8051. Ta thy rng trong 40 chn th c 32 chn dnh cho cc cngP0,P1,P2vP3vi mi cng c 8 chn. Cn li 8 chn c dnh cho ngunVCC, tGND, cc chn dao ngXTAL1vXTAL2, chn ResetRST, chn cho php cht a chALE, chn truy cp a ch ngoiEA, cho php ct chng trnhPSEN. Trong 8 chn ny th 6 chnVCC,GND,XTAL1,XTAL2,RSTvEA c cc h 8051 s dng. Hay ni cch khc l chng phi c ni cho h thng lm vic. Cn hai chn khc lPSENvALEc s dng ch yu trong cc h 8031.a.Chn VCCChn s 40 lVCC, c chc nng cp in p ngun cho chp. Ngun in p l+5V.b.Chn GNDChn s 20 lGND, c ni vi t.c.Chn XTAL1 v XTAL28051 c mt b dao ng trn chp nhng n yu cu c mt xung ng h ngoi chy n. Mt b dao ng thch anh s c ni ti cc chn u voXTAL1(chn 19) vXTAL2(chn 18). B dao ng thch anh c ni tiXTAL1vXTAL2cng cn hai t gm gi tr khong30pF. Mt pha ca t in c ni xung t nh c trnh by trnhnh 1.3a.Cn phi lu rng c nhiu tc khc nhau ca h 8051. Tc c coi nh l tn s cc i ca b dao ng c ni ti chnXTAL. Mt b vi iu khin 8051 yu cu mt tinh th thch anh c tn s khng ln hn20MHz. Khi 8051 c ni ti mt b dao ng tinh th thch anh v cp ngun th ta c th quan st tn s trn chnXTAL2bng my hin sng. Nu ta quyt nh s dng mt ngun tn s khc b dao ng thch anh, chng hn nh l b dao ng TTL th n s c ni ti chnXTAL1, cn chnXTAL2th h khng ni nhhnh 1.3b.

Hnh 1.3:a) Ni XTAL ti thch anh b) Ni XTAL ti ngun ng b ngoi.d.Chn RSTRSTl chn s 9 -Reset. N l mt chn u vo c mc tch cc cao (bnh thng mc thp). Khi cp xung cao ti chn ny th b vi iu khin s c Reset v kt thc mi hot ng. iu ny thng c coi nh l s ti bt ngun. Khi kch hot ti bt ngun s lm mt mi gi tr trn cc thanh ghi.Hnh 1.4lit k cc thanh ghi c bit ca 8051 v gi tr ca chng sau khi Reset.

Hnh 1.4:Gi tr mt s thanh ghi sau RESET.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 ny c ngha l ta phi t dng u tin ca m ngun ti v tr ngn nh 0 ca ROM v y l m m sau khi CPU thc tnh s tm lnh u tin.Hnh 1.5trnh by cch ni chnRSTvi mch Reset.

Hnh 1.5:Mch Reset.Nhm lm cho u vo Reset c hiu qu th xung cp cho n phi ko di ti thiu 2 chu k my trc khi n xung thp.Trong 8051:1 chu k my c tnh bng 12 chu k dao ng.e.Chn EAEAc ngha l truy cp ngoi (External Access): l chn s 31 trn v kiu DIP. N l mt chn u vo v phi c ni hoc viVcchocGND. Hay ni cch khc l n khng c h.Cc thnh vin h 8051 nh 8751, 98C51 hoc DS5000 u c ROM trn chp lu ct chng trnh. Trong cc trng hp nh vy th chnEAc ni tiVcc. i vi cc thnh vin ca h nh 8031 v 8032 m khng c ROM trn chp th m chng trnh c lu ct trn b nh ROM ngoi v chng c np cho 8031/32. Do vy, i vi 8031 th chnEAphi c ni t bo rng m chng trnh c ct ngoi.Cc chn m t trn u phi c ni m khng cn thnh phn no c s dng. Cn hai chn di y c s dng ch yu trong h thng vi iu khin8031.f.Chn PSENPSENl chn u ra cho php ct chng trnh (Program Store Enable) trong h thng. Trn vi iu khin 8031, chng trnh c ct b nh ROM ngoi th chn ny c ni ti chn OE ca ROM.g.Chn ALEChn cho php cht a chALEl chn u ra tch cc cao. Khi ni 8031 ti b nh ngoi th cngP0dng trao i c a ch v d liu. Hay ni cch khc 8031 dn c a ch v d liu qua cngP0 tit kim s chn. ChnALEc s dng phn knh a ch v d liu.h.Cc chn cng vo/ra v cc chc nng ca chngBn cngP0,P1,P2vP3u s dng 8 chn v to thnh cng 8 bt. Tt c cc cng khi Reset u c cu hnh nh ccu ra, sn sng c s dng nh cc cng u ra. Mun s dng cng no trong s cc cng ny lm u vo th n phi c lp trnh. Cng P0: + CngP0chim tt c 8 chn (t chn 32 n 39). N c th c dng nh cng u ra, s dng cc chn ca cngP0va lm u ra, va lm u vo th mi chn phi c ni ti mt in tr ko bn ngoi 10k. iu ny l do mt thc t l cngP0l mt mng m khc vi cc cngP1,P2vP3. Khi nim mng m c s dng trong cc chp MOS v chng mc no n ging nh collector h i vi cc chp TTL.+ Trong bt k h thng no s dng 8751, 89C51 hoc DS5000 ta thng ni cng P0ti cc in tr ko (Xemhnh 1.5), bng cch ny ta c th s dng c cngP0cho c 2 trng hp u ra v u vo. Vi nhng in tr ko ngoi c ni, khi Reset cngP0c cu hnh nh mt cng u ra.

Hnh 1.6:Cng P0 vi cc in tr ko.+ Cng P0 l u vo:Vi cc in tr c ni ti cngP0nhm to n thnh cng u vo th n phi c lp trnh bng cch ghi 1 ti tt c cc bit caP0.+ Vai tr kp ca cng P0:Nh trnhnh 1.6, cng P0 c gn l cc bit a chAD0-AD7cho php n c s dng va cho a ch, va cho d liu. Khi ni 8051/31 ti b nh ngoi th cngP0cung cp c a ch v d liu, 8051 dn d liu v a ch qua cngP0 tit kim s chn.ALEc s dng tch a ch v d liu vi s tr gip ca IC cht d liu 74LS373.Cng P1:+ CngP1cng chim tt c 8 chn (t chn 1 n chn 8) n c th c s dng nh u vo hoc u ra. So vi cngP0th cng ny khng cn n in tr ko v n c cc in tr ko bn trong. Trong qu trnh Reset th cngP1c cu hnh nh mt cng u ra.+ Cng P1 l u vo:Tng tP0, bin cngP1thnh u vo th n phi c lp trnh bng cch ghi 1 n tt c cc bit ca n.Cng P2:+ CngP2cng chim 8 chn (cc chn t 21 n 28). N c th c s dng nh u vo hoc u ra, ging nh cngP1, cngP2cng khng cn in tr ko v n c cc in tr ko bn trong. Khi Reset, th cngP2c cu hnh nh mt cng u ra.+ Cng P2 l u vo: to cngP2nh u vo th n phi c lp trnh bng cch ghi cc s 1 ti tt c cc chn ca n.+ Vai tr kp ca P2:Trong cc h thng 8751, 89C51 v DS5000 thP2c dng nh u ra. Tuy nhin trong h thng 80312 th cngP2c th c dng cng vi P0 to ra a ch 16 bit i vi b nh ngoi. Nh ch ra trnhnh 1.2cngP2cng c ch nh nh l cc bit a chA8-A15bo chc nng kp ca n. V mt b 8031 c kh nng truy cp 64k byte b nh ngoi, nn n cn mt ng a ch 16 bt. Trong khiP0cung cp 8 bit thp quaA0-A7. Cng vic caP2l cung cp cc bt a chA8-A15. Hay ni cch khc khi 8031 c ni ti b nh ngoi thP2c dng cho 8 bt cao ca a ch 16 bit v n khng th dng cho vo/ra.T nhng trnh by trn y ta c th kt lun rng vi iu khin 89C51c cc cngP0,P1, P2vP3cho cc thao tc vo ra v nh th l c th cho cc ng dng. Ngoi ra cngP3cn dnh cho cc chc nng c bit khc m ta s cng bn di y.Cng P3:+ CngP3chim tng cng l 8 chn t chn 10 n chn 17. N c th c s dng nh u vo hoc u ra. CngP3khng cn cc in tr ko cng nhP1vP2. Mc d cngP3c cu hnh nh mt cng u ra khi Reset, nhng y khng phi l cch n c s dng ph bin nht.+ CngP3c b sung cc chc nng quan trng, c bit.Bng 2cung cp cc chc nng khc ca cngP3. Thng tin ny p dng cho c 8051 v 8031:

Bt ca cng P3Chc nngchn s

P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7Nhn d liu (RXD)Pht d liu (TXD)Ngt 0(INT0)Ngt 1(INT1)B nh thi 0 (TO)B nh thi 1 (T1)Ghi (WR)c (RD)1011121314151617

Bng 2:Cc chc nng khc ca cng P3

Cc bitP3.0vP3.1cung cp tn hiu nhn v pht d liu trongtruyn thng d liu ni tip. Cc bitP3.2vP3.3c dnh cho ccngt ngoi.BitP3.4vP3.5c dng cho ccb nh thi0 v 1.Cui cng cc bitP3.6vP3.7 ghi v c ccb nh ngoikhi c ni ti cc h thng 8031

1.2.5 T CHC B NH7FFF

F0F7F6F5F4F3F2F1F0B

RAM a mc ch

E0E7E6E5E4E3E2E1E0ACC

D0D7D6D5D4D3D2D1D0PSW

30B8---BCBBBAB9B8IP

2F7F7E7D7C7B7A7978

2E7776757473727170B0B7B6B5B4B3B2B1B0P.3

2D6F6E6D6C6B6A6968

2C6766656463626160A8AFACABAAA9A8IE

2B5F5E5D5C5B5A5958

2A5756555453525150A0A7A6A5A4A3A2A1A0P2

294F4E4D4C4B4A4948

28474645444342414099Khng nh a ch tng bitSBUF

273F3E3D3C3B3A3938989F9E9D9C9B9A9998SCON

263736353433323130

252F2E2D2C2B2A2928909796959493929190P1

242726252423222120

231F1E1D1C1B1A19188DKhng nh a ch tng bitTH1

2217161514131211108CKhng nh a ch tng bitTH0

210F0E0D0C0B0A09088BKhng nh a ch tng bitTL1

2007060504030201008AKhng nh a ch tng bitTL0

1F

Bank 389Khng nh a ch tng bitTMOD

18888F8E8D8C8B8A8988TCON

17Bank 287Khng nh a ch tng bitPCON

10

0FBank 183Khng nh a ch tng bitDPH

0882Khng nh a ch tng bitDPL

07Bank thanh ghi 081Khng nh a ch tng bitSP

00(mc nh cho R0 -R7)888786858483828180P0

Hnh 1.7 S khi RAM ca vi iu khin 8051Vng RAM a mc ch: truy xut t do 80 bytes ny theo kiu nh a ch trc tip hay gin tipVng RAM nh a ch bit: truy xut cc bit ring r l mt c trng ca VK. Cc bit c th c SET, CLR, AND, OR ch bng mt lnh.Cc dy thanh ghi (register banks: R0 R7 ): Cc lnh dng thanh ghi l nhng lnh ngn v thc hin nhanh hn. Cc d liu thng dng nn cha cc thanh ghi. tng cc dy thanh ghi cho php chuyn i ng cnh nhanh v hiu qu cc module c lp nhau ca phn mm.Ngn xp (Stack): Thanh ghi dng truy cp ngn xpgi l SP (stack pointer). SP l thanh ghi 8 bit, gi tr t 00 FFH. Khi c cp ngun hay sau khi reset th SP = 07H.

1.2.6 Cc thanh ghi chc nng c bit:Cac thanh ghi noi cua 8051 c truy xuat ngam nh bi bo lenh. Cac thanh ghi trong 8051 c nh dang nh mot phan cua RAM tren chip v vay moi thanh ghi se co mot a ch (ngoai tr thanh ghi bo em chng trnh va thanh ghi lenh v cac thanh ghi nay hiem khi b tac ong trc tiep). Cung nh R0 en R7, 8051 co 21 thanh ghi co chc nang ac biet (SFR: Special Function Register) vung tren cua RAM noi t a ch 80H en FFH. Chu y: tat ca 128 a ch t 80H en FFH khong c nh ngha, ch co 21 thanh ghi co chc nang ac biet c nh ngha san cac a ch.Ngoai tr thanh ghi A co the c truy xuat ngam nh a noi, a so cac thanh ghi co chc nang ac biet SFR co the a ch hoa tng bit hoac byte.

Thanh ghi trng thi: PSW

C Carry CY (Carry Flag):C nh co tac dung kep. Thong thng no c dung cho cac lenh toan hoc: C=1 neu phep toan cong co s tran hoac phep tr co mn va ngc lai C= 0 neu phep toan cong khong tran va phep tr khong co mn.C Carry phu AC (Auxiliary Carry Flag):Khi cong nhng gia tr BCD (Binary Code Decimal), c nh phu AC c set neu ket qua 4 bit thap nam trong pham vi ieu khien 0AH 0FH. Ngc lai AC= 0.C 0 (Flag 0):C 0 (F0) la 1 bit c a dung dung cho cac ng dung cua ngi dung.Nhng bit chon bank thanh ghi truy xuat:RS1 va RS0 quyet nh day thanh ghi tch cc. Chung c xoa sau khi reset he thong va c thay oi bi phan mem khi can thiet. Tuy theo RS1, RS0 = 00, 01, 10, 11 se c chon Bank tch cc tng ng la Bank 0, Bank1, Bank2, Bank3.

RS1RS0BANK

000

011

102

113

C tran OV (Over Flag) :C tran c set sau mot hoat ong cong hoac tr neu co s tran toan hoc. Khi cac so co dau c cong hoac tr vi nhau, phan mem co the kiem tra bit nay e xac nh xem ket qua co nam trong tam xac nh khong. Khi cac so khong co dau c cong bit OV c bo qua. Cac ket qua ln hn +127 hoac nho hn 128 th bit OV = 1. Bit Parity (P):Bit t ong c set hay Clear moi chu ky may e lap Parity chan vi thanh ghi A. S em cac bit 1 trong thanh ghi A cong vi bit Parity luon luon chan. V du A cha 10101101B th bit P set len mot e tong so bit 1 trong A va P tao thanh so chan.Bit Parity thng c dung trong s ket hp vi nhng thu tuc cua Port noi tiep e tao ra bit Parity trc khi phat i hoac kiem tra bit Parity sau khi thu.Thanh ghi B:Thanh ghi B a ch F0H c dung cung vi thanh ghi A cho cac phep toan nhan chia. Lenh MUL AB se nhan nhng gia tr khong dau 8 bit trong hai thanh ghi A va B, roi tra ve ket qua 16 bit trong A (byte cao) va B(byte thap). Lenh DIV AB lay A chia B, ket qua nguyen at vao A, so d at vao B.Thanh ghi B co the c dung nh mot thanh ghi em trung gian a muc ch. No la nhng bit nh v thong qua nhng a ch t F0HF7H.Con tro Ngan xep SP (Stack Pointer) : Con tro ngan xep la mot thanh ghi 8 bit a ch 81H. No cha a ch cua byte d lieu hien hanh tren nh ngan xep. Cac lenh tren ngan xep bao gom cac lenh cat d lieu vao ngan xep (PUSH) va lay d lieu ra khoi Ngan xep (POP). Lenh cat d lieu vao ngan xep se lam tang SP trc khi ghi d lieu va lenh lay ra khoi ngan xep se lam giam SP. Ngan xep cua 8031/8051 c gi trong RAM noi va gii han cac a ch co the truy xuat bang a ch gian tiep, chung la 128 byte au cua 8051. e khi ong SP vi ngan xep bat au tai a ch 60H, cac lenh sau ay c dung: MOV SP , #5F Vi lenh tren th ngan xep cua 8051 ch co 32 byte v a ch cao nhat cua RAM tren chip la 7FH. S d gia tr 5FH c nap vao SP v SP tang len 60H trc khi cat byte d lieu. Khi Reset 8051, SP se mang gia tr mac nh la 07H va d lieu au tien se c cat vao o nh ngan xep co a ch 08H. Neu phan mem ng dung khong khi ong SP mot gia tr mi th bank thanh ghi 1 co the ca 2 va 3 se khong dung c v vung RAM nay a c dung lam ngan xep. Ngan xep c truy xuat trc tiep bang cac lenh PUSH va POP e lu tr tam thi va lay lai d lieu, hoac truy xuat ngam bang lenh goi chng trnh con ( ACALL, LCALL) va cac lenh tr ve (RET, RETI) e lu tr gia tr cua bo em chng trnh khi bat au thc hien chng trnh con va lay lai khi ket thuc chng trnh con

Con tro d lieu DPTR (Data Pointer):Con tro d lieu (DPTR) c dung e truy xuat bo nh ngoai la mot thanh ghi 16 bit a ch 82H (DPL: byte thap) va 83H (DPH: byte cao). Ba lenh sau se ghi 55H vao RAM ngoai a ch 1000H: MOV A , #55H MOV DPTR, #1000H MOV @DPTR, A Lenh au tien dung e nap 55H vao thanh ghi A. Lenh th hai dung e nap a ch cua o nh can lu gia tr 55H vao con tro d lieu DPTR. Lenh th ba se di chuyen noi dung thanh ghi A (la 55H) vao o nh RAM ben ngoai co a ch cha trong DPTR (la 1000H).Cac thanh ghi Port (Port Register): Cac Port cua 8051 bao gom Port0 a ch 80H, Port1 a ch 90H, Port2 a ch A0H, va Port3 a ch B0H. Tat ca cac Port nay eu co the truy xuat tng bit nen rat thuan tien trong kha nang giao tiep. Cac thanh ghi Timer (Timer Register): 8051 co cha hai bo nh thi/ bo em 16 bit c dung cho viec nh thi c em s kien. Timer0 a ch 8AH (TLO: byte thap ) va 8CH (THO: byte cao). Timer1 a ch 8BH (TL1: byte thap) va 8DH (TH1: byte cao). Viec khi ong timer c SET bi Timer Mode (TMOD) a ch 89H va thanh ghi ieu khien Timer (TCON) a ch 08H. Ch co TCON c a ch hoa tng bit . Cac thanh ghi Port noi tiep (Serial Port Register) : 8051 cha mot Port noi tiep cho viec trao oi thong tin vi cac thiet b noi tiep nh may tnh, modem hoac giao tiep noi tiep vi cac IC khac. Mot thanh ghi em d lieu noi tiep (SBUF) a ch 99H se gi ca hai d lieu truyen va d lieu nhap. Khi truyen d lieu ghi len SBUF, khi nhan d lieu th oc SBUF. Cac mode van khac nhau c lap trnh qua thanh ghi ieu khien Port noi tiep (SCON) c a ch hoa tng bit a ch 98H.Cac thanh ghi ngat (Interrupt Register):8051 co cau truc 5 nguon ngat, 2 mc u tien. Cac ngat b cam sau khi b reset he thong va se c cho phep bang viec ghi thanh ghi cho phep ngat (IE) a ch A8H. Ca hai c a ch hoa tng bit.

Thanh ghi ieu khien nguon PCON (Power Control Register):Thanh ghi PCON khong co bit nh v. No a ch 87H cha nhieu bit ieu khien. Thanh ghi PCON c tom tat nh sau:+ Bit 7 (SMOD) : Bit co toc o Baud mode 1, 2, 3 Port noi tiep khi set.+ Bit 6, 5, 4 : Khong co a ch.+ Bit 3 (GF1) : Bit c a nang 1.+ Bit 2 (GF0) : Bit c a nang 2 .+ Bit 1 (PD) : Set e khi ong mode Power Down va thoat e reset.+ Bit 0 (IDL) : Set e khi ong mode Idle va thoat khi ngat mach hoac reset.Cac bit ieu khien Power Down va Idle co tac dung chnh trong tat ca cac IC ho MSC-51 nhng ch c thi hanh trong s bien dch cua CMOS.1.2.7 Bo nh ngoai (external memory) 8051 co kha nang m rong bo nh len en 64K byte bo nh chng trnh va 64k byte bo nh d lieu ngoai. Do o co the dung them RAM va ROM neu can.Khi dung bo nh ngoai, Port0 khong con chc nang I/O na. No c ket hp gia bus a ch (A0-A7) va bus d lieu (D0-D7) vi tn hieu ALE e chot byte cua bus a ch khi bat au moi chu ky bo nh. Port c cho la byte cao cua bus a ch.Truy xuat bo nh ma ngoai (Accessing External Code Memory) :- Bo nh chng trnh ben ngoai la bo nh ROM c cho phep cua tn hieu PSEN\. S ket noi phan cng cua bo nh EPROM nh sau:Port 0

EA

ALE

Port 2

PSEN8951D0 D7 A0 A7

A8 A15

OE 74HC373 O D GEPROM

Trong mot chu ky may tieu bieu, tn hieu ALE tch 2 lan. Lan th nhat cho phep 74HC373 m cong chot a ch byte thap, khi ALE xuong 0 th byte thap va byte cao cua bo em chng trnh eu co nhng EPROM cha xuat v PSEN\ cha tch cc, khi tn hieu len mot tr lai th Port 0 a co d lieu la Opcode. ALE tch cc lan th hai c giai thch tng t va byte 2 c oc t bo nh chng trnh. Neu lenh ang hien hanh la lenh 1 byte th CPU ch oc Opcode, con byte th hai bo i. Truy xuat bo nh d lieu ngoai (Accessing External Data Memory):Bo nh d lieu ngoai la mot bo nh RAM c oc hoac ghi khi c cho phep cua tn hieu RD\ va WR. Hai tn hieu nay nam chan P3.7 (RD) va P3.6 (WR). Lenh MOVX c dung e truy xuat bo nh d lieu ngoai va dung mot bo em d lieu 16 bit (DPTR), R0 hoac R1 nh la mot thanh ghi a ch.Cac RAM co the giao tiep vi 8951 tng t cach thc nh EPROM ngoai tr chan RD\ cua 8951 noi vi chan OE\ (Output Enable) cua RAM va chan WR\ cua 8951 noi vi chan WE\ cua RAM. S noi cac bus a ch va d lieu tng t nh cach noi cua EPROM.

S giai ma a ch (Address Decoding):S giai ea a ch la mot yeu cau tat yeu e chon EPROM, RAM, 8279, S giai ma a ch oi vi 8951 e chon cac vung nh ngoai nh cac vi ieu khien. Neu cac con EPROM hoac RAM 8K c dung th cac bus a ch phai c giai ma e chon cac IC nh nam trong pham vi gii han 8K: 0000H1FFFH, 2000H3FFFH, . . Mot cach cu the, IC giai ma 74HC138 c dung vi nhng ngo ra cua no c noi vi nhng ngo vao chon Chip CS (Chip Select) tren nhng IC nh EPROM, RAM, Hnh sau ay cho phep ket noi nhieu EPROM va RAM.

Address Decoding (Giai ma a ch)S e len nhau cua cac vung nh d lieu ngoai:V bo nh chng trnh la ROM, nen nay sinh mot van e bat tien khi phat trien phan mem cho vi ieu khien. Mot nhc iem chung cua 8951 la cac vung nh d lieu ngoai nam e len nhau, v tn hieu PSEN\ c dung e oc bo nh ma ngoai va tn hieu RD\ c dung e oc bg nh d lieu, nen mot bo nh RAM co the cha ca chng trnh va d lieu bang cach noi ng OE\ cua RAM en ngo ra mot cong AND co hai ngo vao PSEN\ va RD\. S o mach nh hnh sau cho phep cho phep bo nh RAM co hai c`c nang va la bo nh chng trnh va la bo nh d lieu:RAM

WR\

OE\

WR\RD\

PSEN\

Overlapping the External code and data spaceVay mot chng trnh co the c tai vao RAM bang cach xem no nh bo nh d lieu va thi hanh chng trnh bang cach xem no nh bo nh chng trnh.

1.3 Lp trnh cho vi iu khin 80511.3.1 Tp lnh hp ng Assembly ca 8051Ngn ng Assembly l hp ng rt gn vi ngn ng my. Mi lnh ca Assembly c s tiu tn d liu (byte) v chu k my xc nh. Do , chng ta c th d dng nhn ra s b tr d liu ca chng trnh. Lp trnh bng Assembly khng c s tiu tn do m tha nh lp trnh bng ngn ng C, mt chng trnh vit bng Assembly chy nhanh v hiu qu hn nhiu so vi chng trnh vit bng C.Tuy nhin do Assembly rt gn vi ngn ng my nn i hi ngi lp trnh phi c mt tr nh tt, nu khng, chng ta phi chun b mt chng sch c th m ra bt c lc no. V chng ta rt kh c th vit mt chng trnh ln bng Assembly.a.Cu trc mt chng trnh Assembly: Cu trc ca chng trnh nh sau:ORG 0000H ;Bt u on code ... ;on lnh End ;Kt thc on code

Bt u bng cu lnh ORG 0000H Tip n l on lnh. Trong on lnh c cc nhn r nhnh chng trnh. Mi lnh u bt u bng tn lnh, tip theo l k t trng hay k t tab, ri n cc tham s lnh. Mi lnh ch c vit trn 1 dng. Kt thc bng cu lnh ENDTrong Asembly khng phn bit ch hoa hay ch thng. Dng ch thch c t sau du chm phy ;.b. Cc lnh c bn trong Assembly: K hiu c dng di y: Rn: K hiu cho cc thanh ghi R0 n R7 (ca bng thanh ghi c chn). Data: D liu trc tip, l 1 byte d liu bn trong RAM hoc thanh ghi chc nng c bit. @Ri: 1 byte d liu vng RAM c nh a ch bi thanh ghi R0 hoc R1. #data: 1 byte d liu tc thi (l nhng con s do ngi lp trnh t sn). #data16: 2 byte d liu tc thi (l nhng con s ca ngi lp trnh). Addr16: 16 bit a ch ca cc lnh nhy xa v gi xa. Addr11: 11 bit a ch ca cc lnh nhy tuyt i v gi tuyt i. Rel: 8 bit a ch c du ca cc lnh nhy gn v gi gn.Cc Lnh Di Chuyn D Liu:Tn lnh: MOVMOV A,Rn (1 byte 1 chu k my) Chp ni dung thanh ghi Rn vo thanh ghi AMOV A,data (2 byte 1 chu k my) Chp ni dung ca data vo thanh ghi AMOV A,@Ri (1 byte 1 chu k my) Chp ni dung ca nh do Ri tr ti vo thanh ghi AMOV A,#Data (2 byte 1 chu k my) Ghi d liu tc thi vo thanh ghi AMOV A,@A+DPTR (1 byte 2 chu k my) Chp ni dung ca nh chng trnh c a ch A+DPTR vo thanh ghi A MOV Rn,A (1 byte 1 chu k my) Chp ni dung thanh ghi A vo thanh ghi RnMOV Rn,data (2 byte 2 chu k my) Chp ni dung ca data vo thanh ghi RnMOV Rn,#data (2 byte 1 chu k my) Ghi d liu tc thi vo thanh ghi RnMOV data,A (2 byte 1 chu k my) Chp ni dung thanh ghi A vo dataMOV data,Rn (2 byte 2 chu k my) Chp ni dung thanh ghi Rn vo dataMOV data,data (3 byte 2 chu k my) Chp ni dung hai d liu trc tip data vi nhauMOV data,@Ri (2 byte 2 chu k my) Chp nii dung nh do Ri tr ti vo dataMOV data,#data (3 byte 2 chu k my) Ghi d liu tc thi vo dataMOV @Ri,A (1 byte 1 chu k my) Chp ni dung ca thanh ghi A vo nh do Ri tr tiMOV @Ri,data (2 byte 1 chu k my) Chp ni dung data vo nh do Ri tr tiMOV @Ri,#data (2 byte 1 chu k my) Ghi d liu trc tip vo nh do Ri tr tiMOV DPTR,#data (3 byte 2 chu k my) Ghi mt hng 16 bit vo thanh ghi DPTRMOV C,bit (2 byte 1 chu k my) Chp mt bit trc tip vo c nh CMOV bit,C (2 byte 2 chu k my) Chp trng thi c nh C vo mt bit trc tipTn lnh MOVCMOVC A,@A+PC (1 byte 2 chu k my) Chp ni dung nh chng trnh c a ch A+PC vo thanh ghi ATn lnh MOVXMOVX A,@Ri (1 byte 2 chu k my) Chp ni dung ca nh b nh ngoi do Ri tr ti vo thanh ghi A (8 bit a ch)MOVX A,@DPTR (1 byte 2 chu k my) Chp ni dung ca nh b nh ngoi do DPTR tr ti vo thanh ghi A (16 bit a ch)MOVX @Ri,A (1 byte 2 chu k my) Chp ni dung thanh ghi A ra ngoiMOVX @DPTR,A (1 byte 2 chu k my) Chp ni dung thanh ghi A ra ngoiTn lnh PUSHPUSH data (2 byte 2 chu k my) Chp data ln ngn xp v tng SPTn lnh POPPOP data (2 byte 2 chu k my) Chp d liu t ngn xp vo data v gim SPTn lnh XCHXCH A,Rn (1 byte 1 chu k my) Trao i d liu gia thanh ghi A v thanh ghi RnXCH A,data (2 byte 1 chu k my) Trao i d liu gia thanh ghi A v dataXCH A,@Ri (1 byte 1 chu k my) Trao i d liu gia thanh ghi A v nh do Ri tr tiTn lnh XCHDXCHD A,@Ri (1 byte 1 chu k my) Trao i hai nibble thp ca thanh ghi A v nh do Ri tr tiCc Lnh S Hc:Tn lnh ADDADD A,data (2 byte 1 chu k my) A=A+dataADD A,@Ri (1 byte 1 chu k my) A=A+@RiADD A,#data (2 byte 1 chu k my) A=A+#dataADD A,Rn (1 byte 1 chu k my) A=A+RnTn lnh ADDCADDC A,Rn (1 byte 1 chu k my) A=A+Rn+CADDC A,@Ri (1 byte 1 chu k my) A=A+@Ri+CADDC A,data (2 byte 1 chu k my) A=A+data+CADDC A,#data (2 byte 1 chu k my) A=A+#data+CTn lnh SUBBSUBB A,Rn (1 byte 1 chu k my) A=A-Rn-CSUBB A,data (2 byte 1 chu k my) A=A-data-CSUBB A,@Ri (1 byte 1 chu k my) A=A-@Ri-CSUBB A,#data (2 byte 1 chu k my) A=A-#data-CTn lnh INCINC A (1 byte 1 chu k my) Tng ni dung thanh ghi A ln 1INC Rn (1 byte 1 chu k my) Tng ni dung thanh ghi Rn ln 1INC data (2 byte 1 chu k my) Tng data ln 1INC @Ri (1 byte 1 chu k my) Tng ni dung nh do Ri tr ti ln 1INC DPTR (1 byte 2 chu k my) Tng ni dung thanh ghi DPTR ln 1Tn lnh DECDEC A (1 byte 1 chu k my) Gim ni dung thanh ghi A xung 1DEC Rn (1 byte 1 chu k my) Gim ni dung thanh ghi Rn xung 1DEC data (2 byte 1 chu k my) Gim data xung 1DEC @Ri (1 byte 1 chu k my) Gim ni dung nh do Ri tr ti 1Tn lnh MULMUL AB (1 byte 4 chu k my) Nhn ni dung thanh ghi A vi thanh ghi B. Byte cao lu trong thanh ghi B, byte thp lu trong A. Nu kt qa ln hn 255 th c OV bt, nu khng th b xo. C C lun b xo.Tn lnh DIVDIV AB (1 byte 4 chu k my) Chia ni dung thanh ghi A cho thanh ghi B. Phn nguyn lu trong thanh ghi A, phn d lu trong thanh ghi B. C C v c OV u b xo.Tn lnh DADA A (1 byte 1 chu k my) Hiu chnh thp phn cho thanh ghi A.Cc Lnh Lun L:Tn lnh ANLANL A,Rn (1 byte 1 chu k my) AND ni dung thanh ghi A vi Rn, llu vo thanh ghi AANL A,data (2 byte 1 chu k my) AND ni dung thanh ghi A vi data, lu vo thanh ghi AANL A, @Ri (1 byte 1 chu k my) AND ni dung thanh ghi A vi @Ri, lu vo thanh ghi AANL A,#data (2 byte 1 chu k my) AND ni dung thanh ghi A vi #data, lu vo thanh ghi AANL data,A (2 byte 1 chu k my) AND ni dung thanh ghi A vi data, lu vo dataANL data,#data (3 byte 2 chu k my) AND data vi #data, lu vo dataANL C,bit (2 byte 2 chu k my) AND C vi bit, lu vo CANL C,/bit (2 byte 2 chu k my) AND C vi o ca bit, lu vo CTn lnh ORLORL A,Rn (1 byte 1 chu k my) OR ni dung thanh ghi A vi Rn, llu vo thanh ghi AORL A,data (2 byte 1 chu k my) OR ni dung thanh ghi A vi data, lu vo thanh ghi AORL A,@Ri (1 byte 1 chu k my) OR ni dung thanh ghi A vi @Ri, lu vo thanh ghi AORL A,#data (2 byte 1 chu k my) OR ni dung thanh ghi A vi #data, lu vo thanh ghi AORL data, A (2 byte 1 chu k my) Orni dung thanh ghi A vi data, lu vo dataORL data,#data (3 byte 1 chu k my) OR data vi #data, lu vo dataORL C,bit (2 byte 2 chu k my) OR C vi bit, lu vo CORL C,\bit (2 byte 2 chu k my) OR C vi o ca bit, lu vo CTn lnh XRLXRL A,Rn (1 byte 1 chu k my) XOR ni dung thanh ghi A vi Rn, llu vo thanh ghi AXRL A,data (2 byte 1 chu k my) XOR ni dung thanh ghi A vi data, lu vo thanh ghi AXRL A,@Ri (1 byte 1 chu k my) XOR ni dung thanh ghi A vi @Ri, lu vo thanh ghi AXRL A,#data (2 byte 1 chu k my) XOR ni dung thanh ghi A vi #data, lu vo thanh ghi AXRL data,A (2 byte 1 chu k my) XORni dung thanh ghi A vi data, lu vo dataXRL data,#data (3 byte 1 chu k my) XOR data vi #data, lu vo dataTn lnh SETBSETB C (1 byte 1 chu k my) Bt c nh CSETB bit (2 byte 1 chu k my) Bt bit trc tipTn lnh CLRCLR A (1 byte 1 chu k my) Xo thanh ghi ACLR C (1 byte 1 chu k my) Xo c nh CCLR bit (2 byte 1 chu k my) Xo bit trc tipTn lnh CPLCPL A (1 byte 1 chu k my) Ly b thanh ghi ACPL C (1 byte 1 chu k my) Ly b c nh CCPL bit (2 byte 1 chu k my) Ly b bit trc tipTn lnh RLRL A (1 byte 1 chu k my) Dch tri thanh ghi A. Gi tr ca bit 7 lu vo bit 0.Tn lnh RLCRLC A (1 byte 1 chu k my) Dch tri thanh ghi A. Gi tr c ca C c lu vo bit 0 ca A. Bit 7 ca A c lu vo CTn lnh RRRR A (1 byte 1 chu k my) Dch phi thanh ghi A. Gi tr ca bit 0 c lu vo bit 7.Tn lnh RRCRRC A (1 byte 1 chu k my) Dch phi thanh ghi A. Gi tr ca C lu vo bit 7 ca A, bit 0 ca A lu vo CTn lnh SWAPSWAP A (1 byte 1 chu k my) Hon chuyn hai nibble ca thanh ghi A.Cc Lnh Chuyn iu Khin:Tn lnh ACALLACALL addr11 (2 byte 2 chu k my) Gi chng trnh con dng a ch tuyt iTn lnh LCALLLCALL addr16 (3 byte 2 chu k my) Gi chng trnh con dng a ch diTn lnh RETRET (1 byte 2 chu k my) Tr v t lnh gi chng trnh conTn lnh RETIRETI (1 byte 2 chu k my) Tr v t lnh gi ngtTn lnh AJMPAJMP addr11 (2 byte 2 chu k my) Nhy dng a ch tuyt iTn lnh LJMPLJMP addr16 (3 byte 2 chu k my) Nhy dng a ch diTn lnh SJMPSJMP rel (2 byte 2 chu k my) Nhy dng a ch ngnTn lnh JMPJMP @A+DPTR (1 byte 2 chu k my) Nhy gin tipt con tr d liuTn lnh JZJZ rel (2 byte 2 chu k my) Nhy nu thanh ghi A bng 0Tn lnh JNZJNZ rel (2 byte 2 chu k my) Nhy nu thanh ghi A khc 0Tn lnh JCJC rel (2 byte 2 chu k my) Nhy nu c nh C c btTn lnh JNCJNC rel (2 byte 2 chu k my) Nhy nu c nh C khng c btTn lnh JBJB bit,rel (3 byte 2 chu k my) Nhy nu bit c btTn lnh JNBJNB bit,rel (3 byte 2 chu k my) Nhy nu bit khng c btTn lnh JBCJBC bit,rel (3 byte 2 chu k my) Nhy nu bit c bt ri xo bitTn lnh CJNECJNE A,data,rel (3 byte 2 chu k my) Nhy nu A khc dataCJNE A,#data,rel (3 byte 2 chu k my) Nhy nu A khc #dataCJNE Rn,#data,rel (3 byte 2 chu k my) Nhy nu Rn khc #dataCJNE @Ri,#data,rel (3 byte 2 chu k my) Nhy nu nh do Ri tr ti khc dataTn lnh DJNZDJNZ Rn,rel (2 byte 2 chu k my) Gim Rn v nhy khi Rn khc 0DJNZ data,rel (3 byte 2 chu k my) Gim data v nhy nu data khc 0

1.3.2 Lp trnh nh thi B m/B nh thi: y l cc ngoi vi c thit k thc hin mt nhim v n gin: m cc xung nhp. Mi khi c thm mt xung nhp ti u vo m th gi tr ca b m s c tng ln 01 n v (trong ch m tin/m ln) hay gim i 01 n v (trong ch m li/m xung).Xung nhp a vo m c th l mt trong hai loi: + Xung nhp bn trong IC: l xung nhp c to ra nh kt hp mch dao ng bn trong IC v cc linh kin ph bn ngoi ni vi IC. Trong trng hp s dng xung nhp loi ny, ngi ta gi l ccb nh thi(timers). Do xung nhp bn loi ny thng u n nn ta c th dng m thi gianmt cch kh chnh xc. +Xung nhp bn ngoi IC: l cc tn hiu logic thay i lin tc gia 02 mc 0-1 v khng nht thit phi l u n. Trong trng hp ny ngi ta gi l ccb m(counters). ng dng ph bin ca cc b m lm cc s kin bn ngoinh m cc sn phm chy trn bng chuyn, m xe ra/vo kho biMt khi nim quan trng cn phi ni n l s kin trn (overflow). N c hiu l s kin b m m vt qu gi tr ti a m n c th biu din v quay tr v gi tr 0. Vi b m 8 bit gi tr ti a l 255 (tng ng vi FF trong h Hexa), vi b m 16 bit l 65535 (FFFFH) v 8191 (1FFFH) vi b m 13 bit. Cc thanh ghi dng truy xut Timer/Counter

Bng 2.1 Cc thanh ghi cho Timer/Counter

TH0, TL0, TH1, TL1: Cc thanh ghi ny lu tr: + Gi tr to thi gian tr (time delay) (nu l timer) + S s kin (number of events) (nu l counter)

TMOD: thanh ghi ch nh thi (Timer mode register)

+4 bit thp thit lp cho bTimer 0. + 4 bit cao thit lp choTimer 1. + GATE: GT=1 chn khi ng v ngng b nh thi bngphn mm & phn cng t ngun ngoi, Timer c khi ng khi TRx c set . GT=0 chn khi ngvdngb nh thi bng phn mm bn trong bi cc bit khi ng b nh thi TRx, nh set TRx. + C/T: chn Counter hoc Timer. C/T=1 th chn Counter, C/T=0 th chn Timer. + M1, M0: chn ch

Bng 2.3 Chn ch nh thi qua hai bit M1, M0 ca thanh ghi TMOD

TCON: thanh ghi iu khin nh thi (Timer control register):

+ TF1, TF0 : l c trn + TR1, TR0: bt (TRx=1) hoc tt (TRx=0) b nh thi + IE1, IE0 : Cc c gy ngt. + IT1, IT0 : Cho php ngt

Ch Timer/Counter 1 (MOD 1) 16 bit v MOD 0 (13bit):

Khi c bt b nh thi (TRx=1) th gi tr ca thanh ghi THx,TLx tng dn Xy ra trn TFx t 0 c set ln 1 khi THx,TLx t FFFFH v 0000H (vi 16 bit MOD 1) hay t 1FFFH v 0 (vi 13bit MOD 0).Sau khi b nh thi t c gii hn ca n l gi trFFFFH (hay 1FFFH), mun lp li qu trnh th cc thanh ghiTHxvTLxphi c np li vi gi tr ban u v c TFxphi c xa v 0.

Ch Timer/Counter 2 (MOD 2) 8bit t np li ( reload):

Khi b nh thi c bt th gi tr thanh ghi TLx tng dn. Xy ra trn TFx t 0 c set ln 1 khi TLx t FFH v 00H. TLx c t ng np li gi tr ban u lu THx. lp li qu trnh chng ta n gin ch vicxo cTFx.

1.3.3 Lp trnh ngtNgt l mt s kin bn trong hoc bn ngoi gy ra ngt b vi iu khin bo cho b vi iu khin bit rng thit b cn c phc v. Mi mt ngt c mt chng trnh tng ng c gi l trnh phc v ngt ISR(Interrupt Service Routine) hay cn gi l b qun ngt IH(Interrupt handler).Trong nhiu ng dng i hi ta phi dng ngt (Interrupt) m khng dng Timer bi v nu dng Timer ta phi mt thi gian ch c trn Timer TFx bt mi x l tip chng trnh. Do ta khng c thi gian lm cc vic quan trng khc m ng dng i hi nn gy ra s thiu hiu qu. y l chng trnh rt quan trng ca 8051 hay h MSC-51. Ta c th tm tt s thc thi ca mt chng trnh khi khng c ngt v khi c ngt nh sau:

Trong : K hiu * cho bit ngt chng trnh chnh thc thi chng trnh con trong th tc phc v ngt ISR. Cn k hiu ** cho bit quay tr li chng trnh chnh thc thi tip khi kt thc chng trnh con trong ISR.T chc ngt (cc ngun ngt)B vi iu khin 8051 c 6 ngt, trong 5 ngt ngi dng c th truy cp c. l 2 ngt cho cc thit b phn cng bn ngoi INT0 v INTO1 (gi chung l ngt ngoi), 2 ngt cho cc b nh thi l TF0 v TF1, v 1 ngt dnh cho truyn thng ni tip. Ngt th 6 l ngt cng, dng RESET.B tr su ngt ca 8051 nh sau:1. RESET: Khi chn RESET c kch hot th 8051 nhy v a ch 0000. y l a ch bt li ngun.2. Hai ngt dnh cho b nh thi Timer 0 v Timer 1. a ch bng vector ngt ca hai ngt ny tng ng vi Timer 0 v Timer 1 l 000B4 v 001B4.3. Hai ngt phn cng dnh cho cc thit b bn ngoi ni ti chn 12 (P3.2) v 13 (P3.3) ca cng P3 l INT0 v INT1 tng ng. Cc ngt ngoi cng cn c gi l EX1 v EX2. V tr nh trong bng vector ngt ca hai ngt INT0 v INT1 ny l 0003H v 0013H .4. Truyn thng ni tip c mt ngt cho c thu ln pht. a ch ca ngt ny trong bng vector ngt l 0023H.

Ngta ch ROM (hexa)Dung lng c th cho IRSChn

RESET00003 bit(0000H n 0002H)9

Ngt phn cng ngoi 0 (INT0)00031 Byte(0003H n 000AH)12 (P3.2)

Ngt b Timer 0 (TF0)000B1 Byte(000BH n 0012H)

Ngt phn cng ngoi 1 (INT1)00131 Byte(0013H n 001AH)13 (P3.3)

Ngt b Timer 1 (TF1)001B1 Byte(001BH n 0022H)

Ngt truyn thng (COM) ni tip (RI v TI)00231 Byte(0023H n 0029H)

Bng Vector ngtNu trnh phc v ngt ISR ca mt ngt ngn va trong khng gian nh c th trnh c t trong bng vector ngt, cn nu khng va th bng vector ngt s c t lnh LJMP tr n a ch ca ISR (xem nh ni lu a ch ca trnh con phc v ngt ISR). trng hp ny, cc byte ri cn li ca ngt s khng dng n.Trnh t thc hin ngtKhi mt ngt c kch hot, trnh t thc hin ca b vi iu khin nh sau:1. Kt thc lnh hin ti v lu a ch ca lnh k tip (PC) vo ngn xp.2. Lu li trng thi hin hnh ca tt c cc ngt vo bn trong (ngha l khng lu vo ngn xp).3. Nhy n mt v tr c nh trong b nh c gi l bng vector ngt, ni lu gi a ch ca trnh phc v ngt.4. Nhn a ch ISR t bng vector ngt ri nhy ti a ch v bt u thc hin trnh phc v ngt cho n lnh cui cng ca ISR l RETI (tr v t ngt).5. Kt thc trnh phc v ngt, b vi iu khin gp lnh RETI v tr v ni n b ngt. Trc ht, hai byte ca nh ngn xp c np vo b m chng trnh PC, tip theo, b vi iu khin bt u thc hin lnh ti a ch .Lu vai tr quan trng ca ngn xp bc 5. V l do ny m chng ta cn phi cn thn khi thao tc vi ngn xp khi lu a ch ca ISR. Khng ring g i vi ISR, m i vi bt k chng trnh con no c gi, s ln y vo ngn xp (PUSH) v s ln ly ra (POP) phi bng nhauThanh ghi IE vi vic cho php ngt hoc cm ngtIE (Interrupt Enable) l thanh ghi c th nh a ch bit,chu trch nhim v vic cho php (khng che) v cm (che) cc ngt. D7 D0 EA---ET2ESET1EX1ET0EX0

BITK HIUA CH BITM T

IE.7EAAFHEA=0 khng cho php nhn ngtEA=1 cho php nhn ngt, khi ngun ngt c m hoc cm bng cch set bit hoc xa Bt cho php tng ng.

IE.6AEHD phng cho tng lai

IE.5ET2ADHCho php hoc cm ngt trn hoc thu ca Timer 2 (8952)

IE.4ESACHCho php hoc cm ngt cng ni tip

IE.3ET1ABHCho php hoc cm ngt trn ca Timer 1

IE.2EX1AAHCho php hoc cm ngt ngoi 1 ( t cng INT1)

IE.1ET0A9HCho php hoc cm ngt trn ca Timer 0

IE.0EX0A8HCho php hoc cm ngt ngoi 0 ( t cng INT0)

Nh vy cho php mt ngt ta cn: 1.Bt EA=1 (lnh: SETB IE.7) 2.M ngun ngt bng cch bt bit IE tng ng vi ngun(lnh: SETB IE.x)Khi EA=0 (lnh: CLR EA hoc khi nhn RESET) th khng c ngt no c p ng. Khi cm (che) mt ngun ngt ta xa bit tng ng ( lnh: CLR IE.x)Mc u tin ngt ca 8051:Ngi lp trnh c th thit lp vic ngt no c chn da vo thanh ghi IP (Interrupt Priority) l thanh ghi nh a ch bit. D7 D0------PT2PSPT1PX1PT0PX0

BitTnM t

IP.7---D tr

IP.6---D tr

IP.5PT2Bit u tin ngt Timer 2 (8052)

IP.4PSBit u tin ngt truyn thng ni tip

IP.3PT1Bit u tin ngt Timer 1

IP.2PX1Bit u tin ngt ngoi 1

IP.1PT0Bit u tin ngt Timer 0

IP.0PX0Bit u tin ngt ngoi 0

Bit u tin = 1 l mc u tin cao. Bit u tin = 0 l mc u tin thp.Nu cc ngt c cng mc th mc nh b vi iu khin s chn ngt theo th t bng sau ( trn cao hn di)Mc u tin t cao xung thp

Ngt ngoi 0 INT0

Ngt b nh thi 0 TF0

Ngt ngoi 1 INT0

Ngt b nh thi 1 TF0

Ngt truyn thng ni tip (TI +RI)

Nu B vi iu khin ang phc v mt ngt m c mt ngt mc cao hn yu cu th s xy ra ngt cho b vi iu khin phc v cho mc cao hn, nhng vi mc thp hn th khng.Ngi lp trnh hon ton c th to ra ngt bng cch bt bit to ngt, v d nh dng lnh SETB TF0

Lp trnh ngt t cc ngun:1. Ngt trn Timer 0 v Timer 1Ngt trn Timer x l vic khi ng b Timer x (lnh SETB TRx) khi c trn TFx ca b Timer x bt ln (TFx=1) th 8051 ngng ngay mi cng vic ang thc hin v nhy n bng vector ngt chy trnh phc v ngt (ISR) t bng vertor ngt.

Trong ngt trn Timer x th i vi thanh ghi IE th bit IE.7 (EA) phi c bt.Khi nu chn ngt trn Timer 0 th bit IE.1 (ET0) phi bt, cn chn ngt trn Timer 1 th bt IE.3 (ET1) phi c bt.

2 Ngt phn cng ngoiB vi iu khin 8051 c hai ngt phn cng bn ngoi l chn 12 (P3.2 hay INT0)) v chn 13 (P3.3 hay INT1) dng cho ngt INTO v INT1. Khi kch hot nhng chn ny th 8051 ngng ngay mi cng vic ang thc hin v nhy n bng vector ngt chy trnh phc v ngt

C hai cch kch hot cc chn INT0 v INT1 to ngt l kch hot mc v kch hot sn. Vic thit lp chn cch kch hot no da vo thanh ghi TCON. Nu cc bt IT1 (TCON.2), IT0 (TCON.0) mc thp (0) th chn kch hot mc, ngc li cc bit IT1, IT0 mc cao (1) th chn thit lp ngt theo kch hot sn. kch hot sn th bit IE0 (TCON.1), IE1 (TCON.3) bt ln (khi c chuyn xung t cao xung thp ngun ngt ngoi) bo hiu ang c ngt b vi iu khin s khng phc v ngt no khc cho n khi cc bit chuyn xung mc thp (thc hin xong ISR).Chn P3.2 v P3.3 bnh thng c dng cho vo/ra nu cc bit INT0 v INT1 thanh ghi IE khng c kch hot. Sau khi cc ngt phn cng c kch hot th b vi iu khin thc hin ly mu chn INTn mt ln trong mt chu trnh my ly tn hiu mc thp.

a. Kch hot mcBnh thng cc chn INT0 v INT1 mc cao ging nh tt c cc chn ca cng I/O. Nu c tn hiu mc thp cp ti th tn hiu ny kch hot ngt gy ra ngt cho b vi iu khin.Nu cc chn INT0 v INT1 vn mc thp cho ti khi trnh phc v ngt ISR thc hin xong th b vi iu khin s hiu l c tn hiu kch hot mc, v th s xy ra ngt tip theo.

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 lu hn. S d nh vy v mt thc t l ngt theo mc khng c cht. Do vy, chn ngt phi c duy tr mc thp cho n khi bt u thc hin ISR

b. Kch hot sn Khi tn hiu chn P3.3 (hoc P3.2) chuyn t mc cao sang mc thp th s gy ra ngt cho b vi iu khin.i vi trng hp kch pht sn, ngun ngt ngoi phi gi mc cao ti thiu l mt chu trnh my, v sau duy tr mc thp cng ti thiu mt chu k my m bo b vi iu khin nhn bit c qu trnh chuyn sn xung t cao xung thp

3. Ngt cng ni tipNgt Port ni tip xy ra khi c 2 c ngt truyn (TI) hoc c ngt nhn (RI) c t. Ngt truyn xy ra khi bit cui cng trong SBUF truyn xong tc l lc ny thanh SBUF rng. Ngt nhn xy ra khi SBUF hon thnh vic nhn v ang i c tc l lc ny thanh ghi SBUF y. C hai c ngt ny c t bi phn cng v xa bng phn mm.

1.3.4 Lp trnh truyn thng ni tipVi iu khin 8051 s dng 2 thanh ghi chc nng c bit SBUF (a ch byte l 99H) & SCON (a ch byte l 98H) truy xut port ni tipThanh ghi SBUF l thanh ghi 8 bit: Vic ghi ln SBUF s np d liu pht, v vic c SBUF s truy xut d liu nhn c

Thanh ghi SCON l thanh ghi 8 bit cha cc bit trng thi v iu khin, thanh ny c nh a ch bit Tn s hot ng ca port ni tip hay cn gi l tc baud (baud rate) c th c nh hoc thay i.iu khin port ni tip bng thanh ghi SCONThanh ghi SCON: ---D7----------------------------------------------------------------------------------D0SM0SM1SM2RENTB8RB8TIRI

BITTNM T

0RIC ngt thuc set bi phn cng ngay sau khi kt thc vic thu 1 k t ( khi bt u bit stop mod 1); c xa bi phn mm.

1TIC ngt truync set bi phn cng ngay sau khi kt thc vic pht 1 k t (khi bt u bit stop mod 1); c xa bi phn mm.

2RB8Bit th 9 c nhn ( khng s dng rng ri RB8 = 0)

3TB8Bit th 9 c pht mod 2 v 3 (khng dng rng ri TB8= 0 )

4RENCho hoc khng cho thu. Bt nu mun thu, xa nu khng thu

5SM2Dng cho truyn thng gia cc b vi x l (truyn thng a x l, khng dng th SM2 =0)

6SM1SM1 v SM0 xc lp vic chn ch ca port ni tip.

7SM0

Cc ch ca port ni tip:

SM0SM1Mode (SMOD)M t Tc Baud

000Thanh ghi dch C nh ( = fosc/12)

011UART 8 bitThay i ( thit lp bi b nh thi)

102UART 9 bitC nh ( = fosc/32 hoc = fosc/64)

113UART 9 bitThay i ( thit lp bi b nh thi)

SMOD 1 (UART 8bit): + UART l b thu pht d liu ni tip vi mi k t d liu c ng trc bi 1 bit start v ng sau bi 1bit stop. Thnh thong 1 bit parity c chn vo. kim tra chn l.

+ C ngt pht TI c set bng 1 ngay khi bit stop xut hin trn TxD bo truyn xong byte. + Vic nhn c khi ng bi 1 chuyn trng thi t 1 xung 0 trn ng RxD (bit start). Bit start sau c b qua & 8 bit d liu sau c nhn tun t vo thanh ghi dch bit ca port ni tip. Khi c 8 bit c nhn, ta c: - Bit th 9 ( stop ) c lu vo RB8 ( SCON.2) - 8 bit data c np vo thanh ghi SBUF - Bit RI c bt ln bo kt thc vic nhn 1 byte, Ct gi byte va np vo trong thanh ghi SBUF vo b trong nh th RI phi c xa c th nhn byte tip theoTc Baud ca port ni tip:

Thng thng khi ng thanh ghi TMOD ch t ng np li 8-bit (mode 2) v t gi tr np li thchhp vo thanh ghi TH1 c tc trn ng, t to ra tc baud

Bng tham kho

C hai cch tng tc baud truyn d liu ca 8051 : 1. S dng tn s thch anh cao hn. ( khng kh thi v tn s thch anh l n nh) 2. Thay i mt bit trong thanh ghi nh a ch bit iu khin cng sut PCON (Power Control) l PCON.7. Khi PCON.7=1 th tc Baud s gp i, cn khi mi bt vi iu khin th PCON.7=0

1.4 Giao tip gia 8051 vi my tnhMy tnh truyn d liu theo hai phng php: song song v ni tip. + Truyn d liu song song thng s dng 8 hoc nhiu ng dy dn truyn d liu n thit b cch xa mt vi mt. N cho php truyn d liu vi tc cao nh dng nhiu dy dn truyn d liu ng thi, nhng khong cch truyn th b hn ch. + Phng php truyn ni tip l truyn d liu theo tng bit mt. C th truyn d liu n thit b cch xa hng trm, hng triu Km.

t chc truyn tin ni tip, trc ht byte d liu c chuyn thnh cc bit ni tip nh thanh ghi dch vo-song song-ra-n tip.Tip theo, d liu c truyn qua mt ng d liu n.Nh vy, u thu cng phi c mt thanh ghi dch vo-ni tip-ra-song song nhn d liu ni tip v sau gi chng thnh tng byte mt nh u truyn. Vic chuyn i ny do mt thit b c tn gi l b iu ch/gii iu ch Modem (Modulator/demodulator) thc hin.

Vic truyn d liu gia my pht v my thu c chia lm 3 loi: + Truyn n cng: l ch c my pht truyn d liu ti my thu, my thu khng th truyn ngc li ( khng th ng vai tr l my pht) + Bn song cng: l ti mt thi im my pht truyn d liu ti my thu theo 1 chiu duy nht (My thu c th ng vai tr l my pht) + Truyn song cng hon ton: l ti mt thi im d liu gia my pht v my thu c truyn i v truyn li.Truyn tin ni tip c hai phng php: ng b v d b (bt ng b). Phng php ng b chuyn mi ln mt khi d liu (cc k t), cn phng php d b ch truyn tng byte mt.Cc nh sn xut to ra cc IC chuyn dng phc v cho truyn d liu ni tip. Nhng IC ny dng lm cc b thu - pht d b tng hp UART (Universal Asynchronous Synchronous Receiver Transmitter). hoc cc b thu - pht ng - d b tng hp USART (Universal Synchronous- Asynchronous Receiver Transmitter). B vi iu khin 8051 c xy dng sn mt b UART.805 l c hai chn c dng chuyn cho truyn v nhn d liu ni tip. Hai chn ny l RxD v TxD (P3.0 v P3.1 tng ng). P3.0 l chn s 10 ca 8051, cn P3.1 l chn s 11. Cc chn ny tng thch vi mc logic TTL (Transistor-Transistor Logic).

2.2.2 Chun RS232RS232 l chun giao din I/O cho cc thit b truyn d liu ni tip. RS232 c 25 chn (gi l DB-25) c b tr nh sau:

cm ca RS232 loi 25 chn (DB-25S) :

Thng th cc chn ca RS232 khng dng ht tt c, chun RS232 loi 9 chn ( DB-9) c s dng. B tr chn ca n nh sau:

ChnTnM t

1DCD ( Data carrirer detect ) Tch tn hiu mang d liu

2RxD ( Received data ) D liu c nhn

3TxD ( Transmitted data ) D liu c gi

4DTR ( Data terminal ready ) u cui d liu sn sng

5GND ( Signal ground ) t ca tn hiu

6DSR ( Data set ready ) D liu sn sng

7RTS ( Request to send ) Yu cu gi

8CTS ( Clear to send ) Xa gi

9RL ( Ring indicator ) Bo chung

cm ca RS232 loi 9 chn ( DB-9S thng thy sau case ca my tnh bn):

2.2.3 Ni ghp vi iu khin 8051 vi RS232Mc in p vo ra ca RS232 khng ph hp vi mc logic TTL nn phi ni ghp 8051 vi u ni RS232 thng qua chip MAX232 ( b bin i in p) chuyn mc logic TTL sang in p ca RS232 v ngc li. Mt im mnh khc ca chip MAX232 l dng in p ngun +5v, cng vi in p ngun ca 8051.S cu trc ca MAX232 v ghp ni 8051 vi RS232 qua MAX232:

Trong MAX232 c 2 b iu khin ng truyn T1,R1 v T2, R2. Trong T1, T2 cho truyn d liu TxD v R1, R2 cho nhn d liu RxD. Nhng thng th ch dng c mt, nh T1, R1 c dng th T2, R2 s khng dng.

DB-9

RxD(2)

TxD (3)

8051

TxD (P3.1)

RxD (P3.0)

MAX232T1in T1out (11) (14)

R1out R1in(12) (13)

1.5 Kt lunThng qua vic hiu cu to, cch thc hot ng v phng php lp trnh cho 8051 hot ng. T ta a 8051 vo cc ng dng ph bin hin nay l iu khin t ng.

GVHD: NGUYN NH PHUSVTH: NGUYN NGC TOAN