II. TRUY CẬP BỘ NHỚ SỬ DỤNG CÁC CHẾ ĐỘ ĐỊNH ĐỊACHỈ
1 Chế độ đỏnh địachỉ trực tiếp 4 02 Cỏc
Như đó núi ở trong 8051 cú 128 byte bộ nhớ RAM. Bộ nhớ RAM được gỏn cỏc địa chỉ từ 00 đến FFH và được phõn địachỉ như sau:.
• 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.
• Cỏc ngăn nhớ từ 30H đến 7FH là khụng gian để lưu dữ liệu cú kớch thước 1byte.
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 đượ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 dấu (#) là sự phõn biệt giữa hai chế độ đỏnh địa chỉ.
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:
MOV A, R4 MOVA, 4
Hai lệnh này giống nhau đều sao nội dung thanh ghi R4 vào A MOV A, 7;
MOV A,R7
Hai lệnh này đều như nhau là sao nội dung R7 vào thanh ghi A
Mặc dự sử dụng cỏc tờn R0 - R7 dễ hơn cỏc địa chỉ bộ nhớ của chỳng nhưng cỏc ngăn nhớ 30H đến 7FH của RAM khụng thể được truy cập theo bất kỳ cỏch nào khỏc là theo địa chỉ của chỳng vỡ chỳng khụng cú tờn.
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ững cặp lệnh cú cựng ý nghĩa dưới đõy:
MOV 0E0H, #55H ; Nạp 55H vào thanh ghi A(A=55H) MOV A, #55H ;
MOV 0F0H, #25H ; Nạp 25H vào thanh ghi B ( B = 25)
MOV 3, #25H ;
Bảng 3.1 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ần phải lưu ý đến hai điểm sau về cỏc địa chỉ của SFR:
• 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.
• khụng phải tất cả mọi địa chỉ từ 80H đến FFH đều do SFH sử dụng, nhưng vị trớ ngăn nhớ từ 80H đến FFH chưa dựnglà để dữ trữ và lập trỡnh viờn 8051 cũng khụng được sử dụng.
Lệnh Tờn Địa chỉ
ACC Thanh ghi tớch luỹ (thanh ghi tổng ) A 0E0H
PSW Từ trạng thỏi chương trỡnh 0D0H
SP Con trỏ ngăn xếp 81H
DPTR Con trỏ dữ liệu hai byte
DPL Byte thấp của DPTR 82H
DPH Byte cao của DPTR 83H
P0 Cổng 0 80H
P1 Cổng 1 90H
P2 Cổng 2 0A0H
P3 Cổng 3 0B0H
IP Điều khiển ưu tiờn ngắt 0B8H
IE Điều khiển cho phộp ngắt A08H
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
SCON Điều khiển nối tiếp 98H
SBUF Bộ đệm dữ liệu nối tiếp 99H
PCON Điều khiển cụng suất 87H
Bảng 3.1 Cỏc địa chỉ của thanh ghi chức năng đặc biệt SFR
*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.