1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

II.7 Các chế độ địa chỉ trong 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (489.56 KB, 63 trang )


ỏn tt nghip

Kiu nh a ch trc tip c s dng truy xut cỏc bin nh hoc cỏc

thanh ghi trờn chip. Một byte c thờm vo theo opcoede dựng xỏc nh a

ch.



Direct Addressing

Opcode



Trong ch ny toỏn hng cha a ch cao ca ụ nh, a ch cao ca ụ

nh c xỏc nh bi 8 bit cũn a ch toỏn hng kia l thanh ghi.

Vớ dụ:



ADD



A,7FH



Cõu lnh ny thc hin cng ni dung ti ụ nh 7FH vi ni dung thanh

cha A, kt qu chuyn vo thanh cha A.

2.7.2 Ch a ch giỏn tip (Indirect Addressing).

Trong ch ny thỡ cỏc thanh ghi R0 v R1 cú th hot ng nh l cỏc

con tr v ni dung ca chỳng ch ra trong a ch RAM, ni m d liu c

c hay c ghi. Bit cú ý ngha thp nht ca opcode xỏc nh thanh ghi no

Opcode



i



(R0 hay R1) c s dng lm con trỏ.

Ch a ch ny dựng c vi RAM trong v RAM ngoi. Trong ch

ny mt toỏn hng l mt thanh ghi c s dng cha a ch ca ụ nh cũn

toỏn hng kia l thanh ghi. Nu a ch ca ụ nh l 8 bit ta cú th dựng cỏc

thanh ghi R0 ữ R7 ca cỏc bank hoc l Stack Pointer. Nu a ch l 16 bit ta cú

th dựng thanh ghi DPTR.

Vớ d:



ADD



A,@R0



Cõu lnh ny thc hin cng ni dung ụ nh cú a ch t trong thanh ghi

R0 vi ni dung thanh cha A, kt qu chuyn vo thanh cha A.

2.7.3 Ch a ch thanh ghi (Register Addressing).

Cỏc lnh s dng kiu nh a ch thanh ghi c mó húa bng cỏch dựng

3 bit thp nht ca opcode ch ra một thanh ghi bờn trong khụng gian a ch

Trng i Hc Bỏch Khoa H Ni

Opcode



n



n



n



trang 34



ỏn tt nghip

logic ny. mt m chc nng v a ch ca mt toỏn hng cú th c hỡnh

thnh thnh mt lnh ngn.

Trong ch ny toỏn hng ngun hoc toỏn hng ớch cú th l mt

trong 8 thanh ghi ca Bank thanh ghi ó chn.

Vớ dụ:

MOV



R0,B



MOV



A,R7



Mt vi lnh dựng c th cho 1 thanh ghi no ú nh thanh ghi A, DPTR....

khụng cn cỏc bit a ch. Bn thõn ca opcode ca lnh ó ch ra thanh ghi cn

thit. Cỏc lnh c bit liờn quan n thanh ghi ny tham chiu n thanh cha

bng ký hiu A , con tr d liu DPTR, b m chng trỡnh PC, c nh

C



2.7.4 Ch a ch tc thi (Immediate Addressing).

Khi toỏn hng ngun l mt hng s thay vỡ mt bin, hng s cú th a

vo lnh v õy l byte d liu tc thi

S nh a ch tc thi c tng trng bi ký hiu # c ng trc

mt hng s, 1 bin hoc mt biu thc s hc c s dng bi cỏc hng, cỏc

ký hiu v cỏc toỏn t. Trỡnh biờn dch tớnh toỏn giỏ tr v thay th d liu tc



Opcode



Immediate Data



thi. Byte lnh thờm vo cha tr s d liu tc thi nh sau:

Vớ dụ:

MOV



A,#100



; np vo thanh cha A số 100 c s 10



MOV



A,#10H



; np vo thanh cha A số 10 c s 10



Trng i Hc Bỏch Khoa H Ni



trang 35



ỏn tt nghip

2.7.5 Ch a ch thanh ghi ch s (Register Addressing).

Ch ny ch yu dựng tra bng. trong ch ny thỡ a ch ngun

v a ch ớch c tớnh bng cỏch cng giỏ tr trong ACC vi a ch c s.

a ch c s cú th l DPTR ( Data Pointer ) hoc l PC (Program Counter ).



Base Register



Offset



PC (or PDTR)



ACC



Effective Address



Vớ dụ :

MOV



DPTR,#8100H



MOV



A,#0



MOV



A,@A+DPTR



II.8 Timer/counter

Bộ vi iu khin 8051 cú 2 Timer/Counter 16 bit, c 2 timer ny cú th

hot ng nh Timer hay Counter. Khi hot ng nh Timer thỡ giỏ tr ca nú li

tng lờn 1 sau mi chu k mỏy. Khi hot ng nh Counter thỡ giỏ tr ca nú tng

lờn 1 tng ng vi s xut hin sn sung ti cỏc chõn T0, T1. Mi

Timer/Counter ny li cú 4 ch lm vic. Vic khi to hot ng cho cỏc

Timer/Counter ny phi da trờn 2 thanh ghi TMOD v TCON.

a. Thanh ghi TMOD ( Timer/Counter Mode Control Register)

7

6

5

4

3

2

1

0

GATEC/TM1M0GATEC/TM1M0

Timer 1



Timer 0



GATE : l bit iu khin cng. Khi bit TRx trong TCON c set bng 1

v chõn GATE = 1 thỡ b nh thi/m ch hot ng khi chõn

INTx mc cao(iu khin phn cng). Khi GATE = 0 thỡ b nh

thi/m ch hot ng khi TRx =1(iu khin mm).

Trng i Hc Bỏch Khoa H Ni



trang 36



ỏn tt nghip

C/T: bớt chn chc nng m hay nh thi cho b m/nh thi. Khi

C/T=0 thỡ hot ng nh thi, khi C/T = 1 thỡ hot ng m.

M1: bit chn ch ( xem bng di)

M0: bit chn ch ( xem bng di)

M1 M0

0

0

0

1

1

0

1



1



0

1

2

3



Ch la chn

B nh thi 13 bit

B nh thi/m 16 bit

B nh thi/m 8 bit t ng np li

Timer 0 hot ng nh 2 bộ timer 8 bit riờng bit

Timer 1 khụng hot ng.



b. Thanh ghi TCON ( Timer/Counter Control Register)

Thanh ghi ny cú tỏc dng iu khin b nh thi/m.

7

6

5

4

3

2

1

TF1

TR1 TF0

TR0

IE1

IT1

IE0



Bit7(TF1)



0

IT0



:C bỏo trn ca b nh thi 1. Nú c set bi phn cng

khi b nh thi/m b trn. Nú c xoỏ bi phn mm

hoc bi phn cng khi trỡnh phc v ngt c tr n.



Bit 6(TR1) :Bit iu khin b nh thi 1 hot ng. Nú oc set/xoỏ

bng phn mm iu khin b nh thi hot ng hoc

ngng hot ng.

Bit5 (TF0)



:C trn b nh thi 0.



Bit 4(TR0)



:Bit iu khin b nh thi 0 hot ng



Bit 3(IE1)



:C ngt ngoi 1 theo sn. Nú c t bi phn cng khi

sn xung ca ngt ngoi a vo chõn INT1 c phỏt hin

v nú c xoỏ bi phn cng khi ngt c x lý.



Bit 2(IT1)



:Bit iu khin chn loi ngt. Nú c set/xúa bng phn

mm xỏc nh ngt thuc loi tỏc ng cnh hay tỏc ng

theo mc thp.



Bit1(IE0)



:Bit c ngt ngoi tỏc ng cnh.

Trng i Hc Bỏch Khoa H Ni



trang 37



ỏn tt nghip

Bit0(IT0)



:Bit iu khin chn loi ngt



c. Cỏc ch hot ng ca Timer/Counter

+ Ch 0: ú l ch nh thi 13 bit. Byte cao ca b nh thi THx

c ghộp vúi 5 bit thp ca byte thp ca b nh thi TLx to thnh mt b

nh thi 13 bit. Tớn hiu ngt xut hin khi cú s m trn, vỡ vy nú cú th m

c ln nht l 213 hay 8192 xung nhp.

Timer

clock



TLx

(5 bit)



THx

(8 bit)



Chế độ 0



TFx



Overflow

Flag



+ Ch 1: Ch ny l ch dnh thi 16 bit. Xung clock t vo cỏc

thanh ghi nh thi cao v thp kt hp. Khi cú xung clock thỡ b nh thi s

m lờn 0000H, 0001H, 0002H. Mt trn s xut hin nu cú s trn t

FFFFH sung 0000H v nú s set c trn bng 1 v b m s tip tc m. C

trn l bit TFx trong thanh ghi iu khin nh thi TCON, bit ny c c

hoc ghi bi phn mm. Trong ch ny nú cú th m c ln nht l 2 16 =

65535 xung nhp.

Timer

clock



TLx



THx



Chế độ 1



TFx



Overflow

Flag



+ Ch 2: ú l ch t ng np li 8 bit. Byte thp ca b nh thi

hot ng nh thi 8 bit trong khi ú byte cao ca b nh thi lu gi giỏ tr

np li. Khi cú s m trn t FFh sung 00h thỡ ngoi vic c ca b nh thi

c set lờn 1 m giỏ tr trong THx cũn c np vo TLx. Vic m s tip tc

t giỏ tr ny cho n khi xy ra mt trn k tip. Ch ny rt thun tin cho

vic trn b nh thi trong mt khong thi gian xỏc nh v tun hon khi cỏc

Timer



TLx

thanh ghi TMOD v THx ó c khi ng.

clock

reload

THx

Trng i Hc Bỏch Khoa H Ni



Chế độ 0



TFx



Overflow

Flag

trang 38



ỏn tt nghip



+ Ch 3: ch 3 l ch nh thi chia x v cú hot ng khỏc

nhau cho tng b nh thi. B nh thi 0 ch 3 c chia lm 2 b nh

thi 8 bit hot ng riờng r TL0 v TH0, mi b nh thi s set cỏc c tng

ng TF0 v TF1 khi xy ra trn.

B nh thi 1 khụng hot ng ch 3 nhng cú th khi ng bng

cỏch chuyn b nh thi ny vo mt trong cỏc ch khỏc. C trn TF1 ca

b nh thi 1 khụng b nh hng bi b nh thi 1 khi xy ra trn vỡ TF1

c ni vi b nh thi 8 bit TH0.

Ch 3 ch yu cung cp thờm mt b nh thi 8 bit na. khi b nh

thi 0 ch 3, b nh thi 1 cú th hot ng bng cỏch chuyn b ny ra

khi ch 3 hoc vo ch 3.

II.9 cỏc ngun ngt

Cỏc ngun ngt c t ti a ch t 0003H ữ 0023H trong b nh

chng trỡnh. Khi cú ngt thỡ CPU s nhy ti vựng m nú phc v ngt, Nu

chng trỡnh phc v ngt nm trong khong 8 byte thỡ nú s phc v ngt ngay

trong vựng ú. Nu chng trỡnh ngt ln hn 8 byte v cỏc ngun ngt ang

phc v thỡ thỡ s nhy vt sang vựng ngt sau ú thc hin chng trỡnh

ngt. khi cú mt ngt xut hin v c CPU chp nhn, chng trỡnh chớnh b

ngt thỡ cỏc thao tỏc sau õy xy ra:

- Hon tt vic thc thi lnh hin hnh

- B m chng trỡnh PC c ct vo Stack

- Trng thỏi ngt hin hnh c lu gi li.



Trng i Hc Bỏch Khoa H Ni



trang 39



ỏn tt nghip

- B m chng trỡnh PC c np a ch vect ca trỡnh phc v ngt

ISR.

- ISR c thc thi.

Bng cỏc vect ngt:

Ngun ngt

Ngt ngoi 0

Ngt ngoi 1

Do b nh thi 1

Do b nh thi 0

Do cng ni tip



C

IE0

TF0

IE1

TF1

RI&TI



a ch

0003H

000BH

0013H

001BH

0023H



Cỏch s dng ngt:

t bớt EA ( Enable All) trong thanh ghi IE = 1

t bit tng ng vi ngt trong thanh ghi IE lờn 1

Bt u phc v ngt ti a ch tng ng vi ngt.

iu khin hot ng ca ngt ta cú 2 thanh ghi tng ng. Thanh ghi

IE iu khin cho phộp cỏc ngt hot ng. Thanh ghi IP iu khin mc u tiờn

cho cỏc ngt.

Thanh ghi IE(Interrupt Enable Register)

7

EA



6

---



5

---



4

ES



3

ET1



2

EX1



1

ET0



0

EX0



EA(IE.7): bit cho phộp cỏc ngt hot ng

EA=0: khụng cho phộp ngt no c hot ng

EA=0: cho phộp cỏc ngt c hot ng.

- - - (IE.6): khụng s dng

- - - (IE.5): khụng s dng

ES



(IE.4) : Cho phộp hay khụng cho phộp truyn nhn ni tip



ET1 (IE.3) : Cho phộp hay khụng cho phộp ngt Timer 1

EX1 (IE.2) : Cho phộp hay khụng cho phộp ngt ngoi 1.

ET0(IE.1) : Cho phộp hay khụng cho phộp ngt Timer 0.

EX1 (IE.0) : Cho phộp hay khụng cho phộp ngt ngoi 0.

Trng i Hc Bỏch Khoa H Ni



trang 40



ỏn tt nghip

Th t u tiờn cỏc ngt

iu khin hot ng ca cỏc ngt ta cú thanh ghi IE iu khin.

Thanh ghi ny dựng cho phộp cỏc ngt hot ng. t th t u tiờn ca

cỏc ngt thỡ ta s dng thanh ghi IP. Theo mc nh thỡ cỏc ngt cú mc u tiờn

t cao sung thp nh sau:

IE0

TF0

IE1

IF1

RI& TI



Mc cao nht



Mc thp

nht

Bảng : Thứ tự u tiên của ngắt

Khi khụng mun s dng theo th t u tiờn mc nh ú thỡ ta cú th t

cỏc bit tng ng trong thanh ghi IP = 1 quy nh mc u tiờn.

Thanh ghi IP ( Interrupt Register )

7

---



6

---



5

---



4

PS



3

PT1



2

PX1



1

PT0



0

PX0



- - - ( IP.7 ): Khụng s dng ( t bng 0)

- - - ( IP.6 ): Khụng s dng ( t bng 0)

- - - ( IP.5 ): Khụng s dng ( t bng 0)

PS



(IP.4) : Mc u tiờn ngt cho cng ni tip.



PT1 (IP.3) : Mc u tiờn ngt cho Timer 1

PX1 (IP.2) : Mc u tiờn ngt cho ngt ngoi 1

PT0 (IP.1) : Mc u tiờn ngt cho Timer 0

PX0 (IP.0) : Mc u tiờn ngt cho ngt ngoi 0



Trng i Hc Bỏch Khoa H Ni



trang 41



ỏn tt nghip

II.10 Giao din truyn tin ni tip

Cng ni tip cú th truyn v nhn ng thi. Nú cng l b m nhn

ngha l nú cú th nhn byte th 2 trc khi byte trc ú c c t thanh ghi

nhn. Tuy nhiờn byte th nht s b mt i nu tip tc nhn byte tip theo. C 2

thanh ghi truyn v nhn u l cỏc thanh ghi cú chc nng c bit(SBUF).

Vic ghi vo SBUF l np vo thanh ghi truyn cũn vic c d liu t SBUF l

vic nhn d liu v. Cng ni tip cú 4 ch hot ng

+ Mode 0: ch ny nú hot ng nh thanh ghi dch. D liu vo/ra

ni tip qua RxD/TxD, u ra dch theo xung ng h. 8 bit c nhn bt u

t LSB. Tc truyn baud l 1/12 tn s xung ca thch anh.

+ Mode 1: D liu vo ra ni tip qua RxD/TxD. 10 bit d liu c nhn

hoc truyn bao gm 1 bit Start ( thng l mc 0), 1 bit Stop ( thng mc 1)

v 8 bit d liu bt u t LSB. ch ny thỡ khi nhn d liu thỡ bit Stop s

c chuyn vo bit RB8 trong thanh ghi chc nng c bit.

+ Mode 2: D liu vo ra ni tip qua RxD/TxD. 11 bit d liu c

truyn hoc nhn bao gm 1 bit Start ( thng l mc 0)8 bit d liu bt u t

LSB, 1 bit Stop ( thng mc 1). Khi truyn d liu thỡ bit th 9 c chuyn

vo bit TB8 trong SCON cú th t l 1 hoc 0 hoc cng cú th l bit kim tra

chn l. Khi nhn d liu thỡ bit th 9 s c chuyn vo bit RB8 trong SCON

trong khi ú thỡ bit Stop b b qua. Tc baud cú th l 1/32 hoc 1/64 tn s

xung thch anh.

+ Mode 3: D liu vo ra ni tip qua RxD/TxD. 11 bit d liu c

truyn hoc nhn bao gm 1 bit Start ( thng l mc 0)8 bit d liu bt u t

LSB, 1 bit cho phộp lp trỡnh, 1 bit Stop ( thng mc 1). Khi truyn d liu

thỡ bit th 9 c chuyn vo bit TB8 trong SCON cú th t l 1 hoc 0 hoc

cng cú th l bit kim tra chn l ( P) trong PSW). Khi nhn d liu thỡ bit th 9

s c chuyn vo bit RB8 trong SCON trong khi ú thỡ bit Stop b b qua. Tc

baud cú th thay i c.

Trong c 4 ch hot ng trờn thỡ:

- Khi gi d liu phi c khi to v s dng SBUF nh thanh ghi ớch

Trng i Hc Bỏch Khoa H Ni



trang 42



ỏn tt nghip

- Khi nhn d liu: Mode 0 phi cú iu kin RI=0 v REN =0.

- Cỏc ch khỏc Nu bit REN = 1 thỡ bit start bt u c nhn.

Ch truyn a kờnh:

Trong ch 2 v 3 cũn c dựng cho vic truyn a kờnh, trong ch

ny thỡ bit d liu nhn c cũn bit 9 c chuyn vo RB8 sau ú l bit Stop.

Cng c lp trỡnh sao cho khi bit Stop nhn c thỡ ngt ni tip c tớch

cc khi RB8 = 1. Nột c trng l cho phộp t bit SM2 trong SCON, bng cỏch

ny cho phộp s dng ch truyn a kờnh.

Khi trm ch(MASTER) mun gi mt gúi d liu ti mt trong cỏc trm

t (SLAVE), u tiờn trm ch gi mt byte a ch xỏc nhn trm t no

chun b nhn d liu. Byte a ch ny khỏc vi byte d liu l trong byte a

ch thỡ bit th 9 bng 1 cũn trong byte d liu thỡ bit th 9 bng 0. Khi SM2 = 1

thỡ khụng cú trm t no b ngt khi ang truyn d liu, tuy nhiờn vi byte a

ch thỡ tt c u b ngt. Vỡ vy trm t lỳc no cng phi kim tra xem byte

nhn c v xem nú cú phi a ch ca mỡnh nhn c hay khụng. Nu

khụng phi a ch ca mỡnh nú vn t SM2 ng thi bỏo bn v b qua cỏc

byte d liu n. Bit SM2 khụng cú tỏc dng trong Mode 0, trong Mode 1 cú th

dựng kim tra giỏ tr ca bit Stop. Khi nhn nu SM2=1 thỡ ngt nhn s

khụng cú tỏc dng tr khi bit Stop oc nhn.

Tc Baud trong truyn ni tip

i vi Mode 0:

Tốc độ truyền : Baud rate =



1

12



lần tần số xung thạch anh



i vi Mode 2:

2 SMOD

Tốc độ truyền : Baud rate =

lần tần số xung thạch anh.

64

1

SMOD = 0: Baud rate =

lần tần số xung thạch anh.

64

1

SMOD = 0: Baud rate =

lần tần số xung thạch anh.

32



i vi Mode 1, Mode 3:

Trng i Hc Bỏch Khoa H Ni



trang 43



Xem Thêm
Tải bản đầy đủ (.pdf) (63 trang)

×