Tải bản đầy đủ (.doc) (89 trang)

Điều khiển tự động xe robot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (462.75 KB, 89 trang )

Chương I : TỔNG QUAN.
I . GIỚI THIỆU:
Ngày nay với sự phát triển của khoa học kỹ thuật, đặc biệt trong ngành
điện tử với những bước tiến vượt bậc về lónh vực vi xử lý và các vi mạch số đã
thực sự mang lại những hiệu qủa chính xác và gọn nhẹ trong quá trình điều
khiển, sản xuất. Do đó việc chế tạo robot để phục vụ cho con người trong lónh
vực sản xuất đối với chúng ta không còn là vấn đề quá xa vời. Tập đồ án này
trình bày những nghiên cứu và thiết kế một chiếc xe được điều khiển bởi chip vi
điều khiển 8051 để có thể di chuyển trong các nhà xưởng, xí nghiệp và thực
hiện một công việc nào đó thay cho con người.
II . GIỚI HẠN ĐỀ TÀI :
Với thời gian thực hiện đề tài, cũng như trình độ chuyên môn có
hạn, em đã cố gắng hết sức để hoàn thành tập luận văn này, nhưng chỉ
giải quyết được những vấn đề sau :
- Xe di chuyển theo những lộ trình đònh trước bằng cách kẽ sẵn
những đường vạch sáng dưới sàn có màu tối.
- Xe hoạt động trong khoảng thời gian từ 0 đến 99 phút.
- Tại mỗi điểm dừng xe chỉ bật đèn báo hiệu thay vì phải làm
một công việc tương ứng.
III. MỤC ĐÍCH NGHIÊN CỨU :
Mục đích trước hết khi thực hiện đề tài này là để hoàn tất
chương trình môn học để đủ điều kiện ra trường .
Cụ thể khi nghiên cứu thực hiện đề tài là chúng em muốn phát
huy những thành quả ứng dụng của vi điều khiển nhằm tạo ra những
sản phẩm, thiết bò tiên tiến và đạt hiệu quả cao trong sản xuất.
Ngoài ra quá trình nghiên cứu thực hiện đề tài là một cơ hội để
chúng em tự kiểm tra lại những kiến thức đã được học ở trường, đồng
thời phát huy tính sáng tạo, khả năng giải quyết một vấn đề theo yêu
cầu đặt ra. Và đây cũng là dòp để chúng em tự khẳng đònh mình trước
khi ra trường để tham gia vào các hoạt động sản xuất của xã hội.
IV . KHÁI QUÁT VỀ ĐỀ TÀI:


3
1. Bàn phím và bộ phận hiển thò:
Hình 1.1: Mô tả bàn phím và bộ phận hiển thò.
Bộ phận hiển thò gồm hai led 7 đoạn, hiển thò tín hiệu stop/sẵn
sàng nhận dữ liệu và thời gian mà xe phải vận hành trong suốt quá
trình vận hành của nó.
Bàn phím gồm có ba phím: phím 1 và 2 dùng để nhập thời gian
vận hành của xe, thời gian được nhập bằng cách ấn phím 1 để nhập chữ
số hàng chục, phím 2 để nhập chữ số hàng đơn vò, tương ứng với mỗi
lần ấn phím 1 (hoặc 2) chữ số hàng chục (hoặc hàng đơn vò) sẽ tăng lên
1; phím Go/Stop được dùng để kích khởi xe hoạt động hoặc ngừng hoạt
động của xe khi nó đang chuyển động.
2. Quá trình vận hành của xe:
Xe sẽ di chuyển theo lộ trình đònh sẵn trong khoảng thời gian
nhất đònh bằng cách dò những đường vạch trắng được kẻ sẵn trên sàn
có màu tối nhờ bộ phận cảm biến đặt dưới xe, thời gian vận hành của
xe được nhập vào từ bàn phím và được lưu vào một byte dữ liệu. Quá
trình hoạt độâng của xe được mô tả như hình sau:
1 : Xe.
4
5
4
3
2
1
6 7
LED 1 LED 2
Go/Stop 1 2
2 : Bánh xe được kéo bởi motor 2.
3 : Bánh xe được kéo bởi motor 3.

4, 5 : Bộ phận cảm biến đặt dưới xe.
6 : Vạch màu trắng được kẻ sẵn dưới sàn có màu tối.
7 : Tín hiệu dừng xe trên đường di chuyển.
Hình 1.2: Mô tả quá trình chuyển động của xe.
 Nguyên lý hoạt động của xe:
Sau khi thời gian vận hành (tính bằng phút) được nhập vào từ
bàn phím, để kích khởi cho xe hoạt động ta ấn phím Go/Stop. Lúc này,
bit trạng thái “Run” được thiết lập, 8051 sẽ đọc byte dữ liệu có chứa
thời gian vận hành để biết thời gian hoạt động của xe, sau đó điều
khiển hai motor kéo hai bánh xe (2) và (3) ở hai bên thành xe quay, xe
sẽ di chuyển về phía trước. Đồng thời bộ phận cảm biến (4) và (5) ở
dưới xe cũng hoạt động. Giả sử xe chạy lệch khỏi vạch trắng và bộ
phận cảm biến (4) đang ở phía trên vạch trắng thì bộ phận cảm biến
này sẽ gởi tín hiệu thông báo về cho chip 8051, để từ đó điều khiển cho
motor kéo bánh xe (3) quay vói tốc độ nhanh hơn đồng thời giảm tốc độ
quay của bánh xe (2) nhằm làm cho xe tiếp tục chuyển động đúng
hướng dọc theo vạch trắng đã kẻ dưới sàn. Nhờ đặc tính này mà ta có
thể cho xe chuyển động thẳng, quay phải hay trái tuỳ ý bằng cách kẻ
lên sàn những đường vạch trắng theo lộ trình đònh trước.
Đồng thời trong quá trình chuyển động của xe, bộ hiển thò led 7
đoạn sẽ hiển thò thời gian còn lại mà xe phải hoạt động theo từng phút
cho đến khi hết thời gian thì hiển thò tín hiệu stop và sẵn sàng để nhận
dữ liệu cho quá trình vân hành tiếp theo.
Trong quá trình vận hành của xe, nếu gặp phải tín hiệu dừng
trên đường đi, tín hiệu này là một vạch trắng được kẽ dưới sàn, thì xe
sẽ dừng lại trong một khoảng thời gian đồng thời bật đèn báo hiệu, ứng
với công việc mà xe phải làm tại mỗi điểm dừng, sau đó vượt qua tín
hiệu dừng này và tiếp tục di chuyển như trên.
Ngoài ra, nếu xe đang hoạt động mà ta ấn nút Go/Stop thì xe sẽ
dừng lại và bộ hiển thò tín hiệu stop.

5
Trong quá trình thiết kế và thi công mạch có sử dụng một số vi
mạch như: chip vi điều khiển 8051, 8255A, EPROM 2764, RAM 6264,
74LS138, MAX232 Các vi mạch này sẽ được khảo sát rõ trong các
chương kế tiếp.
6
Chương II
TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN MCS-51
I . CẤU TẠO VI ĐIỀU KHIỂN 8051:
1. Giới thiệu họ MSC-51:
MCS-51 là họ vi điều khiển của hãng Intel. Các IC tiêu biểu cho
họ MSC-51 là chip 8051, là mạch tích hợp trên một chip có thể lập
trình được, dùng để điều khiển hoạt động của hệ thống. Theo các lệnh
của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin,
xử lý thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó.
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn
toàn tương tự như nhau. Ở đây giới thiệu chip 8051 có các đặc trưng
được tóm tắt như sau:
- 4 kbyte ROM.
- 128 byte RAM.
- 4 port xuất nhập (I/0 port) 8-bit.
- Hai bộ đònh thời 16 bit.
- Mạch giao tiếp nối tiếp.
- 64KB không gian bộ nhớ chương trình mở rộng
- 64 KB không gian bộ nhớ dữ liệu mở rộng
- Một bộ xử lí bit (thao tác trên các bit đơn)
- 210 vò trí nhớ được đònh đòa chỉ, mỗi vò trí 1 bit.
- Nhân / chia trong 4µs.
Cùng họ với 8051 có một số vi điều khiển khác. Về cơ bản chúng
đều giống nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ

mã lệnh, vùng nhớ dữ liệu và số bộ đònh thời. Sự khác nhau đó được mô
tả bằng bảng sau đây:
7
Vi điều khiển
Vùng mã lệnh
nội
Vùng dữ liệu
nội
Số bộ đònh thời
8051
8031
8751
8052
8032
8732
8752
4K ROM
0K
4K EPROM
8K ROM
0K
4K EPROM
8K EPROM
128 bytes
128 bytes
128 bytes
256 bytes
256 bytes
256 bytes
256 bytes

2
2
2
3
3
3
3
Bảng 2.1: So sánh các IC của họ Msc-51.
2. Cấu trúc bên trong và sơ đồ chân của 8051:
a. Cấu trúc bên trong:
Hình 2.1 : Sơ đồ khối của chip 8051.
8
TXD*

RXD*


T1*
T0*
P
0
P
1
P
2
P
3


EA ALE

RST PSEN


Các thanh
ghi khác
128 byte
RAM
ROM
0K-8031/8032
4K-8051
8K-8052
Timer 1
Timer 0
Điều khiển
ngắt
Điều khiển
bus
CPU
Port nối
tiếp
Các port I/O
Mạch dao
động
INT1*
INT0*

TIMER 2
TIMER 1
TIMER 0
PORT nối tiếp


Timer 2
8032/ 8052
128 bytes
RAM
8032/ 8052
T2E X*
T2*
}
Đòa chỉ/dữ liệu


*Alternate pin assignmentsfor P1 and P3


b. Sơ đồ chân 8051:
Hình 2.2 : Sơ đồ chân của 8051.
c. Chức năng các chân của 8051:
8051 có tất cả 40 chân có chức năng như các đường xuất nhập.
Trong đó có 24 chân có tác dụng kép (có nghóa 1 chân có 2 chức năng),
mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều
khiển hoặc là thành phần của các bus dữ liệu và bus đòa chỉ.
9
18
19
12MHz
40
29
30
31

9
17
16
15
14
13
12
11
10
RD\
WR\
T1
T0
INT1
INT0
TXD
RXD
A15
A14
A13
A12
A11
A10
A9
A8
28
27
26
25
24

23
22
21
8
7
6
5
4
3
2
1
32
33
34
35
36
37
38
39
Po.7
Po.6
Po.5
Po.4
Po.3
Po.2
Po.1
Po.0
AD7
AD6
AD5

AD4
AD3
AD2
AD1
AD0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
PSEN
ALE
EA
RST
20
Vss
30p
30p
Vcc

XTAL1
XTAL2
8051
• Port 0:
Port 0 là port có 2 chức năng ở các chân từ 32 đến 39 trên 8051.
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 I/O. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng,
nó trở thành bus đòa chỉ và bus dữ liệu đa hợp (byte thấp của bus đòa
chỉ nếu là đòa chỉ).
• Port 1:
Port 1 là port I/O trên các chân từ 1 đến 8 trên 8051. Các chân
được ký hiệu P1.0, P1.1, P1.2, P1.7 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.
• Port 2:
Port 2 là 1 port có tác dụng kép trên các chân từ 21 đến 28 trên
8051, được dùng như các đường xuất/nhập hoặc là byte cao của bus đòa
chỉ 16-bit đối với các thiết kế dùng bộ nhớ chương trình ngoài hoặc các
thiết kế có nhiều hơn 256 bytes bộ nhớ dữ liệu ngoài.
• Port 3:
Port 3 là port có tác dụng kép trên các chân từ 10 đến 17 trên
8051. Khi không hoạt động xuất/nhập, các chân của port này có nhiều
chức năng riêng, mỗi chân có chức năng riêng liên quan đến các đặc
trưng cụ thể của 8051 như ở bảng sau:
Bit Tên Chức năng chuyển đổi
P3.0 RxD 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\ Ngõ vào ngắt cứng thứ 0
P3.3 INT1\ Ngõ vào ngắt cứng thứ 1
P3.4 T0 Ngõ vào củaTIMER/COUNTER thứ

0.
P3.5 T1 Ngõ vào củaTIMER/COUNTER thứ
1.
P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
10
P3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài.
Bảng 1.2: Chức năng của các chân của port 3.
• Chân cho phép bộ nhớ chương trình PSEN\ (Program store enable):
Tín hiệu PSEN\ là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép
truy xuất bộ nhớ chương trình mở rộng thường được nối đến chân OE\
(output enable) của EPROM cho phép đọc các byte mã lệnh.
Tín hiệu PSEN\ ở mức thấp trong thời gian Microcontroller 8051
tìm nạp lệnh. Các mã lệnh của chương trình được đọc từ EPROM qua
bus dữ liệu và được chốt vào thanh ghi lệnh IR bên trong 8051 để giải
mã lệnh. Khi 8051 thi hành chương trình trong EPROM nội PSEN\ sẽ ở
mức logic 1.
• Chân cho phép chốt đòa chỉ ALE (Address Latch Enable):
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 đa hợp do đó phải tách các đường dữ liệu và đòa
chỉ. Tín hiệu ra ALE ở chân thứ 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 port 0 được sử dụng làm bus
đòa chỉ/dữ liệu đa hợp, chân ALE xuất tín hiệu để chốt đòa chỉ vào một
thanh ghi ngoài trong suốt ½ đầu của chu kỳ bộ nhớ. Sau khi điều này
đã được thực hiện, các chân của port 0 sẽ xuất nhập dữ liệu hợp lệ
trong suốt ½ thứ 2 của chu kỳ bộ nhớ.
Tín hiệu ALE có tần số bằng 1/6 lần tần số dao động trên chip và
có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống.
Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, một xung
ALE sẽ bò bỏ qua. Chân ALE được dùng làm ngõ vào xung lập trình
cho EPROM trên chip đối với các phiên bản của 8051 có EPROM này.

• Chân truy xuất ngoài EA\(External Access):
Tín hiệu vào EA\ ở chân 31 có thể ở mức logic1 (5v) hoặc mức
logic 0 (GND). Nếu ở mức 1, 8051 thi hành chương trình trong ROM
nội (chương trình nhỏ hơn 4 K). Nếu ở mức 0 (và chân PSEN\ cũng ở
11
logic 0), 8051 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân EA\
được lấy làm chân cấp nguồn 21V khi lập trình cho EPROM trong
8051.
• Ngõ tín hiệu RST (Reset) :
Ngõ vào RST ở chân 9 là ngõ vào Reset của 8051. Khi ngõ vào tín
hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong
được nạp những giá trò thích hợp để khởi động hệ thống. Khi cấp điện
mạch tự động Reset.
• Các ngõ vào bộ dao động XTAL1, XTAL2:
Mạch dao động bên trong chip 8051 được kết nối với thạch anh
bên ngoài ở hai chân XTAL1 và XTAL2 (chân 18 và 19). Các tụ ổn đònh
cũng được yêu cầu như trên hình vẽ trong sơ đồ. Tần số thạch anh
thường sử dụng cho 8051 là 12Mhz.
• Nguồn cung cấp
Chip 8051 vận hành với nguồn đơn +5V. Chân 40 của chip 8051
được nối lên nguồn 5V (V
CC
) và chân 20 được nối với mass (V
SS
).
3. Cấu trúc cổng xuất nhập:
Mạch bên trong của một chân port mô tả ngắn gọn trong hình
1.3. Việc ghi đến một chân của cổng sẽ nạp dữ liệu vào bộ chốt của
port. Ngõ ra Q của bộ chốt điều khiển một transitor trường và
transistor này nối với chân của cổng. Khả năng fanout của các port 1, 2

và 3 là 4 tải vi mạchTTL loại Schottky công suất thấp (LS), còn của
port 0 là 8 tải loại LS. Lưu ý là điện trở kéo lên sẽ không có ở port 0
(trừ khi port này làm nhiệm vụ của bus đòa chỉ/dữ liệu đa hợp), do vậy
một điện trở kéo lên bên ngoài phải được cần đến.

12
Chân
Port
Ghi
chốt
Đọc
chốt
Đọc
chân
Bus nội của 8051
D Q
Chốt
Port
Vcc
Hình 2.3 Sơ đồ mạch bên trong của các port xuất nhập.
Việc đọc chốt được phân biệt làm hai, đó là đọc bộ chốt và đọc
chân port. Sự phân biệt này nhằm chống trường hợp chập mạch do quá
tải gây nên. Lệnh đọc một bit cổng sẽ đọc chân của cổng. Trong
trường hợp này, chốt phải được giữ ở mức cao, nếu không FET sẽ được
kích bảo hoà và ngõ ra xuống mức thấp. Tất cả các chốt của port đều
được set khi reset hệ thống. Như vậy các chân chốt đều được dùng như
ngõ vào mà không cần phải set chốt. Tuy nhiên, nếu đã xóa chốt không
thể đọc dữ liệu đúng từ chân port trừ khi set chốt trở lại.
4. Tổ chức bộ nhớ:
8051 có những vùng bộ nhớ riêng biệt cho chương trình và dữ

liệu. Cả hai bộ nhớ chương trình và dữ liệu có thể chứa bên trong
8051,tuy nhiên ta có thể mở rộng bộ nhớ chương trình và bộ nhớ dữ
liệu bằng cách sử dụng các chip nhớ bên ngoài với dung lượng tối đa là
64K cho bộ nhớ chương trình và 64K cho bộ nhớ dữ liệu.
Bộ nhớ nội trong chip 8051 bao gồm EPROM và RAM. RAM
trong 8051 bao gồm vùng RAM đa chức năng, vùng RAM với từng bit
được đònh đòa chỉ, các dãy thanh ghi và các thanh ghi chức năng đặc
biệt SFR. Hai đặc tính cần lưu ý là:
- Các thanh ghi và các port xuất/nhập đã được đònh đòa chỉ theo
kiểu ánh xạ bộ nhớ và được truy xuất như một vò trí nhớ trong bộ nhớ.
- Ngăn xếp thường trú trong Ram trên chip thay vì ở trong Ram
ngoài như đối với các bộ vi xử lý khác.
13
FF
00
Bộ nhớ
trên chip
FFFF
0000
Bộ nhớ
chương trình
Được cho
phép bởi
PSEN
FFFF
0000
Bộ nhớ
dữ liệu
Được cho
phép bởi

RD & WR
Bộ nhớ
ngoài
Hình 2.4: Tóm tắt các vùng nhớ của chip 8031(không có ROM nội).
Như ta đã thấy ở hình vẽ trên RAM bên trong 8051 được phân chia như
sau:
- Các bank thanh ghi có đò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 chức năng đặc biệt từ 80H đến FFH.
14
a. Vùng RAM đa mục đích:
Đòa chỉ đòa chỉ
byte đòa chỉ bit byte đòa chỉ bit
7F FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
RAM đa dụng
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D
3
D2 D1 D0 PSW
30 B8 - - - BC BB BA B9 B8 IP
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40 99 không được đòa chỉ hoá bit SBUF

27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18 8D không được đòa chỉ hoá bit TH1
22 17 16 15 14 13 12 11 10 8C không được đòa chỉ hoá bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B không được đòa chỉ hoá bit TL1
20 07 06 05 04 03 02 01 00 8A không được đòa chỉ hoá bit TL0
1F Bank 3 89 không được đòa chỉ hoá bit TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
17 Bank 2 87 không được đòa chỉ hoá bit PCON
10
0F Bank 1 83 không được đòa chỉ hoá bit DPH
08 82 không được đòa chỉ hoá bit DPL
07 Bank thanh ghi 0 81 không được đòa chỉ hoá bit SP
00 (mặc đònh cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0
RAM THANH GHI CHỨC NĂNG ĐẶC BIỆT
Hình 2.5: Bộ nhớ dữ liệu trên chip 8051.
15
Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các đòa chỉ
từ 30H đến 7FH, 32 byte dưới từ 00H đến 2FH cũng có thể dùng với
mục đích tương tự (mặc dù các đòa chỉ này đã có mục đích khác).
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.
RAM nội cũng có thể được truy xuất bằng đòa chỉ gián tiếp thông
qua R0 và R1 (chỉ hai thanh ghi này mà thôi).
b. Vùng RAM đònh đòa chỉ bit :
8051 chứa 210 bit được đònh đòa chỉ, trong đó 128 bit chứa trong
các byte ở đòa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm
thanh ghi chức năng đặc biệt.

Ý tưởng truy xuất từng bit bằng phần mềm là các đăëc tính mạnh
của hầu hết các bộ vi điều khiển. Các bit có thể được đặt, xóa, AND,
OR, … bằng một lệnh đơn. Đa số các microcontroller xử lý đòi hỏi một
chuỗi lệnh đọc-sửa- ghi để nhận được cùng một kết quả. Ngoài ra các
port cũng có thể truy xuất được từng bit.
8051 có 128 bit được đònh đòa chỉ và có nhiều mục đích ở các byte
có đòa chỉ từ 20H -2FH. Các đòa chỉ này được truy xuất như là các byte
hay các bit tuỳ thuộc vào lệnh được dùng.
c. Các dãy thanh ghi :
32 byte thấp nhất của bộ nhớ nội chứa các dãy thanh ghi. Các
lệnh của 8051 hổ trợ 8 thanh ghi từ R0 đến R7 thuộc dãy 0. Đây là dãy
mặc đònh sau khi reset hệ thống các thanh ghi này ở các đòa chỉ từ 00H
đến 07H.
Các lệnh dùng các thanh ghi từ R0 đến R7 thì sẽ ngắn hơn và
nhanh hơn các lệnh tương ứng nhưng dùng đòa chỉ trực tiếp. Các giá trò
dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi
này. Dãy thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các
bit chọn dãy thanh ghi trong từ trạng thái chương trình PSW.
Ý tưởng dùng “các dãy thanh ghi” cho phép “chuyển đổi ngữ
cảnh” chương trình nhanh và hiệu qủa ở những nơi mà các phần riêng
16
rẽõ của phần mềm sử dụng một tập thanh ghi riêng, độc lập với các
phần khác của phần mềm.
5 . Các thanh ghi có chức năng đặc biệt (SFR: Special Function
Register):
Các thanh ghi nội của 8051 được truy xuất rõ ràng bởi một tập
lệnh. Các thanh ghi trong 8051 được cấu hình như một phần của RAM
trên chip vì vậy mỗi thanh ghi sẽ có một đòa chỉ. Cũng như R0 đến R7,
8051 có 21 thanh ghi có chức năng đặc biệt SFR ở vùng trên của RAM
nội từ đòa chỉ 80H đến FFH. Dưới đây là một vài trong số các thanh ghi

đặc biệt nói trên:
- Từ trạng thái chương trình (PSW: Program Status Word)
- Thanh ghi B.
- Con trỏ stack (Stack Pointer).
- Con trỏ dữ liệu DPTR (Data Pointer).
- Các thanh ghi Port (Port Register).
- Các thanh ghi đònh thời (Timer Register).
- Các thanh ghi của cổng nối tiếp (Serial Port Register).
- Các thanh ghi ngắt (Interrupt Register).
- Thanh ghi điều khiển nguồn PCON (Power Control Register).
II . TẬP LỆNH CỦA HỌ 8051 :
- Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây
dựng logic, sự nối tiếp của các lệnh được nghó ra một cách hiệu quả và
nhanh, kết quả của chương trình khả quan.
- Tập lệnh họ MSC-51 được sự kiểm tra của các kiểu đònh đòa chỉ
và các lệnh của chúng có các Opcode 8 bit. Điều này cung cấp khả
năng 2
8
= 256 lệnh được thi hành và một lệnh không được đònh nghóa.
Vài lệnh có 1 hoặc 2 byte bởi dữ liệu hoặc đòa chỉ thêm vào Opcode.
Trong toàn bộ các lệnh có 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3
byte.
1. Các kiểu đònh đòa chỉ (addressing mode):
17
Các kiểu đònh đòa chỉ là một bộ phận thống nhất của tập lệnh.
Chúng cho phép đònh rõ nguồn hoặc nơi gởi tới của dữ liệu ở các đường
khác nhau tùy thuộc vào trạng thái của người lập trình. 8051 có 8 kiểu
đònh đòa chỉ được dùng như sau:
- Thanh ghi.
- Trực tiếp.

- Gián tiếp.
- Tức thời.
- Tương đối.
- Tuyệt đối.
- Dài.
- Chỉ số.
2. Các loại lệnh của 8051:
Các lệnh của 8051 được chia làm 5 nhóm:
- Nhóm lệnh số học.
- Nhóm lệnh logic.
- Nhóm lệnh di chuyển dữ liệu.
- Nhóm lệnh xử lý bit.
- Nhóm lệnh rẽ nhánh.
III. HOẠT ĐỘNG ĐỊNH THỜI CỦA 8051:
1. Giới Thiệu:
Một bộ đònh thời là một chuỗi các flip flop với mỗi flip flop là một
mạch chia 2, nó nhận tín hiệu vào là một nguồn xung clock, xung clock
được đưa vào flip flop thứ nhất, flip flop này chia đôi tần số xung clock.
Ngõ ra của flip flop thứ nhất trở thành nguồn xung clock cho flip flop
thứ hai, và nó cũng chia tần số xung clock này cho 2, cứ tiếp tục như
vậy. Vì mỗi tầng kế tiếp nhau đều chia cho 2, nên bộ đònh thời có n
tầng phải chia tần số clock ngõ vào cho 2
n
.
18
Ngõ ra của tầng cuối cùng là xung clock của flip flop báo tràn bộ
đònh thời, cờ này được kiểm tra bởi phần mềm hoặc tạo ra một ngắt.
Giá trò nhò phân trong các flip flop của bộ đònh thời là số đếm của các
xung clock từ khi bộ đònh thời bắt đầu đếm.
Các bộ đònh thời được sử dụng trong hầu hết các ứng dụng hướng

điều khiển. 8051 có 2 bộ đònh thời 16 bit, mỗi bộ có 4 chế độ hoạt động.
Các bộ đònh thời dùng để đònh thời trong một khoảng thời gian, đếm sự
kiện và tạo tốc độ Baud cho Port nối tiếp của chip 8051.
Trong các ứng dụng đònh thời, bộ đònh thời được lập trình để tràn
ở một khoảng thời gian đều đặn và được set cờ tràn của bộ đònh thời.
Cờ được dùng để đồng bộ chương trình để thực hiện một công việc như
là kiểm tra trạng thái của các ngõ vào hoặc gởi dữ liệu đến các ngõ ra.
Các ứng dụng khác có sử dụng việc ghi giờ đều đều của bộ đònh thời để
đo thời gian đã trôi qua hai trạng thái (ví dụ đo độ rộng xung).Việc
đếm một sự kiện được dùng để xác đònh số lần xuất hiện của một sự
kiện hơn là đo thời gian giữa các sự kiện.
Các bộ đònh thời của 8051 được truy xuất bởi việc dùng 6 thanh
ghi chức năng đặc biệt : TCON, TMOD, TL0, TL1, TH0, TH1.
2. Thanh ghi chế độ đònh thời TMOD:
Thanh ghi TMOD gồm hai nhóm 4 bit là: 4 bit thấp đặt chế độ
hoạt động cho bộ đònh thời 0 và 4 bit cao đặt chế độ hoạt động cho bộ
đònh thời 1
TMOD không được đònh đòa chỉ từng bit, nó được nạp một lần bởi
phần mềm ở đầu chương trình để khởi động chế độ hoạt động của bộ
đònh thời. Sau đó bộ đònh thời có thể được dừng, khởi động lại bởi sự
truy xuất các thanh ghi chức năng đặc biệt khác của bộ đònh thời.
3. Thanh ghi điều khiển đònh thời TCON:
Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều
khiển bởi Timer 0 và Timer 1. Thanh ghi TCON có được đònh đòa chỉ
bit.
4. Các chế độ đònh thời và cờ tràn:
19
8051 có 2ø bộ đònh thời là bộ đònh thời 0 và bộ đònh thời 1. Ta dùng
ký hiệu TLx và Thx để chỉ 2 thanh ghi byte thấp và byte cao của bộ
đònh thời 0 hoặc bộ đònh thời 1.

a. Chế độ đònh thời 13-bit (chế độ 0) :
Chế độ 0 là chế độ đònh thời 13-bit, trong đó byte cao của bộ
đònh thời (Thx) được ghép cascade với 5 bit thấp của byte thấp của bộ
đònh thời (TLx) để tạo thành một bộ đònh thời 13 bit. 3 bit cao của TLx
không dùng.
b. Chế độ đònh thời 16-bit (chế độ 1) :
Chế độ 1 là chế độ đònh thời 16 bit, tương tự như chế độ 0 ngoại
trừ bộ đònh thời này hoạt động như một bộ đònh thời đầy đủ 16 bit,
xung clock được dùng với sự kết hợp các thanh ghi cao và thấp (TLx,
THx). Khi xung clock được nhận vào, bộ bộ đònh thời đếm lên: 0000H,
0001H, 0002H, . . ., và một sự tràn sẽ xuất hiện khi có sự chuyển số
đếm từ FFFH sang 0000H và sẽ set cờ tràn bằng 1, sau đó bộ đònh thời
đếm tiếp. Cờ tràn là bit TFx trong thanh ghi TCON mà nó sẽ được đọc
hoặc ghi bởi phần mềm.
c. Chế độ tự nạp lại 8-bit (chế độ 2):
Chế độ 2 là chế độ tự nạp lại 8 bit, byte thấp TLx của bộ đònh
thời hoạt động đònh thời 8 bit trong khi byte cao THx của bộ đònh thời
giữ giá trò nạp lại. Khi bộ đếm tràn từ FFH sang 00H, không chỉ cờ
tràn được set mà giá trò trong THx cũng được nạp vào TLx: bộ đếm
được tiếp tục từ giá trò này lên đến sự chuyển trạng thái từ FFH sang
00H kế tiếp và cứ thế tiếp tục.
d. Chế độ đònh thời chia xẻ (chế độ 3):
Chế độ 3 là chế độ đònh thời chia xẻ và có hoạt động khác nhau
cho từng bộ đònh thời. Chế độ 3 cung cấp 1 bộ đònh thời 8-bit nữa là bộ
đònh thời thứ ba của 8051. Khi bộ đònh thời 0 ở chế độ 3, bộ đònh thời 1
có thể hoạt động hoặc tắt bằng cách chuyển bộ đònh thời này ra khỏi
chế độ 3 hoặc vào chế độ 3.Bộ đònh thời 1 có thể được dùng bởi Port
20
nối tiếp như là một máy phát tốc độ Baud, hoặc nó có thể dùng trong
hướng nào đó mà không sử dụng ngắt.

5. Các nguồn xung clock đònh thời:
Có hai nguồn xung clock có thể đếm giờ là sự đònh giờ bên trong
và sự đếm sự kiện bên ngoài. Bit C/T trong TMOD cho phép chọn 1
trong 2 khi Timer được khởi động.
a. Đònh thời một khoảng thời gian:
Nếu bit C/T = 0 thì hoạt động đònh thời được chọn và nguồn xung
clock của bộ đònh thời do mạch dao động bên trong chip tạo ra. Các
thanh ghi TLx và THx đếm lên với tần số xung clock bằng 1/12 lần tần
số dao động trên Chip.
Các sự tràn bộ đònh thời xảy ra sau một con số cố đònh của những
xung clock, nó phụ thuộc vào giá trò khởi tạo được nạp vào các thanh
ghi THx và TLx.
b. Sự đếm các sự kiện (Event Counting):
Nếu bit C/T = 1 thì bộ đònh thời được cung cấp xung clock từ
nguồn bên ngoài. Trong nhiều ứng dụng, nguồn bên ngoài này cung
cấp cho bộ đònh thời 1 xung dựa trên sự xảy ra của sự kiện. Bộ đònh
thời bây giờ là sự đếm sự kiện. Con số sự kiện được xác đònh trong
phần mềm bởi việc đọc các thanh ghi đònh thời TLx/THx, bởi vì giá trò
16 bit trong các thanh này tăng lên cho mỗi sự kiện.
6. Khởi động dừng và điều khiển các bộ đònh thời:
Bit TRx trong thanh ghi có bit đònh vò TCON được điều khiển bởi
phần mềm để bắt đầu hoặc kết thúc các bộ đònh thời. Để bắêt đầu các
bộ đònh thời ta set bit TRx và để kết thúc bộ đònh thời ta xoá TRx.
Thêm phương pháp nữa để điều khiển các bộ đònh thời là dùng
bit GATE trong thanh ghi TMOD và ngõ nhập bên ngoài INTx. Điều
này được dùng để đo các độ rộng xung.
7. Khởi động và truy xuất các thanh ghi đònh thời:
21
Các bộ đònh thời được khởi động 1 lần ở đầu chương trình để đặt
chế độ hoạt động cho chúng. Sau đó trong chương trình các bộ đònh

thời được bắt đầu, được xóa, các thanh ghi đònh thời được đọc và cập
nhật theo yêu cầu của từng ứng dụng cụ thể.
TMOD là thanh ghi đầu tiên được khởi gán, bởi vì đặt chế độ
hoạt động cho các bộ đònh thời.
Cờ tràn TFx tự động được set bởi phần cứng sau mỗi sự tràn và
sẽ được xóa bởi phần mềm. Chính vì vậy ta có thể lập trình chờ sau
mỗi lần tràn ta sẽ xóa cờ TFx và quay vòng lặp khởi gán cho TLx/THx
để bộ đònh thời luôn luôn bắt đầu đếm từ giá trò khởi gán lên theo ý ta
mong muốn.
IV. HOẠT ĐỘNG CỦA PORT NỐI TIẾP:
1. Giới thiệu:
8051 có một port nối tiếp trong chip có thể hoạt động ở nhiều
chế độ trên một dãy tần số rộng. Chức năng chủ yếu là thực hiện
chuyển đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối
tiếp sang song song với dữ liệu nhập.
Port nối tiếp cho hoạt động song công (full duplex: thu và phát
đồng thời) và đệm thu (receiver buffering) cho phép một ký tự sẽ được
thu và được giữ trong khi ký tự thứ hai được nhận. Nếu CPU đọc ký tự
thứ nhất trước khi ký tự thứ hai được thu đầy đủ thì dữ liệu sẽ không bò
mất.
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất
đến port nối tiếp là: SBUF và SCON. Bộ đệm port nối tiếp (SBUF) ở
điạ chỉ 99H nhận dữ liệu để thu hoặc phát. Thanh ghi điều khiển port
nối tiếp (SCON) ở điạ chỉ 98H là thanh ghi có điạ chỉ bit chứa các bit
trạng thái và các bit điều khiển. Các bit điều khiển đặt chế độ hoạt
động cho port nối tiếp, và các bit trạng thái Báo cáo kết thúc việc phát
hoặc thu ký tự . Các bit trạng thái có thể được kiểm tra bằng phần
mềm hoặc có thể lập trình để tạo ngắt.
2. Thanh ghi điều khiển port nối tiếp:
22

Thanh ghi điều khiển cổng nối tiếp dùng để thiết lập chế độ hoạt động
của port nối tiếp. Việc thiết lập chế độ hoạt động cho port nối tiếp
được thực hiện bằng cách ghi vào thanh ghi chế độ port nối tiếp SCON
ở đòa chỉ 98H .
3. Các chế độ hoạt động:
Port nối tiếp của 8051 có 4 chế độ hoạt động, các chế độ được
chọn bằng cách ghi 1 hoặc 0 cho các bit SM0 và SM1 trong thanh ghi
SCON. Ba trong số các chế độ hoạt động cho phép truyền không đồng
bộ, trong đố mỗi ký tự được thu hoặc phát sẽ cùng với một bit start và
một bit stop tạo thành một khung. Mỗi chế độ hoạt động sẽ được đề
cập tóm tắt sau đây:
a. Chế độ 0 (thanh ghi dòch 8 bit):
Ở chế độ 0 dữ liệu nối tiếp vào và ra qua RXD và TXD xuất xung
nhòp dòch, 8 bit được phát hoặc thu với bit đầu tiên là LSB. Tốc độ baud
cố đònh ở 1/12 tần số dao động trên chip.
Việc phát đi được khởi động bằng bất cứ lệnh nào ghi dữ liệu vào
SBUF. Dữ liệu dòch ra ngoài trên đường RXD (P3.0) với các xung nhòp
được gửi ra đường TXD (P3.1). Mỗi bit phát đi hợp lệ (trên RXD) trong
một chu kỳ máy.
Việc thu được khởi động khi cho phép bộ thu (REN) là 1 và bit
ngắt thu (RI) là 0. Quy tắc tổng quát là đặt REN khi bắt đầu chương
trình để khởi động port nối tiếp, rồi xoá RI để bắt đầu nhận dữ liệu.
Khi RI bò xoá, các xung nhòp được đưa ra đường TXD, bắt đầu chu kỳ
máy kế tiếp và dữ liệu theo xung nhòp ở đường RXD. Lấy xung nhòp
cho dữ liệu vào port nối tiếp xảy ra ở cạnh đường của TXD.
b. Chế độ 1 (UART 8 bit với tốc độ baud thay đổi):
Ở chế độ 1, port nối tiếp của 8051 làm việc như một UART 8 bit
với tốc độ baud thay đổi được. Một UART (Bộ thu phát đồng bộ vạn
năng) là một dụng cụ thu phát dữ liệu nối tiếp với mỗi ký tự dữ liệu đi
trước là bit start ở mức thấp và theo sau bit stop ở mức cao. Đôi khi

xen thêm bit kiểm tra chẵn lẻ giữa bit dữ liệu cuối cùng và bit stop.
23
Hoạt động chủ yếu của UART là chuyển đổi song song sang nối tiếp với
dữ liệu nhập.
Ở chế độ 1, 10 bit được phát trên TXD hoặc thu trên RXD.
Những bit đó là: 1 bit start (luôn luôn là 0), 8 bit dữ liệu (LSB đầu tiên)
và 1 bit stop (luôn luôn là 1). Với hoạt động thu, bit stop được đưa vào
RB8 trong SCON. Trong 8051 chế độ baud được đặt bằng tốc độ báo
tràn của bộ đònh thời1.
c. Chế độ 2 (UART 9 bit với tốc độ baud cố đònh):
Khi SM1 = 1 và SM0 = 0, cổng nối tiếp làm việc ở chế độ 2, như
một UART 9bit có tốc độ baud cố đònh, 11 bit sẽ được phát hoặc
thu:1bit start, 8 bit data, 1 bit data thứ 9 có thể được lập trình và 1 bit
stop. Khi phát bit thứ 9 là bất cứ gì đã được đưa vào TB8 trong SCON
(có thể là bit Parity) .Khi thu bit thứ 9 thu được sẽ ở trong RB8. Tốc độ
baud ở chế độ 2 là 1/32 hoặc 1/16 tần số dao động trên chip.
d. Chế độ 3 (UART 9 bit với tốc độ baud thay đổi):
Chế độ này giống như ở chế độ 2 ngoại trừ tốc độ baud có thể lập
trình được và được cung cấp bởi Timer.Thật ra các chế độ 1, 2, 3 rất
giống nhau. Cái khác biệt là ở tốc độ baud (cố đònh trong chế độ 2, thay
đổi trong chế độ 1 và 3) và ở số bit data (8 bit trong chế độ 1,9 trong
chế độ 2 và 3).
4. Khởi động và truy xuất các thanh ghi cổng nối tiếp:
Cho Phép Thu:
Bit cho phép bộ thu (REN = Receiver Enable) trong thanh ghi
SCON phải được đặt lên 1 bằng phần mềm để cho phép thu các ký tự
thông thường thực hiện việc này ở đầu chương trình khi khởi động
cổng nối tiếp, bộ đònh thời…
Bit dữ liệu thứ 9:
Bit dữ liệu thứ 9 cần phát trong các chế độ 2 và 3 phải được nạp

vào trong TB8 bằng phần mềm. Bit dữ liệu thứ 9 thu được đặt ở RB8.
Phần mềm có thể cần hoặc không cần bit dữ liệu thứ 9, phụ thuộc vào
24
đặc tính kỹ thuật của thiết bò nối tiếp sử dụng (bit dữ liệu thứ 9 cũng
đóng vai trò quan trọng trong truyền thông đa xử lý )
Thêm vào bit chẵn lẻ:
Thường sử dụng bit dữ liệu thứ 9 để làm bit chẵn lẻ cho một ký
tự. Như đã nhận xét ở chương trước, bit P trong từ trạng thái chương
trình (PSW) được đặt lên 1 hoặc bò xoá bởi chu kỳ máy để thiết lập
kiểm tra chẵn với 8 bit trong thanh tích lũy.
Các cờ ngắt:
Hai cờ ngắt thu và phát (RI và TI) trong SCON đóng một vai trò
quan trọng trong truyền thông nối tiếp dùng 8051. Cả hai bit được đặt
lên 1 bằng phần cứng, nhưng phải được xoá bằng phần mềm.
5. Tốc độ baud của port nối tiếp:
Như đã nói, tốc độ baud cố đònh ở các chế độ 0 và 2. Trong chế
độ 0 nó luôn luôn là tần số dao động trên chip được chia cho 12. Thông
thường thạch anh ấn đònh tần số dao động trên chip nhưng cũng có thể
sử dụng nguồn xung nhòp khác.
Mặc nhiên sau khi reset hệ thống, tốc độ baud chế độ 2 là tần số
bộ dao động chia cho 64, tốc độ baud cũng bò ảnh hưởng bởi 1 bit trong
thanh ghi điều khiển nguồn cung cấp (PCON) bit 7 của PCON là bit
SMOD. Đặt bit SMOD lên 1 làm gấp đôi tốc độ baud trong các chế độ
1, 2 và 3. Trong chế độ 2, tốc độ baud có thể bò gấp đôi từ giá trò mặc
nhiên của 1/64 tần số dao động (SMOD=0) đến 1/32 tần số dao động
(SMOD=1)
Các tốc độ baud trong các chế độ 1 và 3 được xác đònh bằng tốc
độ tràn của bộ đònh thời 1. Vì bộ đònh thời hoạt động ở tần số tương đối
cao, tràn bộ đònh thời được chia thêm cho 32 (hoặc 16 nếu SMOD =1 )
trước khi cung cấp tốc độ xung nhòp cho port nối tiếp.

V. HOẠT ĐỘNG NGẮT:
1. Giới thiệu:
25
Ngắt là hoạt động ngừng tạm thời một chương trình này để thi
hành một chương trình khác. Các ngắt có một vai trò quan trọng trong
thiết kế và khả năng thực thi của vi điều khiển. Chúng cho phép hệ
thống đáp ứng không cùng lúc tới một công việc và giải quyết một
công việc đó trong khi một chương trình khác đang thực thi. Một hệ
thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc đồng
thời.
Dó nhiên CPU không thể thực thi nhiều hơn một lệnh ở một thời
điểm nhưng CPU có thể ngưng tạm thời việc thực thi một chương trình
để thực thi một chương trình khác, rồi quay về chương trình đầu khi có
yêu cầu ngắt. Chương trình xủ lý một ngắt được gọi là chương trình
phục vụ ngắt (ISR : Interrupt Sevice Reutine).
2. Tổ chức ngắt:
Có 5 nguyên nhân tạo ra ngắt đối với 8051: hai ngắt do bên
ngoài, hai ngắt do bộ đònh thời và một ngắt do port nối tiếp, tất cả các
nguồn ngắt bò cấm sau khi reset hệ thống và cho phép bởi phần mềm.
a. Cho phép và không cho phép ngắt:
Mỗi nguồn ngắt được cho phép hoặc không cho phép từng ngắt
một qua thanh ghi chức năng đặt biệt đònh đòa chỉ bit, thanh ghi cho
phép ngắt IE (Interrupt Enable) ở đòa chỉ 0A8H. Cũng như các bit cho
phép mỗi nguồn ngắt, có một bit cho phép hoặc cấm toàn bộ được xóa
để cấm tất cả các ngắt hoặc được đặt lên 1 để cho phép tất cả các
ngắt.
b. Ưu tiên ngắt:
Mỗi nguồn ngắt đïc lập trình riêng vào một trong hai mức ưu
tiên qua thanh ghi chức năng đặc biệt được đòa chỉ bit, thanh ghi ưu
tiên ngắt IP (Interrupt priority) ở đòa chỉ 0B8H.

Các ngắt ưu tiên được xóa sau khi reset hệ thống, thanh ghi IP sẽ
mặc đònh tất cả các ngắt ở mức ưu tiên thấp.
c. Chuỗi vòng:
26
Nếu có hai ngắt có cùng mức ưu tiên xuất hiện đồng thời, chuỗi
vòng cố đònh sẽ xác đònh ngắt nào được phục vụ trước. Chuỗi vòng này
sẽ là: ngắt ngoài 0, ngắt do bộ đònh thời 0, ngắt ngoài 1, ngắt do bộ đònh
thời 1, ngắt do port nối tiếp.
3. Xử lý ngắt:
Khi có một ngắt xuất hiện và được CPU chấp nhận, chương trình
chính bò ngắt. Những hoạt động sau xảy ra:
- Hoàn tất việc thực thi lệnh hiện hành.
- Bộ đếm chương trình PC được cất vào ngăn xếp.
- Trạng thái của ngắt hiện hành được lưu giữ lại.
- Các ngắt được chặn lại ở mức ngắt.
- Bộ đếm chương trình PC được nạp đòa chỉ vector của trình
phục vụ ngắt ISR.
- ISR được thực thi.
ISR thực thi và đáp ứng ngắt. ISR hoàn tất bằng lệnh RET1.
Điều này làm lấy lại giá trò cũ của PC từ ngăn xếp và lấy lại trạng thái
ngắt cũ. Chương trình lại tiếp tục thi hành tại nơi mà nó dừng.
a. Các Vector ngắt:
Khi chấp nhận ngắt, giá trò được nạp vào PC được gọi là Vector
ngắt. Nó là đòa chỉ bắt đầu của ISR cho nguồn tạo ngắt. Các Vector
ngắt được cho ở bảng sau:
Ngắt do Cờ Đòa chỉ vector
Reset hệ thống
Ngắt ngoài 0
Bộ đònh thời 0
Ngắt ngoài 1

Bộ đònh thời 1
Port nối tiếp
RST
IE0
TF0
IE1
TF1
TI hoặc RI
0000H
0003H
000BH
0013H
001BH
0023H
Bảng 2.1: Các vector ngắt.
27

×