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

THIẾT kế hệ VI xử lý 8 BIT dể đo NHIỆT độ

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 (355.09 KB, 33 trang )

Trờng đại học bách khoa hà nội
Khoa điện
Bộ môn tự động hoá
************

Bài
tập
dài
vi
xử

Đề tài: thiết kế hệ vi xử lý 8 bit dể đo nhiệt độ
Giáo viên hớng dẫn : nguyễn văn khang
Sinh viên thực hiện
: Nguyễn Danh Tuấn
Lớp
: TĐH2 - K45

Hà Nội 6 - 2004

Đề tàI THIếT Kế Hệ VI Xử Lý 8 BIT

1.

YÊU CầU


Phần cứng :
1.
2.
3.


4.

1.
2.
3.
4.
5.

Bộ vi xử lý 8 bit (8085, 8051 .)
Bộ nhớ chơng trình ROM : 8KB từ địa chỉ 0000H
Bộ nhớ dữ liệu RAM 8KB có địa chỉ tuỳ chọn.
Cổng vào tơng tự 8 kênh nhận tín hiệu nhiệt độ từ 0 10Vtơng ứng với
nhiệt
độ từ 0 1000C.
Phần mềm :
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.
Đọc tín hiệu đo từ 8 kênh lu trữ trong vùng nhớ RAM .
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 LED.
So sánh nhiệt độ trung bình với từng kênh . Nếu cao hơn hoặc thấp hơn gửi
tín hiệu báo ra từng kênh tơng ứng. Giá trị cho phép này đặt tại một ô nhớ
của RAM.
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.

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 nhng 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; nhng 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 8051 vì những lý
do sau:
+ Thứ nhất 8051 thuộc họ MCS-51, là chip vi điều khiển. Đặc điểm của
các chip vi điều khiển nói chung là nó đợc tích hợp với đầy đủ chức năng của
một hệ VXL nhỏ, rất thích hợp với những thiết kế hớng điều khiển. Tức là
trong nó bao gồm: mạch VXL, bộ nhớ chơng trình và dữ liệu, bộ đếm, bộ tạo
xung, các cổng vào/ra nối tiếp và song song, mạch điều khiển ngắt
+ Thứ hai là, vi điều khiển 8051 cùng với các họ vi điều khiển khác nói
chung trong những năm gần đây đợc phát triển theo các hớng sau:
Giảm nhỏ dòng tiêu thụ.
Tăng tốc độ làm việc hay tần số xung nhịp của CPU

.


Giảm điệp áp nguồn nuôi.
lớn.

Có thể mở rộng nhiều chức năng trên chip, mở rộng cho các thiết kế

Những đặc điểm đó dẫn đến đạt đợc hai tính năng quan trọng là: giảm
công suất tiêu thụ và cho phép điều khiển thời gian thực nên về mặt ứng
dụng nó rất thích hợp với các thiết kế hớng điều khiển.
+ Thứ ba là, vi điều khiển thuộc họ MCS-51 đợc hỗ trợ một tập lệnh
phong phú nên cho phép nhiều khả năng mềm dẻo trong vấn đề viết chơng
trình phần mềm điều khiển.
+ Cuối cùng là, các chip thuộc họ MCS-51 hiện đợc sử dụng phổ biến
và đợc coi là chuẩn công nghiệp cho các thiết kế khả dụng. Mặt khác, qua
việc khảo sát thị trờng linh kiện việc có đợc chip 8051 là dễ dàng nên mở ra
khả năng thiết kế thực tế.
Vì những lý do trên mà việc lựa chọn vi điều khiển 8051 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ừ 0o ữ 100oC.
+ Xử lý việc hiển thị kết quả nhiệt độ trung bình ta dùng 2 LED 7 thanh
để hiển thị tơng ứng với các nhiệt độ trong dải 0 ữ 1000C.


+ 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:

Address Bus
VXL
8051
ROM

Mạch
giao
tiếp
8255

RAM

Khối vào
tơng tự 8
kênh
Khối
hiển thị

Data Bus
Chơng 2
Bộ Vi Điều Khiển 8051
Control Bus


Những tính chất đặc trng của họ vi điều khiển MCS-51:
* Đơn vị xử lý trung tâm (CPU) 8 bit đã đợc tối u hoá để đáp ứng các
chức năng điều khiển .
* Khối lôgic (ALU) xử lý theo bit nên thuận tiện cho các phép toán logic
Boolean.
* Bộ tạo dao động giữ nhịp đợc tích hợp bên trong với tần số 12MHz.
* Giao diện nối tiếp có khả năng hoạt động song song, đồng bộ.
* Các cổng vào/ra hai hớng và từng đờng dẫn có thể đợc định địa chỉ
một cách tách biệt.
* Có năm hay sáu nguồn ngắt với hai mức u tiên .
* Hai hoặc ba bộ đếm định thời 16 bit.


* Bus và khối định thời tơng thích với các khối ngoại vi của bộ vi xử lý
8085/8088.
* Dung lợng của bộ nhớ chơng trình (ROM) bên ngoài có thể lên tới 64
kbyte.
* Dung lợng của bộ nhớ dữ liệu (RAM) bên ngoài có thể lên tới 64 kbyte.
* Dung lợng của bộ nhớ ROM bên trong có thể lên đến 8 kbyte.
* Dung lợng bộ nhớ RAM bên trong có thể đạt đến 256 byte.
* Tập lệnh phong phú.
2.1. Cấu trúc chung :
2.1.1. Sơ đồ khối :
Sơ đồ khối tổng quát của một vi điều khiển 8051 có thể đợc mô tả nh sau:

Nguồn ngắt ngoài
Điều khiển
ngắt.

Đếm sự kiện.

Nguồn
ngắt
trong.

4Kbyte

Bộ nhớ ch
ơng trình
trong.

128byte

2bộ
đếm /
định thời

Bộ nhớ
RAM
trong

CPU

Bộ tạo dao

động

XTAL 1.2

Khối
đ.khiển

quản lý
Bus.

|PSEN/ALE

Hình 2.1: Cấu

Port
0

Port
1

Port
2

Cổng I/O
Cổng I/O Cổng I/O
Đchỉ thấp
8 bit
Đchỉ cao
Dữ liệu 8
Dữ liệu 8
trúcbitcủa vi điều khiểnbit8051.

Port
3

Giao
diện

nối
tiép.

Cổng I/O
Các chức
năng đắc biệt
Dữ liệu 8 bit


Chức năng của từng khối :
* Khối xử lý trung tâm CPU:
Phần chính của bộ vi xử lý là khối xử lý trung tâm (CPU=Central
Processing Unit ), khối này có chứa các thành phần chính :
+Thanh ghi tích luỹ (ký hiệu là A );
+Thanh ghi tích luỹ phụ (ký hiệu là B ) thờng đợc dùng cho phép
nhân và phép chia ;
+Khối logic số học (ALU=Arithmetic Logical Unit) ;
+Từ trạng thái chơng trình (PSW= Program Status Word );
+Bốn băng thanh ghi .
+Con trỏ ngăn xếp (SP=Stack Point) cũng nh con trỏ dữ liệu để
định địa chỉ cho bộ nhớ dữ liệu ở bên ngoài;
Ngoài ra, khối xử lý trung tâm còn chứa:
-Thanh ghi đếm chơng trình (PC= Progam Counter );
-Bộ giải mã lệnh;
-Bộ điều khiển thời gian và logic;
Sau khi đợc Reset, CPU bắt đầu làm việc tại địa chỉ 0000h, là địa chỉ đầu
đợc ghi trong thanh ghi chứa chơng trình (PC) và sau đó, thanh ghi này sẽ
tăng lên 1 đơn vị và chỉ đến các lệnh tiếp theo của chơng trình.
*Bộ tạo dao động:
Khối xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động đợc

lắp thêm vào, linh kiện phụ trợ có thể là một khung dao động làm bằng tụ
gốm hoặc thạch anh. Ngoài ra, còn có thể đa một tín hiệu giữ nhịp từ bên
ngoài vào.
*Khối điều khiển ngắt:
Chơng trình đang chạy có thể cho dừng lại nhờ một khối logic ngắt ở bên trong.
Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm/bộ định thời
hay có thể là giao diện nối tiếp. Tất cả các ngắt đều có thể đợc thiết lập chế độ
làm việc thông qua hai thanh ghi IE (Interrupt Enable) và IP (Interrupt
Priority).
*Khối điều khiển và quản lý Bus :
Các khối trong vi điều khiển liên lạc với nhau thông qua hệ thống Bus
nội bộ đợc điều khiển bởi khối điều khiển quản lý Bus.
*Các bộ đếm/định thời:
Vi điều khiển 8051 có chứa hai bộ đếm tiến 16 bit có thể hoạt động
nh là bộ định thời hay bộ đếm sự kiện bên ngoài hoặc nh bộ phát tốc độ Baud


dùng cho giao diện nối tiếp. Trạng thái tràn bộ đếm có thể đợc kiểm tra
trực tiếp hoặc đợc xoá đi bằng một ngắt.
*Các cổng vào/ra:
Vi điều khiển 8051 có bốn cổng vào/ra (P0 .. P3), mỗi cổng chứa 8 bit,
độc lập với nhau. Các cổng này có thể đợc sử dụng cho những mục đích
điều khiển rất đa dạng. Ngoài chức năng chung, một số cổng còn đảm nhận
thêm một số chức năng đặc biệt khác.
*Giao diện nối tiếp:
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ
làm việc độc lập với nhau. Bằng cách đấu nối các bộ đệm thích hợp, ta có thể
hình thành một cổng nối tiếp RS-232 đơn giản. Tốc độ truyền qua cổng nối
tiếp có thể đặt đợc trong một vùng rộng phụ thuộc vào một bộ định thời và
tần số dao động riêng của thạch anh.

*Bộ nhớ chơng trình:
Bộ nhớ chơng trình thờng là bộ nhớ ROM (Read Only Memory), bộ
nhớ chơng trình đợc sử dụng để cất giữ chơng trình điều khiển hoạt động của
vi điều khiển.
*Bộ nhớ số liệu:
Bộ nhớ số liệu thờng là bộ nhớ RAM (Ramdom Acces Memory), bộ
nhớ số liệu dùng để cất giữ các thông tin tạm thời trong quá trình vi điều
khiển làm việc.
2.1.2. Sự sắp xếp chân ra của vi điều khiển 8051:
Phần lớn các bộ vi điều khiển 8051 đợc đóng vào vỏ theo kiểu hai hàng
DIL(Dual In Line) với tổng số là 40 chân ra, một số ít còn lại đợc đóng vỏ
theo kiểu hình vuông PLCC (Plastic Leaded Chip Carrier) với 44 chân và loại
này thờng đợc dùng cho những P1.0
hệ thống cần thiết phải tiết kiệm diệnVCC
tích.
+ 5V
P1.1

P0.0 (A/D 0)

P1.2

P0.1 (A/D 1)

P1.3
P1.4

P0.2 (A/D 2)

P1.5


P0.4 (/D 4)

P1.6
P1.7
RST

P0.3 (A/D 3)

8051

P0.5 (A/D 5)
P0.6 (A/D 6)
P0.7 (A/D 7)

(RxD)

P3.0

|EA

(TxD)

P3.1

ALE

( |INT0) P3.2

|PSEN


( |INT1) P3.3

P2.7 (A15)

(T0)

P3.4

P2.6 (A14)

(T1)

P3.5

P2.5 (A13)

( |WR)

P3.6

P2.4 (A12)

( |RD)

P3.7

P2.3 (A11)

XTAL2


P2.2 (A10)

XTAL2

P2.1 (A9)

GND

P2.0 (A8)

Hình 2.2: Sơ đồ chân của vi mạch 8051 DIL.


Bảng 2.1: Chức năng các chân của vi điều khiển 8051.
Chân
1-->8
9
10-->17

Ký hiệu
P1.0-->P1.7
Reset
P3.0-->P3.7

18
19
20
21-->28


XTAL2
XTAL1
Vss
P2.0-->P2.7

29

|PSEN

30

ALE

31

|EA

32-->39

P1.0-->P1.7

40

Vdd

Chức năng
Cổng giả hai hớng P1, có thể tự do sử dụng
Lối vào Reset, khi hoạt động ở mức High(1)
Cổng giả hai hớng P3, sắp xếp tất cả các đờng dẫn với chức năng đặc biệt
Lối ra của bộ dao động thạch anh bên trong

Lối vào của bộ dao động thạch anh bên trong
Nối mát ( 0V )
Cổng giả hai hớng P2, chức năng đặc biệt là
các đờng dẫn địa chỉ A8..A15
Progam Strobe Enable, xuất ra các xung đọc
dùng cho bộ nhớ chơng trình bên ngoài
Address Latch Enable, xuất ra các xung điều
khiển để lu trữ trung gian các địa chỉ
External Access, khi đợc nối với mát là để
làm việc với ROM ngoại vi
Cổng hai hớng cực máng hở P0 hay Bus dữ
liệu hai hớng dùng cho ROM, RAM và thiết
bị ngoại vi đồng thời cũng chuyển giao 8 bit
địa chỉ thấp
Nguồn nuôi dơng ( +5V )

Các chân ra của bộ vi điều khiển 8051 gồm có:
*EA: Đóng vai trò quyết định xem vi điều khiển làm việc với chơng trình
bên trong hay bên ngoài. Với loại 8051 không có ROM trong thì chân này
phải đợc nối với mát. Loại thông thờng có thể làm việc tuỳ theo cách lựa
chọn giữa ROM trong hay ROM ngoài, khi đang ở chế độ làm việc với bộ


nhớ ROM trong, loại có chứa bộ nhớ ROM có thể truy nhập tự động lên bộ
nhớ chơng trình bên ngoài.
*Reset: Trạng thái Reset đợc thiết lập bằng cách giữ tín hiệu Reset ở mức
cao trong thời gian ít nhất là 2 chu kỳ máy.
*ALE: Tín hiệu chốt 8 bit địa chỉ thấp trong suốt quá trìng truy nhập bộ
nhớ mở rộng. Thông thờng tín hiệu ALE đợc phát ra với tần số bằng 1/6 tần
số dao động thạch anh và có thể sử dụng với mục đích định thời gian hoặc

xung nhịp đồng hồ ngoài. Tuy nhiên, tín hiệu ALE sẽ bị bỏ qua trong mỗi
quá trình truy nhập bộ nhớ dữ liệu ngoài.
*PSEN: Tín hiệu đọc bộ nhớ chơng trình ngoài, khi vi điều khiển truy
nhập bộ nhớ chơng trình nội thì PSEN đợc đặt ở mức cao.
*XTAL1, XTAL2: Một bộ tạo tín hiệu giữ nhịp với tần số đợc xác định
bởi bộ cộng hởng thạch anh đợc lắp thêm vào, tần số này xác định tốc độ làm
của bộ vi điều khiển. Thông thờng các lệnh đợc thực hiện bằng 1/12 tần số
dao động của thạch anh.
Các bộ đếm cố thể làm việc trong nhiều chế độ khác nhau. Khi hoạt động
nh là bộ định thời, các bộ đếm nhận đợc các xung từ một bộ chia trớc ở bên
trong, bộ này chia tần số riêng của bộ cộng hởng thạch anh cho 12 .
Thay cho một bộ định thời 16 bit, một bộ đinh thời 8 bit có thể đợc tạo ra
bằng việc nạp tự động sau khi cấp nguồn, các xung dẫn từ bên ngoài vào qua
T0 và T1 cũng có thể đợc đếm, các xung này có tần số cực đại bằng 1/24 giá
trị tần số của bộ cộng hởng thạch anh.
*P0..P3: Các công vào/ra.
Cổng P3 cũng đảm nhận một số chức năng đặc biệt của bộ vi điều khiển :
Chân
Ký hiệu
Chức năng
P3.0
RxD
Nhận dữ liệu vào bộ nhớ qua cổng nối tiếp
P3.1
TxD
Truyền dữ liệu vào bộ nhớ qua cổng nối tiếp
P3.2
|INT0
Ngắt ngoài 0
P3.3

|INT1
Ngắt ngoài 1
P3.4
T0
Lối vào của Timer 0
P3.5
T1
Lối vào của Timer 1
P3.6
|WR
Viết vào bộ nhớ
P3.7
|RD
Đọc bộ nhớ
2.2 Tổ chức bộ nhớ:
2.2.1Cấ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 lu 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.
Bộ nhớ Chơng trình
Bộ nhớ

FFFFH

Bộ
nhớ mở

|EA=0
Bộ nhớ
ngoài

Bộ
nhớ
mở
rộng

FFH

rộng

|EA=1
Bộ nhớ
trong
0000H


|PSEN

Số liệu

00H
|WR |RD

Hình 2.3: Cấu trúc bộ nhớ của họ MCS-51.

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.
2.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.


2.2.3Bộ 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ớ.
Tuy nhiên, trên thực tế cách định địa chỉ của bộ nhớ RAM trong có thể
quản lý tới 384 byte.
Bản đồ bộ nhớ trên chíp:
7F

FF
F0 F7 F6 F5 F4 F3 F2 F1 F0

B

E0 E7 E6 E5 E4 E3 E2 E1 E0

ACC

D0 D7 D D D4 D3 D2 D D0
6 5
1

PSW

RAM đa dụng


30

B8 -

- - BC BB BA B9 B8

IP

B0 B7 B6 B5 B4 B3 B2 B1 B0

P.3

2F 7F 7E 7 7 7B 7 79 78
D C
A
2E 77 76 75 74 73 72 71 70
2D 6F 6E 6 6 6B 6 69 68
D C
A


2C 67 66 65 64 63 62 61 60

A8 AF

A A A A A8
C B A 9

IE


A0 A7 A A A4 A3 A2 A A0
6 5
1

P2

2B 5F 5E 5 5 5B 5 59 58
D C
A
2A 57 56 55 54 53 52 51 50
29 4F 4E 4 4 4B 4 49 48
D C
A
28 47 46 45 44 43 42 41 40

99

Kh«ng ®îc ®Þa chØ ho¸ bit

SBUF

27 3F 3E 3 3 3B 3 39 38
D C
A

98 9F 9E 9 9C 9B 9A 99 98 SCON
D

26 37 36 35 34 33 32 31 30

25 2F 2E 2 2 2B 2 29 28
D C
A

90 97 96 95 94 93 92 91 90

P1

24 27 26 25 24 23 22 21 20
23 1F 1E 1 1 1B 1 19 18
D C
A

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 0 0 0B 0 09 08
D C
A


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

89

Kh«ng ®îc ®Þa chØ ho¸ bit

TMO
D

Bank 3

18
17

88 8F 8E 8 8C 8B 8A 89 88 TCON

D
Bank 2

87

Kh«ng ®îc ®Þa chØ ho¸ bit

PCON

Bank 1

83

Kh«ng ®îc ®Þa chØ ho¸ bit

DPH

82

Kh«ng ®îc ®Þa chØ ho¸ bit

DPL

10
0F
08


07


Bank thanh ghi 0

00

(Mặc định cho R0 -R7)

81

Không đợc địa chỉ hoá bit

SP

88 87 86 85 84 83 82 81 80

P0

2.2.4 Thanh ghi ghi chức năng đặc biệt (SFR= Special Function
Registers):
Vi điều khiển 8051 là một bộ vi điều khiển đa năng với nhiều chế độ hoạt
động khác nhau đợc thiết lập thông qua các thanh ghi chức năng đặc biệt
SFRs.
Các thanh ghi chức năng đặc biệt của vi điều khiển 8051 gồm có:
+P0, P1, P2, P3: Các cổng vào ra, mỗi bít ứng với 1 chân của vi điều
khiển. Các chân này hoạt động ở mức logic âm.
+SP (Stack Pointer): Đây là con trỏ ngăn xếp của vi điều khiển. Thanh ghi
này cho biết địa chỉ truy nhập tiếp theo trong bộ nhớ RAM.
+DPH, DPL (Data Pointer High, Data Pointer Low): Tạo thành 1 cặp thanh
ghi con trỏ dữ liệu DPTR 16 bit.
+PCON (Power Control): Thanh ghi này đợc sử dụng để điều khiển công
suất của vi điều khiển. Ngoài ra bit PCON.7 con cho phép sủ dụng để tăng

gấp đôi tốc độ baud khi truyền qua cổng nối tiếp.
+TCON (Timer Control): Thiết lập cấu hình làm việc cho bộ Timer/Counter.
+TMOD (Timer Mode): Xác định chế độ làm việc cho từng bộ
Timer/Counter.
+TL0/TH0 (Timer 0 Low/High): Cặp thanh ghi tơng ứng với Timer0.
+TL1/TH1 (Timer 1 Low/High): Cặp thanh ghi tơng ứng với Timer1.
+SCON (Serial Control): Thiết lập cấu hình cho cổng nối tiếp.
+SBUF (Serial Buffer): Bộ đệm khi truyền hoặc nhận dữ liệu qua cổng nối
tiếp.
+IE (Interrupt Enable): Cho phép ngắt hoặc cấm ngắt.
+IP (Interrupt Priority): Thiết lập mức u tiên cho các ngắt.
+PSW (Program Status Word ): Thanh ghi từ trạng thái chơng trình lu trữ
một số bit quan trọng đợc đặt hoặc xoá bởi các lệnh của 8051: cờ nhớ, cờ
nhớ phụ, cờ tràn và cờ chẵn lẻ. Ngoài ra, 2 bit RS0 và RS1 trong PSW còn
cho phép chọn băng thanh ghi để làm việc trong bộ nhớ RAM trong.
+ACC (Accumulator): Thanh ghi tích luỹ, đây là một trong những thanh
ghi đợc sử dụng nhiều nhất trong vi điều khiển 8051. Thanh ghi này có ký
hiệu là A.
+ B (B Register): Thanh ghi B đợc sử dụng khi thực hiện các phép toán nhân,
chia và cũng có thể đợc dùng nh thanh ghi phụ hay thanh ghi lu trữ số liệu
tạm thời.


Các thanh ghi chức năng đặc biệt sẽ có thể đợc nhận một trạng thái nào đó
cố định mỗi khi vi điều khiển Reset (tuỳ thuộc vào mỗi thanh ghi). Sau đây
là bảng trạng thái của các thanh ghi ngay sau khi Reset:
Bảng 2.2: Trạng thái khi reset của các thanh ghi.
Register
A
B

DPTR
IE
IP
P0
P1

Reset to
00H
00H
00H
0..00000B
...00000B
FFH
FFH

Register
P2
P3
PCON
PSW
SP
SBUF

Reset to
FFH
FFH
0.......B
0...0000B
00H
07H

..H

Register
SCON
TCON
TMOD
TH0
TH1
TL0
TH1

Reset to
00H
00H
00H
00H
00H
00H
00H

Chơng III

Nội dung thiết kế
I.
tổ chức phần cứng hệ
VXL8051.
1. Tổ chức bộ nhớ (Memory Map).
Từ cấu trúc của vi điều khiển 8051 giới thiệu ở chơng II 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.

ROM ngoài (2732) có địa chỉ vật lý:

1000H ữ 1FFFH.

+ Bộ nhớ dữ liệu đợc mở rộng thêm 4K RAM ngoài, với địa chỉ vật lý: 2000H ữ
2FFFH.
+ 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
Đị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.
1. Khối nguồn :

Khối nguồn gồm có một IC 7805 , một tụ C1 = 3,3 F mắc ở ngõ vào và một
tụ C2 = 1 F mắc ở ngõ ra nhằm mục đích ổn định , chuyển nguồn 7,5 V cha
phẳng ở ngõ vào thành nguồn 5V ổn định , bằng phẳng ( loại bỏ hết các đột
biến dơng ) ở ngõ ra để cung cấp cho mạch .
2. Khối vi điều khiển 8051 :
VXL8051 đóng vai trò trung tâm trong hệ thống . Nó có nhiệm vụ tơng
tác với các khối nh việc nhận, xử lý và chuyển dữ liệu tới các khối . 8051
đảm nhận tất cả các nhiệm vụ từ việc nhận dữ liệu vào dới dạng tín hiệu nhị
phân ở 8 cổng vào, xử lý dữ liêụ, chuyển dữ liệu thành mã Hexa và mã 7
đoạn, lu giữ dữ liệu và điều khiển hoạt động của khối hiển thị và tạo một dãy

xung vuông ở đầu ra khi có lệnh tạo xung .
3. Khối hiển thị :
Khối hiển thị gồm 2 LED 7 đoạn đợc tổ chức theo kiểu sáng luân phiên
2.5 ms một lần. Dữ liệu đợc hiển thị dới dạng mã 7 thanh cũng đợc 8051 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 LS7447 để 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
VXL8051 thực hiện việc chuyển đổi số liệu sang dạng số và lu 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 gửi dữ liệu ra các đèn LED
II.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 8051 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 4Kb ROM đặt ở ngoài. Đối với
yêu cầu cho nhớ dữ liệu, vì 8051 đã có 128 bytes RAM trong và yêu cầu cần
thiết kế bộ nhớ dữ liệu là 8Kb 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.


Nguyên tắc phối ghép bộ nhớ với VXL:
+ Nhóm tín hiệu địa chỉ phối ghép với Bus địa chỉ của hệ thống để chọn ra
một ô nhớ cụ thể để đọc/ghi.
+ Nhóm tín hiệu dữ liệu đợc phối ghép với Bus dữ liệu của hệ thống nhằm

thực hiện đợc việc trao đổi dữ liệu trong hệ thống với bộ nhớ.
+ Nhóm tín hiệu chọn vi mạch (Chip Select): đợc phối ghép với đầu ra của
giải mã địa chỉ để có thể thực hiện đợc việc chọn ra một vùng nhớ làm việc.
+ Nhóm tín hiệu điều khiển: Kết nối với các Bus điều khiển của hệ VXL.
Đối với ROM thì đầu và điều khiển /OE (output enable) để cho phép dữ liệu
đợc đa ra bus thì đợc kết nối với dây tín hiệu /RD của VXL. Đối với RAM có
hai tín hiệu điều khiển thì tín hiệu điều khiển ghi /WE (write enable) đợc nối
với chân tín hiệu/WR của VXL; còn tín hiệu điều hiển đọc /OE thì đợc nối
với chân tín hiệu /RD của VXL.

Bộ nhớ ROM ngoài
Đối với ROM ngoài ta dùng vi mạch nhớ chỉ đọc loại EPROM
2732(4Kì8) . Đây là bộ nhớ lập trình xoá bằng tia cực tím, nó có tốc độ truy
nhập rất nhanh. Với dung lợng 4K byte nh vậy nó có 12 đờng chọn địa chỉ và
có 8 đờng ra dữ liệu. EPROM chỉ đợc hoạt động khi chân /OE ở mức tích
cực thấp, nó đợc vi điêù khiển chọn làm việc khi chân /CE cũng đợc tích cực
thấp. EPROM đợc nuôi với mức điện áp 5V, điện áp này đợc đa vào bộ nhớ
thông qua chân Vpp . Địa chỉ của EPROM trong hệ thống là 1000H ữ1FFFH
nên nó đợc chọn bởi tín hiệu chọn chip /CS0 của giải mã địa chỉ.
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ó 12 đờng địa chỉ 8 đờng dữ liệu. Nó có địa chỉ 2000ữ2FFF, địa
chỉ này đợc chọn ra trong vùng địa chỉ của vi điều khiển bởi chân /CS1 của
giải mã địa chỉ và có hai đờng tín hiệu yêu cầu đọc viết là /OE, /WE .
2. Vi mạch ADC0809.
Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi tơng
sang số 8 bit, bộ chọn kênh và mật bộ logic điều khiển tơng thích. Bộ chuyển
đổi tơng tự số này sử dụng phơng pháp chuyển đổi xấp xỉ. Bộ chọn kênh có
thể chọn ra kênh cần chuyển đổi bằng 3 chân chọn địa chỉ. Thiết bị này loại
trừ khả năng cần thiết điều chỉnh điểm zero bên ngoài và khả năng điều

chỉnh tỉ số làm cho ADC đễ dàng giao tiếp với các bộ vi xử lý.
* Các đặc điểm cơ bản của ADC 0809



-

Nguồn nuôi đơn 5 V, hiệu suất cao.


Dải tín hiệu lối vào tơng tự 5V 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ể.
Dễ dàng giao tiếp với vi xử lý vì đầu ra có bộ đệm 3 trạng thái nên
có thể ghép trực tiếp vào kênh dữ liệu của hệ VXL.
-

Tổng sai số cha chỉnh 1/2LSB.

-

Thời gian chuyển đổi 100 às .

-

Tần số xung clock 10kHz 1028 kHz.

-

Đảm bảo sai số tuyến tính trong dải nhiệt độ từ 400C ữ 85OC.


a. Bảng chân lý và sơ đồ chân của vi mạch ADC0809.
A
B
C
X
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1

1
0
6
1
1
1
7
X
X
X
(?)
* ý nghĩa các chân:
- IN0 IN7 : 8 đầu vào tơng tự.

IN3

IN2
IN1

IN4
IN5
IN6

IN0
A

IN7

B


START
EOC

2-6

Output enable
clock

Vcc

Ref(+)
GND

-

A,B,C : các tín hiệu chọn kênh.

-

Các chân 2.1-2.7: là các đầu ra số.

-

ALE cho phép chốt số liệu đầu vào.

-

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

2-7

C

ADC-0809

ALE

2-1
2-2
2-3
2-4
2-8
Ref(-)
2-6



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 10s đầ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ỉ A0A1A2 của Bus địa chỉ của hệ thống.
Các đờng địa chỉ cao của hệ thống đợc dùng để tạo tín hiệu chọn chip (/CS)
cho ADC0809.
+ Tín hiệu /CS đợc đa tới đầu vào của mạch OR để khởi động ADC (Start)
khi có tín hiệu /WR đồng thời chốt địa chỉ (ALE) của kênh hiện hành có giá
trị là giá trị 3 bit A,B,C. Tín hiệu /CS cũng đợc đa tới đầu vào của mạch OR
thứ hai để tạo tín hiệu OE cùng với /RD nhằm chốt dữ liệu đã biến đổi xong
ở đầu ra.
+ Vì khi biến đổi xong, ACD0809 dùng tín hiệu ra chân EOC để báo cho
VXL biết mã nhị phân tơng ứng với mức cao của tín hiệu đầu vào đã đợc tạo

ra. Vì vậy ta kết nối EOC với đầu vào ngắt ngoài /INT1 của 8051.
+ 8 bit dữ liệu thờng đợc ghép trực tiếp với Bus dữ liệu hệ thống vì bản
thân bộ đệm ra là 3 trạng thái, cũng có thể ghép qua 8255.


3.Vi mạch giao tiếp song song PPI 8255
Vi mạch 8255 là một vi mạch đợc sử dụng phổ biến để giao tiếp trong các
hệ VXL 8 16 bit. Sử dụng 8255A làm cho việc thiết kế để ghép nối bộ
VXL với các thiết bị ngoại vi đơn giản đi nhiều, độ mềm dẻo của thiết kế sẽ
tăng lên và linh kiện phụ trợ đi kèm cũng giảm đi nhiều. Do có khả năng lập
trình đợc nên nó có thể vừa dùng nh cổng nhận số liệu cũng nh xuất số liệu
tuỳ nội dung của từ điều khiển mà ngời lập trình đa vào.
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:

PA3
PA2
PA1
PA0
RD\
CS\
GND
A1
A0
PC7
PC6
PC5
PC4
PC0
PC1

PC2
PC3
PB0
PB1
PB2

1

40

8255A

20

21

PA4
PA5
PA6
PA7
WR\
RESET
D0
D1
D2
D3
D4
D5
D6
D7

Vcc
PB7
PB6
PB5
PB4
PB3

PA0 PA7

D0 D7
8255A
RD\
WR\
RESET
A0
A1
CS\

PB0 PB7

PC0 PC7

Trong đó:
Chân 1 ữ 4, 37 ữ 40 (PA0 PA7): là các đờng xuất nhập có tên là cổng A.
Chân 18 ữ 25 (PB0 PB7): là các đờng nhập xuất có tên cổng B.
Chân 10 ữ 13, 14 ữ 17 (PB0 PB7): là các đờng nhập xuất có tên cổng C.
Chân 27 ữ 34 (D0 D7): 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 (A1, A0): 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.

Bảng địa chỉ lựa chọn thanh ghi và các cổng
A1
0
0
1
1

A0
0
1
0
1

Cổng và thanh ghi
Cổng A
Cổng B
Cổng C

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.

Port A

PA7 PA0

Điều khiển
nhóm A

Port C

D7
D0

(4 bit cao)

Đệm
bus dữ
liệu

Nhóm A

Port C

Điều khiển

nhóm B
RD\
WR\
CS\
A0
A1

Logic
điều
khiển
ghi/đọc

PC7 PC4

PC3 PC0

(4 bit thấp)

PB7 PC0

Port B
Nhóm B


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 :
- Đờng dữ liệu: gồm 8 đờng dữ liệu (D0 - D7). 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 (A0 A1) 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 D7 của từ điều kiển là 1).
+ Lập/xoá các bit của Port C (bit D7của từ điều khiển là 0).

Định nghĩa chế độ các cổng
Khi D7 =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.
1D6D5D4D3D2D1D0

Nhóm A


Nhóm B

Mode select
00 = mode 0
01 = mode 1
1x = mode 2Cổng A
1 = Input
0 = OutputPCH (4 bit
cao)
1=Input
0=Output

PCL (4 bit thấp)
1 = Input
0 = OutputPB
1 = Input
0 = OutputMode
select
1 = mode 0
0 = mode 1


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 D6D5 , cụ thể là:
+ Chế độ 0(Vào ra cơ sở): D 6D5 = 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 : D6D5 =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
(PC4 ữ PC7) để đố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à PCL để đối thoại.
+ Chế độ 2: D6D5 =1x. Cổng A dùng vào/ra hai chiều, các bit PC 3 ữ PC7
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 D7=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.
0D6D5D4D3D2D1D0
1: Lập
0: Xoá
Không dùng=000
Cửa CD3 D2
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
bit 70
0
0
0
0
1
0
1
1
0
1
0

1
1
1
1

D1 bit 0

1
0
1
0
1
0
1

0

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 /CSi 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ỉ A1A0 đợc nối trực tiếp vào Bus địa chỉ hệ thống.


A1A0 đợ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 đều
có đệm 3 trạng thái rồi.
e. Ghép nối 8255A với thiết bị ngoại vi.
Phần ghép nối với thiết bị ngoại vi của 8255A thông qua 24 đờng số liệu
và điều khiển ở các cổng A, B, C. Các đờng ghép nối này đợc định nghĩa
bằng chơng trình nh giới thiệu ở trên. Bằng cách chọn chế độ làm việc thích
hợp và chính xác vi mạch 8255A có thể đáp ứng đợc những nhu cầu ghép nối
tinh vi.

AD0-AD7

P1

Đệm
BUS
S/L
74245

D0-D7
PA

P2

8051

A0
A1
A14

A15

ALE/P

P3.0ữP3.
5

Chốt
Đ/C
Thấp
74373

Giải

đ/c
(3/8)

CS

8255A

PB

PC
(P3.7) RD
(P3.6 WR

RD
WR


4. Thiết kế khối hiển thị.
Ta sử dụng LED 7 thanh để phụ vụ cho việc hiển thị giá trị nhiệt độ trung
bình. Để phối ghép giữa VXL và LED 7 thanh ta sử dụng thêm vi mạch
LS7447 để giải mã BCD ra 7 nét và để điều khiển bộ đèn hiển thị. Điều
khiển hiển thị số liệu đơn giản nhất là ta cứ cung cấp nguồn liên tục cho
LED khi đa số liệu ra, nhng cách này rất tốn năng lợng khi số lợng LED sử
dụng lớn. Vì vậy thực tế các đèn LED không đợc thắp sáng liên tục mà sáng
luân phiên nhau theo một chu kỳ nhất định với thời gian sáng hợp lý (cỡ
20ms) công suất tiêu thụ nhờ thế giảm đi mà vẫn đạt đợc hiệu quả hiển
thị.
Một cách thực hiện nguyên tắc hiển thị ở chế độ động đợc thể hiện dới
hình vẽ dới đây:
*Nguyên tắc hoạt động:
Giá trị số cần hiển thị của mỗi con số đợc gửi đến cổng PA của 8255A từ 8051
dới dạng mã BCD. Từ đây số BCD đợc mạch SL7447 giải mã và tạo ra các tín hiệu


điều khiển thích hợp đa đến các chân katot a,b,c,d,e,f,g của LED. Mỗi giá trị cần
hiển thị đợc đa đến cổng PA cứ mỗi 2ms một lần cho đèn.

+Sơ đồ đèn LED 7 thanh :
+Trong đó:

g

.chân vcc nối với nguồn 5(v)
.chân GND nối với đát 0(v)
.các chân a,b,c,d,e,f,g ,o nhận các tín
hiệu ĐK
để đk các đèn LED tơng ứng

+ Cấu trúc bên trong của đèn
LED 7 thanh bao gồm 7 diode phát
quang.

f

vcc

a

b

a
f

LED 7S

b
g

e

c
d

e

d

GND


c 0

+Với cấu trúc các thanh LED nh hình 3 thì ta có bảng logic sau:
A
1
0
1
1
0
1
1
1
1
1

b
1
1
1
1
1
0
0
1
1
1

c
1

1
0
1
1
1
1
1
1
1

d
1
0
1
1
0
1
1
0
1
1

e
1
0
1
0
0
0
1

0
1
0

f
1
0
0
0
1
1
1
0
1
1

g
0
0
1
1
1
1
1
0
1
1

Số hiển thị
0

1
2
3
4
5
6
7
8
9

5. Các vi mạch phụ trợ khác.
a. Mạch giải mã 74LS138:
Nó bao gồm 14 chân, trong đó:
Y0 ữ Y7 là các đờng ra địa chỉ, tích cực ở mức thấp.
A,B,C là 3 đờng địa chỉ vào , tích cực cao.
E1 ,E2 là các đầu vào cho phép làm viêc , tích cực ở mức thấp.
E3 là các đầu vào cho phép làm viêc , tích cực ở mức cao.
Ta có bảng chân chức năng của 74LS138 nh sau:
C B A
X
X
X
0
0

X
X
X
0
0


X
X
X
0
1

/
/ E1 /Y0
E1 E2
1 X X
1
X 1 X
1
X X 0
1
0
0
1
0
0
0
1
1

/Y1
1
1
1
1

0

/Y2 /Y3 /Y4 /Y5 /Y6
1
1
1
1
1

1
1
1
1
1

1
1
1
1
1

1
1
1`
1
1

1
1
1

1
1

/Y7
1
1
1
1
1


0
0
1
1
1
1

1
1
0
0
1
1

0
1
0
1
0

1

0
0
0
0
0
0

0
0
0
0
0
0

1
1
1
1
1
1

1
1
1
1
1
1


1
1
1
1
1
1

0
1
1
1
1
1

1
0
1
1
1
1

1
1
0
1
1
1

1
1

1
0
1
1

1
1
1
1
0
1

b. Vi mạch chốt 74HC573:
Đây là mạch có tác dụng chốt lại số liệu ở đầu vào khi có tín hiệu tích cực,
đầu ra sẽ không bị biến đổi khi tín hiệu đầu vào đã mất. Nó chỉ thay đổi khi
tín hiệu chốt tích cực trở lại. Bên ngoài vỏ cũng có tín hiệu /OE cho phép
hoạt động. Khi có yêu cầu chốt chân LE sẽ đợc tích cực.

8051.

Trong ghép nối với 8051:
+ Chân /OE (số 1) của 74HC573 đợc nối đất.
+ Chân LE(số 11) của 74HC573 đợc nối với chân ALE (số 30) của

PHầN 2: Xây dựng phần mềm
CHƯƠNG 1 : Lu đồ thuật toán

1
1
1

1
1
0


×