Tải bản đầy đủ (.doc) (40 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 (374.66 KB, 40 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à lưu 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 . Lưu đồ 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 chưa 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 lưu 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ẻ nhưng 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 ca 8051 bao gm c cỏc thanh ghi v cỏc thanh ghi cú th
lp trỡnh v xoỏ tng bit nh l RAM a mc ớch. RAM c dựng nh l

vựng lm vic a nng. RAM On-chip cú a ch t 00h n 7Fh.
Cỏc thanh ghi:
Khi RAM t [ 0..1Fh ] c dựng cho cỏc thanh ghi. Cú 4 banks vi 8
thanh ghi trong mi 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
chn a ch cỏc thanh ghi, u tiờn cỏc register bank(s) phi c
kớch hot (active). Vic la chn c lm bi c trong PSW. Sau khi ó
c chn thanh ghi i c ký hiu l Ri
Bn ca b nh:
Khi nh trong khong [20h..2Fh] gm 16 bytes = 128 bits cú th ỏnh
a ch theo tng bit. Mi bit cú a ch t 0h n 7Fh. Bit 0 ca byte 20 l bit
a ch 0 v bit 7 ca 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 . Bn 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 nhưng 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:
bïi anh tuÊn –T§H2-k45
6

BµI tËp vi xö lý
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.
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, nhưng 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:
bïi anh tuÊn –T§H2-k45
7

BµI tËp vi xö lý
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ẻ nhưng 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).
 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 lưu 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 trưng 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
bïi anh tuÊn –T§H2-k45
11

BµI tËp vi xö lý
* ADC 0809 được ghép với hệ VXL được thể hiện như trên hình vẽ.
- Đầ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
bïi anh tuÊn –T§H2-k45
12

BµI tËp vi xö lý
A B C CS0 CS1 CS2 CS3 CS4 CS5 CS6
CS7
/CS
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
Chốt đệm
bïi anh tuÊn –T§H2-k45
13

BµI tËp vi xö lý
L H D D
H X Hi-z Hi-z
Chốt đệm
Trở kháng cao
bïi anh tuÊn –T§H2-k45
14

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.
bïi anh tuÊn –T§H2-k45
15

BµI tËp vi xö lý
+ Các chân RD, WE được nối tương ứng với các chân RD, WR của
8051.
+ 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
bïi anh tuÊn –T§H2-k45
16

×