Âäư ạ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à
:
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) ở
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 4s.
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
TXD*
RXD*T1*
T0*
P
0
P
1
P
2
P
3EA ALE
RST PSENCác thanh
ghi khác
128 byte
RAM
ROM
0K-8031/8032
4K-8051
8K-8052
Timer 1
Đò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
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
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
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
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.
E0
E7
E6
E5
E4
E3
E2
E1
E0
ACC
D0
D7
D6
D5
D4
D
3
D2
D1
2E
77
76
75
74
73
72
71
70
B0
B7
B6
B5
B4
B3
B2
B1
B0
A8
AF AC
AB
AA
A9
A8
IE
2B
5F
5E
5D
5C
5B
5A
59
58
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
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
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
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
Ý 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)
- 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.
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
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 ở
độ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:
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.
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
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
, 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ổ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
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
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
D
2
D
1
D
0
0
X
X
X CW
Bit select
PC
7
PC
6
PC
5
PC
4
PC
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.