Tổ chức bộ nhớ_chương 3
Truy xuất tự do 80 bytes này theo kiểu định địa chỉ trực tiếp hay gián tiếp
MOV A,5FH
Hay như:
MOV R0,#5FH
MOV A,@R0
Truy xuất các bit riêng rẽ là 1 đặc trưng của VĐK. Các bit có thể được set, xóa, AND, OR … chỉ bằng 1 lệnh so với 1 chuỗi lệnh của VXL
1. Giới thiệu
2. Sơ đồ khối và chân
3. Tổ chức bộ nhớ (Memory Organization)
4. Các thanh ghi chức năng đặc biệt (SFR)
5. Dao động và hoạt động reset
6. Tập lệnh
7. Các mode định địa chỉ
8. Lập trình IO
9. Tạo trễ
10.Lập trình Timer/Counter
11.Giao tiếp nối tiếp
12.Lập trình ngắt
13.Lập trình hợp ngữ
1
3-1. Không gian bộ nhớ ROM nội
0000H 0000H 0000H
4k
8k
0FFFH
32k
1FFFH
8751
AT89C51
8752
AT89C52 7FFFH
DS5000-32
Atmel Corporation Dallas Semiconductor
2
3-2. Không gian bộ nhớ RAM nội
7F 7E 7D7C 7B 7A79 78 2F
Byte address
… 2E
7FH
RAM đa mục
đích
30H
2FH
RAM định địa
chỉ bit
20H
1FH
18H
Bank 3
17H …
10H Bank 2 1F 1E 1D1C 1B 1A19 18
0FH
Bank 1 (Stack) 17 16 15 14 13 12 11 10
08H
07H R7 0F 0E 0D0C 0B 0A09 08
Default Register R6 07 06 05 04 03 02 01 00 20
00H Bank for R0-R7 R5
R4 Bit address
R3
R2
3
R1
R0
3-2-1. Vùng RAM đa mục đích
• Truy xuất tự do 80 bytes này theo kiểu định địa chỉ trực tiếp
hay gián tiếp
• MOV A,5FH
Hay như:
MOV R0,#5FH
MOV A,@R0
4
3-2-2. Vùng RAM định địa chỉ bit
• Truy xuất các bit riêng rẽ là 1 đặc trưng của VĐK. Các bit có
thể được set, xóa, AND, OR … chỉ bằng 1 lệnh so với 1 chuỗi
lệnh của VXL
• Các port cũng được định địa chỉ bit
• Vd: để set bit 7FH bằng 1, ta viết:
VĐK:
SETB 7FH
VXL:
MOV A,2FH ; đọc cả byte
ORL A,#10000000B ; set bit
MOV 2FH,A ; ghi trở lại cả byte
5
3-2-3. Các dãy thanh ghi (register banks)
• Các lệnh dùng thanh ghi là những lệnh ngắn & thực hiện
nhanh hơn
– MOV A,R5 ; 1 byte
– MOV A,05H ; 2 bytes
• Các dữ liệu thường dùng nên chứa ở các thanh ghi
• Ý tưởng các dãy thanh ghi cho phép chuyển đổi ngữ cảnh
nhanh và hiệu quả ở các module độc lập nhau của phần mềm
6
3-2-4. Ngăn xếp
• Thanh ghi dùng truy 7FH
cập ngăn xếp gọi là
Scratch pad RAM
SP (stack pointer)
• SP là thanh ghi 8 bit: 30H
giá trị từ 00 FFH. 2FH
Bit-Addressable RAM
• Khi được cấp nguồn 20H
hay sau khi reset, 1FH
18H
Register Bank 3
SP=07H 17H
Register Bank 2
10H
0FH (Stack) Register Bank 1
08H
07H
Register Bank 0
00H
7
VD: MOV R6,#25H
MOV R1,#12H
MOV R4,#0F3H
PUSH 6
PUSH 1
PUSH 4
0BH 0BH 0BH 0BH
0AH 0AH 0AH 0AH F3
09H 09H 09H 12 09H 12
08H 08H 25 08H 25 08H 25
Start SP=07H SP=08H SP=09H SP=0AH
8
Hai đặc tính cần lưu ý
1. Các thanh ghi và các port I/O được định địa chỉ
theo kiểu ánh xạ bộ nhớ (memory mapped) & do đó
được truy xuất như 1 vị trí nhớ trong bộ nhớ
2. Stack là trên RAM nội thay vì trên RAM ngoài như
đối với các bộ VXL
9