1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

90 831 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 1,44 MB

Nội dung

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.

Trang 1

Chương I:

CHƯƠNG DẪN NHẬP

Trang 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, 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ả.

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 đố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ỉ hồ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.

− Đố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 tồ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.

Trang 3

Ngồ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.

− 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ư

đã đầ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.

Trang 4

− Đô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.

Chương II:

CƠ SỞ LÝ LUẬN

Trang 5

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.

Trang 6

Chương III:

KIT THỰC TẬP

VI XỬ LÝ 8085

Trang 7

ở (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ừ ngồ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 ngồ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:

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

Trang 8

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.

28-22 A15-A8 O-3 Address bus:các ngõ này được dùng để

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

Trang 9

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

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

8085

CLK(OUT) RESET(OUT)

32 35 38

17

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

AD7

25

A8 A13

Trang 10

Tồn bộ các tín hiệu của 8085 có thể đuợ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 CLKOUT

28 21 19

12 30 29 33 34 32 31 11 18

35 39 36

21 21

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

Trang 11

Hình 3: các nhóm hoạt động của 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

Accumulater

Address Buffer(8)

AD15 - AD8 Address Bus

Array Register

Data Address Buffer(8)

AD7 - AD0 Address Data Bus

Instruction Decoder and Machine Cycle Encoding

Flag Flip Flops

Arithmatic Logic Unit (8) (ALU)

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)

(16) (16) (16)

Sel ect

Trang 12

− Các hoạt động tố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ừ :

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

A1

A0

PB7PB6PB5PB4PB3

D0D1D2D3D4D5D6D7

Group APort CLower (4)

Group B Port B (8)

Group A Port A (8)

Group A Control

Group A Control

Data BusBuffer

Read Write Control Logic

I/O PA7-PA0

I/O PA7-PA0

I/O PA7-PA0

I/O PA7-PA0

Bidirectional Data Bus

D7-D0

RDWRA1A0RESETCS

RD

Trang 13

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)

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 (CU

CL) 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, ngồ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ừ điều khiển Khi A0 và A1

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 D7 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 D7 = 1các bit D6 ÷ D5 quyết định các chức

năng I/O ở các mốt khác nhau Nếu bit D7 = 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

Trang 14

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ỉ A0, A1.

(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ụ:

Để 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:

PORT C (LOWER) 1=INPUT 0=OUTPUT

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

1=ACTIVE

Trang 15

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

Bảng 3: Chức năng các chân IC 8279

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.

clock Xung clock có tần ố tối đa là 3,125MHz.

trạng thái làm việc của 8279

Trang 16

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 ngồi 2 phím.

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.

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

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.

8279.

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

Trang 17

và hiển thị.

đườ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

CTRL/STB

1 1

Shift, Control / Strobe 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.

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 :

Trang 18

BD

CL

K RESET DB0-DB7

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 OUTB0-B3

Display Registers

SL3

RL0-RL7CNTL/STB

SHIFT

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 (BD0 _ BD7), 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 (A0)

Khi A0 ở 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 A0 ở 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.

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

Trang 19

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 ngồi 2 phím

0 0 1 Bàn phím quét có giải mã _ Khóa ngồ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ị xố ( ∼ 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.

Trang 20

+ 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

Trang 21

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

No use

No use

Hình 9 : chọn bộ nhớ

Trang 22

Dựa vào 3 bit A3, A4, A5 có thể xác định ngoại vi sử dụng như sau:

− Phím UP hoặc ↑ : lưu trữ dữ liệu ở 2 led trái vào địa chỉ ghi ở 4 led phải.

− Phím Down hoặc ↓ : để xem lại dữ liệu đã nạp.

− Phím P hoặc PC: đặt địa chỉ chạy chương trình.

− Phím G hoặc GO: chạy chương trình tại địa chỉ đã chọn sẳn.

− Phím I hoặc INTR: ngắt chương trình, khởi động nóng hệ thống, các khởi tạo, điểm dừng đều vẫn còn.

Các thao tác nhập liệu trên là để đưa các dữ liệu, các lệnh vi xử lý đã được mã hóa

ra dạng mã máy, vào những địa chỉ yêu cầu của người thảo chương Vàsau đó, kết quả kiểm tra, chạy thử chương trình sẽ cho biết chương trình đúng hay sai.

Mục đích chủ yếu của đề tài là rút ngắn thời gian dịch sang mã máy và thời gian nhập liệu, nghĩa là phải nạp được dữ liệu vào bộ nhớ RAM mà không tốn thời gian nhập liệu.

ABC

Hình 10: Chọn I/O

Trang 23

Chương IV:

GIAO TIẾP

MÁY TÍNH VỚI KIT THỰC TẬP

VI XỬ LÝ 8085

Trang 24

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:

Trong máy tính, trên main board hoặc IO-card, thường chế tạo sẵn các rãnh cắm (slot) cho phép mở rộng bộ nhớ, cài đặt thêm phần cứng, mở rộng phạm vi ứng dụng cho máy tính.

Để sử dụng được các rãnh cắm này, cần phải có tài liệu chính xác về các thông số cần thiết, ví dụ địa chỉ của cổng là bao nhiêu, thuộc loại rãnh bao nhiêu bit, theo chuẩn nào, kich thước phần mạch in cắm vào , độ dày mạch in, rãnh nguồn, rãnh dữ liệu, rãnh

dự trữ, …

II GIAO TIẾP BẰNG CỔNG MÁY IN:

Mọi máy tính đều có cổng máy in đặt phía sau máy Cổng máy in không chỉ để kết nối với máy in mà còn có thể kết nối với nhiếu loại thiết bị ngoại vi khác cho mục đích đo lường và điều khiển,…

Cổng máy in là loại cổng 25 chân, dữ liệu truyền song song, dễ kết nối, các địa chỉ của cổng của các máy tính hầu như giống nhau.

Giao tiếp bằng cổng máy in gọi là giao tiếp song song bất đồng bộ Trong kiểu giao tiếp này, nới phát tín hiệu và nới nhận tín hiệu đều có xung báo phát và xung báo nhận, tần số xung clock tại nơi phát và tần số xung clock tại nơi thu không cần quan tâm.

III GIAO TIẾP BẰNG CỔNG COM:

Cổng COM được sử dụng khá phổ biến Dữ liệu truyền ở cổng này thuộc dạng dữ liệu nối tiếp Tín hiệu truyền ở cổng này có thể truyền đi xa nhờ có cấu tạo đường dây cáp ít sợi hơn cổng song song, mức áp tín hiệu cao.

Cổng COM có loại 9 chân và loại 25 chân như cổng song song, có tổng cộng 8 đường dẫn tín hiệu không kể đường nối đất, từ máy tính đi ra là loại phích cắm nhiều chân khác với cổng song song.

Cổng COM, còn gọi là cổng nối tiếp theo chuẩn RS-232 Chuẩn RS-232 từ năm

1969 được chấp nhận chuyên dùng cho truyền số liệu và các đường nối kiểm tra giữa terminal và moderm, tốc độ cực đại là 20Kbps, với khoảng các tối đa không quá 15m Đây là lại giao tiếp không cân bằng có driver.

Mức áp tín hiệu trên đường dây là +15V/-15V Trên đường dây, mức logic 1 có điện áp từ 5V đến 15V và mức logic 0 từ –5V đến –15V mức áp này không tương thích TTL do đó thường phải sử dụng thêm các IC chuyên dụng MC1488, MC1489 để thay đổi 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.

Trang 25

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:

Các thanh ghi trong máy tính kết nối với cổng máy in:

Thanh ghi dữ liệu (Data register, địa chỉ = địa chỉ cơ bản )

Trang 26

Thanh ghi trạng thái(status register, địa chỉ = địa chỉ cơ bản +1)

Thanh ghi điều khiển(control register, địa chỉ = địa chỉ cơ bản + 2)

Hình 12: Kết nối các thanh ghi ở cổng máy in của máy tính PC.

Cổng LPT là cổng ghép nối song song, tất cả những đường dẫn của cổng này đều tương thích TTL, nghĩa là chúng đều cung cấp một mức áp nằm giữa 0 và 5V Do đó, rất thích hợp cho kết nối với Kit.

Nhìn vào bảng công dụng các chân của cổng LPT và 3 thanh ghi của máy tính, ta thấy có thể sử dụng thanh ghi data là thanh ghi phát, có nhiệm vụ truyền dữ liệu ra ngồi,

và thanh ghi điều khiển sẽ gởi tín hiệu điều khiển cho Kit, còn thanh ghi trạng thái sẽ nhận tín hiệu báo trạng thái hiện tại của Kit về máy tính.

Để kết nối giữa Kit và máy tính trong trường hợp này, phải sử dụng IC giao tiếp ngoại vi 8255 để xuất và nhận dữ liệu Còn về phía máy tính, có thể dùng ngôn ngữ lập trình C để đọc và xuất các thanh ghi dữ liệu Để kết nối đơn giản, có thể khởi tạo 8255 ở mode 0 với port A đọc thanh ghi data, port B xuất trạng thái trả về cho thanh ghi trang thái, và port C dùng để nhận tín hiệu điều khiển từ thanh ghi điều khiển của máy tính.

D 6 D 5 D 4 D 3 D 2 D 1 D 0

D 7

D0 (Pin 2)D1 (Pin 3)D2 (Pin 4)D3(Pin 5) D4 (Pin 6)D5 (Pin 7)D6 (Pin 8)D7 (Pin 9)

D 6 D 5 D 4 D 3 0 0 0

D 7

ERROR(Pin 15)SLCT(Pin 13)PE(Pin 12)ACK(Pin 15)BUSY(Pin 11)

D 6 D 5 D 4 D 3 D 2 D 1 D 0

D 7

D0 (Pin 1)D1 (Pin 14)D2 (Pin 16)D3(Pin 17)

IRQ-Enable

Trang 27

Chương V:

VIẾT CHƯƠNG TRÌNH

VÀ DỊCH SSEMBLER CHO CÁC CHƯƠNG TRÌNH VI XỬ LÝ.

Trang 28

I.TẠI SAO PHẢI SỬ DỤNG CHƯƠNG TRÌNH DỊCH ASSEMBLER?

Khi học vi xử lý, thì mọi sinh viên đều phải học về số Hex, đổi số giữa các hệ, các

số bù,…, các phép tốn số học và logic trên các biến Ngồi ra, còn phải học môt loại ngôn ngữ máy khó nhớ, chỉ được viết bằng các ký tự Hex, để nạp vào Kit Một cách khác để tạo ra các ký tự khó nhớ này là sử dụng một chương trình dịch Assembler để dịch từ một file có phần mở rộng là “asm” sang một file có phần mở rộng “prn” chứa ngôn ngữ máy Đây là lý do phải sử dụng một chương trình dịch Assembler Với mục đích này, người sử dụng không cần thiết phải biết nhiều về ngôn ngữa Assembly mà chỉ cần một số kiến thức nhỏ để gọi chương trình dịch Đây chính là cách chính để giảm thiểu thời gian trong việc dịch và nhập dữ liệu vào Kit.

II Một số điều cần lưu ý khi sử dụng chương trình dịch Assebler:

Để viết một chương trình và nhập vào Kit, thì đầu tiên phải biết yêu cầu của chương trình, viết lưu đồ tổng quát, lưu đồ chi tiết và tiến hành viết chương trình tất cả các bước trên đều phải sử dụng lại với cách làm mà đề tài này nêu lên Tuy nhiên, từ bước dịch từ ngôn ngữ gợi nhớ sang mã máy thì có nhiều điểm khác nhau:

1) Khi viết chương trình ở ngôn ngữ gợi nhớ (ngôn ngữ Assembly), cần phải tuân thủ

một số qui định riêng để có thể dùng một chương trình dịch Assembler.

a) Phải dùng từ khóa “Org” ở đầu và “End” ở cuối chương trình, nhớ chữ end không có chấm cuối câu.

b) Tất cả các lệnh ở dạng gợi nhớ phải ghi chính xác.

c) Ở cuốimột số Hex phải ghi ký tự ‘h’ không kể in hay thường.

d) Nếu một số Hex bắt đầu bằng một ký tự Alphabet, thì phải thêm liền ngay trước

số hex đó một con sô ‘0’.

e) Một nhãn khai báo không được vượt quá 6 ký tự.

4) Sau đó dùng chương trình download để nạp file vào Kit.

Tất cả các yêu cầu trên đều rất dễ nhớ nhờ đi theo một trình tự nhất định một các

tự nhiên Norton là một chương trình tiện ích rất phổ biến Chương trình Download có giao diện đã được tối giản nhất

III FILE *.PRN, NỘI DUNG, ĐẶC ĐIỂM, VÀ DỮ LIỆU CHÍNH:

Chương trình dịch sẽ dịch từ một file x.asm sang môt file x.prn.

Xem nội dung một file có phần ở rộng prn trong ví dụ sau:

Trang 29

MACRO-80 3.4 01-Dec-80 PAGE 1 Org 0000h

0000' 3E 00 MVI A,00h

0002' 32 A001 STA 0A001h

0005' 3E 80 MVI A,80h

0007' 32 A001 STA 0A001h

000A' 3E 06 MVI A,06h

000C' 32 A000 STA 0A000h

Giả sử dịch file x.asm sau:

Thì sẽ được file x.prn sau:

32 A001 3E 06

32 01 A0 3E 06

32 00 A0

76 Vấn đề đặt ra là làm thế nào để lọc ra được nội dung chỉ trên theo thứ tự đúng như nội dung nạp vào Kit Vấn đề này sẽ được giải quyết ở chương kế: Chương trình DownLoad.

Org 0000h

MVI A,00h STA 0A001h MVI A,80h STA 0A001h MVI A,06h STA 0A000h HLT

END

Trang 30

Chương VI:

CHƯƠNG TRÌNH

DOWNLOAD

Trang 31

I.ĐÔI NÉT VỀ NGÔN NGỮ C:

I.1 Nguồn gốc:

C được phát minh và cài đặt đầu tiên bởi Dennis Ritchie chạy trên hệ điều hành Unix, được Martin Richards phát triển trong thập niên 70 C sử dụng chuẩn ANSI được

đề nghị lần cuối cùng vào năm 1989.

I.2 C là ngôn ngữ bậc trung:

Được xem là ngôn ngữ bậc trung vì C tổ hợp những thành phần tốt nhất của các ngôn ngữ bậc cao với sự điều khiển và tính linh hoạt của ngôn ngữ Assembly C cho phép thao tác trên các bit, các byte và các địa chỉ – những phần tử cơ bản với các chức năng của máy tính, mã của chương trình C cũng mang tính khả chuyển.

I.3 C là ngôn ngữ của lập trình viên:

C được các lập trình viên làm việc thật sự tạo ra, thúc đẩy và kiểm tra, để rồi C lại mang về cho họ những gì họ mong muốn: ít hạn chế, ít lời phàn nàn, các cấu trúc khối, các hàm đơn lẻ, và môt tập đóng kín những từ khóa.

− Phương pháp này tiến bộ hơn phương pháp trên.

II.3 Phương pháp lập trình đơn thể:

− Chương trình là một hệ thông các đơn thể (module).

− Mỗi đơn thể là một hệ thống thủ tục, hàm có cùng ý nghĩa nào

đó Mỗi thủ tục và hàm là một dãy các lệnh.

− Các đơn thể có được lưu trữ và biên dịch phân cách, nên dễ dàng lắp ghép Tuy nhiên phương pháp này còn thiếu tự nhiên, ngài ra nếu chương trình quá rộng và quá sâu thì không thể quản lý được.

II.4 Phương pháp lập trình hướng đối tượng:

− Chương trình là một hệ thống các đối tượng, các đối tượng trong thực tế được diễn tả bằng ngôn ngữ tin học.

− Lập trình là đi xác định những đối tượng cùng những quan hệ của chúng.

− Tính tự nhiên của phương pháp này làm nó trở nên sinh động, mỗi đối tượng có thuộc tính và hành động riêng như trong thực tế

do đó dễ hình dung, dễ quản lý Ngồi ra, nhờ dựa trên các đối tượng nên tính tiến hóa và mở rộng rất cao.

Trong phần viết chương trình giao diện vi tính, người viết đã chọn phương pháp lập trình hướng đối tương Nhờ những ưu điểm trên, phương pháp này cho phép bổ sung một cách dễ dàng, tạo điều kiện thuận lợi cho việc bổ sung sau này nếu cần

III PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG C

III.1 Các khái niệm:

Thế giới thực Phương pháp lập trình Ngôn ngữ lập trình

Đối tượng bất kỳ trong thế

giới thực

Đối tượng Biến có kiểu lớp

(tương tự kiểu cấu trúc) Khái niện chung của một Lớp đối tượng Kiểu lớp(Class-tương tự

Trang 32

đối tương kiểu cấu trúc)

Thuộc tính được quan tâm

của đối tượng

Thuộc tính Thành phần dữ liệu của kiểu

lớp Khả năng có thể thực hiện

của một đối tương

IV Thực hiện viết chương trình DownLoad:

IV.1 Yêu cầu của giao diện:

− Cho phép chọn file sẽ truyền.

+ Bằng cách gõ vào tên file

− Chọn ngôn ngữ C viết ở môi trường Dos

− Lý do: yêu cầu thiết bị (máy tính) không cao, phù hợp kiến thức người viết.

− Ưu điểm: C là một công cụ lập tình gọn nhẹ, chạy nhanh, hiệu quả và khép kín Vì sử dụng C ở môi trường Dos nên không cần phải kiểm sốt các driver như nếu viết ở môi trường Windows Ngôn ngữ C cho phép truy cập trực tiếp các port, dể dàng kiểm sốt từng bit dữ liệu.

− Khuyết điểm: Vùng nhớ trống ở môi trường Dos chỉ có 640Kbyte, và sau khi khởi động xong (ở màn hình dos) thì chỉ còn lại trên dưới 400Kbyte, không cho phép tạo một giao diện phức tạp Độ phân giải ở chế độ graph trong Dos không thể so sánh với môi trường Windows.

IV.3 Chương trình Download:

Danh sách các lớp:

Tên lớp Công dụng

Button.hpp Tạo các nút nhấn, và chứa các hành động liên quan

Disklist.hpp Liệt kê các ổ đĩa trong máy, và chứa các hành động liên quan

List.hpp Để vẽ bảng liệt kê các thư mục và file, và chứa các hành động liên quan Mouse.h Chứa các thao tác về chuột

Screen.h Chứa các tham số về giao diện màn hình, và chứa các hành động liên

quan Textbox.hpp Vẽ khung nhập liệu (tên file, loại file, ) , và chứa các hành động liên

quan Xuat.hpp Chứa các thao tác, hành động liên quan đến truyền file

Trang 33

Lưu đồ của hàm main():

− InitValues(…): hàm này còn khởi tạo các giá trị ban đầu cho màn hình: kích thước cửa sổ, kích thước ký tự.

− InitScreen(): Vẽ màn hình với các giá trị đã khởi tạo

− InitMouse(): Khởi tạo chuột.

− Khởi tạo thành công: kiểm tra, nếu khởi động chuột thành công thì tiếp tục công việc, nếu không thành công thì xuất ra thông báo lỗi và thốt khỏi chương trình.

− MainPro là chương trình quản lý mọi thao tác của tồn bộ chương trình, từ các thao tác nhập xuất đến các thao tác lựa chọn các tùy chọn.

− Closegraph(): Đóng chế độ đồ họatrước khi thốt khỏi chương trình.

Trang 34

Lưu đồ hàm Begin Mainpro():

Khởi tạo các giá trị cho các ô nhập text

Khởi tạo các giá trị cho các nút chọn

A

Truyền file Return

Xác nhận thoát

Xác định file chọn

Click Nút pull down

Click nút Exit

Nhấn Esc

Click nút Send

Xuất các ô nhập text ra màn hình

Xuất các nút chọn

ra màn hình A

GetEvent()

Click vào

ô Open File

Gọi chương trình nhập vào đường dẫn

Gọi chương trình xuất cửa sổ chọn file

Trang 35

Hình 14: Lưu đồ của hàm MainPro().

Giải thích lưu đồhàm MainPro():

− Khởi tạo các giá trị cho các ô nhập text: trên màn hình sẽ có khung cho phép gõ vào tên file, chương trình con này sẽ khởi tạo các tọa độ, màu chữ cho text.

− Khởi tạo các giá trị cho các nút chọn: cũng giống như trên, nhưng đối với các nút Send, Exit và nút Pulldown.

− Xuất các ô nhập text ra màn hình.

− Xuất các nút chọn ra màn hình.

− GetEvent: chương trình con lấn biến cố chuột Biến cố này chứa các thông tin về tọa

độ chuột, phím nào của chuột được click, thời gian click lần cuối, … để xáx định các lệnh kế tiếp cần thực hiện.

− Click vào ô Open File: nếu biến cố click chuột xẩy ra tại tọa độ của của ô Open file thì kết quả click vào ô này là TRUE, thực hiện chương trình con nhập vào file cần xuất Ngược lại thì bỏ qua.

− Click vào nút Pulldown: nếu biến cố click chuột xẩy ra tại tọa độ của của nút Pulldown thì kết quả click vào ô này là TRUE, gọi chương trình xuất ra cửa sổ chọn File, ngược lại thì bỏ qua.

− Click nút Send: nếu biến cố click chuột xẩy ra tại tọa độ của của nút Send thì kết quả click vào ô này là TRUE, thực hiện xác nhận file xuất đã nhập vào chưa, nếu file xuất chưa nhập vào thì báo lỗi và bỏ qua lệnh Send, nếu file xuất đã có tên rồi thì xuất file.

− Click nút Exit: nếu biến cố click chuột xẩy ra tại tọa độ của của nút Exit thì kết quả click vào ô này là TRUE, thực hiện xác nhận muốn thốt khỏi chương trình, nếu xác nhận đúng thì thốt, ngược lại thì bỏ qua lệnh Exit

− Nhấn Esc: nếu người dùng nhấn vào nút Esc trên bàn phím thì biến cố Nhấn Esc sẽ là TRUE, thực hiện xác nhận muốn thốt khỏi chương trình, nếu xác nhận đúng thì thốt, ngược lại thì bỏ qua lệnh thốt bằng nút Esc

Sau đó, chương trình lại thực hiện vòng lặp tại hàm lấy biến cố chuột cho tới khi có thao tác mới.

Giả sử click chuột vào ô Open File, ô này sẽ đổi trạng thái, các kýtự trong ô sẽ đổi màu báo trạng thái chờ nhập, nhập vào một tên fie có phần mở rộng là “prn” với đầy đủ đường dẫn, sau đó gõ phímEnter thì tên file sẽ được lưu vào một biến tồn cục, và các địa chỉ đầu và địa chỉ cuối của chương trình ngôn ngữ máy sẽ được hiện lên ở khung “Free memory request”, và một dòng thông bào bên dưới báo cho biết click Send để truyền file Giả sử tiếp tục click Send thì một thông báo xác nhận sẽ xuất hiện, muốn xác nhận

có chắc là người dùng muốn truyền file không Nếu trả lời Ok thì chương trình truyền file

sẽ được gọi thi hành.

Sau đây là lưu đồ của chương trình con thực hiện việc truyền File.

Giải thích lưu đồ:

− Gọi chương trình cắt file: chương trình cắt file thực chất là một chương trình con có nhiệm vụ lọc ra những thông tin quan trọng trong file “x.prn” sẽ được truyền đi, và lưu chúng trong một file “x.tmp” chỉ xuất hiện trong khoảng thời gian chương trình đang cắt file Sau đó file “x.tmp” này sẽ bị xố đi khi quá trình truyền file hồn tất Quá

Trang 36

trình truyền file phải sử dụng bước này để các quá trình bắt tay giữa máy tính và Kit được ổn định (thực nghiệm), và việc viết chương trình được rõ ràng hơn.

− Gọi chương trình xuất file: chương trình này sẽ đọc file có tên là “x.tmp” được tạo từ chương trình cắt file Chương trình này sẽ tuần tự đọc file, nhận tín hiệu bắt tay và gởi dữ liệu cho đến khi hết file.

− Trong quá trình truyền file, nếu có sự cố, giả sử không bắt tay được vì lý do nào đó, thì chươn trình sẽ đợi, thời gian kéo dài sẽ coi như việc truyền file bi lỗi, và thông báo lỗi sẽ xuất hiện

− Nếu truyền thành công thì thông báo hồn tất công việc.

− Return: Quay trở về chương trình MainPro.

Trong hàm MainPro(), cần quan tâm chương trình con truyền file.

Trong phần này, ta quay lại công việc cắt file đã giới thiệu ở mục III của chương V.

Chương trình con cắt file là để tạo ra một file tạm thời có phần mở rộng tmp file này sẽ

là một file có cấu trúc đơn giản hơn file prn rất nhiều nhằm để giúp cho việc truyền file thêm đơn giản.

Trước hết hãy khảo sát một file *.prn, file này được dịch ra bởi 1 chương trình dịch Assembler.

Trong chương trình, byte lệnh đều tiên bắt đầu ở địa chỉ 0000hex Nhận xét rằng mỗi dòng lệnh bắt đầu bở một địa chỉ bộ nhớ, và liền sau địa chỉ này là một dấu nháy đơn, mà dấu nháy đơn đầu tiên chỉ xuất hiện tại địa chỉ của dòng lệnh đầu tiên.

⇒ để tìm địa chỉ đầu tiên thì có thể tìm dấu nháy đơn đầu tiên.

Còn địa chỉ cuối cùng là địa chỉ của byte cuối cùng của dòng lệnh cuối cùng Dòng lệnh cuối cùng là dòng lệnh nằm gần từ “Macros” nhất Từ macros này cũng là từ macros duy nhất.

Đúng

Gọi chương trình Cắt file Begin

Gọi chương trình xuất file

Trang 37

MACRO-80 3.4 01-Dec-80 PAGE 1 Org 0000h

0000' 3E 00 MVI A,00h

0002' 32 A001 STA 0A001h

0005' 3E 80 MVI A,80h

0007' 32 A001 STA 0A001h

000A' 3E 06 MVI A,06h

000C' 32 A000 STA 0A000h

− Dò ngược trở về phíc trên cho đến khi gặp dấu nháy đơn đầu tiên

− Tiếp tục dò ngược về trước, nếu trong vòng 10 ký tự mà gặp môt ký tự xuống dòng thì thì dấu nháy đơn vừa rồi nằm ngay sau dòng lệnh cuối cùng.

− Trong dòng lệnh cuối cùng, tìm byte cuối cùng sẽ tính được địa chỉ cuối cùng.

Cách tìm một dòng lệnh:

− Khi gặp một dấu nháy đơn, thì tìm một ký tự khác dấu nháy đơn hoặc khoảng trắng.

− Khi gặp ký tự đầu tiên, đó chính là ký tự đầu tiên của byte lệnh.

− Nếu sau 2 ký tự của lệnh là một khoảng trắng thì 2 ký tự vừa rồi chính là một mã lệnh.

− Nếu sau 2 lý tự của môt byte lệnh không có khoảng trắng nào, thì 2 ký tự vừa rồi chính là 2 của 4 ký tự báo một địa chỉ.

− Nếu sau 2 ký tự tính từ lúc bắt đầu một lệnh là 2 khoảng trắng trở lên thì 2 byte vừa rồi là 2 byte cuối cùng của một dòng lệnh.

− Bắt đầu một chu kỳ mới tìm dòng mã lệnh.

Lưu mã lệnh vào file *.tmp:

− Đầu tiền lưu địa chỉ đầu, địa chỉ cuối vào file.

− Nếu gặp mã lệnh (2 ký tự) thì ghi tiếp vào file.

− Nếu gặp mã địa chỉ thì đổi chổ 2 ký tự sau với 2 ký tự trước của địa chỉ.

− Đến khi gặp địa chỉ cuối cùng thì ghi vào 2 ký tự cuối cùng và đóng file.

trên

bằng lưu đồ sau:

Trang 38

Là một khoảng trắng

≥ 2 khoảng trắng

Lưu 2 ký tự Lưu 2 ký tự sau Đọc 2 ký tự tiếp theo

ACK=1 & Error=0

Đúng

Xuất FF ra data busAF=0 Strobe=0

Hết dữ liệu

Chuẩn bị dữ liệu kế

tiếp

saiSai

Xuất 00 ra data bus

AF=0 Strobe=0

Trang 39

Hình 17: Lưu đồ chương trình con xuất dữ liệu.

Sau khi cắt file, một file mới đã được tạo ra Chương trình truyền file đến bước xuất file Dĩ nhiên trước khi xuất file cũng cần có những thủ tục mở file, đặt các mức logic cần thiết để khởi động cổng: mở file hợp lệ, cho bit AF=0, strobe=0

Giải thích lưu đồ chương trình xuất file:

− Trước tiên, máy tính xuất strobe=0, AF=0 bằng chách xuất ra port 37Ahex số 03hex (xem lại thanh ghi điều khiển ở mục IV chương IV);

− Chương trình xuất bắt đầu tại begin.

− Đọc Busy\ cho tới khi bằng [1]: đợi kit phát ra Busy=[0] báo hiệu đã sẳn sàng nhận dữ liệu.

− Nếu nhận được Busy\=[1] thì bước xuất dữ liệu được thực hiện, tức là lúc đó máy tính đọc 2 ký tự đầu tiên của file tmp và xuất ra port 378 của máy tính.

− Strobe=[1]: để báo cho kit biết dữ liệu đã được gửi ra port để kit biết mà đọc dữ liệu vào.

Trang 40

− ACK=[1] và Error=[0]: khi nhậndl xong kit sẽ báo ACK=[1], Error=0 để báo cho máy tính biết Kit sẽ gửi dữ liệu để kiểm tra đúng hay sai.

− AF=[1]: báo cho Kit biết máy tính sẳn sàng nhận dữ liệu.

− Máy tính đọc bit Error cho tới khi Error = [0] để biết Kit đã gửi về dữ liệu để kiểm tra.

− Thu Nible cao: Nhận dữ liệu để kiểm tra.

− Cho AF=[0]: đã nhận xong dữ liệu.

− Đọc Error cho tới khi Error=[1] để biết đã có dữ liệu mới.

− Nếu kết quả sai thì quay lại xuất lạ byte vừa rồi đã xuất.

− Quay lại từ đầu chương trình xuất dữ liệu cho đến khi hết dữ liệu.

IV.4 Chương trình nhận dữ liệu ở Kit:

Giải thích lưu đồ chương trình nhận dữ liệu:

+ Chương trình bắt đầu tại begin.

+ Trước tiên phải khởi tạo 8255 với các chế độ qui định như sau:

− Port A: nhận dữ liệu từ thanh ghi data theo ket nối phần cứng.

− Port B: xuất trạng thái Kít trả về máy tính.

− Port C: nhận tín hiệu điều khiển từ thanh ghi điều khiển của máy tính.

+ Sau đó báo cho máy tính biết trạng thái bận Mục đích của công việc này là để đồng bộ thời điểm bắt đầu chương trình nhận dữ liệu với chương trình xuất dữ liệu từ máy tính.

+ Reset biến đếm địa chỉ đầu và cuối, nơi đặt vùng dữ liệu nhận được từ máy tính.

+ Xuất chử Ready báo cho người sử dụng biết trạng thái sẳn sàng nhận dữ liệu của kit Chờ người sử dụng gõ phím Go.

Ngày đăng: 29/04/2013, 14:55

HÌNH ẢNH LIÊN QUAN

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: - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
h ứ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: (Trang 7)
Các chân của IC đượïc bố trí như hình vẽ sau (hình 2): - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
c chân của IC đượïc bố trí như hình vẽ sau (hình 2): (Trang 9)
Hình 3: các nhóm hoạt động của 8085 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 3 các nhóm hoạt động của 8085 (Trang 11)
Hình 3: các nhóm hoạt động của 8085 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 3 các nhóm hoạt động của 8085 (Trang 11)
8255 có 40 chân dạng DIP như hình 5. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
8255 có 40 chân dạng DIP như hình 5 (Trang 12)
Hình 5 : sơ đồ chân và Sơ đồ  khối của 8255 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 5 sơ đồ chân và Sơ đồ khối của 8255 (Trang 12)
Bảng 2: Bảng liệt kê chức năng các chân IC 8255 Tên các  chânChức năng D7 – D0Data bus (Bi – Direction) - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Bảng 2 Bảng liệt kê chức năng các chân IC 8255 Tên các chânChức năng D7 – D0Data bus (Bi – Direction) (Trang 13)
Bảng 2: Bảng liệt kê chức năng các chân IC 8255 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Bảng 2 Bảng liệt kê chức năng các chân IC 8255 (Trang 13)
Hình 6: Cấu trúc từ điều khiển của IC ngoại vi 8255. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 6 Cấu trúc từ điều khiển của IC ngoại vi 8255 (Trang 14)
Hình 6: Cấu trúc từ điều khiển của IC ngoại vi 8255. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 6 Cấu trúc từ điều khiển của IC ngoại vi 8255 (Trang 14)
Bảng 3: Chức năng các chân IC 8279 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Bảng 3 Chức năng các chân IC 8279 (Trang 15)
Bảng 3: Chức năng các chân IC 8279 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Bảng 3 Chức năng các chân IC 8279 (Trang 15)
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í - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
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í (Trang 17)
K RESET DB0- DB7 Data - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
DB7 Data (Trang 18)
Hình 8: Sơ đồ khối của 8279 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 8 Sơ đồ khối của 8279 (Trang 18)
Hình 8:  Sơ đồ khối của 8279 - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 8 Sơ đồ khối của 8279 (Trang 18)
Bản g: Bảng đồ địa chỉ bộ nhớ của kit - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
n g: Bảng đồ địa chỉ bộ nhớ của kit (Trang 20)
Bảng  : Bảng đồ địa chỉ bộ nhớ của kit - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
ng : Bảng đồ địa chỉ bộ nhớ của kit (Trang 20)
Bảng 4: Bảng đồ địa chỉ I/O của kit - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Bảng 4 Bảng đồ địa chỉ I/O của kit (Trang 21)
Hình 9: chọn bộ nhớ - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 9 chọn bộ nhớ (Trang 21)
Bảng  4 : Bảng đồ địa chỉ I/O của kit - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
ng 4 : Bảng đồ địa chỉ I/O của kit (Trang 21)
Hình 9 : chọn bộ nhớ - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 9 chọn bộ nhớ (Trang 21)
Hình 10: Chọn I/O - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 10 Chọn I/O (Trang 22)
Hình 10: Chọn I/O - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 10 Chọn I/O (Trang 22)
Hình 11: Cổng LPT (DB25). Bảng  5: Bố trí chân ở cổng LPT ở máy tính: - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 11 Cổng LPT (DB25). Bảng 5: Bố trí chân ở cổng LPT ở máy tính: (Trang 25)
Hình dạng một cổng LPT1 được cho trong hình sau: - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình d ạng một cổng LPT1 được cho trong hình sau: (Trang 25)
Hình 11:  Cổng LPT (DB25). - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 11 Cổng LPT (DB25) (Trang 25)
Hình 12: Kết nối các thanh ghi ở cổng máy in của máy tính PC. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 12 Kết nối các thanh ghi ở cổng máy in của máy tính PC (Trang 26)
Hình 12: Kết nối các thanh ghi ở cổng máy in của máy tính PC. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 12 Kết nối các thanh ghi ở cổng máy in của máy tính PC (Trang 26)
List.hpp Để vẽ bảng liệt kê các thư mục và file, và chứa các hành động liên quan Mouse.hChứa các thao tác về chuột - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
ist.hpp Để vẽ bảng liệt kê các thư mục và file, và chứa các hành động liên quan Mouse.hChứa các thao tác về chuột (Trang 32)
− InitScreen(): Vẽ màn hình với các giá trị đã khởi tạo −InitMouse(): Khởi tạo chuột. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
nit Screen(): Vẽ màn hình với các giá trị đã khởi tạo −InitMouse(): Khởi tạo chuột (Trang 33)
Hình 13:  lưu đồ  hàm Main() của  chương trình  DownLoad. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 13 lưu đồ hàm Main() của chương trình DownLoad (Trang 33)
text ra màn hình - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
text ra màn hình (Trang 34)
Hình 15: Lưu đồ chương trình con có nhiệm vụ truyền file. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 15 Lưu đồ chương trình con có nhiệm vụ truyền file (Trang 36)
Hình 15: Lưu đồ  chương trình con có nhiệm vụ truyền file. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 15 Lưu đồ chương trình con có nhiệm vụ truyền file (Trang 36)
Đ Hình 16: Lưu đồ chương trình con Cắt file - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 16 Lưu đồ chương trình con Cắt file (Trang 38)
Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 1): - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 18 Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 1): (Trang 41)
Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị  thực tập vi xử lý 8085 (trang 1): - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 18 Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 1): (Trang 41)
Hình 19:  Lưu đồ chương  trình xử lý dữ liệu  - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
Hình 19 Lưu đồ chương trình xử lý dữ liệu (Trang 43)
Gọi tên Demo.exe, lúc đó màn hình sẽ hiện lên như sau: - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
i tên Demo.exe, lúc đó màn hình sẽ hiện lên như sau: (Trang 89)
Sau khi chọn xong file thì trong bảng “Free memory request” xuất hiện các địa chỉ đầu cuối, và dung lượng bộ nhớ sẽ sử dụng. - GIAO TIẾP MÁY TÍNH VỚI VI XỬ LÝ 8085
au khi chọn xong file thì trong bảng “Free memory request” xuất hiện các địa chỉ đầu cuối, và dung lượng bộ nhớ sẽ sử dụng (Trang 90)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w