Tải bản đầy đủ (.pdf) (71 trang)

ROBOT ĐO ĐƯỜNG

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 (849.1 KB, 71 trang )

Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
1
CHƯƠNG 1: TỔNG QUAN.
1.1. 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.
1.2. 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.
1.3. 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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
2
1.4. KHÁI QUÁT VỀ ĐỀ TÀI:
1.4.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.
1.4.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.
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.
5
4
3
2
1
6
7
LED 1 LED 2
Go/Stop
1 2
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
3
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 “R un”
đượ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.
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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
4
CHƯƠNG 2: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN MCS-51.
2.1. CẤU TẠO VI ĐIỀU KHIỂN 8051:
2.1.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:
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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
5
2.1.1. 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.

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


Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
6
b. Sơ đồ chân 8051:

Hình 2.2 : Sơ đồ chân của 8051.
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ỉ.
- 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:
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
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
7
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
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
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
8
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 ở 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
).
c. 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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
9

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.
d. 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.
Chân
Port
Ghi
chốt
Đọc
chốt
Đọc
chân
Bus nội của 8051
D Q
Chốt
Port
Vcc
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
10

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.
d.1. 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
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
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
11
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.
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).
d.2. 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, A N D , O R , … 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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
12
d.3. 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.
Y Ù 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 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.
e. 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).
2.2. 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.
2.2.1. Các kiểu đònh đòa chỉ (addressing mode):
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
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
13
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.2.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.
2.3. HOẠT ĐỘNG ĐỊNH THỜI CỦA 8051:
2.3.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
.
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
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
14
(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.3.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.
2.3.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.
2.3.4. Các chế độ đònh thời và cờ tràn:
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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
15
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 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.
2.3.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.
2.3.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.
2.3.7. Khởi động và truy xuất các thanh ghi đònh thời:
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.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
16
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.
2.4. HOẠT ĐỘNG CỦA PORT NỐI TIẾP:
2.4.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.4.2. Thanh ghi điều khiển port nối tiếp:
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 .
2.4.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
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
17
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. 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).
2.4.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 đặ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ý).
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
18
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.
2.4.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.
2.5. HOẠT ĐỘNG NGẮT:
2.5.1. Giới thiệu:
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).
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
19

2.5.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:
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.
2.5.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:
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
20
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.
Vector reset hệ thống (RST ở đòa chỉ 0000H) nó giống như một ngắt. Nó
ngắt chương trình chính và tải vào PC một giá trò mới.
K hi chỉ đến m ột ngắt “cờ gây ngắt tự động bò xóa bởi phần cứng, trừ ra
R1, T1 cho các ngắt cổng nối tiếp. Vì có hai nguồn có thể có cho ngắt này,
không thực tế để CPU xóa cờ ngắt này. Các bit phải được kiểm tra trong ISR để
xác đònh nguồn ngắt và cờ tạo ngắt sẽ được xóa bằng phần mềm.
b. Các ngắt của 8051:
Các ngắt do bộ đònh thời:
Các ngắt do bộ đònh thời xảy ra khi các thanh ghi đònh thời (TLx / THx)
tràn và set cờ tràn TFx lên 1. Các cờ tràn TFx không bò xóa bằng phần mềm do
khi các ngắt được cho phép, TFx tự động được xóa bằng phần cứng khi CPU trỏ
tới trình phục vụ ngắt.
Các ngắt cổng nối tiếp:
Ngắt cổng nối tiếp xảy ra khi hoặc cờ ngắt phát TI hoặc cờ ngắt thu RI
được đặt lên 1. Ngắt phát xảy ra khi một ký tự đã được nhận xong và đang đợi
trong SBUF để được đọc.
Cờ gây ra ngắt cổng nối tiếp không bò xóa bằng phần cứng khi CPU trỏ tới
trình phục vụ ngắt do có hai nguồn ngắt cổng nối tiếp TI và RI. Nguồn ngắt phải
được xác đònh trong ISR và cờ tạo ngắt sẽ được xóa bằng phần mềm.
Các ngắt ngoài:
Các ngắt ngoài xảy ra khi có một mức thấp hoặc cạnh xuống trên chân
INT0 hoặc INT1 của vi điều khiển.
Các cờ tạo ngắt này là các bit IE0 và IE1 trong thanh ghi TCON. Khi
quyền điều khiển đã trỏ tới trình phục vụ ngắt, cờ tạo ra ngắt chỉ được xóa nếu
ngắt được tích cực bằng cạnh xuống. Nếu ngắt được tích cực theo mức, thì
nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng.
Âäư ạn täút nghiãûp Trang

G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
21
CHƯƠNG 3: KHẢO SÁT CÁC IC NGOẠI VI
3.1. VI MẠCH GIAO TIẾP NGOẠI VI 8255A:
3.1.1. Cấu trúc của 8255A:
8255A là IC ngoại vi được chế tạo theo công nghệ LSI dùng để giao tiếp song song
giữa vi xử lý và thiết bò bên ngoài.
Mạch 8255A thường được gọi là mạch phối ghép vào/ra lập trình được
(Programmable Peripheral Interface – PPI). Do khả năng mềm dẻo trong trong các ứng
dụng thực tế nó là mạch phối ghép được dùng rất phổ biến cho các hệ vi xử lý 8 bit – 16
bit.
a. Sơ đồ khối của 8255A:


Bộ đệm truyền dữ liệu:
Bộ đệm 8 bits, 2 chiều, 3 trạng thái dùng để giao tiếp 8255 với CPU. Số liệu được
phát hay nhận bởi bộ đệm khi thực hiện lệnh IN, OUT bởi CPU. Các từ điều khiển cũng
truyền qua dữ kiện.
Phần kiểm soát đọc ghi:
Chức năng của khối này là kiểm soát tất cả các sự truyền đạt bên trong và bên
ngoài của từ điều khiển và dữ kiện. Nó nhận ngõ vào từ tuyến đòa chỉ và sự điều khiển
của CPU, phát ra các lệnh cần thiết cho cả hai nhóm A và B.
CS\ tác động mức thấp cho phép truyền tin giữa 8255 và CPU.
DATA
BUS
BUFFER



READ

WRITE
CONTROL
LOGIC
GROUP
A
CONTROL
GROUP
B
CONTROL
GROUP
A
PORT C
UPPER
GROUP
B
PORT C
LOWER

GROUP
A
PORT A

GROUP
B
PORT B
+5V
GND
I/O
PA7 – PA0
I/O

PC7 – PC4
I/O
PC3 – PC0
I/O
PB7 – PB0
WR\
RD\
A1
A0
RESET
CS\
Hình 3.1: Sơ đồ khối 8255A.
POWER
SUPPLIES
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
22
RD\ tác động mức thấp cho phép 8255 gởi dữ kiện đến CPU trên tuyến dữ kiện chủ
yếu là cho phép CPU đọc dữ kiện từ 8255.
WR\ tác động mức thấp cho phép CPU gởi từ điều khiển hay dữ kiện ra 8255.
RESET tác động mức cao cho phép xóa các thanh ghi bên trong gồm thanh ghi điều
khiển và các cổng A, B, C ở mode nhận.
A
0
, A
1
: (Address bus) hai đường đòa chỉ xác đònh P
A
, P
B

, P
C
và từ điều khiển CW.
A1
A0
Cổng
0
0
1
1
0
1
0
1
PA
PB
PC
CW
Điều khiển nhóm A và B:
Cấu hình hoạt động của mỗi nhóm được lập trình bởi phần mềm, chủ yếu là CPU
xuất phát từ điều khiển đến 8255. Từ điều khiển gồm các thông tin như chế độ (mode), bit
set, bit reset, v.v … sẽ khởi động cấu hình hoạt động của 8255. T hanh ghi từ điều khiển chỉ
có thể viết vào mà không đọc ra.
Các cổng A, B, C:
8255 gồm 3 cổng A, B và C. Mỗi cổng gồm 8 bits. Các cổng này có thể được lập
trình bởi phần mềm để có thể hoạt động ở chế độ thích hợp.
Cổng A: gồm bộ đệm, chốt ngõ ra 8 bits và chốt ngõ vào 8 bits.
Cổng B: gồm bộ đệm, chốt ngõ ra 8 bits và chốt ngõ vào 8 bits.
Cổng C: đệm và chốt ngõ ra 8 bits và đệm 8 bits ngõ vào (không chốt).
Cổng C có thể chia làm 2 phần, mỗi phần 4 bits cho điều khiển mode. Mỗi phần

được dùng kết hợp với cửa A hay B tạo nên các tín hiệu điều khiển.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
23
b. Sơ đồ chân và sơ đồ Logic:

c. Tên các chân:
D7 - D0
:
Bus dữ liệu.
RESET
:
Ngõ vào reset.
CS\
:
Chọn chip.
WR\
:
Ghi số liệu từ 8255.
RD\
:
Đọc số liệu từ 8255.
A0, A1
:
Bus đòa chỉ.
PA7 – PA0
:
Cổng A.
PB7 – PB0
:

Cổng B.
PC7 – PC0
:
Cổng C.
V
CC

:
Chân nối lên nguồn 5V.
GND
:
Chân nối đất.
3.1.2. Các mode hoạt động:
8255 có 4 mode hoạt động:
a. Mode Bit Set/Reset:
Mode bit set/reset có thể thiết lập hay xoá bit cho cổng PC, thường dùng tạo xung
chốt số liệu. Mỗi lần xuất ra một từ điều khiển đến IC 8255A với D7 = 0, chỉ tác động đến
1 bit của cổng C.
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
20


40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

PA4
PA5
PA6
PA7
WR\
RESET
D0
D1
D2
D3
D4
D5
D6
D7
VCC
PB7
PB6
PB5
PB4
PB3
PA3
PA2
PA1
PA0
RD\
CS\
GN
D
A1
A0

PC7
PC6
PC5
PC4
PC0
PC1
PC2
PC3
PB0
PB1
PB2
8255A
Hình 3.2 : Sơ đồ chân 8255A.
PA7-PA0
PC7-PC4
PC3-PC0
PB7-PB0
D7-D0
Hình 3.3 : Sơ đồ Logic 8255A
RD

WR

RESET
A0
A1
CS

Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa

24

Cấu trúc từ điều khiển CW trong trường hợp 8255 làm việc ở mode 0, 1 hoặc 2 được
biểu diễn như sau:

b. Mode 0 (Vào/ra số liệu cơ bản):
K hông có “bắt tay”, dữ kiện được ghi và đọc m ột cách đơn giản đến phức tạp hay từ
1 cổng đã chỉ ra. Các đặc tính cơ bản ở mode 0:
- Hai cổng 8 bits và 2 cổng 4 bits
- Bất kỳ cửa nào cũng có thể là ra hay vào
- Ngõ ra được chốt.
- Ngõ vào không chốt
- Cho phép 16 dạng vào/ra ở mode
c. Mode 1 (Vào/ra số liệu 1 chiều có bắt tay):
Ở mode 1, cổng A và B dùng những đường ở cổng C để phát hay nhận các tín hiệu
bắt tay, số liệu vào hay ra đều được chốt.
D7
D6
D5
D4
D3
D2
D1
D0

Nhóm B
PC
L

0 : output

1 : input
PB
0 : output
1 : input
0 : mode 0
1 : mode 1
Nhóm A
PC
H

0 : output
1 : input
PA
0 : output
1 : input
00 : mode 0
01 : mode 1
1X : mode 2
Bit set/reset flag
1 - active
D
7
D
6
D
5
D
4
D
3

D
2
D
1
D
0

0
X
X
X





CW
Bit select
PC
7
PC
6

PC
5

PC
4

PC

3

PC
2

PC
1

PC
0

1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1

1
0
0
0
0

0: xoá.
1: thiết lập.
Âäư ạn täút nghiãûp Trang
G.v.h.d : tháưy Lã Xỉïng S.v.t.h : Tráưn Âçnh Khoa
25
d. Mode 2 : (Vào/ra số liệu 2 chiều có tín hiệu bắt tay):
Các đặc tính cơ bản của mode 2:
- Chỉ dùng cho cổng A.
- 1 cổng 2 chiều 8 bits (cổng A) và một cổng điều khiển 5 bits (cổng C) cho cổng
A.
- Cả vào/ra đều có chốt.
Khi reset, tất cả các cổng được thiết lập ở chế độ nhập (input), tức là sau khi reset IC
8255A có thể duy trì ở chế độ nhập mà không cần khởi động gì thêm. Trong khi thực hiện
chương trình hệ thống, có thể chọn bất kỳ mode nào bằng cách xuất đến IC 8255A từ điều
khiển. Điều này cho phép chỉ cần một IC 8255A mà có thể phục vụ nhiều kiểu thiết bò
ngoại vi.
Các chế độ cổng A và B có thể đònh nghóa riêng biệt. Còn cổng C được chia làm hai
phần cho hai nhóm tùy yêu cầu đònh nghóa chế độ cổng A và B. Trong thanh ghi từ điều
khiển bit cao nhất D
7
= 0 xác đònh mode bit set/reset, D
7
= 1 xác đònh mode 0, 1, 2 cho
8255.

Không có lệnh đặc biệt để đọc thông tin trạng thái từ điều khiển CW. Do đó, phép
đọc bình thường cổng C được dùng để kiểm tra trạng thái của IC 8255A.
3.2. KHẢO SÁT BỘ NHỚ EPROM 2764:
Các bộ nhớ EPROM thông dụng tồn tại dưới nhiều kiểu mạch khác nhau. Họ 27XX
có các loại vi m ạch sau:2708 (1K x8), 2716 (2K x8), 2732 (4K x8), 2764 (8K x8) … với T
ac
=
250_ 450 ns tuỳ theo loại EPROM cụ thể. Số đường đòa chỉ thay đổi tùy thuộc vào dung
lượng của mỗi loại EPROM, số đường dữ liệu là 8. Hoạt động của họ 27XX là tương tự
nhau, ở đây do thời lượng có hạn nên chỉ khảo sát một EPROM được sử dụng trong mạch là
EPROM 2764.
3.2.1. Sơ đồ chân:













Trong đó:
A0 – A12 : 13 đường đòa chỉ vào.

Hình 3.4: Sơ đồ chân EPROM 2764.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×