Professional Documents
Culture Documents
c2-17- Cấu Trúc Vi Điều Khiển 8051
c2-17- Cấu Trúc Vi Điều Khiển 8051
1
4/12/2022
Học liệu
- Giáo trình chính: Giáo trình Kỹ thuật Vi điều khiển 8051, bộ môn Điện
tử, Khoa Điện, Trường Đại Học Sư Phạm Kỹ thuật (Giáo trình lưu hành
nội bộ).
- Sách, tài liệu tham khảo tham khảo:
1. Họ vi điều khiển 8051, Tống Văn On, NXB Khoa học Kỹ thuật, 2003.
2. Lập trình cho vi điều khiển 8051, Nguyễn Tăng Cường, NXB Giáo
dục, 2009.
3. 8051 Tutorial, http://www.hobbyprojects.com/8051_tutorial/
- Công cụ (phần mềm):
1. IDE 8051.
2. KeilC.
3. ProTues.
2
4/12/2022
U1
39 21
38 P0.0/AD0 P2.0/A8 22
37 P0.1/AD1 P2.1/A9 23
36 P0.2/AD2 P2.2/A10 24
35 P0.3/AD3 P2.3/A11 25
34 P0.4/AD4 P2.4/A12 26
33 P0.5/AD5 P2.5/A13 27
32 P0.6/AD6 P2.6/A14 28
P0.7/AD7 P2.7/A15
1 10
2 P1.0 P3.0/RXD 11
3 P1.1 P3.1/TXD 12
4 P1.2 P3.2/INT0 13
5 P1.3 P3.3/INT1 14
6 P1.4 P3.4/T0 15
7 P1.5 P3.5/T1 16
8 P1.6 P3.6/WR 17
P1.7 P3.7/RD
19 30
18 XTAL1 AL E/PROG 29
XTAL2 PSEN
31
9 EA/VPP
RST
AT89C51
3
4/12/2022
Vc
1 40
2
3
• Vcc(pin 40):
AT89C51
– Cung cấp nguồn cho chip.
31
– Vcc= +5V. 10
• GND(pin 20):ground
D1
T1 (220V-9V)
U2 LM7805
J1 - + 1 3
VIN GND VOUT
J2 = 5VDC
C1 C2
2
104
>1000uF 20 21
C1
Dao
XTAL1 động XTAL1
33pF ngoài
GND GND
4
4/12/2022
http://computeraideddesignguide.com/wp-
content/uploads/2014/05/Planetary-
gears.gif
Vcc
31
• Reset (Pin 9) + 10 uF
EA/VPP
• Mức cao phải tồn tại
tối thiểu 2 chu kỳ máy
5
4/12/2022
1 0 0 1 0 1 1 0
.7 .6 .5 .4 .3 .2 .1 .0
P 0.X
6
4/12/2022
PORT 0
• Port 0 là port có 2 chức năng ở các chân 32 – 39
của 8951.
• Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở
rộng nó có chức năng như các đường IO
• Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó
được kết hợp giữa bus địa chỉ và bus dữ liệu
40 VCC
39 P0.0/AD0
38 P0.1/AD1
37 P0.2/AD2
36 P0.3/AD3
35 P0.4/AD4
34 P0.5/AD5
33 P0.6/AD6
32 P0.7/AD7
Port 1
• Là port IO trên các chân 1-8.
• Có thể dùng cho giao tiếp với các thiết bị ngoài
nếu cần.
• Port 1 không có chức năng khác, vì vậy chúng chỉ
được dùng cho giao tiếp với các thiết bị bên ngoài.
P1.0 1 40
P1.1 2
P1.2 3
P1.3 4
P1.4 5
P1.5 6
P1.6 7
P1.7 8
7
4/12/2022
Port 2
• Port 2 là 1 port có tác dụng kép trên các chân 21
- 28
• Được dùng như các đường xuất nhập hoặc là
byte cao của bus địa chỉ đối với các thiết bị
dùng bộ nhớ mở rộng.
28 P2.7/A15
27 P2.6/A14
26 P2.5/A13
25 P2.4/A12
24 P2.3/A11
23 P2.2/A10
22 P2.1/A9
21 P2.0/A8
Port 3
• Có tác dụng kép trên các chân 10 - 17.
• Các chân của port này có nhiều chức năng, các
công dụng chuyển đổi có liên hệ với các đặc
tính đặc biệt của 8951 như ở bảng sau:
P3.0/RXT 10
Bit Tên Chức năng chuyển đổi
P3.1/TXD 11
P3.0 RXT Ngõ vào dữ liệu nối tiếp.
P3.1 TXD Ngõ xuất dữ liệu nối tiếp. P3.2/INT0 12
P3.2 INT0\ Ngõ vào ngắt cứng thứ 0.
P3.3 INT1\ Ngõ vào ngắt cứng thứ 1. P3.3/INT1 13
P3.4 T0 Ngõ vào của TIMER/COUNTER thứ 0.
P3.5 T1 Ngõ vào của TIMER/COUNTER thứ 1. P3.4/T0 14
P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
P3.5/T1 15
P3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài.
P3.6/WR 16
P3.7/RD 17
8
4/12/2022
AT89C51
2 39
3 Ram Ram
(Internal) (External)
4
5
31
30
Rom 29
(Internal) Rom
(External)
AT89C51
9
4/12/2022
10
4/12/2022
EA
P0 Dữ liệu từ
A0-A7
89C51
A15-A8
CHÂN 30
ALE IC NHỚ
A7-A0
P2 A8-A15 D7-D0
WR
WR
22
11
4/12/2022
- Vùng nhớ dữ liệu: 89C51 có khả năng quản lý vùng không gian nhớ dữ liệu lên đến
64Kb (do có 16 tín hiệu địa chỉ), được đánh địa chỉ từ (0000H-FFFFH), dùng để chứa dữ liệu.
P0 Dữ liệu từ
A0-A7
IC nhớ A15-A8
CHÂN 30
ALE IC NHỚ
A7-A0
D7-D0
P2
A8-A15
RD
RD
23
- Vùng nhớ chương trình: 89C51 có khả năng quản lý vùng không gian nhớ lên đến
64Kb (do có 16 tín hiệu địa chỉ), được đánh địa chỉ từ (0000H-FFFFH), dùng để chứa mã lệnh
(chương trình của người dùng), vùng nhớ này chỉ được sử dụng khi chân 31 của vi điều khiển
được nối mass.
P0 A0-A7 Mã lệnh
A15-A0
ALE
IC NHỚ
D7-D0
P2 A8-A15
RD
PSEN
RD
24
Chu kì đọc (mã lệnh) bộ nhớ
12
4/12/2022
8051 ROM
P2.0 A8
P2.7 A12
8051 ROM
13
4/12/2022
PSEN OE
ALE
G 74LS373 OC
P0.0 A0
D
P0.7 Address A7
D0
D7
EA 3. ROM send the
instruction back
P2.0 A8
P2.7 A12
• Kí hiệu là A.
• Có độ lớn 8-bit (1-byte).
• Thanh ghi A ở địa chỉ E0H.
• Thanh ghi tính toán chính của vi điều
khiển (sử dụng linh hoạt nhất cho các câu
lệnh).
X X X X X X X X
E0 ACC
14
4/12/2022
Thanh ghi B
• Thanh ghi tính toán phụ có độ lớn 8-bit
(1-byte)
• Thanh ghi B ở địa chỉ F0H
• Thường được dùng chung với thanh ghi A
trong các phép toán nhân, chia.
• Các bit được định địa chỉ của thanh ghi B
từ F0H đến F7H.
X X X X X X X X
F0 B
Thanh ghi Rn
• Có 8 thanh ghi Rn:
R0; R1; R2; R3; R4; R5; R6; R7.
• Thanh ghi Rn ở địa chỉ 00 đến 07.
• Có độ lớn 8-bit (1-byte).
Bank 0 Bank 1 Bank 2 Bank 3
7 R7 F R7 17 R7 1F R7
6 R6 E R6 16 R6 1E R6
5 R5 D R5 15 R5 1D R5
4 R4 C R4 14 R4 1C R4
3 R3 B R3 13 R3 1B R3
2 R2 A R2 12 R2 1A R2
1 R1 9 R1 11 R1 19 R1
0 R0 8 R0 10 R0 18 R0
15
4/12/2022
Thanh ghi PC
• Bộ đếm Chương trình (Program Counter)
có độ rộng 2-byte
• Khi 8051 khởi động, PC chứa luôn bắt đầu
từ giá trị 0000 và được tăng lên mỗi khi
một lệnh được thực hiện.
• Chức địa chỉ câu lệnh thực thi ở chu kỳ
tiếp theo (cho biết 8051 nơi lệnh tiếp theo
để thực hiện được tìm thấy trong bộ nhớ).
16
4/12/2022
.7 .6 .5 .4 .3 .2 .1 .0
P 0.X
TB1
Read pin
8051 IC
17
4/12/2022
1 1 P1.X pin
Internal CPU D Q
bus
P1.X
0 M1
Write to latch Clk Q
TB1
Read pin
1 1 P1.X pin
Internal CPU D Q
bus
P1.X
0 M1
Write to latch Clk Q
TB1
Read pin
3. Read pin=1 Read
latch=0 Write to latch=1
18
4/12/2022
Vcc
8xR
10 K
P0.0
8051 P0.1
Port
P0.2
P0.3
P0.4 0
P0.5
P0.6
P0.7
19