« Home « Kết quả tìm kiếm

Các chế độ đánh địa chỉ của 8051


Tóm tắt Xem thử

- Các ch đ đánh đ a ch c a 8051 ế ộ ị ỉ ủ.
- D li u có th ể ậ ữ ệ ề ữ ệ ể ở trong m t thanh ghi ho c trong b nh ho c đ ộ ặ ộ ớ ặ ượ c cho nh m t giá tr t c th i các ư ộ ị ứ ờ cách truy c p d li u khác nhau đ ậ ữ ệ ượ c g i là các ch đ đánh đ a ch .
- Ch ọ ế ộ ị ỉ ươ ng này chúng ta bàn lu n v các ch đ đánh đ a ch c a 8051 trong ph m vi m t s ví d .
- Theo thanh ghi 3.
- gián ti p qua thanh ghi 5.
- 5.1 Các ch đ đánh đ a ch t c th i và theo thanh ghi ế ộ ị ỉ ứ ờ 5.1.1 Ch đ đánh đ a ch t c th i ế ộ ị ỉ ứ ờ.
- Trong ch đ đánh đ a ch này toán h ng ngu n là m t h ng s .
- ch đ đánh đ a ch này ặ ấ ế ộ ị ỉ có th đ ể ượ c dùng đ n p thông tin vào b t kỳ thanh ghi nào k c thanh ghi con tr ể ạ ấ ể ả ỏ d li u DPTR.
- N p giá tr 25H vào thanh ghi A ạ ị MOV R4, #62 .
- N p giá tr 40 H vào thanh ghi B ạ ị MOV DPTR, #4521H .
- M c dù thanh ghi DPTR là 16 bit nó cũng có th đ ặ ể ượ c truy c p nh 2 thanh ậ ư ghi 8 bit DPH và DPL trong đó DPH là byte cao và DPL là byte th p.
- Ví d “MOV P1, #55H” là m t l nh h p l .
- ụ ộ ệ ợ ệ 5.1.2 ch đ đánh đ a ch theo thanh ghi: ế ộ ị ỉ.
- Ch đ đánh đ a ch theo thanh ghi liên quan đ n vi c s d ng các thanh ghi ế ộ ị ỉ ế ệ ử ụ đ d li u c n đ ể ữ ệ ầ ượ c thao tác các ví d v đánh đ a ch theo thanh ghi nh sau: ụ ề ị ỉ ư.
- Sao n i dung thanh ghi RO vào thanh ghi A ộ MOV R2, A .
- Sao n i dung thanh ghi A vào thanh ghi R2 ộ ADD A.
- C ng n i dung thanh ghi R5 vào thanh ghi A ộ ộ ADD A, R7 .
- C ng n i dung thanh ghi R7 vào thanh ghi A ộ ộ MOV R6, A .
- L u n i dung thanh ghi A vào thanh ghi R6 ư ộ.
- Cũng nên l u ý r ng các thanh ghi ngu n và đích ph i phù h p v kích ư ằ ồ ả ợ ề th ướ c.
- Hay nói cách khác, n u vi t “ MOV DPTR, A” s cho m t l i vì ngu n là ế ế ẽ ộ ỗ ồ thanh ghi 8 bit và đích l i là thanh ghi 16 bit.
- Đ ý r ng ta có th chuy n d li u gi a thanh ghi tích lu A và thanh ghi ể ằ ể ể ữ ệ ữ ỹ Rn (n t 0 đ n 7) nh ng vi c chuy n d li u gi a các thanh ghi Rn thì không đ ừ ế ư ệ ể ữ ệ ữ ượ c phép.
- Ví d , l nh “MOV R4, R7” là không h p l .
- Trong hai ch đ đánh đ a ch đ u tiên, các toán h ng có th ho c bên ế ộ ị ỉ ầ ạ ể ặ ở trong m t trong các thanh ghi ho c đ ộ ặ ượ c g n li n v i l nh.
- 5.2 Truy c p b nh s d ng các ch đ đánh đ a ch khác nhau.
- ậ ộ ớ ử ụ ế ộ ị ỉ 5.2.1 Ch đ đánh đ a ch tr c ti p.
- Các ngăn nh t 00 đ n 1FH đ ớ ừ ế ượ c gán cho các băng thanh ghi và ngăn x p.
- Các ngăn nh t 20H đ n 2FH đ ớ ừ ế ượ c dành cho không gian đánh đ a ch theo bit đ ị ỉ ể l u các d li u 1 bit.
- M c dù toàn b byte c a b nh RAM có th đ ặ ộ ủ ộ ớ ể ượ c truy c p b ng ch đ ậ ằ ế ộ đánh đ a ch tr c ti p, nh ng ch đ này th ị ỉ ự ế ư ế ộ ườ ng đ ượ ử ụ c s d ng nh t đ truy c p ấ ể ậ các ngăn nh RAM t 30H đ n 7FH.
- Đây là do m t th c t là các ngăn nh dành ớ ừ ế ộ ự ế ớ cho băng ghi đ ượ c truy c p b ng thanh ghi theo các tên g i c a chúng là R0 - R7 ậ ằ ọ ủ còn các ngăn nh khác c a RAM thì không có tên nh v y.
- Trong ch đ đánh đ a ớ ủ ư ậ ế ộ ị ch tr c ti p thì d li u trong m t ngăn nh RAM mà đ a ch c a nó đ ỉ ự ế ữ ệ ở ộ ớ ị ỉ ủ ượ c bi t ế và đ a ch này đ ị ỉ ượ c cho nh là m t ph n c a l nh.
- Khác v i ch đ đánh đ a ch ư ộ ầ ủ ệ ớ ế ộ ị ỉ t c thì mà toán h ng t nó đ ứ ạ ự ượ c c p v i l nh.
- ch đ đánh đ a ch .
- L u n i dung thanh ghi A vào ngăn nh 56H c a RAM ư ộ ớ ủ MOV R4, 7FH .
- Nh đã nói tr ư ở ướ c thì các ngăn nh tr 0 đ n 7 c a RAM đ ớ ừ ế ủ ượ c c p cho ấ b ng 0 c a các thanh ghi R0 - R7.
- Các thanh ghi này có th đ ằ ủ ể ượ c truy c p theo 2 ậ cách nh sau: ư.
- Hai l nh này gi ng nhau đ u sao n i dung thanh ghi R4 vào A ệ ố ề ộ MOV A, R4.
- Hai l nh này đ u nh nhau là sao n i dung R7 vào thanh ghi A ệ ề ư ộ MOV A,R7.
- Sao n i dung thanh ghi R2 vào A ộ MOV B, 2 .
- Sao n i dung thanh ghi R2 vào B ộ.
- Sao n i dung thanh ghi R7 vì l nh “MOV R7, R2” là không h p ộ ệ ợ l .
- 5.2.2 các thanh ghi SFSR và các đ a ch c a chúng.
- Trong các thanh ghi đ ượ c nói đ n t tr ế ừ ướ c đ n gi ta th y r ng các thanh ế ờ ấ ằ ghi R0 - R7 là m t ph n trong 128 byte c a b nh RAM.
- V y còn các thanh ghi A, ộ ầ ủ ộ ớ ậ B, PSW và DPTR là m t b ph n c a nhóm các thanh ghi nhìn chung đ ộ ộ ậ ủ ượ c g i là ọ các thanh ghi đ c bi t SFR (Special Funtion Register).
- Có r t nhi u thanh ghi v i ặ ệ ấ ề ớ ch c năng đ c bi t và chúng đ ứ ặ ệ ượ ử ụ c s d ng r t r ng rãi mà ta s trình bày các ấ ộ ẽ ở ch ươ ng sáu.
- Các thanh ghi FR có th đ ể ượ c truy c p theo tên c a chúng (mà d h n ậ ủ ễ ơ r t nhi u) ho c theo các đ a ch c a chúng.
- Ví d đ a ch c a thanh ghi A là EOH ấ ề ặ ị ỉ ủ ụ ị ỉ ủ và thanh ghi B là FOH nh cho trong b ng 5.1.
- N p 55H vào thanh ghi A(A=55H) ạ MOV A, #55H.
- N p 2SH vào thanh ghi B ( B = 25) ạ.
- Sao n i dung thanh ghi R2 vào A ộ.
- Sao n i dung thanh ghi R0 vào B ộ.
- B ng 5.l d ả ướ i đây li t kê các thanh ghi ch c năng đ c bi t SFR c a 8051 và ệ ứ ặ ệ ủ các đ a ch c a chúng.
- Các thanh ghi SFR có đ a ch nàm gi a 80H và FFH các đ a ch này trên 80H, ị ỉ ữ ị ỉ ở vì các đ a ch t 00 đ n 7FH là đ a ch c a b nh RAM bên trong 8051.
- B ng 5.1: ả Các đ a ch c a thanh ghi ch c năng đ c bi t SFR ị ỉ ủ ứ ặ ệ.
- ACC* Thanh ghi tích lu (thanh ghi t ng ) A ỹ ổ 0E0H.
- B* Thanh ghi B 0F0H.
- TMOD Đi u khi n ch đ b đ m/ B đ nh th i ề ể ế ộ ộ ế ộ ị ờ 89H TCON* Đi u khi n b đ m/ B đ nh th i ề ể ộ ế ộ ị ờ 88H T2CON* Đi u khi n b đ m/ B đ nh th i 2 ề ể ộ ế ộ ị ờ 0C8H T2MOD Đi u khi n ch đ b đ m/ B đ nh th i 2 ề ể ế ộ ộ ế ộ ị ờ 0C9H TH0 Byte cao c a b đ m/ B đ nh th i 0 ủ ộ ế ộ ị ờ 8CH TL0 Byte th p c a b đ m/ B đ nh th i 0 ấ ủ ộ ế ộ ị ờ 8AH TH1 Byte cao c a b đ m/ B đ nh th i 1 ủ ộ ế ộ ị ờ 8DH TL1 Byte th p c a b đ m/ B đ nh th i 1 ấ ủ ộ ế ộ ị ờ 8BH TH2 Byte cao c a b đ m/ B đ nh th i 2 ủ ộ ế ộ ị ờ 0CDH TL2 Byte th p c a b đ m/ B đ nh th i 2 ấ ủ ộ ế ộ ị ờ 0CCH RCAP2H Byte cao c a thanh ghi b đ m/ B đ nh th i 2 ủ ộ ế ộ ị ờ 0CBH RCAP2L Byte th p c a thanh ghi b đ m/ B đ nh th i 2 ấ ủ ộ ế ộ ị ờ 0CAH.
- *Các thanh ghi có th đánh đ a ch theo bit.
- Xét theo ch đ đánh đ a ch tr c ti p thì c n ph i l u ý r ng giá tr đ a ch ế ộ ị ỉ ự ế ầ ả ư ằ ị ị ỉ đ ượ c gi i h n đ n 1byte, 00 - FFH.
- Đi u này có nghĩa là vi c s d ng c a ch đ ớ ạ ế ề ệ ử ụ ủ ế ộ đánh đ a ch này b gi i h n b i vi c truy c p các v trí ngăn nh c a RAM và các ị ỉ ị ớ ạ ở ệ ậ ị ớ ủ thanh ghi v i đ a ch đ ớ ị ỉ ượ c cho bên trong 8051..
- 5.2.3 Ngăn x p và ch đ đánh đ a ch tr c ti p.
- M t công d ng chính khác c a ch đ đánh đ a ch tr c ti p là ngăn x p.
- ộ ụ ủ ế ộ ị ỉ ự ế ế Trong h 8051 ch có ch đ đánh đ a ch tr c ti p là đ ọ ỉ ế ộ ị ỉ ự ế ượ c phép đ y vào ngăn x p.
- Vi c đ y thanh ghi A vào ngăn ậ ộ ệ ư ợ ệ ệ ẩ x p ph i đ ế ả ượ c vi t d ế ướ ạ i d ng “PVAH 0E0H” v i 0E0H là đ a ch c a thanh ghi A.
- ớ ị ỉ ủ T ươ ng t nh v y đ đ y thanh ghi R3 rãnh 0 vào ngăn x p ta ph i vi t là “PVSH ự ư ậ ể ẩ ế ả ế 03”.
- Ch đ đánh đ a ch tr c ti p ph i đ ế ộ ị ỉ ự ế ả ượ c s d ng cho c l nh POP.
- “POP 04” s kéo đ nh c a ngăn x p vào thanh ghi R4 rãnh 0.
- Trình bày mã đ đ y thanh ghi R5, R6 và A vào ngăn x p và sau đó kéo ể ẩ ế chùng ng ượ c tr l i R2, R3 và B t ở ạ ươ ng ng.
- Kéo đ nh ngăn x p cho vào thanh ghi B ỉ ế.
- Kéo đ nh ngăn x p cho vào thanh ghi R2 ỉ ế.
- Kéo đ nh ngăn x p cho vào thanh ghi ỉ ế.
- 5.2.4 ch đ đánh đ a ch gián ti p thanh ghi.
- Trong ch đ này, m t thanh ghi đ ế ộ ộ ượ c s d ng nh m t con tr đ n d ử ụ ư ộ ỏ ế ữ li u.
- N u d li u bên trong CPU thì ch các thanh ghi R0 và R1 đ ệ ế ữ ệ ở ỉ ượ ử ụ c s d ng cho m c đích này.
- Hay nói cách khác các thanh ghi R2 - R7 không có th dùng đ ụ ể ượ c đ gi đ a ch c a toán h ng n m trong RAM khi s d ng ch đ đánh đ a ch này ể ữ ị ỉ ủ ạ ằ ử ụ ế ộ ị ỉ khi Ro và R1 đ ượ c dùng nh các con tr , nghĩa là khi chúng gi các đ a ch c a các ư ỏ ữ ị ỉ ủ ngăn nh RAM thì tr ớ ướ c chúng ph i đ t d u.
- Khi không có d u ấ này thì đó là l nh chuy n n i dung các thanh ghi Ro và R1 ch không ph i d li u ệ ể ộ ứ ả ữ ệ ngăn nh mà đ a ch có trong R0 và R1.
- a) Ch đ đánh đ a ch tr c ti p ế ộ ị ỉ ự ế.
- b) Ch đ đánh đ a ch gián ti p thanh ghi không dùng vòng l p ế ộ ị ỉ ế ặ c) Ch đ b có dùng vòng l p ế ộ ặ.
- 5.2.5 u đi m c a ch đ đánh đ a ch gián ti p thanh ghi.
- M t trong nh ng u đi m c a ch đ đánh đ a ch gián ti p thanh ghi là nó ộ ữ ư ể ủ ế ộ ị ỉ ế làm cho vi c truy c p d li u năng đ ng h n so v i ch đ đánh đ a ch tr c ti p.
- ch có th khi s d ng ch đ đánh đ a ch gián ti p qua thanh ghi.
- Vòng l p là ỉ ể ử ụ ế ộ ị ỉ ế ặ không th trong ch đ đánh đ a ch tr c ti p.
- Đây là s khác nhau ch y u gi a ể ế ộ ị ỉ ự ế ự ủ ế ữ đánh đ a ch tr c ti p và gián ti p.
- M t ví d v cách s d ng c R0 và R1 trong ch đ đánh đ a ch gián ti p ộ ụ ề ử ụ ả ế ộ ị ỉ ế thanh ghi khi truy n kh i đ ề ố ượ c cho trong ví d 5.5.
- 5.2.6 H n ch c a ch đ đánh đ a ch gián ti p thanh ghi trong 8051.
- Nh đã nói ph n tr ư ở ầ ướ ằ c r ng R0 và R1 là các thanh ghi duy nh t có th ấ ể đ ượ c dùng đ làm các con tr trong ch đ đánh đ a ch gián ti p thanh ghi.
- Vì R0 ể ỏ ế ộ ị ỉ ế và R1 là các thanh ghi 8 bit, nên vi c s d ng c a chúng b h n ch vi c truy c p ệ ử ụ ủ ị ạ ế ở ệ ậ m i thông tin trong các ngăn nh RAM bên trong (các ngăn nh t 30H đ n 7FH và ọ ớ ớ ừ ế các thanh ghi SFR).
- Ho c là truy c p b ặ ệ ủ ặ ậ ộ nh RAM ngoài ho c ROM trên chíp thì ta c n s d ng thanh ghi 16 bit đó là ớ ặ ầ ử ụ DPTR.
- 5.2.7 Ch đ đánh đ a ch theo ch s và truy c p b nh ROM trên ế ộ ị ỉ ỉ ố ậ ộ ớ chíp..
- Ch đ đánh đ a ch theo ch s đ ế ộ ị ỉ ỉ ố ượ ử ụ c s d ng r ng rãi trongvi c truy c p ộ ệ ậ các phân t d li u c a b ng trong không gian ROM ch ử ữ ệ ủ ả ươ ng trình c a 8051.
- Thanh ghi 16 bit DPTR là ụ thanh ghi A đ ượ c dùng đ t o ra đ a ch c a phân t d li u đ ể ạ ị ỉ ủ ử ữ ệ ượ ư c l u c t trong ấ ROM trên chíp.
- Trong l nh này thì n i dung c a A đ ủ ở ố ệ ỉ ệ ệ ộ ủ ượ c b xung vào thanh ghi 16 bit DPTR đ t o ra đ a ch 16 bit c a d li u c n thi t.
- Xoá thanh ghi A (A = 0).
- Xoá thanh ghi A.
- Thanh ghi A ch a giá tr 55H là giá tr mà ASC c a ký t “U”.
- Xoá thanh ghi A(A=0).
- 5.2.8 B ng x p x p và s d ng ch đ đánh đ a ch theo ch s .
- L u ý b ng l nh đ u tiên có th thay b ng “MOV DPTR, #XSQR - ư ả ệ ầ ể ằ TABLE”..
- M t thanh ghi khác n a đ ộ ữ ượ c dùng trong ch đ đánh đ a ch theo ch s là ế ộ ị ỉ ỉ ố b đ m ch ộ ế ươ ng trình (AppendixA)..
- Ví d l nh “ADD A, @R0” s c ng n i dung ngăn nh ế ộ ị ỉ ụ ệ ẽ ộ ộ ớ cho RO ch đ n vào n i dung c a thanh ghi A

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt