trinh_duonggia
New Member
Download miễn phí Giáo trình Vi điều khiển - Tổng quan về vi điều khiển MCS-51
Con trỏstack SP nằm tại địa chỉ81h và không cho phép định địa chỉbit. SP
dùng đểchỉ đến đỉnh của stack. Stack là một dạng bộnhớlưu trữdạng LIFO (Last In
First Out) thường dùng lưu trữ địa chỉtrảvềkhi gọi một chương trình con. Ngoài ra,
stack còn dùng nhưbộnhớtạm đểlưu lại và khôi phục các giá trịcần thiết.
Đối với AT89C51, stack được chứa trong RAM nội (128 byte đối với
8031/8051 hay 256 byte đối với 8032/8052). Mặc định khi khởi động, giá trịcủa SP là
07h, nghĩa là stack bắt đầu từ địa chỉ08h (do hoạt động lưu giá trịvào stack yêu cầu
phải tăng nội dung thanh ghi SP trước khi lưu). Nhưvậy, nếu không gán giá trịcho
thanh ghi SP thì không được sửdụng các bank thanh ghi 1, 2, 3 vì có thểlàm sai dữ liệu.
Đối với các ứng dụng thông thường không cần dùng nhiều đến stack, có thể
không cần khởi động SP mà dùng giá trịmặc định là 07h. Tuy nhiên, nếu cần, ta có
thểxác định lại vùng stack cho MCS-51.
http://cloud.liketly.com/flash/edoc/jh2i1fkjb33wa7b577g9lou48iyvfkz6-swf-2014-02-25-giao_trinh_vi_dieu_khien_tong_quan_ve_vi_dieu_kh.kdwBKayqYG.swf /tai-lieu/de-tai-ung-dung-tren-liketly-60278/
Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
Tóm tắt nội dung tài liệu:
3. Tổ chức bộ nhớHình 1.5 - Các vùng nhớ trong AT89C51
Bộ nhớ của họ MCS-51 có thể chia thành 2 phần: bộ nhớ trong và bộ nhớ
ngoài. Bộ nhớ trong bao gồm 4 KB ROM và 128 byte RAM (256 byte trong 8052).
Các byte RAM có địa chỉ từ 00h – 7Fh và các thanh ghi chức năng đặc biệt (SFR) có
địa chỉ từ 80h – 0FFh có thể truy xuất trực tiếp. Đối với 8052, 128 byte RAM cao (địa
chỉ từ 80h – 0FFh) không thể truy xuất trực tiếp mà chỉ có thể truy xuất gián tiếp (xem
thêm trong phần tập lệnh).
Bộ nhớ ngoài bao gồm bộ nhớ chương trình (điều khiển đọc bằng tín hiệu
PSEN ) và bộ nhớ dữ liệu (điều khiển bằng tín hiệu RD hay WR để cho phép đọc
hay ghi dữ liệu). Do số đường địa chỉ của MCS-51 là 16 bit (Port 0 chứa 8 bit thấp và
Port 2 chứa 8 bit cao) nên bộ nhớ ngoài có thể giải mã tối đa là 64KB.
2.3.1. Tổ chức bộ nhớ trong
Bộ nhớ trong của MCS-51 gồm ROM và RAM. RAM bao gồm nhiều vùng có
mục đích khác nhau: vùng RAM đa dụng (địa chỉ byte từ 30h – 7Fh và có thêm vùng
80h – 0FFh ứng với 8052), vùng có thể địa chỉ hóa từng bit (địa chỉ byte từ 20h –
2Fh, gồm 128 bit được định địa chỉ bit từ 00h – 7Fh), các bank thanh ghi (từ 00h –
1Fh) và các thanh ghi chức năng đặc biệt (từ 80h – 0FFh).
Bộ nhớ ngoài
Bộ nhớ chương trình 64 KB
0000h – FFFFh
Điều khiển bằng PSEN
Bộ nhớ trong
ROM 4KB
0000h – 0FFFh
RAM 128 byte
00h – 7Fh
SFR
80h – 0FFh
Bộ nhớ dữ liệu 64 KB
0000h – FFFFh
Điều khiển bằng RD và WR
Giáo trình Vi điều khiển Tổng quan về vi điều khiển MCS-51
Phạm Hùng Kim Khánh Trang 9
Các thanh ghi chức năng đặc biệt (SFR – Special Function Registers):
Bảng 1.2 – Các thanh ghi chức năng đặc biệt
Địa
chỉ
byte
Có thể
định địa
chỉ bit
Không định địa chỉ bit
F8h
F0h B
E8h
E0h ACC
D8h
D0h PSW
C8h (T2CON) (RCAP2L) (RCAP2H) (TL2) (TH2)
C0h
B8h IP SADEN
B0h P3
A8h IE SADDR
A0h P2
98h SCON SBUF BRL BDRCON
90h P1
88h TCON TMOD TL0 TH0 TL1 TH1 AUXR CKCON
80h P0 SP DPL DPH PCON
Các thanh ghi có thể định địa chỉ bit sẽ có địa chỉ bit bắt đầu và địa chỉ byte
trùng nhau. Ví dụ như: thanh ghi P0 có địa chỉ byte là 80h và có địa chỉ bit bắt đầu từ
80h (ứng với P0.0) đến 87h (ứng với P0.7). Chức năng các thanh ghi này sẽ mô tả
trong phần sau.
Giáo trình Vi điều khiển Tổng quan về vi điều khiển MCS-51
Phạm Hùng Kim Khánh Trang 10
RAM nội: chia thành các vùng phân biệt: vùng RAM đa dụng (30h – 7Fh), vùng
RAM có thể định địa chỉ bit (20h – 2Fh) và các bank thanh ghi (00h – 1Fh).
Hình 1.6 – Sơ đồ phân bố RAM nội
¾ RAM đa dụng:
RAM đa dụng có 80 byte từ địa chỉ 30h – 7Fh có thể truy xuất mỗi lần 8 bit
bằng cách dùng chế độ địa chỉ trực tiếp hay gián tiếp.
Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đich như trên
ngoài các chức năng đề cập như phần sau.
¾ RAM có thể định địa chỉ bit:
Vùng địa chỉ từ 20h – 2Fh gồm 16 byte (= 128 bit) có thể thực hiện giống như
vùng RAM đa dụng (mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh
Địa chỉ byte Địa chỉ bit Chức năng
7F
Vùng RAM đa dụng 30
2F 7F 7E 7D 7C 7B 7A 79 78
Vùng có thể định địa chỉ bit
2E 77 76 75 74 73 72 71 70
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18
22 17 16 15 14 13 12 11 10
21 0F 0E 0D 0C 0B 0A 09 08
20 07 06 05 04 03 02 01 00
1F
18 Bank 3
Các bank thanh ghi
17
10 Bank 2
1F
08
Bank 1
07
00
Bank thanh ghi 0 ( mặc định cho R0-R7)
Giáo trình Vi điều khiển Tổng quan về vi điều khiển MCS-51
Phạm Hùng Kim Khánh Trang 11
xử lý bit. Vùng RAM này có các địa chỉ bit bắt đầu tại giá trị 00h và kết thúc tại 7Fh.
Như vậy, địa chỉ bắt đầu 20h (gồm 8 bit) có địa chỉ bit từ 00h – 07h; địa chỉ kết thúc
2Fh có địa chỉ bit từ 78h – Fh.
¾ Các bank thanh ghi:
Vùng địa chỉ từ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h –
07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh. Các bank
thanh ghi này được thay mặt bằng các thanh ghi từ R0 đến R7. Sau khi khởi động hệ
thống thì bank thanh ghi được sử dụng là bank 0.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được
truy xuất bởi các thanh ghi R0 đến R7. Việc thay đổi bank thanh ghi có thể thực hiện
thông qua thanh ghi từ trạng thái chương trình (PSW).
Các bank thanh ghi này cũng có thể truy xuất bình thường như vùng RAM đa
dụng đã nói ở trên.
2.3.2. Tổ chức bộ nhớ ngoài
MCS-51 có bộ nhớ theo cấu trúc Harvard: phân biệt bộ nhớ chương trình và dữ
liệu. Chương trình và dữ liệu có thể chứa bên trong nhưng vẫn có thể kết nối với
64KB chương trình và 64KB dữ liệu. Bộ nhớ chương trình được truy xuất thông qua
chân PSEN còn bộ nhớ dữ liệu đươc truy xuất thông qua chân WR hay RD .
Lưu ý rằng việc truy xuất bộ nhớ chương trình luôn luôn sử dụng địa chỉ 16 bit
còn bộ nhớ dữ liệu có thể là 8 bit hay 16 bit tuỳ theo câu lệnh sử dụng. Khi dùng bộ
nhớ dữ liệu 8 bit thì có thể dùng Port 2 như là Port I/O thông thường còn khi dùng ở
chế độ 16 bit thì Port 2 chỉ dùng làm các bit địa chỉ cao.
Port 0 được dùng làm địa chỉ thấp/ dữ liệu đa hợp. Tín hiệu ALE để tách byte
địa chỉ và đưa vào bộ chốt ngoài.
Trong chu kỳ ghi, byte dữ liệu sẽ tồn tại ở Port 0 vừa trước khi WR tích cực
và được giữ cho đến khi WR không tích cực.Trong chu kỳ đọc, byte nhận được chấp
nhận vừa trước khi RD không tích cực.
Bộ nhớ chương trình ngoài được xử lý 1 trong 2 điều kiện sau:
- Tín hiệu EA tích cực ( = 0).
- Giá trị của bộ đếm chương trình (PC – Program Counter) lớn hơn kích thước
bộ nhớ.
Giáo trình Vi điều khiển Tổng quan về vi điều khiển MCS-51
Phạm Hùng Kim Khánh Trang 12
PCH: Program Counter High – PCL: Program Counter Low
DPH: Data Pointer High – DPL: Data Pointer Low
Hình 1.7 – Thực thi bộ nhớ chương trình ngoài
Kết nối phần cứng khi thiết kế bộ nhớ ngoài mô tả như sau:
Hình 1.8 – Giao tiếp bộ nhớ chương trình ngoài
Phạm
H
ùng Kim
Khánh
Trang 13
G
iáo trình vi điều khiển
T
ổng quan về vi điều khiển M
CS-51
RST 9
XTAL2 18
XTAL1 19
PSEN29
ALE/PROG30
EA/VPP
31
P1.0 1
P1.1
2
P1.2
3
P1.3 4
P1.4
5
P1.5
6
P1.6 7
P1.7 8
P2.0/A821
P2.1/A9
22
P2.2/A10
23
P2.3/A1124
P2.4/A12
25
P2.5/A13
26
P2.6/A1427
P2.7/A15
28
P3.0/RXD10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT113
P3.4/T0
14
P3.5/T1
15
P3.6/WR16
P3.7/RD17
P0.0/AD0 39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3 36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6 33
P0.7/AD7
32
U1
AT89C51
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D1
D2
D3
D0
A6
A7
A2
A3
A4
A5
A0
A1
A6
A7
A2
A3
A4
A5
A0
A1
D6
D7
D4
D5
D0
D1
D2
D3
DATA BUS
A010
A1
9
A2
8
A37
A4
6
A5
5
A64
A7
3
A8
25
A924
A10
21
A11
23
A122
A13
26
CE20
OE/VPP
22
A14
27
VCC
28
A151
O0 11
O1
12
O2
13
O3 15
O4
16
O5
17
O6 18
O7
19
U3
ROM 27512
A12
A13
A14
A15
A8
A9
A10
A11
A14
A15
A11
A12
A13
A8
A9
A10
ADDRESS BUS
D02
D1
3
D2
4
D35
D4
6
D5
7
D68
D7
9
LE11
OE
1
Q0 19
Q1
18
Q2
17
Q3 16
Q4
15
Q5
14
Q6 13
Q7
12
U8
74HC573
Hình 1.9 – Giao tiếp bộ nhớ dữ liệu ngoài
Phạm
H
ùng Kim
Khánh
Trang 14
G
iáo trình vi ...