_Mạch Kiểm Soát Ngắt (Interupt Controller).


ấn, dữ liệu đọc vào có nội dung là 0FFh. Khi có 1 phím được ấn, bit tương ứng sẽ có mức logic thấp. Ví dụ, khi phím OK được ấn, dữ liệu đọc được sẽ có nội dung là 0F7h. Như vậy, mỗi phím tương ứng với một mã sau:


PHÍM ẤN

Ins

0FEh

Ins_+

0FCh

Ins_-

0FAh

+

0FDh

-

0FBh

Del

0EFh

Ok

0F7h

Del/Date _ +

0EDh

Del/Date_ -

0EBh

Có thể bạn quan tâm!

Xem toàn bộ 105 trang tài liệu này.



Bảng 4: BẢNG MÃ BÀN PHÍM

Chương trình xử lí bàn phím sẽ thực hiện các công việc phù hợp với các mã được nhận . Khi không có nhu cầu sử dụng bàn phím, ngõ ra của mạch đệm 8 bit ở trạng thái tổng trở cao, bàn phím được cách ly khỏi bus dữ liệu.

Chương trình phần mềm phải đọc phím sau mỗi 200ms nhằm mục đích:

Chống hiện tượng nảy của phím và để người sử dụng theo dõi được sự thay đổi của các con số trên đèn hiển thị khi ấn các phím.

2.4.4_Mạch kiểm soát ngắt (interupt controller).

Hệ Thống báo giờ tự động có 3 chức năng: Setime, Hotime và Skiptime. Để thực hiện các khả năng này, người sử dụng sẽ dùng tín hiệu ngắt INT để báo cho

P biết công việc cần thực hiện để phục vụ người sử dụng. Tại mỗi thời điểm, người sử dụng chỉ có thể làm việc ở 1 chức năng hoặc Setime hoặc Hotime hoặc Skiptime.

Ngắt INT của Z80 gồm 8 vectơ ngắt, nhưng chỉ có 3 vectơ ngắt được dùng để tạo nên 3 chức năng trên. Nhiệm vụ của mạch kiểm soát ngắt là tạo ra 3 vectơ ngắt khác nhau P sẽ căn cứ vào vectơ ngắt để gọi chương trình phục vụ tương ứng. Để thuận tiện trong sử dụng, Hệ Thống sẽ có 3 led chỉ thị tương ứng với 3


chức năng: Setime, Hottime và Skiptime mạch kiểm soát ngắt gồm các thành phần như sau:


Từ timer

NMI Z80

TẠO VECTƠ NGẮT

GIẢI MÃ VÀ CHỈ THỊ

CHOÁT 8

BIT 3 TRẠNG THÁI


DATA BUS




SETTIME HOTTIME SKIPTIME

SELECT SW



ACCECPT INT IORQ M1

MẠCH GỌI NGẮT

SW


Hình 13: SƠ ĐỒ KHỐI MẠCH KIỂM SOÁT NGẮT.

Mạch tạo vectơ ngắt là mạch đếm modulo 4 đồng bộ, sẽ tạo ra 4 vectơ ngắt (vectơ ngắt gồm 8 bit có dạng 11ttt111). Mỗi vectơ ngắt tạo ra tương ứng với 1 chức năng của Hệ Thống. Hiện tại Hệ Thống chỉ sử dụng 3 vectơ ngắt, các vectơ ngắt còn lại dành cho các yêu cầu mở rộng chức năng khi cần. Bảng 5 trình bày các vectơ ngắt và chức năng của chúng:


VECTƠ NGẮT

ĐỊA CHỈ NGẮT

CHỨC NĂNG

11001111

0008h

Setime

11011111

0018h

Phục vụ hotime

11101111

0028h

Phục vụ Skiptime

11111111

0038h

Chưa sử dụng


Bảng 5: CHỨC NĂNG VÀ ĐỊA CHỈ CÁC VECTƠ NGẮT.


Khi có tín hiệu gọi ngắt, P sẽ phát ra 2 tín hiệu IORQ M1 để đọc vectơ

ngắt đang hiện diện trên đệm 8 bit và thực hiện chương trình phục vụ ngắt tương


ứng với vectơ ngắt đó. Mạch giải mã và chỉ thị sẽ làm sáng led tương ứng với vectơ ngắt được chọn. Người sử dụng sẽ dùng switch “select” để lựa chọn vectơ ngắt và ấn switch “accept” để gọi ngắt INT .

Khi ở chức năng Setime, mạch kiểm soát ngắt sẽ tạo ra tín hiệu điều khiển dừng việc đếm thời gian thực. Tín hiệu này sẽ điều khiển việc cho hoặc cấm tín hiệu Timer tác động vào ngắt NMI . Khi khởi động hoặc trước đó bị mất điện, Hệ Thống sẽ tự động đặt ở chế độ Setime và ngừng việc đếm thời gian thực, lúc đó mạch tạo vectơ ngắt tự động tạo ra vectơ ngắt 11001111 và tín hiệu ngừng đếm thời gian. Công việc trên nhằm tránh cho Hệ Thống báo giờ sai, đồng thời người sử dụng sẽ biết được cần phải đặt lại thời gian khi nhìn thấy đèn chỉ thị chức năng Setime sáng lên.

Mạch kiểm soát ngắt có cấu tạo như sau:


Hình 14 SƠ ĐỒ CHI TIẾT MẠCH KIỂM SOÁT NGẮT IC 74LS245 được dùng làm đệm 8 4

Hình 14: SƠ ĐỒ CHI TIẾT MẠCH KIỂM SOÁT NGẮT.

IC 74LS245 được dùng làm đệm 8 bit 3 trạng thái, IC 74LS112 làm mạch đếm modulo 4, được đặt ở chế độ tự động reset khi mới cấp điện. IC 4093 làm nhiệm vụ giải mã và thúc các led chỉ thị. IC 74LS123 làm nhiệm vụ giới hạn xung gọi ngắt INT . Các switch ấn đều được chống dội. Các chân Q1, Q2 của IC 74LS112 kết hợp với các chân A1, A2, A3, A4, A5, A6,A7, A8 được nối lên mức



cao của IC 74LS245 để tạo thành các vectơ ngắt. P dùng tín hiệu IORQ M1

tác động vào chân G của 74LS245 để đọc nội dung vectơ ngắt.

2.4.5_Mạch hiển thị (Display).

Mạch hiển thị có nhiệm vụ thông báo thời gian thực và cho phép người sử dụng theo dõi được công việc đang thực hiện khi dùng bàn phím. Nội dung hiển thị là các con số chỉ thời gian (thứ, giờ, phút, giây). Đèn hiển thị gồm 7 led 7 đoạn, một led hiển thị thứ, hai led hiển thị giờ, hai led hiển thị phút và 2 led hiển thị giây.

Do đặc điểm của Hệ Thống là phần quét hiển thị cần phải được thực hiện độc lập với vi xử lí nên người viết sử dụng IC chuyên quét phím và hiển thị. Đó là IC 8279 để hiển thị.

Cấu trúc phần cứng 8279



Hình 15 SƠ ĐỒ CHÂN CHỨC NĂNG IC 8279 Tên các chân TÊN I O CHỨC NĂNG DB7 – DB0‌ 5

Hình 15: SƠ ĐỒ CHÂN CHỨC NĂNG IC 8279

Tên các chân :


TÊN

I/O

CHỨC NĂNG

DB7 – DB0‌

I/O

Data bus

CLK

I

Clock input

RESET

I

Reset input

CS

I

Chip Select

RD

I

Read input

WR

I

Write input

Ao

I

Address


IRQ

O

Interrupt request input

Sl0 - SL3

O

Scan lines

RL0 – RL3

I

Return lines

SHIFT

I

Shift input

CNTL/STB

I

Control/Strobe input

OUT A3 – 0

O

Display (A) output

OUT B3 – 0

O

Display (B) output


BD

O

Blank Display output



Cấu trúc phần mềm của 8279

IC 8279 có 1 đường địa chỉ A0 cho chức năng lựa chọn như sau:

A0 = 02: 8279 xem dữ liệu từ vi xử lí gởi tới 8279 là dữ liệu để hiển thị.

A0 = 12:8279 xem dữ liệu từ vi xử lí gởi đến là dữ liệu của lệnh điều khiển 8279.

Các lệnh điều khiển của 8279:

Keyboarb/display mode set:

+ Mã


0

0

0

D

D

K

K

K


+ Trong đó hai bit DD dùng để thiết lập mode hiển thị, 3 bit KKK dùng để thiết lập mode quét bàn phím.

+ Hai bit DD:

DD = 00 : hiển thị 8 kí tự – lối vào trái DD = 01 : hiển thị 16 kí tự - lối vào trái DD = 10 : hiển thị 8 kí tự - lối vào phải DD = 11 : hiển thị 16 kí tự – lối vào phải

+ Ba bit KKK

000 : encode scan keyboard – 2 key lockout


001 : decode scan keyboard – 2 key lockout 010 : encode scan keyboard – N key lockout 011 : decode scan keyboard – N key lockout 100 : encode scan sensor matrix

101 : dencode scan sensor matrix

110 : strobe input, encode display scan 111 : strobe input, decode display scan

Program clock:

+ Mã


0

0

1

P

P

P

P

P

+ Lệnh này có chức chia tần số xung clock ở ngõ vào clk ở chân số 3, các bit PPPPP dùng để xác định số chia nằm trong từ 2 đến 30, tần số hoạt động của mạch quét hiển thị và chống dội của 8279 thường là 100KHz. Nếu tần số ngõ vào là 2MHz thì phải chia cho 20 để được 100 KHz. Khi đó các bit PPPPP có giá trị là 10100

Read FIFO /sensor RAM.

+ Mã


0

1

0

AI

X

A

A

A


+ 8279 có 8 byte RAM bên trong để chứa mã của phím ấn hay mã của các sensors, để truy xuất từng byte mã của phím ấn hay của sesors ta có thể điều chỉnh các bit AAA tương ứng. Bộ nhớ này thuộc kiểu FIFO.

+ AI (automatically increment) : ở mức 1 có chức năng làm con trỏ tự động tăng lên byte kế tiếp để sẵn sàng cho việc đọc dữ liệu. Nếu AI = 0 con trỏ sẽ không thay đổi.

Read display RAM:

+ Mã


0

1

1

AI

A

A

A

A


+ 8279 có 16 byte RAM bên trong do con trỏ 4 bit AAAA quản lý. 16 byte Ram này dùng để chứa dữ liệu hiển thị do vi xử lí gởi đến, để đọc dữ liệu ô nhớ nào trong vùng nhớ Ram ta có thể điều chỉnh các bit AAAA tương ứng.


Bộ nhớ này thuộc kiểu FIFO

+ AI (automatically increment): ở mức 1 có chức năng làm con trỏ tự động tăng lên byte kế tiếp để sẵn sàng đọc byte dữ liệu. Nếu AI = 0 con trỏ sẽ không thay đổi.

End interrupt

+ Mã


1

1

1

E

0

0

0

0


+ Bit E = 1 sẽ xóa ngắt IRQ về mức 0

Lệnh write display RAM.

+ Mã


1

0

0

AI

A

A

A

A


+ 8279 có 16 byte Ram bên trong do con trỏ 4 bit AAAA quản lý 16 byte Ram này dùng để chứa dữ liệu hiển thị do vi xử lí gởi tới. Để gởi dữ liệu đến byte Ram tứ mấy trong 16 byte Ram ta có thể điều chỉnh các bit AAAA tương ứng

+ AI (automatically increment): ở mức 1 có chức năng làm con trỏ tư ïđộng tăng lên byte kế để sẵn sàng nhận dữ liệu. Nếu AI = 0 con trỏ sẽ không thay đổi do đó byte dữ liệu sau sẽ đè lên byte dữ liệu trước đó.


Hình 16 SƠ ĐỒ CHI TIẾT MẠCH HIỂN THỊ Cách khởi tạo 8279 được trình bày ở 6

Hình 16: SƠ ĐỒ CHI TIẾT MẠCH HIỂN THỊ.

Cách khởi tạo 8279 được trình bày ở phần thiết kế phần mềm.

2.4.6_Mạch điều khiển báo hiệu:

Khi đến thời điểm báo hiệu, Hệ Thống phát ra tín hiệu điều khiển thiết bị báo hiệu hoạt động. Việc báo hiệu được thể hiện bằng đèn chớp tắt hay tiếng còi, chuông điện. Cách thức báo hiệu như : số hồi chuông và độ dài các hồi chuông do phần mềm Hệ Thống qui định. Cách thức báo hiệu có thể thay đổi bằng cách thay đổi byte mã chuông trong chương trình phần mềm. Các thiết bị báo hiệu có thể được cấp điện từ nguồn điện khác với nguồn điện của Hệ Thống.

Mạch điều khiển báo hiệu có địa chỉ từ 3000h đến 3FFFh. P sẽ xuất tín hiệu báo hiệu ra mạch điều khiển báo hiệu bằng lệnh ghi dữ liệu vào 1 byte nhớ bất kì trong vùng nhớ 3000h đến 3FFFh, P dùng tín hiệu BDR để điều khiển việc báo hiệu. Mạch điều khiển báo hiệu có sơ đồ khối như hình 17.

Xem toàn bộ nội dung bài viết ᛨ

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 08/09/2023