Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
1
ĐỀ TÀI THIẾT KẾ HỆ VI XỬ LÝ 8 BIT
YÊU CẦU
Phần cứng :
1. Bộ vi xử lý 8 bit (8085, 89C51 ….)
2. Bộ nhớ chương trình ROM : 8KB từ địa chỉ 0000H
3. Bộ nhớ dữ liệu RAM 8kB có địa chỉ tuỳ chọn.
4. Cổng vào tương tự 8 kênh nhận tín hiệu nhiệt độ từ 0 – 10V
tương ứng vói nhiệt độ từ 0 – 200 độ C.
5. Nhập dữ liệu vào từ bàn phím 16 phím
6. Khối hiển thị dữ liệu dùng màn hình tinh thể
lỏng LCD.
Phần mềm :
1. Tín hiệu cho phép chạy và dừng chương trình.Tín hiệu dừng
khẩn cấp.
2. Đọc tín hiệu từ 8 kênh đo lư trữ trong vùng nhớ RAM .
3. Sau mỗi lần đọc tính giá trị trung bình của nhiệt độ và gửi kết
quả ra cổng hiển thị bằng LCD
4. Chương trinh dừng lại báo động bằng còi nếu xảy ra một số
điều ki
ện sau:
- Giá trị trung bình < hoặc > giá trị min hoặc max tương ứng
cho trước.Các giá trị max & min này được đặt ở trong 2 ô
nhớ RAM.
- Có 4 kênh đo vượt quá hoặc nhỏ hơn giá trị giới hạn cho
phép so với giá trị trung bình.
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
2
PHẦN I
THIẾT KẾ MẠCH PHẦN CỨNG
CHƯƠNG I
định hướng thiết kế
Thiết kế một hệ vi xử lý bao gồm cả việc thiết kế tổ chức phần cứng và
viết phần mềm cho nền phần cứng mà ta thiết kế. Việc xem xét giữa tổ chức
phần cứng và chương trình phần mềm cho một thiết kế là một vấn đề cần phải
cân nhắc. Vì khi tổ chức phần cứng càng phức tạp, càng có nhiều chức nă
ng
hỗ trợ cho yêu cầu thiết kế thì phần mềm càng được giảm bớt và dễ dàng thực
hiện nhưng lại đẩy cao giá thành chi phí cho phần cứng, cũng như chi phí bảo
trì. Ngược lại với một phần cứng tối thiểu lại yêu cầu một chương trình phần
mềm phức tạp hơn, hoàn thiện hơn; nhưng lại cho phép bảo trì hệ thống dễ
dàng hơn cũ
ng như việc phát triển tính năng của hệ thống từ đó có thể đưa ra
giá cạnh tranh được.
Từ yêu cầu và nhận định trên ta có những định hướng sơ bộ cho thiết kế
như sau:
1. Chọn bộ vi xử lý:
Từ yêu cầu dùng VXL 8 bit ta dự kiến dùng các chip vi điều khiển thuộc
họ MCS-51 của Intel, mà cụ thể ở đây là dùng chip 89C51 vì những lý do sau:
+ AT89C51 thuộc họ MCS-51, là chip vi điều khiển 8 bít đơn chíp
CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp và có 4 Kb bộ nhớ
ROM Flash xoá được lập trình được. Chíp này được sản xuất dựa theo công
nghệ bộ nhớ không mất nội dung có độ tích hợp cao của Atmael
+ AT89C51 có các đặc trưng chuẩn sau: 4Kb Flash, 128 byte RAM, 32
đường xuất nhập, bộ định thời / đếm 16 bit, một cấu trúc ngắn hai mức ưu tiên
và 5 nguyên nhân ngắt, một port nối tiếp song song công, mạch dao động và
mạch dao động và mạch tạo xung trên chíp.
Vì những lý do trên mà việc lựa chọn vi điều khiển 89C51 là một giải
pháp hoàn toàn phù hợp cho thiết kế.
2. Tổ chức ngoại vi:
+ Xử lý tín hiệu vào ta dùng thiết bị chuyển đổi tương tự/ số (ADC) có 8
kênh vào tương tự kết nối với 8 tín hiệu đo nhiệt độ từ 0 ÷ 10V tương ứng với
nhiệt độ từ 0
o
÷ 200
o
C.
+ Xử lý việc hiển thị kết quả nhiệt độ trung bình ta dùng 3 LED 7 thanh
để hiển thị tương ứng với các nhiệt độ trong dải 0 ÷ 200
0
C.
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
3
+ Tín hiệu cho phép chạy được xử lý bằng cách dùng một nút ấn Reset
hệ thống.
+ Tín hiệu báo động được xử lý bằng một còi báo động kết nối với một
cổng bất kỳ phục vụ cho vào/ra.
+ Nếu có yêu cầu dùng các phím để định các mode hoạt động, cũng như
đặt lại giá trị MAX và MIN thì bàn phím cũng phải được kết nối với các cổng
giao tiếp vào/ra (ở đây yêu cầu dùng 8255).
T
ất cả các thiết bị phải được kết nối với nhau thông qua các bus cần thiết
gồm bus dữ liệu, bus địa chỉ và bus điều khiển.
Sơ đồ khối cho thiết kế phần cứng của hệ thống như sau:
VXL
89C51
Khối vào
tương tự
8 kênh
Khối
hiển thị
Control Bus
Address Bus
Mạch
giao
tiếp
8255
Data Bus
ROM
RAM
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
4
CHƯƠNG II
NỘI DUNG THIẾT KẾ
I. tổ chức phần cứng hệ VXL89C51.
1. Hệ vi xử lý AT89C51:
1.1 Sơ đồ chân hệ vi xử lý AT89C51:
Port 0
Port 0 là port xuất nhập 8 bit hai chiều cực D hở.
Port 0 còn được cấu hình làm bus địa chỉ ( byte thấp ) và bus dữ liệu đa
hợp trong khi truy xuất bộ nhớ dữ liệu ngoài vcà bộ nhỡ chư[ng trình ngoài.
Port 0 cũng nhận các byte mã trong khi lập trình cho Flash và các byte
mã trong khi kiểm tra chương trình.
Port 1
Port 1 là port xuất nhập 8 bít.
Port 1 cũng là byte địa chỉ thấp trong thừi gian lập trình cho Flash và
kiểm tra chương trình.
Port 2
Port 2 là port xuất nhậ
p 8 bit hai chiều.
Port 2 tạo ra byte cao của địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ
chương trình ngoài và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng
địa chỉ 16 bit
Port 2 cũng nhận các địa chỉ cao và tín hiệu điều khiển trong thời gian
lập trình cho Flash và kiểm tra chương trình.
Port 3
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
5
Port 3 là port xuất nhập 8 bit hai chiều.
Port 3 cũng còn được dùng làm chức năng khác của AT89C51 các chức
năng được liệt kê như sau:
Chân của port Chức năng
P3.0 RxD ( ngõ vào của port nối tiếp )
P3.1 TxD ( ngõ ra của port nối tiếp )
P3.2
0INT
( ngõ và ngắt ngoài 0 )
P3.3
1INT
( ngõ vào ngắn ngoài 1 )
P3.4 TO ( ngõ vào bên ngoài của bộ định thời 0 )
P3.5 T1 ( ngõ vào bên ngoài của bộ định thời 1 )
P3.6
RW
( điều khiển bộ nhớ dữ liệu ngoài )
P3.7
RD
( điều khiển đọc bộ nhớ dữ liệu ngoài )
Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và
điều khiển chương trình.
RST
Ngõ vào reset.
ALE/
PROG
xung của ngõ ra cho phép chốt địa chỉ ALE cho phép chốt
byte thấp của địa chỉ trong thời gian truy xuất bộ nhớ ngoài. Chân này cũng
được dùng làm ngõ vào xung lập trình (
PROG
) trong thời gian lập trình
Flash.
PSEN
Chân cho phép bộ nhớ chương trình ngoài , điều khiển truy xuất bộ nhớ
chương trình ngoài.
pp
V/EA
Chân cho phép truy nhập bộ nhớ ngoài
EA
, phải được nối với GND để
cho phép chíp vi điều khiển tìm nạp lệnh tờ các vị trí ô nhớ của bộ nhớ
chương trình ngoài
Chân
EA
nối với V
CC
để thực hiện chương trình bên trong chíp.
pp
V/EA
còn nhận điện áp cho phép lập trình V
PP
trong thời gian lập
trình cho Flash , điện áp này cấp cho bộ phận có yêu cầu điện áp 12V
XTAL1
Ngõ vào đến mạch khuyếch đại dảo của mạch dao động và ngõ đến
mạch xung clock bên trong chíp.
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
6
XTAL2
Ngõ ra từ mạch khuyếch đại đảo của mạch dao động.
1.2 Tổ chức bộ nhớ:
1.2.1 Cấu trúc chung của bộ nhớ:
Tất cả các vi điều khiển thuộc họ MCS-51 đều phân chia bộ nhớ thành
hai vùng địa chỉ cho bộ nhớ dữ liệu và bộ nhớ chương trình. Sự phân chia
logic giữa bộ nhớ dữ liệu và bộ nhớ chương trình cho phép truy nhập bộ nhớ
dữ liệu bằng 8 bit địa chỉ giúp cho việc lưu trữ và thao tác dữ liệu nhanh
hơn.Tuy nhiên, chúng ta có thể sử
dụng địa chỉ bộ nhớ dữ liệu 16 bit thông
qua thanh ghi DPTR.
Bộ nhớ chương trình là loại bộ nhớ chỉ cho phép đọc, không cho phép
ghi. Một số vi điều khiển được tích hợp sẵn bộ nhớ chương trình bên trong
với dung lượng khoảng 4kbyte hay 8 kbyte, số còn lại phải sử dụng bộ chương
trình mở rộng mà quá trình truy nhập được thực hiện thông qua sự điều khiển
bằng tín hi
ệu PSEN (Progam Strobe Enable).
Tuy nhiên, vi điều khiển 8051 cho phép ta sử dụng đến 64kbyte bộ nhớ
chương trình bằng cách sử dụng cả bộ nhớ chương trình bên trong và bên
ngoài.
Bộ nhớ số liệu chiếm giữ vùng địa chỉ phân chia của bộ nhớ chương
trình. Dung lượng của bộ nhớ dữ liệu có thể mở rộng lên tới 64 kbyte. Trong
quá trình truy nhập bộ nhớ số liệu, CPU phát ra các tín hiệu đọc và tín hiệu
vi
ết số liệu thông qua các chân RD và WR.
00H
0000H
Bộ nhớ Chương trình
B
ộ nhớ
Bộ
nhớ mở
rộng
Bộ
nhớ
rộng
|PSEN |WR |RD
FFH
|EA=1
Bộ nhớ
trong
|EA=0
Bộ nhớ
ngoài
FFFFH
Hình 2.3: Cấu trúc bộ nhớ của họ MCS-51.
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
7
Chúng ta có thể kết hợp bộ nhớ chương trình mở rộng với bộ nhớ số
liệu mở rộng bằng cách cho hai tín hiệu RD và PSEN qua một cổng logic
AND, lối ra của cổng AND này sẽ tạo tín hiệu đọc cho bộ nhớ mở rộng.
1.2.2 Bộ nhớ chương trình:
Sau khi Reset, CPU bắt đầu thực hiện chương trình từ địa chỉ 0000H.
Vùng đầu của bộ nhớ chương trình là vùng chứa các vector ngắ
t, mỗi ngắt
được phân chia một vùng địa chỉ cố định trong trong bộ nhớ chương trình. Khi
xuất hiện ngắt, CPU sẽ nhảy tới địa chỉ này, đây cũng là địa chỉ đầu của
chương trình con phục vụ ngắt. Các vector ngắt cách nhau 8 byte, vì vậy nếu
chương trình con phục vụ ngắt quá dài (>8 byte) thì tại vector ngắt ta phải đặt
một lệnh nhảy không điều kiện tới vùng địa ch
ỉ khác chứa chương trình con
phục vụ ngắt.
1.2.3 Bộ nhớ số liệu:
Phía bên phải của Hình 2.3 biểu diễn không gian bộ nhớ dữ liệu của
MCS-51. Chúng ta có thể sử dụng tới 64 Kbyte bộ nhớ số liệu ngoại vi. Độ
rộng bus địa chỉ của bộ nhớ số liệu ngoài có thể là 8 bit hoặc 16 bit. Bus địa
chỉ rộng 8 bit thường được sử dụng
để liên kết với một hoặc nhiều đường vào
ra khác để định địa chỉ cho RAM theo trang. Trong trường hợp bus địa chỉ
rộng 16 bit, cổng P2 sẽ phát ra 8 bit địa chỉ cao còn cổng P1 sẽ phát ra 8 bit
địa chỉ thấp. Bằng cách này, ta có thể truy nhập trực tiếp lên bộ nhớ dữ liệu
ngoài với độ lớn tối đa là 64 Kbyte.
Bộ nhớ số liệu trong được chia ra làm 3 vùng:
+128 byte cao.
+128 byte thấp.
+Vùng dành cho các thanh ghi chức nă
ng đặc biệt (SFR).
Địa chỉ của bộ nhớ số liệu trong luôn là 8 bit, và có thể quản lý được
256 byte bộ nhớ.
2. Tổ chức bộ nhớ (Memory Map):
Từ cấu trúc của vi điều khiển 89C51 giới thiệu ở chương I và yêu cầu
thiết kế ta tiến hành phân bổ các vùng nhớ như sau:
Bộ nhớ chương trình 8K ROM chia làm hai vùng:
ROM trong (On-chip) có địa chỉ vật lý: 0000H ÷ 0FFFH.
Bộ nhớ dữ liệu được mở rộng thêm 8K RAM ngoài, với địa chỉ vật
lý: 2000H ÷ 3FFFH.
Mạch ghép nối vào/ ra sử dụng IC8255 với địa chỉ c
ủa từng cấu hình
như sau:
Địa chỉ cổng PA: 4000H
Địa chỉ cổng PB: 4001H
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
8
Địa chỉ cổng PC: 4002H
Địa chỉ của từ điều khiển PSW: 4003H
Địa chỉ của ADC08098 kênh vào tương tự: 6000H ÷ 6007H.
3. Khối hiển thị :
Khối hiển thị gồm 8 LED 7 đoạn được tổ chức theo kiểu sáng luân phiên
2.5 ms một lần. LED sáng được chọn bởi 89C51 qua đường điều khiển từ
cổng P0.0 -> P0.3. Dữ liệu được hiển thị dưới dạng mã 7 thanh cũng được
89C51 gửi tới LED qua đường data. Để phù hợp giữa số liệu đưa ra cổng của
8255 (ở dạng BCD) với số liệu hiển thị ra LED 7
đoạn, ta sử dụng mạch phần
cứng. Vì vậy trong khối hiển thị ta sử dụng vi mạch SN7447 để giải mã số
BCD ra mã 7 thanh và để điều khiển bộ đèn hiển thị.
4. Khối các thiết bị giao tiếp/ghép nối.
Cổng vào ra tương tự/số dùng ADC0809. Số liệu vào tương tự từ 8 cảm
biến nhiệt độ sẽ được kết nối vào 8 cổng vào của ADC, ADC được điều khiển
bởi VXL89C51 thực hiện việc chuyển đổi số liệu sang dạng số và lưu trữ vào
một vùng nào đó trong RAM trong.
Cổng vào/ ra số dùng vi mạch PPI 8255 có khả năng lập trình thực hiện
quá trình phối hợp trao đổ
i dữ liệu; cụ thể ở đây là số liệu vào giữa ADC với
VXL và số liệu từ VXL ra LED.
Giới thiệu linh kiện và tổ chức phối ghép.
1. Thiết kế bộ nhớ:
Xem xét cấu trúc của 89C51 và yêu cầu cần 8K cho nhớ chương trình
ta thiết kế thêm vùng nhớ chương trình dùng thêm 8Kb ROM đặt ở ngoài. Đối
với yêu cầu cho nhớ dữ liệu, vì 89C51 đã có 128 bytes RAM trong và yêu cầu
cần thiết kế bộ nhớ dữ liệu là 4Kb nên để dễ dàng cho thiết kế ta sử dụng thêm
8Kb RAM ngoài để mở rộng bộ nhớ dữ liệu cho hệ thống.
¾ Bộ nhớ ROM ngoài
Thực ra thì ta có thể dùng bộ nhớ ROM ngoài là các chíp nhớ EPROM
có dung lượng 4K hoặc 8K có bán trên thị trường để mở rộng bộ nhớ.Tuy
nhiên, để cho đơn giản ta lựa chọn giải pháp là dùng bộ nhớ ROM 8k trên
chíp vi điều khiển 89S51.Như vậy sẽ đơn giản hơn rất nhiều cho thiết kế mà
vẫn phù hợp với nội dung phạm vi cho phép của chương trình.
¾ Bộ nhớ RAM ngoài
Đối với RAM ngoài ta sử dụng loại SRAM vi mạch dùng trong thiết kế
là 6264. Cũng có 13 đường địa chỉ 8 đường dữ liệu. Nó có địa chỉ
2000÷3FFF, địa chỉ này được chọn ra trong vùng địa chỉ của vi điều khiển bởi
chân /CS2 của giải mã địa chỉ. Ngoài ra còn có đường chọn vỏ khác là /CS2
được nối tích cực và có hai đườngtín hiệu yêu cầu đọc viết là /OE, /WE .
• Sơ đồ chân củ
a RAM 6264:
Thi
đổ
i
Bộ
chọ
bị n
điề
r
c
a
iết kế hệ vi x
2. Vi mạc
B
i tương san
ộ chuyển đổ
ọn kênh có
này loại trừ
ều chỉnh tỉ s
Các đặc
- Ng
- Dả
rộng thang
- Dễ
có thể ghép
- Tổn
- Thờ
- Tần
- Đả
a. Bảng ch
A
0
0
0
0
1
1
1
1
X
* ý nghĩ
- IN
- A,B
- Các
- AL
xử lý 8 bít
ch ADC08
Bộ ADC 0
ng số 8 bit,
ổi tương tự
thể chọn r
ừ khả năng
số làm cho
c điểm cơ b
guồn nuôi đ
ải tín hiệu lố
đo bằng cá
dàng giao
p trực tiếp v
ng sai số ch
ời gian chu
n số xung c
ảm bảo sai
hân lý và sơ
B C
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
X X
ĩa các chân
N0 – IN7 : 8
B,C : các tí
c chân 2.1-
LE cho phép
09:
0809 là một
bộ chọn k
ự số này sử
ra kênh cần
g cần thiết đ
ADC đễ d
bản của AD
đơn ± 5 V, h
ối vào tươn
ác giải pháp
tiếp với vi
vào kênh d
hưa chỉnh ±
uyển đổi 10
clock 10kH
số tuyến tí
ơ đồ chân c
C X
0 0
1 1
0 2
1 3
0 4
1 5
0 6
1 7
X (?)
:
8 đầu vào tư
ín hiệu chọ
-2.7: là các
p chốt số li
t thiết bị CM
kênh và mật
ử dụng phư
n chuyển đổ
điều chỉnh
dàng giao ti
DC 0809
hiệu suất c
ng tự 5V kh
áp kỹ thuật
i xử lý vì đ
dữ liệu của
±1/2LSB.
00 μs .
Hz – 1028 k
ính trong dả
của vi mạc
ương tự.
n kênh.
đầu ra số.
iệu đầu vào
MOS tích h
t bộ logic đ
ương pháp
ổi bằng 3 ch
điểm zero
iếp với các
ao.
hi nguồn n
cho từng m
đầu ra có b
hệ VXL.
kHz.
ải nhiệt độ
ch ADC080
o.
hợp với mộ
điều khiển
chuyển đ
ổ
hân chọn đ
bên ngoài
bộ vi xử l
ý
nuôi là +5V
mạch cụ thể
bộ đệm 3 tr
từ –40
0
C ÷
09.
ột bộ chuyể
tương thích
ổi xấp xỉ. B
địa chỉ. Thi
và khả nă
n
ý.
V. Có thể m
ể.
rạng thái nê
÷ 85
O
C.
ển
h.
Bộ
ết
ng
mở
ên
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
10
- Start: xung cho phép bắt đầu chuyển đổi.
- Clk:đầu vào xung clock
- Ref(+): điện áp vào chuẩn +5v
- Ref(-): điện áp vào chuẩn 0
- Vcc: nguồn cung cấp
b. Cấu trúc bên trong của ADC 0809
Cấu trúc bên trong của ADC0809 được thể hiện ở hình vẽ dưới:
Hoạt động chuyển đổi:
Các bit địa chỉ ở lối vào A,B,C từ bộ giải mã địa chỉ sẽ chốt và xác định
kênh đầu vào nào được chọn. Khi một kênh được chọn đồng thời yêu cầu
START, ALE được tích cực, yêu cầu độ rộng xung START không nhỏ hơn
200ns. Giá trị điện áp cần được chuyển đổ
i sẽ được chốt lại ở cổng vào tương
ứng xung Start bắt đầu chuyển đổi. Sau xung START khoảng 10μs đầu ra
EOC (end of convert) lúc này xuống thấp thực sự bắt đầu quá trình chuyển
đổi. Trong suốt quá trình chuyển đổi EOC luôn ở mức tích cực thấp, đồng thời
đầu ra 3 trạng thái của ADC0809 bị thả nổi. Sau khoảng 100 μs, ADC0809
thực hiện việc chuyển đổi xong, dữ liệu đầu vào được
đưa đến bộ đệm đầu ra
ba trạng thái đồng thời chân tín hiệu EOC chuyển lên mức cao báo cho VXL
biết để đọc kết quả vào.
c. Ghép ADC0809 với VXL8051.
+ Các kênh vào Analog được nối vào các đầu vào tương ứng của ADC.
Mỗi kênh đó có địa chỉ riêng do tổ hợp 3 bit địa chỉ A,B,C quy định. Các đầu
vào địa chỉ này kết nối với đường địa chỉ A
0
A
1
A
2
của Bus địa chỉ của hệ
Thi
thố
chi
(St
có
m
ạ
đổi
VX
tạo
v
các
VX
tăn
trìn
liệu
iết kế hệ vi x
ống. Các đư
ip (/CS) ch
+ Tín h
i
tart) khi có
giá trị là g
ạch OR thứ
i xong ở đầ
+ Vì khi
XL biết mã
o ra. Vì vậy
- + 8
vì bản thân
3.Vi mạc
Vi mạch
c hệ VXL 8
XL với các
ng lên và li
nh được nê
u tuỳ nội du
xử lý 8 bít
ường địa c
o ADC080
iệu /CS đư
ó tín hiệu /W
giá trị 3 bit
ứ hai để tạo
ầu ra.
i biến đổi x
ã nhị phân
y ta kết nối
8 bit dữ liệu
n bộ đệm ra
ch giao tiếp
h 8255 là m
8 – 16 bit.
thiết bị n
g
nh kiện ph
ên nó có th
ung của từ
chỉ cao của
09.
ược đưa tới
WR đồng t
t A,B,C. Tí
o tín hiệu O
xong, ACD
tương ứng
EOC với
đ
u thường đ
a là 3 trạng
p song son
một vi mạch
Sử dụng 8
goại vi đơn
hụ trợ đi kè
hể vừa dùn
điều khiển
a hệ thống
đầu vào
c
thời chốt đ
ín hiệu /CS
OE cùng vớ
D0809 dùng
với mức c
đầu vào ngắ
được ghép t
thái, cũng
ng PPI 825
h được sử
8255A làm
n giản đi nh
èm cũng gi
ng như cổn
n mà người
được dùn
của mạch O
ịa chỉ (AL
S cũng đượ
ới /RD nhằ
g tín hiệu ra
cao của tín
ắt ngoài /IN
trực tiếp vớ
có thể ghé
55:
dụng phổ b
cho việc t
hiều, độ m
iảm đi nhiề
ng nhận số
lập trình
đ
g để tạo tí
OR để khởi
E) của kên
ợc đưa tới
ằm chốt dữ
a chân EOC
n hiệu đầu v
NT1 của 80
ới Bus dữ l
p qua 825
5
biến để gia
thiết kế để
mềm dẻo củ
ều. Do có k
liệu cũng
đưa vào.
ín hiệu chọ
i động AD
nh hiện hàn
đầu vào củ
liệu đã biế
C để báo ch
vào đã đượ
051.
iệu hệ thố
n
5.
ao tiếp tron
ghép nối b
ủa thiết kế s
khả năng lậ
như xuất s
ọn
DC
nh
ủa
ến
ho
ợc
ng
ng
bộ
sẽ
ập
số
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
12
a. Sơ đồ chân và sơ đồ chức năng của 8255A.
Sơ đồ chức năng và sơ đồ chân của 8255A được thể hiện dưới hình vẽ
sau:
Trong đó:
Chân 1 ÷ 4, 37 ÷ 40 (PA
0
– PA
7
): là các đường xuất nhập có tên là cổng A.
Chân 18 ÷ 25 (PB
0
– PB
7
): là các đường nhập xuất có tên cổng B.
Chân 10 ÷ 13, 14 ÷ 17 (PB
0
– PB
7
): là các đường nhập xuất có tên cổng C.
Chân 27 ÷ 34 (D
0
– D
7
): là các đường dữ liệu (data) hoạt động hai
chiều, dẫn tín hiệu điều khiển từ vi xử lý ra các thiết bị bên ngoài đồng thời
nhận các dữ liệu từ các thiết bị điều khiển bên ngoài vào vi xử lý.
Chân 35 (Reset input): ngõ vào xóa, chân reset phải được nối với tín
hiệu reset out của vi xử lý để không làm ảnh hướng đến mạch điều khiển. Khi
reset, các cổng của 8255A là các ngõ vào, đồng thời tấ
t cả các dữ liệu trên
thanh ghi bên trong 8255A đều bị xóa, 8255A trở về trạng thái ban đầu săn
sàng làm việc.
Chân 6 (CS\): tín hiệu ngõ vào chip select (CS\) được điều khiển bởi vi
xử lý, dùng để lựa chọn 8255A làm việc khi vi xử lý giao tiếp với nhiều thiết
bị.
Chân 5 (RD\): ngõ vào đọc dữ liệu (Read Input).
Chân 36 (WR\) : ngõ vào ghi dữ liệu (Write Input).
Chân 8,9 (A
1
, A
0
): ngõ vào địa chỉ (Address Input), dùng nhận địa chỉ
vào để lựa chọn thanh ghi và các cổng.
PA
PA
PA
PA
RD
CS
\
GN
A
1
A
0
PC
7
PC
6
PC
5
PC
4
PC
0
PC
1
PC
2
PC
3
PB
0
PB
1
PB
2
PA
PA
PA
PA
WR
\
RESET
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
Vc
PB
7
PB
6
PB
5
PB
4
PB
3
1
20
21
40
D
0
– D
7
PA
0
– PA
7
PB
0
– PB
7
PC
0
– PC
7
RD\
WR\
RESET
A
0
A
1
CS\
8255A
8255A
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
13
• Bảng địa chỉ lựa chọn thanh ghi và các cổng:
A
1
A
0
Cổng và thanh ghi
0 0 Cổng A
0 1 Cổng B
1 0 Cổng C
1 1 Thanh ghi điều khiển
Chân 26 (Vcc) : nguồn 5 VDC
.
Chân 7 (GND) : GND 0 VDC.
b. Cấu trúc bên trong và hoạt động của 8255A.
Sơ đồ khối cấu trúc bên trong của vi mạch 8255A.
Hoạt động của vi mạch 8255A:
Từ sơ đồ khối cấu trúc bên trong của vi mạch 8255A ta thấy các cổng
của 8255A được chia thành 2 nhóm:
Nhóm A gồm cổng A và 4 bit cao của cổng C.
Nhóm B gồm cổng B và 4 bit thấp của cổng C.
Cấu hình làm việc của 2 nhóm sẽ do nội dung của thanh ghi điều khiển
quyết định.
Vi mạch 8255 giao tiếp với vi xử lý thông qua các đường sau :
Port A
Port C
(4 bit cao)
Nhóm A
Port C
(4 bit thấp)
Port B
Nhóm B
Điều khiển
nhóm A
Điều khiển
nhóm B
Đệm
bus dữ
liệu
Logic
điều
khiển
ghi/đọc
RD\
WR
\
CS\
A
0
A
1
D
7
– D
0
PA
7
– PA
0
PC
7
– PC
4
PC
3
– PC
0
PB
7
– PC
0
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
14
- Đường dữ liệu: gồm 8 đường dữ liệu (D
0
- D
7
). Mã lệnh, các dữ liệu
đều được truyền đi trên đường này.
- Đường địa chỉ: gồm 2 đường (A
0
– A
1
) dùng để lựa chọn cổng hoặc
thanh ghi điều khiển như đã trình bày ở trên.
- Đường điều khiển: gồm các đường RD\, WR\, CS\, Reset dùng để
điều khiển việc hoạt động của 8255A.
Để sử dụng các cổng làm công cụ giao tiếp, người sử dụng phải gửi từ
điều khiển ra thanh ghi điều khiển để 8255A định cấu hình làm việc cho các
cổng
đúng như yêu cầu của người lập trình.
c. Từ điều khiển:
Từ điều khiển là dữ liệu được gửi tới thanh ghi điều khiển (CWR) của
8255. Giá trị của từ điều khiển sẽ xác định cấu hình làm việc cho các cổng của
8255A, đó là việc lựa chọn chức năng nhập hay xuất của các cổng.
Trong từ điều khi
ển có một bit để phân biệt hai chức năng điều khiển
khác nhau là:
+ Định nghĩa chế độ các cửa (bit D
7
của từ điều kiển là 1).
+ Lập/xoá các bit của Port C (bit D
7
của từ điều khiển là 0).
• Định nghĩa chế độ các cổng
Khi D
7
=1, 8255A sẽ sử dụng thông tin trong CWR để định nghĩa chế độ
các cửa. Nội dung của CWR xác định chức năng của 24 đường ghép nối với
thiết bị ngoại vi. Phần mềm của hệ thống sẽ định nghĩa chế độ của PA, PB
một cách độc lập; còn PC có thể được định nghĩa độc lập hay chia làm hai phụ
thuộc vào chế độ của PA và PB.
Trong chế
độ này có thể có 3 chế độ làm việc khác nhau tuỳ thuộc vào
nội dung của hai bit D
6
D
5
, cụ thể là:
1 D
6
D
5
D
4
D
3
D
2
D
1
D
0
Nhóm B
PC
L
(4 bit thấp)
1 = Input
0 = Output
PB
1 = Input
0 = Output
Mode select
1 = mode 0
0 = mode 1
Nhóm A
Mode select
00 = mode 0
01 = mode 1
1x = mode 2
Cổng A
1 = Input
0 = Output
PC
H
(4 bit cao)
1=Input
0=Output
Thiết kế hệ vi xử lý 8 bít
Bài tập dài: Thiết kế hệ Vi xử lý 8 bít
15
+ Chế độ 0(Vào ra cơ sở): D
6
D
5
= 00,ở chế độ này 8255A cho khả năng
xuất/nhập dữ liệu đơn giản qua cả 3 cổng A, B, C một cách độc lập.
+ Chế độ 1 : D
6
D
5
=01, đây là chế độ vào ra có chốt (Strobe), nghĩa là có
sự đối thoại giữa ngoại vi và hệ VXL thông qua các bit của cổng C. Trong chế
độ này, với nhóm A. thì PA dùng để trao đổi số liệu và nửa cao của PC (PC
4
÷
PC
7
) để đối thoại giữa ngoại vi và VXL. Còn ở nhóm B thì PB dùng để trao
đổi số liệu và PC
L
để đối thoại.
+ Chế độ 2: D
6
D
5
=1x. Cổng A dùng vào/ra hai chiều, các bit PC
3
÷ PC
7
dùng làm tín hiệu đối thoại. Cổng PB có thể làm việc như ở chế độ 1.
• Lập/xoá bit:
Nếu D
7
=0 thì CWR là lệnh để lập/xoá bit của Port C. Lệnh này cho phép
lập/xoá bất kỳ bit nào của C một cách độc lập.
d. Ghép nối 8255A với VXL8051.
+ Với hệ thống đơn giản có thể phối ghép trực tiếp 8255A với VXL. Đầu
vào /CS được nối vào một trong các /CS
i
của giải mã địa chỉ 74LS138 (sẽ đề
cập sau).
+ Các tín hiệu /RD, /WR của 8255 cũng được kết nối tương ứng với các
tín hiệu điều khiển việc xuất/nhập dữ liệu của 8051.
+ Đầu vào Reset (chân 35) có thể kết nối với chân Reset của 8051 nếu
muốn 8255A cùng Reset với hệ thống khi ấn nút reset hoặc có thể để ở mức
tích cực thấp.
+ Hai tín hiệu vào đị
a chỉ A
1
A
0
được nối trực tiếp vào Bus địa chỉ hệ
thống. A
1
A
0
được giải mã bên trong mạch 8255A để chọn các cửa vào/ra A,
B, C và CWR như đã đề cập ở trên.
+ Các chân số liệu của 8255 có thể kết nối trực tiếp vào Bus số liệu của
hệ thống mà không cần đệm 3 trạng thái, vì bản thân các cổng P
0
của 8051
0
D
6
D
5
D
4
D
3
D
2
D
1
D
0
1: Lập
0: Xoá
Cửa C D
3
D
2
D
1
bit 0
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
bit 7
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
11 1
Không dùng=000