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

Thiết kế hệ vi xử lý 8051

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 (341.17 KB, 38 trang )


BàI tập vi xử lý
Đề tàI THIếT Kế Hệ VI Xử Lý 8 BIT
YÊU CầU
Phần cứng :
1. Bộ vi xử lý
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 100 độ C , các cổng vào/ra số và
các mạch điều khiển .

Phần mềm :
1. Chế độ chạy và dừng chơng trình khẩn cấp.
2. Đọc tín hiệu đo nhiệt độ từ 8 kênh và lu trữ vào vùng nhớ
RAM.
3. Sau mỗi lần đọc , tính giá trị trung bình cộng của nhiệt độ và
gửi ra hiển thị bằng LED hoặc LCD .
4. So sánh nhiệt độ của từng kênh với giá trị nhiệt độ trung bình .
Nếu kết quả lớn hơn hoặc nhỏ hơn giá trị cho phép cho trớc , thì
gửi tín hiệu báo động cao hoặc thấp ứng với kênh đó . Giá trị
cho phép này đặt trong một ô nhớ của Ram .
5. Chơng trinh dừng lại và báo động bằng còi khi xảy ra một trong
các trờng hợp sau :
- Có ít nhất 4 kênh đo vợt quá hoặc nhỏ hơn giá trị giới hạn
cho phép cho trớc so với giá trị trung bình .
- Giá trị nhiệt độ trung bình lớn hơn hoặc nhỏ hơn giá trị giới
hạn MAX và MIN tơng ứng . Các giá trị giới hạn MAX và
MIN đợc đặt ở hai ô nhớ của RAM .
6. Thiết kế bàn phím nhập dữ liệu .
bùi anh tuấn TĐH2-k45


1

BàI tập vi xử lý
Mục lục
Lời nói đầu
I . Bộ vi xử lý .. 4
a . Giới thiệu 4
b . Bên trong Vi xử lý 8051 ..2
II . Thiết kế hệ Vi xử lý dùng 8051 .. 5
1 . Thiết kế bộ nhớ ..8
2 . Mạch chuyển đổi số tơng tự ADC 0809 9
3 . Mạch giải mã địa chỉ 74HC138 .10
4 . Mạch chốt 74LS373 ...12
5 . Cổng vào ra vi mạch PPI 8255 13
6 . Lập bản đồ bộ nhớ .15
7 . Lu đồ bộ nhớ 16
8 . Soạn thảo chơng trình bằng mã ngữ của 8051 .18
9 . Sơ đồ chi tiết của hệ vi xử lý .36
Tài liệu tham khảo
1 . Họ vi điều khiển 8051 Tống Văn On , Hoàng Đức Hải . Nhà xuất bản lao
động xã hội , Hà Nội 2001
2 . Cấu trúc và lập trình họ vi điều khiển 8051 Nguyễn Tăng Cờng , Phan
Quốc Thắng . Nhà xuất bản khoa học và kỹ thuật , Hà Nội - 2004
bùi anh tuấn TĐH2-k45
2

BàI tập vi xử lý
LờI NóI ĐầU
Ngày nay với sự phát triển của khoa học công nghệ, việc áp dụng những
thành tựu khoa học vào trong đời sống và sản xuất ngày càng nhiều . Hơn nữa

trong các nhà máy, xí nghiệp việc tự động hoá các quá trình sản xuất , tự động
hoá các thiết bị điều khiển là một vấn đề hết sức quan trọng và cần thiết. Trong
các thiết bị tự động muốn điều khiển một quá trình nào đó một cách tối u thì
nhất thiết phải có các thiết bị đo, chính nhờ các thiết bị đo ngời ta có thể kiểm
soát đợc các thông số của hệ thống mà từ đó đa ra các tín hiệu điều khiển nhằm
làm cho hệ thống hoạt động ổn định .
Trớc đây khi ngành vật liệu cha tìm ra các vật liệu mới, thì các dụng cụ
đo thờng đợc làm bằng cơ khí có độ chính xác không cao, dải đo hẹp, không
làm việc đợc trong các môi trờng đòi hỏi độ bền cơ học cao. Khi ngành vật liệu
tìm ra đợc các vật liệu mới, công nghệ chế tạo phát triển đã có thể tạo ra các
thiết bị đo thông minh, có độ chính cao, làm việc đợc trong các môi trờng khắc
nghiệt nh : đo nhiệt độ lò nung, đo nồng độ các chất hoá học nhờ các thiết bị
đo thông minh này ngời ta có thể kiểm soát các thông số của hệ thống một cách
chặt chẽ .
Khi khoa học công nghệ ngày càng phát triển việc đo không chỉ là biết
giá trị của đại lợng cần đo mà những giá trị này còn là những thông tin cần đợc
lu trữ và xử lý . Để cho quá trình thu thập các thông tin đo một cách tự động
ngời ta gắn vào các thiết bị đo các bộ vi điều khiển nhằm điều khiển các quá
trình đo, xử lý và có thể là phải truyền đi .
Theo nh yêu cầu của bài toán đặt ra là xây dung một hệ đo, thu thập
nhiệt độ. Với 8 kênh đo nhiệt độ ở những vị trí khác nhau và những dải nhiệt độ
khác nhau thì việc sử dụng một bộ vi điều khiển trong hệ là một điều cần thiết.
Hiện nay, trên thị trờng có rất nhiều họ vi điều khiển nh : 8051, 68HC11, PIC,
AVR vì vậy việc lựa chọn một bộ vi điều khiển cho hệ thống cần phải có giá
thành rẻ nhng vẫn đáp ứng đợc yêu cầu của bài toán tối u. ở đây ta sử dụng bộ
vi điều khiển 8051 là đủ để điều khiển hệ thống hoạt động tốt.
bùi anh tuấn TĐH2-k45
3

BàI tập vi xử lý

I.Bộ Vi Xử Lý 8051
a. Giới thiệu:
Bộ VXL 8051 là bộ VXL đầu tiên thuộc họ VXL x51 đợc sản xuất bởi
công ty Intel, Siemens, Advanced Micro Devices, Fujitsu, Philips.
Các đặc điểm chung của bộ VXL này:
4KB ROM
128 B RAM
4 cổng I/O 8 bit
2 Timer 16 bit
Có khả năng quản lý đợc 64 KB bộ nhớ mã chơng trình ngoài (ROM
ngoài).
Có khả năng quản lý đợc 64 KB bộ nhớ dữ liệu ngoài (RAM ngoài)
Có bộ xử lý logic riêng (thao tác trên các bit)
Có thể thao tác trực tiếp đợc 210 bit (các bit này đã đợc địa chỉ hoá)
Sơ đồ khối của 8051 là nh sau:
bùi anh tuấn TĐH2-k45
4
Interrupt
control
Register
RAM 128
byte
ROM
4K
Timer 0
Timer 1
T0
T1
Serial
Port

Port
3
Port
2
Port
1
Port
0
TXD RXD
Oscilator
CPU
Timer 0
Timer 1
Serial port
INT 0
INT 1
Timing
and
Control
PSEN EA RST ALE
XTAL1,2

BàI tập vi xử lý
b. Bên trong VXL8051.
RAM.
RAM trong của 8051 bao gồm cả các thanh ghi và các thanh ghi có thể
lập trình và xoá từng bit nh là RAM đa mục đích. RAM đợc dùng nh là vùng
làm việc đa năng. RAM On-chip có địa chỉ từ 00h đến 7Fh.
Các thanh ghi:
Khối RAM từ [ 0..1Fh ] đợc dùng cho các thanh ghi. Có 4 banks với 8

thanh ghi trong mỗi bank(s) đó từ R0 đến R7.
Bank 0: Từ 00h đến 07h
Bank 1: Từ 08h đến 0Fh
Bank 2: Từ 10h đến 17h
Bank 3: Từ 18h đến 1Fh
Để chọn địa chỉ các thanh ghi, đầu tiên các register bank(s) phải đợc kích
hoạt (active). Việc lựa chọn đợc làm bởi cờ trong PSW. Sau khi đã đợc chọn
thanh ghi i đợc ký hiệu là Ri
Bản đồ của bộ nhớ:
Khối nhớ trong khoảng [20h..2Fh] gồm 16 bytes = 128 bits có thể đánh
địa chỉ theo từng bit. Mỗi bit có địa chỉ từ 0h đến 7Fh. Bit 0 của byte 20 là bit
địa chỉ 0 và bit 7 của byte 2Fh là bit địa chỉ 7Fh.
FF
Địa chỉ của các SFR
80 bytes of RAM (Scrach pad)
80h
7Fh
16 bytes of bit-addressable
30h
2Fh
Khối các thanh ghi Bank 32 bytes ( 4 bank )
Hình . Bản đồ bộ nhớ trong vi xử lý 8051
bùi anh tuấn TĐH2-k45
5

BàI tập vi xử lý
Những thanh ghi chức năng đặc biệt: SFR (Special Function Registers)
SFR bao gồm các thanh ghi dữ liệu và các thanh ghi điều khiển. Chúng
nằm trong các cổng, time hoặc là các thanh ghi điều khiển ngắt... Ví dụ: Cổng
nối tiếp đợc điều khiển bởi SFR SCON, trong khi dữ liệu vào và ra cổng này đi

qua thanh ghi SFR SBUF. Những bit riêng lẻ của SCON xác lập những chế độ
khác nhau của cổng nối tiếp. SCON có thể đợc xem nh thanh ghi điều khiển và
SBUF đợc gọi là thanh ghi dữ liệu. SFR có byte địa chỉ trong khoảng [80h..FFh]
(Tiếp theo phần địa chỉ của RAM trong từ 00h..07h nh đã nói ở trên ). 8051 có
thể truy nhập RAM và SFR bằng chế độ địa chỉ gián tiếp thanh ghi.
SFR bao gồm cả thanh ghi a, thanh ghi b và PSW. PSW bao gồm cả cờ hệ
thống nh cờ carry có 2 bit để kích hoạt register bank.
ROM:
Một vài thành viên của họ 8051 có chứa ROM ở ngay trong chúng:
- 8051 có 4KB.
- 8052 có 8KB.
- 80C517A-5 và 80C515-A có 32KB.
8751 và 8752 là EPROM là phiên bản sau của 8051 và 8052, 8031,
8032, 80C535A và 80C537A là ROM phiên bản sau của 8051, 8052, 80C515A
và 80C517A.
Trong bộ nhớ ROM trong chiếm khối nhớ thấp nhất của bộ nhớ chơng
trình. Chân EA# (External Enable) của vi điều khiển đợc cấp +5V để cho phép
chơng trình có thể đợc tìm và đọc trực tiếp từ ROM trong. Tuy nhiên những ch-
ơng trình có khối nhớ trên 4K hoặc 8K thì sẽ tìm và đọc lệnh từ bộ nhớ chơng
trình ngoài. Các chơng trình sẽ đợc đọc từ bộ nhớ bên ngoài khi chân EA# đợc
nối đất (Khi đặt ký hiệu # ở phía sau toán hạng thì sẽ hiểu là tín hiệu đó đợc
kích hoạt khi ở mức thấp).
Bộ đếm chơng trình:
Bộ đếm chơng trình (Program Counter) đợc dùng để chỉ đến byte lệnh
tiếp theo sẽ đợc đọc. Nó không bị ảnh hởng trực tiếp nhng sẽ bị thay đổi bằng
những lệnh rẽ nhánh nh lệnh Jmp hoặc Call. Nó cũng có thể dùng nh địa chỉ cơ
sở cho chỉ số địa chỉ khi đọc từ bộ nhớ chơng trình.
Cổng vào ra song song:
8051 có 4 cổng vào ra song song (Parallel input/output port). Khi cổng đ-
ợc dùng là cổng ra, dữ liệu đợc để trong SFR tơng ứng. Giá trị đợc viết đến SFR

tơng ứng sẽ đợc chốt và phát ra tín hiệu sau khi quá trình ghi kết thúc. Giá trị
của cổng ra thay đổi khi giá trị mới đợc chốt.
bùi anh tuấn TĐH2-k45
6

BàI tập vi xử lý
Khi cổng đợc dùng là cổng vào, đầu tiên giá trị FFh sẽ đợc ghi lên cổng,
sau đó tất cả các cổng vào làm cho chân điện thế thấp sẽ đợc đặt bằng 0. Việc
đọc các SFR tơng ứng sẽ đọc giá trị của cổng. Bộ chốt cửa ra sẽ điều khiển chân
cổng lên mức logic 1 nếu không có dòng điện của mạch ngoài hạ xuống trên
chân.
Mặc dù cùng 1 SFR đang đợc dùng, nhng bên trong vẫn có hai thao tác
đợc tiến hành khi cổng đang đợc đọc và đang đợc ghi. Các thao tác đó đợc thực
hiện hoàn toàn bằng phần cứng, bảo vệ giúp ngời dùng từ việc giữ hớng khi dữ
liệu đợc vận chuyển.
Một điều chú ý nữa là mặc dù tất cả các thao tác đọc mà đọc giá trị từ
chân cổng có 1 vài thao tác đọc vẫn ngầm đọc giá trị của cổng chốt, gọi là thao
tác read-modify-write
Để tiến hành lựa chọn các chức năng thì các SFR tơng ứng phải đợc thiết
lập (Đặt bằng 1).
Bộ phát dao động:
8051 có 1 bộ phát dao động dùng tinh thể thạch anh ngoài. Bộ tạo dao
động tần số giống nh tần số của tinh thể và đợc chia cho 12, nó có thể đợc dùng
làm đầu vào của timer.
Dùng 12 MHz crystal thì timer input sẽ là 1 MHz. 8051 có 12 chu kỳ dao
động trên 1 chu kỳ máy. Nó có 255 thao tác những nhóm mã lệnh, tơng đơng
111 chỉ thị. Ví dụ có15 mã thao tác cụ thể phụ thuộc vào byte đích, byte nguồn
và chế độ địa chỉ. Thêm vào đó, có 2 lệnh dịch chuyển bit và 1 lệnh dịch
chuyển word, lệnh đó dịch chuyển 16 bit vào con trỏ dữ liệu (data pointer).
Trong 255 mã thao tác đó, 159 thao tác hết 1 chu kỳ máy, 51 thao tác cần 2 chu

kỳ máy, 43 thao tác cần 3 chu kỳ máy và 2 thao tác cần 4 chu kỳ máy. Từ khi
có nhiều thao tác chỉ cần 1 chỉ thị máy, 8051 đã xem xét đến khả năng có thể
thực hiện hàng triệu lệnh trong 1 giây (Million Instruction Per Second: MIPS).
Rất nhiều hệ thống 8051 dùng dao động tinh thể 11.0592 MHz, sở dĩ có sự lựa
chọn này vì trong thực tế có rất nhiều dao động đồng hồ có thể phát ra tốc độ
Baud rất cao. Với đồng hồ 12 MHz tốc độ Baud lớn nhất là 4800, còn dùng dao
động tinh thể 11.0592MHz tốc độ có thể lên tới 19200baud.
Cổng nối tiếp:
Cổng nối tiếp đợc điều khiển bởi SFR SCON. Dữ liệu vào và ra cổng nối
tiếp đều đi qua SFR SBUF. Khi cổng nối tiếp đã đợc khởi tạo, ta có thể dễ dàng
ghi dữ liệu vào SBUF để khởi đầu cho việc truyền nối tiếp. Tơng tự nhận dữ liệu
cũng đợc đọc từ SBUF. Mặc dù SBUF đợc nói ở trên giống nh là SFR riêng lẻ
nhng phần cứng của nó bao gồm hai buffer tách biệt, một buffer để truyền và
một buffer để nhận dữ liệu. Truyền và nhận nối tiếp có thể diễn ra đồng thời
(full duplex operation).
bùi anh tuấn TĐH2-k45
7

BàI tập vi xử lý
Timer/Counter.
8051 có hai Timer/Counter, mỗi Timer/Counter đợc dành cho hai SFR.
Timer/Counter 0 là TH0 và TL0, còn Timer/Counter 1 là TH1 và TL1. Các
thanh ghi dành cho Timer/Counter là các thanh ghi 16 bit. Khi hoạt động, mỗi
khi có xung vào thì số đếm xung lu trong 1 hoặc 2 SFR sẽ tăng lên. Timer dùng
tín hiệu đồng hồ hệ thống làm nguồn của những xung vào. Counter dùng xung
ngoài để tăng số lợng xung. Xung ngoài đợc nhận qua 2 bit của cổng 3. Số xung
hiện tại của Timer/Counter có thể đọc từ TH0 và TL0 hoặc TH1 và TL1. Timer/
Counter cũng phát ra ngắt với điều kiện là những ngắt đó không bị IE chắn. Khi
bộ đếm bị tràn (và lại quay về 0) thì ngắt đợc phát ra. Trạng thái của các ngắt đó
đợc quan sát qua SFR TCON.

Hoạt động của Timer/Counter đợc điều khiển bởi khối xung ngẫu nhiên
từ nguồn tới thanh ghi đếm dữ liệu. Nguồn dữ liệu sẽ tới thanh ghi dữ liệu của
Timer 0 nếu điều kiện (GATE# or INT0#) And TR0 đúng. GATE# là bit điều
khiển Timer 0 của TMOD. 8051 coi bit điều khiển là GATE. Tuy nhiên khi
Timer/Counter hoạt động trong lúc GATE đang ở mức logic thấp thì sẽ giống
nh trên, chứng tỏ bit điều khiển là GATE#. TR0 cũng là bit điều khiển của
Timer 0 trong thanh ghi TMOD, INT0# là chân P3.2 của 8051. Điều kiện trên
đã chỉ rõ rằng những thanh ghi dữ liệu của Timer 0 đã đợc cập nhật nguồn khi
bit điều khiển TR0 đợc thiết lập và cả bit điều khiển GATE# bị xoá hoặc Port
P3.2 ở mức logic 1.
Timer/Counter có 4 chế độ hoạt động. Hoạt động của cả hai Timer đợc
quyết định bởi SFR TMOD. 4 bit thấp của TMOD điều khiển Timer 0, 4 bit cao
của TMOD điều khiển Timer 1.
Điều khiển ngắt:
8051 có 5 ngắt TF0, TF1, INT0#, INT1# và kết quả của cổng nối tiếp.
TF0 và TF1của thanh ghi TCON tạo ra 2 ngắt Timer/Counter, chúng phát ra
ngắt khi bộ đếm bị tràn.
II.Thiết kế hệ vi xử lý dùng 8051
Sơ đồ khối của hệ vi xử lý nh sau:
bùi anh tuấn TĐH2-k45
8

BàI tập vi xử lý
PORT0
PORT2
PORT1
ALE
Bàn phím
LATCH
ROM

RAM
8285
DATA BUS
ADDRESS BUS
CS
CS
CS
DECORDER
CS
Tín Hiệu ANALOG
Thiết Bị
Ngoại Vi
ADC
8085
Sơ đồ khối hệ vi sử lý 8 bít
bùi anh tuấn TĐH2-k45
9

BàI tập vi xử lý
1.Thiết kế bộ nhớ.
A0-12
VCC
VCC
16
17
18
19
15
13
12

11
10
9
8
7
3
4
5
6
2
27
20
22
23
24
21
25
1
11
12
13
15
19
18
17
16
1
25
21
24

23
22
20
27
2
6
5
4
3
7
8
9
10
6264
RAM 8Kx8Bit

2764
ROM 8Kx8Bit

D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A3

A2
A6
A7
A5
A4
A8
A9
A11
A10
A12
CS1
WE
CS2
OE
D7
D6
D5
D4
D3
D2
D1
D0
CE
PGM
OE
VPP
A12
A10
A11
A9

A8
A4
A5
A7
A6
A2
A3
A1
A0
PORT 0
CS0
PSEN
RW
RD
SC1
* Hệ VXL sử dụng 8Kx8bit bộ nhớ chơng trình ngoài và 8Kx8bit bộ nhớ
dữ liệu.
ROM 8Kx8bit: 2764
RAM 8Kx8bit: 6264
* Các chân dữ liệu AD
0
-AD
7
của RAM và ROM đợc nối với Bus dữ liệu
của hệ thống (cổng Port 0 của 8051)
* ROM: - Chân OE của ROM 2764 đợc nối với PSEN của 8051
- V
pp
với V
cc

- PGM nối với GND
* RAM: - Các chân OE và WE lần lợt đợc nối với các chân RD và WR
của 8051
- CS2 nối với V
cc
* Tín hiệu chọn chíp (chọn giữa RAM và ROM) đợc lấy từ dây CS0
CS1 của mạch giải mã .
* Đối với thiết kế hệ VXL này ta sử dụng hoàn toàn bộ nhớ chơng trình
ngoài do vậy chân /EA của 8051 sẽ đợc nối đất.
* Địa chỉ bộ nhớ ngoài: ROM: 0000h - 1FFFh
RAM: 2000h - 3FFFh
bùi anh tuấn TĐH2-k45
10

BàI tập vi xử lý
2.Mạch chuyển đổi số tơng tự ADC 0809 (8 kênh x 8 bit)
Kênh 8
Kênh 7
Kênh 6
Kênh5
Kênh 4
Kênh3
Kênh 2
Kênh 1
ALE
10
6
9
22
23

24
25
7
17
14
15
8
18
19
20
21
16
12
2
3
5
4
28
1
27
26
A 2
A 1
A 0
RD_ADC
WR_ADC
INT 0
PORT 0
2-5
2-6

2-8
2-7
2-3
2-4
2-2
ADC0809
CLOCK
ADD-C
ADD-B
START
ENALBE
ADD-A
EOC
2-1
mf(+)
mf(-)
IN-7
IN-6
IN-5
IN-4
IN-3
IN-2
IN-1
IN-0
a.Các thông số cơ bản
* Bộ biến đổi ADC 0809 là ADC thông dụng đợc sử dụng rộng rãi có
tám đầu vào tơng tự từ IN_0->IN7 và đầu ra 8 bit số chuyển đổi theo phơng
pháp xấp xỉ liên tiếp.
* Các đặc trng cơ bản của ADC 0809:
- Đầu ra có bộ điện 3 trạng thái để ghép trực tiếp vào kênh dữ liệu

của hệ VXL.
- Giải tín hiệu ra vào tơng tự SV khi nguồn nuôi là +5V. Có thể mở
rộng thang đo bằng các giải pháp kỹ thuật cho từng mạch cụ thể.
- Không đòi hỏi điều chỉnh 0.
- Thời gian biến đổi 100às.
- Sai số tổng cộng 1/2LSB.
- Sử dụng nguồn nuôi đơn +5V, hiệu suất cao.
- Đảm bảo sai số tuyến tính trang dải nhiệt đồ từ -40
o
C-+85
o
C.
b.Ghép nối
* ADC 0809 đợc ghép với hệ VXL đợc thể hiện nh trên hình vẽ.
bùi anh tuấn TĐH2-k45
11

BàI tập vi xử lý
- Đầu ra dữ liệu 2.1-2.7 đợc nối với Port 0 của 8051
- Các kênh vào anolog đợc nối với các đầu IN_0->IN7 tơng ứng của
ADC.
- Mỗi kênh vào có địa chỉ riêng do tổ hợp 3 bit ADD_A, ADD_B,
ADD_C quy định. 3 đầu địa chỉ này đợc nối tơng ứng với 3 dây A
0
, A
1
, A
2
của
Address Bus.

- Chân EOC của ADC 0809 đợc nối với
0INT
của 8051 sau khi đã
qua một khâu đảo.
- Tín hiệu RD_ADC qua mạch đảo sẽ đợc nối với Enable của ADC
nhằm chốt dữ liệu đã biến đổi xong ở đầu ra.
- Tơng tự WR_ADC sẽ đợc đa vào ALE và Start nhằm khởi động
ADC và chốt địa chỉ của kênh hiện hành có giá trị là 3 bit ABC.
3. Mạch giải mã địa chỉ 74HC138
CS0
CS1
CS2
CS3
CS7
CS6
CS5
CS4
A13
A14
A15
6
5
1
2
3
4
11
10
9
7

12
13
14
15
C
B
A
E1
E2
E3
74HC138
VCC
A B C CS0 CS1 CS2 CS3 CS4 CS5 CS6 CS7 /CS
bùi anh tuấn TĐH2-k45
12

BàI tập vi xử lý
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1

1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0
CS0 : ROM
CS1 : RAM
CS2 : WR_ADC
CS3 : RD _ADC
CS4 : Chọn 8255
CS5
CS6
CS7
- Giải mã địa chỉ sử dụng IC74HC138 có 3 đầu vào ABC đợc nối tơng
ứng với 3 dây Port 2.5, 2.6, 2.7 của 8051. Sử dụng các đầu ra làm tín hiệu /CS
để chọn chíp. Byte mã xuất ra từ cổng P2 của 8051 có giá trị tơng ứng với chế
độ chọn chíp nh sau:
P2(#40H)->/CS2: WR_ADC
P2(#60H)->/CS3: RD_ADC
P2(#80H)->/CS4: Chọn 8255
-Các chân E
1
, E
2
của 74HC138 đợc nối với GND
- E
3
nối với V
cc
4.Mạch chốt 74LS373
/OE /LE IN OUT Chức năng
L L D Q

-1
L H D D
H X Hi-z Hi-z
Chốt đệm
Chốt đệm
Trở kháng cao
bùi anh tuấn TĐH2-k45
13

BàI tập vi xử lý
- Khi 8051 truy nhập bộ nhớ ngoài, luôn sử dụng địa chỉ 16 bit thông
qua cổng Port 0 và Port 2 -> Dùng chốt để tạo Address Bus 16 bit.
- Sử dụng chốt là IC 74LS373 có bảng trạng thái đợc thể hiện nh trên
hình vẽ.
Chân OE đợc nối đất.
Chân LE đợc nối với ALE của 8051. Xung chốt ALE đợc phát 2 lần
trong một chu kỳ máy nhằm chốt 8 bit thấp của địa chỉ đợc lấy ra từ Port 0
cộng với 8 bit cao của địa chỉ đợc xuất ra từ Port 2 tạo thành địa chỉ 16 bit.
5. Cổng vào ra - vi mạch PPI 8255.
- Vi mạch 8255 A là vi mạch cỡ lớn ISI thờng đợc gọi là mạch phối
ghép vào/ra song song lập trình đợc. Do khả năng mềm dẻo 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ệ VXL
8_16_32bit. 8255 có các chân đợc bố trí nh trên hình vẽ trong đó có chứa 24
đờng dẫn lớn vào ra đợc xếp thành 3 cổng song song (port A, port B, portC).
Một nửa của cổng Port C (PC4 . . . PC7) thuộc vào nhóm A còn nửa kia thuộc
nhóm B.
- Các chân của 8255 đợc ghép với hệ VXL nh trên hình.
+ Các chân vào dữ liệu từ D
0
-D

7
đợc nối với Port 0 của 8051.
+ Các chân RD, WE đợc nối tơng ứng với các chân RD, WR của 8051.
bùi anh tuấn TĐH2-k45
14

BàI tập vi xử lý
+ Các chân A
0
, A
1
là các tín hiệu chọn 4 thanh ghi bên trong của 8255
đợc nối với 2 chân A
0
, A
1
tơng ứng của Address Bus.
+ Chân CS đợc nối với CS4 (đầu ra của giải mã địa chỉ).
* Chế độ làm việc:
Có hai loại từ điều khiển cho 8255A:
- Từ điều khiển định nghĩa cấu hình cho các cổng PA, PB, PC
- Từ điều khiển lập/xoá từng bit ở đầu ra của PC
Tuỳ theo từng lệnh đợc ghi vào thanh ghi điều khiển khi ???(kd) vi
mạch mà ta có Port A, B, C hoạt động ở các chế độ 0,1,2 khác nhau.
* Trong hệ VXL này 8255 đợc dùng làm việc ở chế độ 0.
- Chế độ 0 hay còn gọi là chế độ vào ra cơ số. Trong chế độ này mỗi
cổng PA, PB, PCH, PCL đều có thể định nghĩa là các cổng vào hoặc ra.
- ở đây sử dụng 8255 nh các cổng ra (Số liệu ra đợc chốt).
* Xác định địa chỉ các thanh ghi, chế độ và chiều của cửa.
- Do dùng hai bit thấp nhất A0, A1 của Address Bus làm tín hiệu chọn

thanh ghi bên trong 8255 tên ta có.
PA có địa chỉ 00h (A1=A0=0)
PB có địa chỉ 01h (A1=0, A0=1)
PC có địa chỉ 02h (A1=1, A0=0)
Thanh ghi điều khiển có địa chỉ 03h (A1=1, A0=1)
* Xác định lỗi điều khiển:
Vì PA là cửa ra -> D4=0, chế độ 0 -> D5=D6=0
PB là cửa ra -> D1=0, chế độ 0 -> D2=0
1/2 C thấp là của ra -> D0=0
1/2 C cao là cửa ra -> D3=0. Vậy từ điều khiển chế độ là:
D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 0 0 0 0 80h
bùi anh tuấn TĐH2-k45
15

×