Tải bản đầy đủ (.pdf) (107 trang)

Tài liệu Luận văn "Giao tiếp máy tính với VXL 8085" doc

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 (457.78 KB, 107 trang )





LUẬN VĂN TỐT NGHIỆP

GIAO TIẾP MÁY
TÍNH VỚI VI XỬ LÝ 8085







Giáo viên thực hiện :
Sinh viên thực hiện :

LUÂÄN VĂN TỐT NGHIỆP

1






Chương I:


CHƯƠNG DẪN NHẬP


LUÂÄN VĂN TỐT NGHIỆP

2
I. ĐẶT VẤN ĐỀ:
Khi nhu cầu học tập ngày càng cao thì thiết bò, phương tiện dạy học càng
đóng vai trò quan trọng, nó giúp người thầy dỡ vất vả trong việc truyền thụ kiến
thức, giúp người học nhanh chóng tiếp thu, ngoài ra còn để minh họa, chứng
thực môt cách cụ thể những bài học mơ hồ trừu tượng.
Trong bài này, người thực hiện muốn đề cập đến môn học vi xử lý, lập
trình vi xử lý, một môn học mang ý nghóa thiết thực trong xã hội mà quá trình
công nghiệp hóa, hiện đại hóa diễn ra từng ngày. Khi học môn này, người học
không chỉ được học về cấu trúc vi xử lý cả phần cứng lẫn phần mềm, cách kết
nối với các IC ngoại vi 8255, 8279, … mà còn phải sử dụng thành thạo Kit vi xử lý
8085,…
Khi viết một chương trình trên Kit vxl 8085 và để kiểm nghiệm chương
trình đó thì ngưòi học phải qua các bước :
Bước 1: Xác đònh mục đích yêu cầu của chương trình.
Mục đích, yêu cầu được xác đònh từ đề bài, hoặc một nhu cầu thực tế,
đây là mục đích chung của chương trình. Để thực hiện mục đích chung
này, có thể sẽ phải qua nhiều bước, mà mỗi bước là một mục đích cụ thể
mới, được giải quyết bằng một chương trình nhỏ hơn, phát sinh trong
giai đoạn viết lưu đồ.
Bước 2: Vẽ lưu đồ
Lưu đồ dùng để trình bày cách giải quyết vấn đề, thường thì ngôn ngữ
dùng trong lưu đồ không phải là một ngôn ngữ máy xác đònh nào, lưu đồ
thực chất để giúp người thảo chương chia nhỏ một chương trình lớn. Từ
lưu đồ tổng quát, có thể vẽ ra lưu đồ chi tiết.
Bước 3: Viết chương trình bằng ngôn ngữ gợi nhớ(ngôn ngữ Assembler).
Bước 4: Chuyển sang mã máy.
Bước 5: Nhập mã máy vào Kit bằng phím.

Bước 6: Chạy thử chương trình và kiểm tra kết quả.
Một chương trình được viết phải được chạy thử và kiểm tra kết quả, kết
quả phải đúng trong mọi trường hợp cho phép (điều kiện đặt ra trước) của
chương trình, và từ kết quả kiểm tra mà phán đoán, nhận đònh lỗi để sửa chương
trình từ đâu, có khi phải sửa lại cả lưu đồ.
Trong cách làm trên, ta nhận thấy có những khó khăn riêng sau:
− Quá trình dòch từ ngôn ngữ gợi nhớ sang mã máy (bước 4), đòi hỏi
sự quen thuộc bảng tra mã, nếu không việc này chiềm nhiếu thời gian, và
việc kiểm tra lại cũng chiếm không ít thời gian. Tại những lệnh jump, những
lệnh call, cần phải xác đònh đòa chỉ cụ thể, chính xác của ô nhớ rồi mới xác
đònh được lệnh jump. Việc này chỉ hoàn tất khi chương trình được dòch sang
mã máy gần như đầy đủ.
− Ở giai đoạn nhập mã máy (bước 5), để nhập nhanh thì phải nhớ vò
trí phím, phải nhập chính xác để tránh thời gian dò để sửa một chương trình
nhập sai. Để nhập một byte cần gõ 3 phím và phải đối chiếuqua lại giữa bản
dòch chương trình, nội dung hiển thò trên các led 7 đoạn cùng với đòa chỉ ô
nhớ và bàn phím.
LUÂÄN VĂN TỐT NGHIỆP

3
− Đối với những ai trong giai đoạn khởi đầu học lập trình vi xử lý, thì
2 việc trên luôn xẩy ra nhầm lẫn gây mất nhiều thời gian vô ích.
− Khi cần thêm hoặc xóa, hoặc sửa chương trình thì mất nhiều thời gian để
dò lại chương trình, nhập lại khó khăn, thậm chí phải nhập lại phần lớn chương
tình.
− Sau khi bò mất điện thì dữ liệu lưu trong RAM không có nguồn dự trữ sẽ
bò mất hết, phải nhập lại toàn bộ chương trình. Đối với những chương trình nhỏ
thì thời gian nhập không đáng kể, nhưng đối với những chương trình lớn thì đây
là công việc mất nhiều thời gian, và gây phiền hà cho người học cũng như người
lập trình vi xử lý.

Bên cạnh đó, thực tế đã có những thiết bò nạp EPROM rất tiện lợi, mà có
thể đem ý tưởng đó vào việc học lập trình vi xử lý nhất là việc giao tiếp với thiết
bò khác từ vi xử lý là một điều khá dễ dang.
Ngoài ra, chương trình đại học rất bao quát, thời gian và điều kiện chỉ cho
phép sinh viên đi hết bề nổi của chương trình mà chưa có hoặc ít có dòp tìm hiểu
về chiều sâu. Do đó, đồ án tốt nghiệp là một cơ hội tốt cho sinh viên đào sâu vào
chương trình học, ứng dụng bài học vào thực tế, chứng minh được sự hữu ích của
những kiến thức đã học được trong môi trường sư phạm.
Từ những lý do trên, người viết quyết đònh chọn đề tài “GIAO TIẾP MÁY
TÍNH VỚI VI XỬ LÝ 8085”.
Đề tài đưa ra một chương trình như một công cụ hỗ trợ việc học lập trình
vi xử lý trên Kit8085 với một thứ tự sau:
1) Xác đònh mục đích yêu cầu của chương trình cần viết.
2) Vẽ lưu đồ.
3) Viết chương trình bằng ngôn ngữ Assembly (ngôn ngữ gợi nhớ).
4) Nhập chương trình bằng ngôn ngữ Assembly vào máy (dùng Norton).
5) Gọi chương trình dòch Assembler để dòch từ ngôn ngữ Assembly sang
một file có phần mở rộng “prn” chứa mã máy.
6) Trong chương trình Giao tiếp, gọi file dòch để nạp vào RAM.
7) Chạy thử và kiểm tra kết quả.
Cách làm này có những ưu điểm sau:
− Dòch từ ngôn ngữ Assembly (ngôn ngữ gợi nhớ) tốn rất ít thời gian vì việc này
do máy tính đảm trách, với độ chính xác tuyệt đối.
− Cũng vậy, việc nạp dữ liệu vào RAM cũng chỉ trong vài giây, và được kiểm
tra trong khi nạp nên độ chính xác cũng tuyệt đối.
− Ngoài ra, chương trình được lưu trữ, quản lý dể dàng, dể xem lại, dể kiểm
tra. Khi cần thêm, hoặc xóa hoặc sửa hoặc chép lại một đoạn chương trình,
ngay cả thay đổi đòa chỉ bắt đầu, cũng rất đơn giản.
− Về độ chính xác và thời gian cần thiết thì đối với chương trình các lớn càng
có lợi, càng phải nạp chương trình nhiếu thì càng có lợi.

II. TẦM QUAN TRỌNG CỦA VẤN ĐỀ.
Trong xã hội ngày càng phát triển, lượng kiến thức cần truyền tải trong
nhà trường ngày càng tăng, mà thời gian cho phép ngày càng bò giảm đi, thì sự
LUÂÄN VĂN TỐT NGHIỆP

4
nổ lực của cả người dạy lẫn người học đều rất cần thiết. Bên cạnh đó, phương
tiện ít nhiều sẽ góp phần quan trọng trong quá trình học tập.
Trước đây, việc học lập trình vi xử lý đã diễn ra một cách tự nhiên, có thể
coi như đã đầy đủ về phương tiện học tập. Nhưng nay, nếu có thêm một chương
trình mô phỏng các họ vi điều khiển, hay vi xử lý, giao tiếp máy tính với vi xử lý
để truyền file… thì tất nhiên sẽ có mặt tích cực, mang thêm nhiều lợi ích cho việc
học.
“Giao tiếp máy tính với vi xử lý” còn là một chứng thực về giao tiếp _
những gì đã được học _ trên chính kit thực tập, điều đó sẽ kích hoạt sự tìm tòi,
sự ham thích hiểu biết của sinh viên.
III. GIỚI HẠN VẤN ĐỀ
Đây là một chuyên đề thú vò, có nhiều vần đề đáng quan tâm, nhưng do
những giới hạn về thời gian và kiến thức, nên trong đồ án này, người viết chỉ có
thể trình bày những phần sau:
− Khái quát Kit 8085 sử dụng, các linh kiện có liên quan trực tiếp
đến giao tiếp.
− Cách thức sử dụng kit, những hoạt động bên trong kit về lệnh, dữ
liệu … mà sau đó sẽ được thay thế bằng cách nạp từ máy tính.
− Giao tiếp máy tính.
− Một số điểm cần lưu ý khi viết một chương trình bằng ngôn ngữ
gợi nhớ cho chương trình dòch Assembler để tạo ra một file có phần mở rộng
.prn.
− Cấu trúc một file .prn, những số liệu nào cần xuất.
− Đôi nét về ngôn ngữ C, chương trình Download

− Chương trình nhận dữ liệu.
IV. MỤC ĐÍCH NGHIÊN CỨU
Trước mắt: đây là một vấn đề hay, đã thu hút người viết từ lâu mà nay mới
có dòp thực hiện, và cũng là nhu cầu cần thiết trong thực tế.
Lâu dài: tuy chỉ là một thiết kế đơn giản, nhưng là một cơ sở ban đầu có
thể phát triển thêm ra hướng tổng quát.
V. XÁC ĐỊNH THUẬT NGỮ
Tựa đề tài là “Giao tiếp máy tính với kit vi xử lý 8085”. Thực chất, vấn đề
giao tiếp chỉ là một cơ sở, phương tiện chủ yếu. Còn sản phẩm của đề tài là một
giao diện trên màn hình vi tính mà trong đó, người dùng cho thể chọn fie cần
truyền, và truyền xuống kit qua một port nào đó để nạp dữ liệu vào RAM.
Đề tài này chỉ thực hiện việc nạp dữ liệu vào RAM mà sau đó sẽ có những
phát triển khác. Thực tế đề ra là việc thực hành lập trình vi xử lý trên kit,
chương trình chỉ là để thực tập, chủ yếu chỉ nạp vào RAM, mà việc nạp dữ liệu
vào Kit mất nhiều thời gian, và mục đích của đề tài trước tiên là để giải quyết
vấn đề đó, sau đó có thể phát triển lên để đọc các vùng RAM, EPROM.




LUÂÄN VĂN TỐT NGHIỆP

5














Chương II:


CƠ SỞ LÝ LUẬN


















LUÂÄN VĂN TỐT NGHIỆP


6








Từ vấn đề đặt ra như ở chương 1 đã trình bày, người thực hiện đề tài đã
tiến hành giải quyết theo hướng sau:
− Xác đònh thiết bò giao tiếp: Kit vi xử lý 8085 đã có sẵn các IC ngoại vi 8255
làm nhiệm vụ giao tiếp, chỉ cần chọn IC, xác đònh đòa chỉ của IC đó, đòa chỉ
của các port vào ra, mode hoạt động của các port, xác đònh các điểm nối kết
phần cứng với máy tính và viết chương trình nhận, phát dữ liệu.
− Xác đònh cổng giao tiếp: đối với máy tính: chọn cổng LPT1 (mà sau này có
thể phát triển để có thể sử dụng cả LPT2, COM1, COM2) với phướng pháp
giao tiếp song song bất đồng bộ.
− Xây dựng giao diện trên màn hình máy tính:Yêu cầu cần có …… và phù hợp
với người sử dụng. Sau đó tiến hành viết giải thuật, và bắt tay vào viết
chương trình. Ở đây, người thực hiện đã viết chương trình truyền dữ liệu
trong môi trường Borland C 3.1. Trong quá trình viết, phải giải quyết những
khó khăn phát sinh một cách cụ thể.
− Viết chương trình truyền, nhận dữ liệu với Kit.
− Ghép nối các phần lại.
− Thử nghiệm.
− Sửa lỗi.
− Phương pháp chủ yếu là tham khảo tài liệu và thực nghiệm


















LUÂÄN VĂN TỐT NGHIỆP

7













Chương III:


KIT THỰC TẬP
VI XỬ LÝ 8085





LUÂÄN VĂN TỐT NGHIỆP

8



I. KIT THỰC TẬP VI XỬ LÝ 8085:
Kit thực tập vi xử lý 8085 là một loại máy tính chủ yếu phục vụ cho mục
đích học tập và nghiên cứu thiết kế về lónh vực vi xử lý. Kit này, xuất phát tại
trường ĐH Sư phạm kỹ thuật – Trung tâm Việt-Đức, và do nhu cầu học tập và
nhu cầu thực tế, các giáo viên trong bộ môn Điện-Điện tử của trường đã cải tiến
cho phù hợp. Mặt khác, sinh viên thuộc khoa, trong các đề tài tốt nghiệp, đồ án
môn học, cùng với sự hứng thú, đã tham khảo, tìm hiểu về cấu tạo và nguyên lý
hoạt động, và mở rộng thêm một số chức năng cho kit.
Một Kit thực tập vi xử lý thường có các phần chính được trình bày trong sơ
đồ khối ở (Hình 1).
Với mục đích của đề tài này là giao tiếp song song nên trong Kit 8085, chỉ
cần quan tâm đến 8085 và bộ lệnh 8085, 8255, 8279.
I.1. SƠ LƯC VI XỬ LÝ 8085:
Vi xử lý (microprocessor) là một thiết bò bán dẫn chứa các mạch logic điện

tử có khả năng xử lý các dữ liệu, chương trình từ ngoài đưa vào để điều khiển
các IC, thiết bò kết nối theo mục đích đònh trước.
I.1.1. Cấu trúc phần cứng:
I.1.1.1. Cấu trúc bên ngoài:
8085 là một bộ vi xử lý 8 bit do Intel sản xuất, đầu tiên vào năm 1977. Nó
có khả năng đònh đòa chỉ cho bộ nhớ tới 64 Kbyte, IC này có 40 chân, dạng DIP,
sử dụng nguồn đơn + 5V.
Chức năng, dạng tín hiệu, trạng thái các chân của 8085 được cho ở bảng
sau:
Bảng 1:
Chân Ký hiệu In/out 3 stat
e
Ý nghóa
1,2 X1, X2 I X1, X2 là 2 ngõvào của mạch dao
động. Tần số ngõ vào được chia cho
2 bởi mạch chia bên trong. Tần số
làm việc cực đạicủa:
8085A: 6MHz
8085A-2: 10MHz
LUÂÄN VĂN TỐT NGHIỆP

9
8085A-1:12MHz
3 Reset Out O Cho biết CPU đang reset. Tín hiệu
này có thể dùng để reset các thành
phần khác trong mạch.
4 SOD O Serial Output: ngõ ra dữ liệu nối tiếp
được xác đònh bởi lệnh SIM.
5 SID I Serial Input: ngõ vào dữ liệu nối
tiếp, dữ liệu này được nạpàobit thứ 7

của thanh ghi Accumulator khi thực
hiện lệnh RIM.
6 TRAP I Trap: tín hiệu không ngăn được. Ngõ
vào trap được kích bởi cạnh lên.
7,8,9 RST 7.5, 6.5, 5.5 I Restart Intrerupt Repuest: là các tín
hiệu ngắt có thể ngăn được. RST 7.5
có thể được kích bằng cạnh, RST 6.5
và 5.5 có thể được kích bằng mức.
10 INTR I Interrupt: là tín hiệu ngắt
thôngdụng có thể che được lệnh kích
bằng mức.
11 INTA\ O Interrupt Acknowledge: tín hiwệu
dùng để báo cho thiết bò yêu cầu
ngắt INTR biết rằng microprocessor
đã chấp nhận yêu cầu ngắt và thiết
bò yêu cầu ngắt hãy đặt lệnh lên bus
dữ liệu.
19-12 AD7-AD0 I/O-3 Address/Data bus: các đường dữ liệu
và các đường đòa chỉ được tích hợp
chung với nhau. trạng thái T1 của
chu kỳ máy, cá ngõ này đóng vai trò
là các ngõ ra đòa chỉ. Các trạng thái
còn lại của chu kỳ máy, nó đóng vai
trò là các đường dữ liệu.
20 Vss Ground.
28-22 A15-A8 O-3 Address bus:các ngõ này được dùng
LUÂÄN VĂN TỐT NGHIỆP

10
để xuất 8 bit đòa chỉ cao.

30 ALE O Address Latch Ennable: ngõ này tạ
ra một xungở trạng thái T1 của chu
kỳ máy để xác đònh A15-A8 và AD7-
AD0 là các đường đòa chỉ.
31 WR\ O-3 Write: dùng để xác đònh
icroprocessor đang thực hiện lệnh
ghi dữ liệu lên bộ nhớ hay IO.
32 RD\ O-3 Read: dùng để xác đònh
microprocessor đang thực hiện lệnh
đọc dữ liệu từ bộ nhớ hay IO.
29,33,34 S0,S1, IO/M\ O,O-3 Machine Cycle Status: 3 bit này cho
biết trạng thái chu kỳ máy.
IO/M\ S1 S0 Trạng thái
0 0 1 Memory Write
0 1 0 Memory Read
0 1 1 Op-code fetch.
1 0 1 IO write.
1 1 0 IO read.

1 1 1 Interrupt
Ackowledge.
trạng thái dừng (halt), S1=S2=0 và
IO/M\ ở trạng thái tổng trở cao.
Trong khoảng thời gian Hold và
reset thì trạng thái của S0 và S1
không xác đònh,IO/M\ ở trạng thái
tổng trở cao. Thường thì các bit
WR\, RD\ và IO/M\ dùng để xác
đònh trạng thái làm việc của bus
như: memory read, memory write,

IO read, IO write.
LUÂÄN VĂN TỐT NGHIỆP

11
35 READY I Ready là tín hiệu trả lời từ bộ nhớ
hoặc thiết bò ngoại vi IO cho
microprocesser biết để
microprocessor có thể hoàn thành
chu kỳ máy đang thực hiện.
36 RESET IN I Reset: ngõ vào reset 8085 để trở về
trạng thái ban đầu của nó. Tín hiệu
này phải ở mức 0 khoảng 3 chu kỳ
xung clock.
37 CLK O Clock out: ngõ ra tín hiệu clock để
cung cấp cho các thiết bò khác. Tần
số của nó bằngtần số ngõ vào chia 2.
38 HLDA O Hold Ackowledge: tín hiệu ngõ ra
cho biết tín hiệu hold đã được chấp
nhận và CPU sẽ ở trạng thái Hold ở
chu kỳ xung clock tiếp theo.
39 HOLD I Hold request: nhận tín hiệu yêu cầu
ngưng từ bộ điều khiển DMA.
40 Vcc Power: nguồn cung cấp +5V.

Các chân của IC đượïc bố trí như hình vẽ sau (hình 2):












8085
CLK(OUT)
RESET(OUT)
S0
INTA
AD2
3 HLDA
32
35
38
15
5
S1
7
RST5.5
IO/M
X2
RST7.5
AD1
13
10
9
8
SOD

INTR
WR
2 HOLD
28
30
39
11
4
29
31
37
40
6
1
READY
X1
AD0
A15
RD
SID
Vcc
36
14
RST6.5
26
A14
ALE
A13
TRAP
27

33
12
AD3
34
RESET IN


LUÂÄN VĂN TỐT NGHIỆP

12










Toàn bộ các tín hiệu của 8085 có thể đïc phân thành 6 nhóm:
(1) Tuyến đòa chỉ
(2) Tuyến dữ liệu
(3) Các tín hiệu trạng thái và điều khiển
(4) Nguồn cung cấp và các tín hiệu tần số
(5) Các ngắt và các tín hiệu tần số
(6) Các cổng I/O nối tiếp













Control
and
Status Signals
+5V
AD7
AD0
A15
A8
SID
SOD
TRAP
X1 X2
Vcc
Vss
INTR
READY
HOLD
8085
GND
RST 7.5
RST 6.5

RST 5.5
RESET IN
RESET
OUT
CLK
OUT
28
21
19
12
30
29
33
34
32
31
11
18
35
39
36
2121
12
5
4
6
7
8
9
10

40 20
ALE
S0
S1
IO/M
RD
WR
INTA
HLDA
High Outer
Address Bus
Multiplexed
Address/Data Bus
Serial
I/O
Ports
Interrupts
and
Externally
Initiated
Signals
LUÂÄN VĂN TỐT NGHIỆP

13



Hình 3: các nhóm hoạt động của 8085

I.1.1.2. Cấu trúc bên trong 8085:

8085ù bao gồm đơn vò logic và số học ALU (Arithmetic and Logic Unit),
đơn vò đònh thời và điều khiển (Timing and Control Unit) , bộ giải mã và
thanh ghi lệnh (Instruction Register and Decoder), dãy thanh ghi ( Register
Array), điều khiển ngắt (Interrupt Control) và điều khiển I/O nối tiếp
(Serial I/O Control) (xem hình 4).



























Hình 4: Sơ đồ khối chức năng của 8085

I.1.2. Cấu trúc phần mềm:
Tập lệnh của 8085
Accumulater
Address Buffer
(8)
AD15 - AD8
Address Bus
Array
Register
Data Address Buffer
(8)
AD7 - AD0
Address Data Bus
X1
X2
Power Supply
+5V
GND
Timing and Control
Interrupt Control
8 Bit Internal Data Bus
(8) (8) (8)
Temp. Reg.
Instruction
Register
Instruction
Decoder

and
Machine
Cycle
Encoding
Flag
Flip Flops
Arithmatic
Logic
Unit
(8)
(ALU)
CLK
GEN
CLK OUT
READY
RD
WR
Control
Status DMA
Reset
ALE S0 S1
IO/M
HOLD
HLDA
RESET IN
RESET OUT
INTR RST 5.5 RST 7.5
RST 6.5
TRAP
INTA

Stack Pointer
Program Counter
Incrementer / Decrementer
Address Lactch
Multiplexer
(8)
(8)
(8)
(8)
(8)
(8)
(8)
(8)
(16)
(16)
(16)
Reg.
Reg.
Reg.Reg.
Reg.
Reg.
Re
g.
Sel
ect
WZ
BC
DE
HL
Temp. Reg.

Temp. Reg.
Serial I/O Control
SID
SOD
LUÂÄN VĂN TỐT NGHIỆP

14
Một lệnh (Instruction) là một mẫu nhò phân (binary pattern) được thiết kế
bên trong vi xử lý để thực hiện một chức năng cụ thể (Instruction set), xác đònh
các chức năng mà vi xử lý có thể thực hiện. Tập lệnh của 8085 có 74 lệnh (hơn
8080 hai lệnh), các lệnh này có thể được phân thành 5 nhóm chức năng :
− Các hoạt động (sao chép) truyền dữ liệu
− Các hoạt động toán học
− Các hoạt động logic
− Các hoạt động rẽ nhánh
− Và, các hoạt động điều khiển
Tập lệnh vi xử lý 8085 được phân thành 3 nhóm tuỳ theo kích cỡ từ :
1. Các lệnh một từ hoặc 1 byte
2. Các lệnh hai từ hoặc 2 byte
3. Các lệnh ba từ hoặc 3 byte
Lệnh một byte chứa mã hoạt động (Opcode) và toán tử (Operand) trong
cùng một byte.
Trong lệnh hai byte, byte thứ nhất nêu lên mã hoạt động và theo sau là
toán tử.
Đối với lệnh ba byte, byte đầu tiên cho biết mã hoạt động, 2 byte theo sau
là dữ liệu (nội dung hoặc đòa chỉ) 16 bit.
I.2. IC NGOẠI VI 8255:
I.2.1. Cấu trúc:
I.2.1.1. Phần cứng:
8255 là một thiết bò I/O giao tiếp song song, nó có thể được lập trình để

truyền dữ liệu dưới các điều kiện khác nhau, từ I/O đơn giản đến I/O có ngắt. Nó
khá linh hoạt, đa năng và tinh tế (khi có nhiều cổng I/O được đòi hỏi), nhưng
cũng phức tạp. Nó là một thiết bò I/O phổ dụng có thể được sử dụng với hầu hết
bất kỳ bộ vi xử lý nào.
8255 có 40 chân dạng DIP như hình 5.









1
2
3
4
5
6
7
8
9
10
11
12
13
40
39
38

37
36
35
34
33
32
31
30
29
28
A1
A0
D0
D1
D2
D3
D4
D5
D6
PC7
PC6
PC5
PC4
PA4
PA5
PA6
PA7
PA3
PA2
PA1

PA0
WR
CS
RESET
GND
8255
Group
A
Port C
Upper
(4)
Group
A
Port C
Lower
(4)
Group
A
Port
A
(8)
Group
A
Control
Data
Bus
Buffer
I/O
PA7-PA0
I/O

PA7-PA0
I/O
PA7-PA0
Bidirectional
Data Bus
D7-D0


RD
LUÂÄN VĂN TỐT NGHIỆP

15












Hình 5 : sơ đồ chân và Sơ đồ khối của 8255
Bảng 2: Bảng liệt kê chức năng các chân IC 8255
Tên các chân Chức năng
D7 – D0 Data bus (Bi – Direction)
RESET Rest Input
CS\ Chip Select

RD\ Read Input
WR\ Write Input
A0, A1 Port Address
PA7 – PA0 Port A
PB7 – PB0 Port B
PC7 – BC0 Port C

Sơ đồ khối trên hình 5. trình bày hai cổng 8 bit (A và B) và hai cổng 4 bit
(C
U
và C
L
) bộ điện tuyến dữ liệu, và logic điều khiển. Hình 5.9 (b) trình bày một
sơ đồ đơn giản hóa nhưng mở rộng của cấu trúc bên trong, chứa một thanh ghi
điểu khiển. Sơ đồ khối này chứa tất cả các phần tử của một thiết bò lập trình;
cổng C thực hiện chức năng tương tự chức năng của thanh ghi trạng thái, ngoài
ra còn cung cấp các tín hiệu bắt tay.
I.2.1.2. Phần mềm:
Từ điều khiển
Hình 6 trình bày một thanh ghi được gọi là thanh ghi điều khiển (control
register). Nội dung của thanh ghi này, gọi là từ điều khiển (control word), nêu
rõ một chức năng I/O cho mỗi cổng. Thanh ghi có thể được xâm nhập để ghi từ
LUÂÄN VĂN TỐT NGHIỆP

16
điều khiển. Khi A
0
và A
1
ở mức logic 1, như đã đề cập ở trên. Thanh ghi này

không thể bò xâm nhập đối với hoạt động Đọc.
Bit D
7
của thanh ghi điều khiển nêu rõ hoặc chức năng I/O hoặc chức năng
Đặt/Đặt lại bit như phân loại trong Hình 5.8 (b). Nếu D
7
= 1các bit D
6
÷ D
5
quyết
đònh các chức năng I/O ở các mốt khác nhau. Nếu bit D
7
= 0, cổng C hoạt động ở
mốt Đặt/Đặt lại bit (BSR). Từ điều khiển BSR không ảnh hưởng đến các chức
năng của các cổng A và B.
LUÂÄN VĂN TỐT NGHIỆP

17





















Hình 6: Cấu trúc từ điều khiển của IC ngoại vi 8255.
Căn cứ vào từ điều khiển của 8255, có thể klhởi tạo 8255 ở các mode 0
hoặc mode 1 hoặc mode 2, và có thể xác đònh hướng vào ra dữ liệu cho mỗi
port.
Để trao đổi thông tin với các ngoại vi (ở đây là các mô - đun vào ra) thông
qua 8255, ba bước sau đây là cần thiết :
(1) Xác đònh được đòa chỉ các cổng A, B và C và của thanh ghi điều khiển theo
logic chọn chip (CS) và các đường đòa chỉ A
0
, A
1
.
(2) Ghi từ điều khiển vào thanh ghi điều khiển.
(3) Ghi các lệnh I/O để thông tin với các ngoại vi thông qua cổng A,B và C.
Hệ thống Kit đã được đặt cho 8255 làm việc với các ngõ vào / ra ở mốt 0
như sau :
1. Các ngõ ra được chốt
2. Các ngõ vào không được chốt
3. Các cổng không có khả năng bắt tay và ngắt.
Ví dụ:
PORT C (LOWER)

1=INPUT
0=OUTPUT

D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
PORT B
1=INPUT
0=OUTPUT

MODE SELECTION
0=MODE 0
1=MODE 1

PORT C (UPPER)
1=INPUT
0=OUTPUT


PORT A
1=INPUT
0=OUTPUT

MODE SELECTION
00=MODE 0
01=MODE 1
1X=MODE 2

GROUP B
GROUP A
MODE SET FLAG
1=ACTIVE
LUÂÄN VĂN TỐT NGHIỆP

18
Để A, C là cổng nhập (8 bít), B là cổng xuất(8bít), và chọn ngoại vi có đòa
chỉ từ 00 – 03 thì phải làm như sau:
Gởi từ điều khiển 99hex vào thanh ghi điều khiển.
Xuất từ điều khiển ra thanh ghi điều khiển có đòa chỉ 03hex.
I.3. IC GIẢI MÃ HIỂN THỊ 8279:
I.3.1. Cấu trúc 8279
I.3.1.1. Phần cứng:
8279 là một phương pháp phần cứng để giao tiếp với bàn phím ma trận và
hiển thò đa hợp. Bất lợi của phương pháp dùng phần mềm là vi xử lí bò bận trong
lúc kiểm tra và làm tươi hiển thò. 8279 sẽ thay thế vi xử lí đảm trách hai nhiệm
vụ này.
8279 (Hình ) là một thiết bò dạng DIP _ 40, có hai phần chính : bàn phím
và hiển thò. Phần bàn phím có thể được nối với một ma trận tối đa 64 phím, sự

gõ phím được giải nẩy và mãphím được lưu trữ vào bộ nhớ FIFO bên trong (First
_ In _ First _ Out : Vào trước, ra trước) , và một tín hiệu ngắt được phát ra mỗi
lần gõ phím. Phần hiển thò có thể cung cấp một hiển thò có quét tối đa 16 Led.
Phần này có bộ nhớ RAM 16 x 8, có thể được sử dụng đọc / ghi thông tin cho các
mục đích hiển thò. Phần hiển thò có thể được khởi tạo ở dạng ghi phải (right
entry) hoặc ghi trái (left entry).
Tần số xung đồng hồ cấp cho 8279 tối đa là 3,125MHz
Hình 7: Sơ đồ chân logic của 8279
LUÂÄN VĂN TỐT NGHIỆP

19
Bảng 3: Chức năng các chân IC 8279
Tên chân Số chân Mô tả và chức năng
DB0 – DB7 8 Bi-directional
databus:Đường dữ liệu 2
chiều.
Tất cả các lệnh và dữ
liệu giữaCPU và 8279
được truyền trên những
đường dữ liệu này.
CLK 1 Clock input: ngõ vào
xung clock. Xung clock
có tần ố tối đa là
3,125MHz.
RESET 1 Reset in: dùng để đặt lại
trạng thái làm việc của
8279 khi ngõ vào này ở
mức cao.
Sau khi được reset, 8279
có thể làm việc ở chế độ:

− Hiển thò 16 ký tự lối
vào trái.
− Lập mã quét phím
khóa ngoài 2 phím.
CS\ 1 Chip select: tác động
mức thấp cho phép 8279
thực hiện các chức năng
kết nối với CPU để
truyền và nhận dữ liệu.
A0 1 Buffer address: đường
đòa chỉ này thương được
kết nối với đ5a chỉ A0
của vi xử lý dùng để
phân biệt lệnh hay dữ
liệu.
− A0=[1]: tín hiệu vào
ra là lệnh.
LUÂÄN VĂN TỐT NGHIỆP

20
− A0=[0]:tín hiệu vào
ra là dữ liệu.
RD\, WR\ 2 Read, Write:ch phép đọc
hay ghi dữ liệu lên bus dữ
liệu, thanh ghi điều khiển
hay bộ nhớ RAM hiển
thò.
IRQ 1 Interrupt Request:
đường tín hiệu yêu cầu
ngắt (output). Ngõ ra này

sẽ ở mức cao nế có dữ
liệu ở trong bộ nhớ FIFO
hay SensorRAM, ngõ ra
này sẽ ở mức thấp mỗi
khicó sự đọc bộ nhớ
FIFO/SensorRAM và
trởlại mức cao khi d4có
dữ liệu chứa trong RAM.
Vss, Vcc 2 Cấp nguồn 0Vvà +5V cho
8279.
SL0 – SL3 4 Scan lines: 4 đường scan
line nàycó thể giải mã ra
16 đường hay mã hóa
thành 1 đường, được
dùng để quét phím hay
ma trận cảm biến và
hiển thò.
RL0 – RL7 8 Return line: được nối với
đường scan line thông
qua các phím hay công
tắc cảm biến. Ở chế độ
quét phím, sẽ kết hợp với
các đường scan lines tạo
thành mã của phím được
nhấn.
SHIFT 1 Shift, Control / Strobe
LUÂÄN VĂN TỐT NGHIỆP

21
CTRL/STB 1

input Mode: trong chế
độ quét phím, mức logic
của từng ngõ vào này sẽ
được lưu trữ với vò trí
của phím để tạo ra 1 giá
trò của phím được nhấn.
OUT A0 – A3
OUT B0 – B3
4
4
Đêy là 2 portngõ ra của
thanh ghi hiển thò 16 x 4
bit. Dữ liệu từ những
thanh ghi này sẽ được
đưa ra đồng bộ kết hợp
với các đường quét scan
lines để đa hợp thành số
hiển thò.
Hai ngõ ra 4 bit này có
thể xóa độc lập và có thể
kết hợp với nhau để tạo
thành một ngõ ra 8 bit.
BD\ 1 Blanking display: dùng
để xóa hiển thò trong quá
trình chuyển đổi giữa các
số hay khi gặp lệnh xóa
hiển thò.
Sơ đồ khối logic (Hình 8) trình bày bốn phần chính của 8279 : bàn phím,
quét, hiển thò và giao tiếp vi xử lí. Các chức năng của các phần này được miêu tả
như dưới đây :


LUÂÄN VĂN TỐT NGHIỆP

22
IR
BD
CL RESE
DB0-
Data
Buffer
Control and
Timing
Registers
Timing
and
Control
Internal Data Bus (8)
Display
Address
Registers
16 x 8
Display
RAM
8 x 8
FIFO/Sensor
RAM
Keyboard
Debounce
and
Control

OUT A0-A3 OUT
Display
Registers
SL0-
Scan Counter
RDWR CS A0
I/O Control
8
FIFO/Sensor
RAM
Status
RL0-RL7
SHIF
Return
Hình 8: Sơ đồ khối của 8279
Để giao tiếp với vi xử lý, 8279 cần tám đường dữ liệu hai chiều (BD
0
_ BD
7
),
một đường yêu cầu ngắt (IRQ), và sáu đường giao tiếp, kể cả đường đòa chỉ của
bộ đệm (A
0
)
Khi A
0
ở mức cao, các tín hiệu được hiểu như là các từ điều khiển và
trạng thái. Khi A
0
ở mức thấp, các tín hiệu được hiểu là dữ liệu.

Đường IRQ lên mức cao bất kì lúc nào việc ghi nhận dữ liệu vào FIFO. Tín
hiệu này được sử dụng để ngắt vi xử lí nhằm chỉ thò tính khả dụng của dữ liệu.

I.3.1.2. Lập trình cho 8279
Để có sử dụng 8279, cần biết các từ điều khiển của 8279.
8279 có tất cả tám từ điều khiển, tùy theo mục đích sử dụng mà sẽ chọn từ
điều khiển thích hợp.
b Đặt mốt hiển thò / bàn phím

MSB LSB
Mã 0 0 0 D D K K K

Trong đó, D D là mốt hiển thò và K K K là mốt bàn phím
D D

LUÂÄN VĂN TỐT NGHIỆP

23
0 0 Hiển thò 8 kí tự 8 bit _ ghi trái
0 1 Hiển thò 16 kí tự 8 bit _ ghi trái
1 0 Hiển thò 8 kí tự 8 bit _ ghi phải
1 1 Hiển thò 16 kí tự 8 bit _ ghi phải

K K K
0 0 0 Bàn phím quét có lập mã _ Khóa ngoài 2 phím
0 0 1 Bàn phím quét có giải mã _ Khóa ngoài 2 phím
0 1 0 Bàn phím quét có lập mã _ Xoay vòng N phím
0 1 1 Bàn phím quét có giải mã _ Xoay vòng N phím
1 0 0 Ma trận cảm biến, quét có lập mã
1 0 1 Ma trận cảm biến, quét có giải mã

1 1 0 Ngõ vào Strob, quét hiển thò có lập mã
1 1 0 Ngõ vào Strob, quét hiển thò có giải mã
Trong suốt thời gian RAM hiển thò đang bò xoá (∼ 160 μS), nó không thể
được ghi vào. Bit có trọng số cao nhất (MSB) của từ trạng thái được đặt trong
suốt thời gian này. Khi RAM hiển thò trở nên khả dụng trở lại, bit này tự động
được đặt lại.

LUÂÄN VĂN TỐT NGHIỆP

24
Γ Khởi tạo 8279
Mặc dù 8279 có tới tám từ điều khiển, nhưng không phải lúc nào cũng sử
dụng hết tất cả tám từ này.
Khi khởi tạo một 8279, thứ tự các từ điều khiển sau đây là cần thiết :
+ Đặt mốt hiển thò / bàn phím
+ Lập trình xung đồng hồ
+ Xoá RAM hiển thò, hoặc FIFO hoặc cả hai
Các từ điều khiển còn lại có thể được gởi ra thanh ghi điều khiển trong lúc
này hoặc khi cần.
II. CÁC THAM SỐ CẦN THIẾT CỦA KIT:
Trên đây, đã giới thiệu các IC quạn trọng để có thể kết nối Kit với máy
tính. Ngoài ra, các thông số về đòa chỉ cũng không kém phần quan trọng.
Bảng : Bảng đồ đòa chỉ bộ nhớ của kit

Bộ nhớ A
15
A
14
A
13


A
12
⎯⎯⎯→ A
0

Vùng đòa chỉ
bộ nhớ
0 0 0 0 ⎯⎯⎯→ 0 0000
H

ROM1
0 0 0 1 ⎯⎯⎯→ 1 1FFF
H

0 0 1 0 ⎯⎯⎯→ 0 2000
H

ROM2
0 0 1 1 ⎯⎯⎯→ 1 3FFF
H

0 1 0 0 ⎯⎯⎯→ 0 4000
H

RAM1
0 1 0 1 ⎯⎯⎯→ 1 5FFF
H

0 1 1 0 ⎯⎯⎯→ 0 6000

H

RAM2
0 1 1 1 ⎯⎯⎯→ 1 7FFF
H

1 0 0 0 ⎯⎯⎯→ 0 8000
H

RAM3
1 0 0 1 ⎯⎯⎯→ 1 9FFF
H

1 0 1 0 ⎯⎯⎯→ 0 A000
H

8279
1 0 1 1 ⎯⎯⎯→ 1 BFFF
H

144424443



3 bit ứng với 6
trạng thái của 6
vùng nhớ

×