1
BµI gi¶ng
kü thuËt Vi xö
lý
GV: NguyÔn ThÕ Cêng
2
Ch¬ng 1
CÊu tróc hä vi ®iÒu
khiÓn 8051
3
MCS-51 là họ vi điều khiển do hãng intel sn xuất.
Các IC tiêu biểu cho họ là 8051 và 8031. Các sản phẩn
MCS-51 thích hợp cho nhưng ứng dụng điều khiển. Việc
xử lý byte và các toán số học ở cấu trúc dữ liệu nhỏ được
thực hiện dễ dàng nhờ vào kiểu định địa chỉ nhanh dùng
để tuy xuất trên RAM nội. Tập lệnh cung cấp một bảng
tiện dụng của những lệnh số học 8 bit bao gồm tất cả các
lệnh nhân và lệnh chia. Hỗ trợ mở rộng trên chíp dùng
cho những biến một bit như là kiểu dữ liệu riêng biệt cho
phép quản lý và kiểm tra bit trực tiếp trong điều khiển và
những hệ thống logic đòi hỏi xử lý bit.
1. Giới thiệu họ MCS-51
4
2. Giíi thiÖu cÊu tróc phÇn cøng
hä MCS-51 (8051):
33 AD6
P0.6
26 A13
P2.5
T1
14
15
P3.5
20
RXD
10
P3.0
INT0/
INT1/
T0
TXD
12
P3.2
P3.3
11
P3.1
13
P3.4
21 A8P2.0
Vss
P2.2
P2.3
P2.1
P2.4
23 A10
24 A11
22 A9
25 A12
6
7
P1.5
P1.6
ALE
30
RST
RD/
WR/
17
P3.7
16
P3.6
AE/
31
9
2P1.1
P2.7
P2.6
P1.0
28 A15
27 A14
1
8051
P1.3
P1.2
P1.4
4
3
5
XTAL.2
30pF
29
PSEN/
12MHz
18
38 AD1P0.1
P1.7
P0.0
8
39 AD0
P0.3
P0.4
P0.2
P0.5
36 AD3
35 AD4
37 AD2
34 AD5
30pF
19
XTAL.1
P0.7
Vcc
32 AD7
40
S¬ ®å ch©n cña vi ®IÒu khiÓn 8051
6
2. Giíi thiÖu cÊu tróc phÇn cøng
hä MCS-51 (8051)
RST
AE/
OSILLATOR
CPU
BUS
CONTROL
TXD
Address/data
P3P0
P2
P1
RXD
SERIAL
PORT
I/O PORT
ALE
PSEN/
128 byte
RAM
128
byte
RAM
(8032/8052)
SERIAL
PORT
INTERUP
CONTROL
OTHER
REGISTER
TIMER 2
TIMER 0
TIMER 1
INT1/
INT0/
TIMER 2
8032/8052
TIMER 1
TIMER 0
ROM
0K-8031/8032
4K-8051
8K-8052
T0
T1
T2
T2EX
S¬ ®å khèi cña vi ®Iòu khiÓn 8081
7
Vi đIều khiển 8051 có tất cả 40 chân, trong đó:
32 chân hình thành 4 port (cổng) 8bit
2 chân cho mạch dao động XTAL1, XTAL1
2 chân nguồn Vcc (5V) và GND
4 chân tín hiệu đIều khiển bus
2.1 Chức năng các chân của 8051
8
2.1 Chức năng các chân của 8051
2.1.2 Port 0
Port 0 (các chân từ 32 đến 39 ) có hai chức năng:
Làm nhiệm vụ xuất/nhập dữ liệu 8bit
Làm nhiệm vụ bus địa chỉ 8bit địa chỉ byte thấp
Địa chỉ của port 0 là 80H và có khả năng định địa chỉ bit
87 86 85 84 83 82 81 80
P0
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
9
2.1 Chức năng các chân của 8051
2.1.3 Port 1
Port 1 (các chân từ 1 đến 8 ) chỉ có chức năng xuất
nhập 8bit
Địa chỉ của port 1 là 90H và có khả năng định địa
chỉ bit
97 96 95 94 93 92 91 90
P1
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
10
2.1 Chức năng các chân của 8051
2.1.4 Port 2
Port 2 (các chân từ 21 đến 28 ) có hai chức năng:
Làm nhiệm vụ xuất/nhập dữ liệu 8bit
Làm nhiệm vụ bus địa chỉ 8bit địa chỉ byte cao
Địa chỉ của port 0 là A0H và có khả năng định địa chỉ
bit
A7 A6 A5 A4 A3 A2 A1 A0
P2
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
11
2.1 Chøc n¨ng c¸c ch©n cña 8051
12
2.1 Chức năng các chân của 8051
2.1.5 Port 3
Port 3 (các chân từ 10 đến 21 ) có hai chức năng:
Làm nhiệm vụ xuất/nhập dữ liệu 8bit
Thực hiện các chức năng riêng (được mô tả trong bảng 1.1 )
Địa chỉ của port 3 là B0H và có khả năng định địa chỉ bit
B7 B6 B5 B4 B3 B2 B1 B0
P3
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
13
2.1 Chức năng các chân của 8051
Bit Tên Địa chỉ bit Chức năng
P
3.0
RXT B0H Ngõ vào dữ liệu của port nối tiếp
P
3.1
TXD B1H Ngõ xuất dữ liệu của port nối tiếp
P
3.2
INT0/ B2H Ngõ vào ngắt ngoài 0
P
3.3
INT1/ B3H Ngõ vào ngắt ngoài 1
P
3.4
T0 B4H Ngõ vào của bộ định thờ/ đếm 0
P
3.5
T1 B5H Ngõ vào của bộ định thờ/ đếm 1
P
3.6
WR/ B6H Điều khiển ghi bộ nhớ dữ liệu ngoài
P
3.7
RD/ B7H Điều khiển đọc bộ nhớ dữ liệu ngoài
Bảng 1.1
14
2.1 Chøc n¨ng c¸c ch©n cña 8051
2.1.6 Ch©n cho phÐp bé nhí ch¬ng tr×nh PSEN
PSEN = “0” (logic 0) : Cho phÐp truy xuÊt bé nhí
ch¬ng tr×nh ngoµi (EPROM)
PSEN = “1” : Khi truy xuÊt bé nhí ch¬ng tr×nh
trong ROM néi (trong chÝp).
15
2.1 Chøc n¨ng c¸c ch©n cña 8051
16
2.1 Chức năng các chân của 8051
2.1.6 Chân cho phép chốt địa chỉ ALE
Khi 8051 truy xuất bộ nhớ bên ngoài, port 0 có chức
năng là bus địa chỉ và bus dữ liệu do đó phải tách
các đương dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân
30 dùng làm tín hiệu điều khiển để giải đa hợp các
đường địa chỉ và dữ liệu khi kết nối chúng với IC
chốt.
Tín hiệu ALE có tần số bằng 1/6 tần số dao động của
chip điều khiển (nếu dao động của chíp là 12MHz
thì tần của tín hiệu ALE là 2MHz )
17
2.1 Chức năng các chân của 8051
2.1.7 Ngõ tín hiệu EA/ (external access):
Nếu EA/ = 1 (nối với +5V) thì 8051 thực thi
chương trình trong ROM nội.
Nếu EA/ = 0 (nối với GND) thì 8051 thực thi
chương trình trong ROM ngoài.
Nếu EA/ nhận mức điện áp 21V thì cho phép
nạp chương trình cho EPROM nội (nạp
EPROM).
18
2.1 Chức năng các chân của 8051
2.1.8 Chân RESET (RST):
Ngõ vào RST (chân 9) là ngõ vào xóa chính
của 8051 dùng để thiết lập lại trạng thái ban
đầu cho hệ thống hay gọi tắt là reset hệ thống.
Khi ngõ vào ở mức logíc 1 tối thiểu hai chu kỳ
máy, các thanh ghi bên trong của 8051 được
nạp các giá trị thích hợp cho việc khởi động lại
hệ thống.
19
2.1 Chức năng các chân của 8051
2.1.8 Chân XTAL1 và XTAL2
Bộ giao động được tích hợp bên trong vi điều
khiển 8051, khi sử dụng 8051 người thiết kế
chỉ cần kết nối thêm thạch anh và các tụ như
hình vẽ trong sơ đồ đã nêu trên. Tần số của
thạch anh thường sử dụng cho 8051 là 12Mhz.
20
3. Tæ chøc bé nhí
Bé nhí trong 8051 bao gåm 4 KB ROM vµ
128 Byte RAM.
Vi ®iÒu khiÓn 8051 cã thÓ qu¶n lý tèi ®a
64K bé nhí ROM ngoµi vµ 64K bé nhí
RAM ngoµi
21
3. Tæ chøc bé nhí
64K
64K
4K
128byte
ROM
Ngoµi
RAM
Ngoµi
ROM
Néi
RAM
Néi
0000
FFFF
Bé nhí néi Bé nhí ngoµi
82
Bank 1
08
00
07
Bank thanh ghi 0
(mặc định từ R0-R7)
81
88
17
0F
10
18
1F
87
Bank 2
83
Bank 3
88
89
DPL
không đuợc địa chỉ hóa các bit
không đuợc địa chỉ hóa các bit
85
8687 8384
SP
808182
P0
PCON
không đuợc địa chỉ hóa các bit
không đuợc địa chỉ hóa các bit
DPH
không đuợc địa chỉ hóa các bit
8B8D8E8F 8C 88898A
TCON
TMOD
A0
51 5054 53 5256 55
2A
57
90
29 282B2C2F 2E 2D 2A
25
22
21
20
23
24
8C
11 10
16 15
14 13 1217
0A
2
0C 0B0F 0E 0D
7 6
5
4 3
8B
9 8
1 0
8A
22
1A1D1F 1E 1C 1B
2526
27 24 23
19 18
8D
21 20
26
27
29
28
3A
3237
36 35
34 33
3D3F 3E 3C 3B
31 30
39 38
98
4A
42
4C 4B4E 4D4F
45
47 46 44 43
49 48
41 40
99
79 787E 7D 7C 7B 7A2F 7F
2B
2C
2E
2D
62
5A5F 5E 5D 5C 5B
65
67 66 64 63
59 58
61 60
A8
72
6A
74 7376
75
77
6D6E6F 6C 6B
B0
71 70
69 68
30
D0
B8
RAM đa dụng
D
E0
P2
A1 A0A4 A3A7
A6
A5
A2
P1
91 9094 9397 96
95
92
TH0
không đuợc địa chỉ hóa các bit
không đuợc địa chỉ hóa các bit
không đuợc địa chỉ hóa các bit
TL1
TL0
không đuợc địa chỉ hóa các bit
TH1
9D9F 9E 9C 9B
99 98
9A
SCON
không đuợc địa chỉ hóa các bit
BSUF
AF ABAC A8A9AA
IE
B4 B3B7 B6 B5 P.3B1 B0B2
PSWD0D1D3D4
D6
D7
D5
D2
--- BBBC B8B9BA IP
E5
E6
E7 E3E4 E0E1E2 ACC
Địa chỉ byte
7F
FF
F0
Địa chỉ bit
F3F4
F5
F6F7 BF0F1F2
Địa chỉ byte Địa chỉ bit
Tổ chức bộ nhớ RAM trên chíp 8051
Vùng địa chỉ bit
Vùng địa chỉ byte
Vùng địa chỉ của
các thanh ghi từ
R0 đến R7
Vùng địa chỉ
của các thanh
ghi chức năng
đặc biệt
23
RAM bên trong 8051 được phân chia như sau:
Các thanh ghi R0ữR7có địa chỉ từ 00H đến 1FH.
Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
Ram đa dụng từ 30H đến 7FH.
Các thanh ghi có chức năng đặc biệt từ 80H đến FFH.
3.1 Tổ chức bộ nhớ RAM
24
3.1 Tổ chức bộ nhớ RAM
3.1.1 RAM đa dụng:
80 byte RAM đa dụng chiếm các địa chỉ từ 30H đến
7FH
Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy
xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp.
VD: + địa chỉ trực tiếp
MOV A, 3FH
+ địa chỉ gián tiếp
MOV R0, #3FH
MOV A, R0
25
3.1 Tổ chức bộ nhớ RAM
3.1.2 RAM có thể truy xuất từng bit:
Vi điều khiển 8051 chứa 210 địa chỉ bit, trong đó:
128 bit có địa chỉ từ 20H đến 2FH
Các bít còn lại chứa trong nhóm thanh ghi có chức năng đặc
biệt.
Các bít có thể được đặt xóa, AND, OR với một lệnh đơn.
Ngoài ra các port cũng có thể truy xuất được từng bít, 128 bit
truy xuất từng bit này cũng có thể truy xuất như các byte hoặc
như các bit phụ thuộc vào lệch được dùng.
VD: SETB P1.0 ; đặt bit P1.0 lên mức
logic 1
CLR P1.0 ; xoá bit P1.0 về mức logic 0
26
3.1 Tổ chức bộ nhớ RAM
3.1.3. Các dãy thanh ghi:
32 byte thấp của bộ nhớ nội được dành cho các dãy thanh ghi.
Bộ lệnh 8051 hỗ trợ 8 thanh ghi có tên là R0 ữ R7 và theo mặc
định sau khi reset hệ thống, các thanh ghi này có địa chỉ từ
00H ữ 07H.
Các lệnh dùng các thanh ghi R0 ữ R7 sẽ ngắn hơn và nhanh hơn
so với các lệnh dùng kiểu địa chỉ trực tiếp. Các dữ liệu được
dùng thường xuyên, nên dùng một trong các thanh ghi này.
VD: Thanh ghi R0 có địa chỉ 00H
MOV A, 00H ; Kiểu địa chỉ trực tiếp
MOV A, R0 ; Kiểu địa chỉ thanh ghi