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

LUÂÄN VĂN TỐT NGHIỆP
Chương I:
CHƯƠNG DẪN NHẬP
1
LUÂÄN VĂN TỐT NGHIỆP
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, ngồ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ả.

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.
− Ngồ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ự 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ư

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.
Chương II:
CƠ SỞ LÝ LUẬN
4
LUÂÄN VĂN TỐT NGHIỆP
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
5

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
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.
7
LUÂÄN VĂN TỐT NGHIỆP
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à

Ơû 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.
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ể hồ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):
9
8085
C LK(OUT)
RESET(OUT)

WR
17
2 HOLD
28
30
39
11
4
AD4
29
31
37
40
6
1
READY
X1
AD0
19
A10
A12
A15
RD
SID
16
Vcc
36
14
RST6.5
20

10
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

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
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
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
11
Accumulater

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)

− 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ừ :
Các lệnh một từ hoặc 1 byte
Các lệnh hai từ hoặc 2 byte
Các lệnh ba từ hoặc 3 byte
Lệnh một byte chứa mã hoạt động (Opcode) và tố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à tố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.
Hình 5 : sơ đồ chân và Sơ đồ khối của 8255
12
1
2
3
4
5
6
7
8

22
21
A1
A0
PB7
PB6
PB5
PB4
PB3
D0
D1
D2
D3
D4
D5
D6
D7
PC 7
PC 6
PC 5
PC 4
PC 0
PC 1
PC 2
PC 3
PB0
PB1
PB2
PA4
PA5

A
(8)
Group
A
C ontro l
Group
A
C ontro l
Data
Bus
Buffer
Read
Write
C ontrol
Logic
I/O
PA7-PA0
I/O
PA7-PA0
I/O
PA7-PA0
I/O
PA7-PA0
Bidirectional
Data Bus
D7-D0
RD
WR
A1
A0

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ừ đ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.
13
LUÂÄN VĂN TỐT NGHIỆP
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 :

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

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
ngồ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.
− 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

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 :
17
LUÂÄN VĂN TỐT NGHIỆP
IR
Q
BD
CL
K

SL0-
SL3
Scan Counter
RDWR CS A0
I/O Control
8
FIFO/Sensor
RAM
Status
RL0-RL7
CNTL/STB
SHIF
T
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.

LUÂÄN VĂN TỐT NGHIỆP
 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ồ
+ Xố 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. Ngồ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ớ
ROM1 0 0 0
0 → 0
0000
H

H
RAM3
1 0 0
0 → 0
8000
H
1 0 0
1 → 1
9FFF
H
8279
1 0 1
0 → 0
A000
H
1 0 1
1 → 1
BFFF
H
144424443
20
3 bit ứng với 6 trạng
thái của 6 vùng nhớ
LUÂÄN VĂN TỐT NGHIỆP
Dựa vào 3 bit A13, A14, A15 để xác định các vùng ROM, RAM như sau:
Bảng 4 : Bảng đồ địa chỉ I/O của kit
Bộ nhớ A7 A6 A5 A4 A3 A2 A1 A0
Vùng địa chỉ bộ
nhớ
8255A 0 0 0 0 0 0 0 0 00

0
O
1
O
2
O
3
O
4
O
5
O
6
O
7
CS\ROM1
CS\ROM2
CS\RAM1
CS\RAM2
CS\RAM3
CS\8279
No use
No use
Hình 9 : chọn bộ nhớ
LUÂÄN VĂN TỐT NGHIỆP
Dựa vào 3 bit A3, A4, A5 có thể xác định ngoại vi sử dụng như sau:
III. SỬ DỤNG KIT:
Chức năng các phím:
− Phím RESET hoặc Q: khởi động lại tồn bộ hệ thống Kit, các thanh ghi, các điểm
dừng, các khởi tạo, đều được reset.

O
6
O
7
74138
A
3
A
4
A
5
CS\8255A
CS\8255B
CS\8253A
CS\8253B
CS\8259
CS\8251
CS\ADC0805
CS\DAC0808
Hình 10: Chọn I/O
LUÂÄN VĂN TỐT NGHIỆP
Chương IV:
GIAO TIẾP
MÁY TÍNH VỚI
KIT THỰC TẬP
VI XỬ LÝ 8085
23
LUÂÄN VĂN TỐT NGHIỆP
Giao tiếp giữa máy tính và thiết bị ngoại vi có thể bằng một trong các cách sau:
I.GIAO TIẾP BẰNG SLOT-CARD:

mức logic cho tương thích TTL.
Giao tiếp nối tiếp còn chia ra nối tiếp bất đồng bộ và nối tiếp đồng bộ (sử dụng các
chuẩn UART dùng CMOS 6402, USART dùng ngoại vi 8251, chuẩn ACIA dùng NMOS
6850 …).
IV. CHỌN PHƯƠNG PHÁP GIAO TIẾP VÀ CỔNG KẾT NỐI:
Trong đề tài này, vì lý do thời gian có hạn, nên người thực hiện đề tài chỉ có thể sử
dụng một phương pháp truyền dữ liệu, đó là truyền dữ liệu song song bất đồng bộ qua
cổng máy in LPT1.
Cổng LPT1 là một cổng song song, dữ liệu được truyền với tốc độ khá cao từ máy
tính, do đó tốc độ truyền dữ liệu chung chỉ còn phụ thuộc vào Kit.
24
LUÂÄN VĂN TỐT NGHIỆP
Hình dạng một cổng LPT1 được cho trong hình sau:
Hình 11: Cổng LPT (DB25).
Bảng 5: Bố trí chân ở cổng LPT ở máy tính:
Chân Ký hiệu Vào/Ra Mô tả
1 STROBE Output Byte được in
2 D0 Output Đường dữ liệu được in D0
3 D1 Output Đường dữ liệu được in
4 D2 Output Đường dữ liệu được in
5 D3 Output Đường dữ liệu được in
6 D4 Output Đường dữ liệu được in
7 D5 Output Đường dữ liệu được in
8 D6 Output Đường dữ liệu được in
9 D7 Output Đường dữ liệu được in
10 Ack Input Acknowledge
11 Busy Input 1:máy in bận
12 PE Input Hết giấy
13 SCLT Input Select
14 AF Output Autofeet


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status