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

Thiết kế vả thi công hệ thống test time tự động ứng dụng CPUZ80 part4 pot

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 (451.96 KB, 10 trang )

Luận văn tốt nghiệp
Hệ thống báo giờ tự động



Hình 10: SƠ ĐỒ MẠCH ĐỊNH THỜI.
Do mạch dao động sử dụng nguồn 1,5V nên tín hiệu đònh thời ở ngõ ra sẽ
được khuyếch đại lên cho phù hợp với mức logic của mạch số. Sau đó, tín hiệu
đònh thời sẽ được giới hạn độ rộng xung trước khi đưa đến chân
NMI
của Z80
bằng một mạch đơn ổn (Mono Multivibrator).
Độ rộng xung gọi ngắt
NMI
được chọn phụ thuộc vào thời gian thực hiện
lệnh dài nhất trong chương trình Hệ Thống. Thời gian thực hiện lệnh dài nhất
của Z80 là 23x1/f
ck
(giây) để bảo đảm P nhận được ngắt mỗi khi có tín hiệu
ngắt NMI = 0. Độ rộng xung gọi ngắt phải thỏa:
 > 23x1/f
ck
= 0.46s
IC 74LS123 có công thức tính độ rộng xung như sau:
 = 0,45xRxC
Với R = 1K, C = 0.047f
Ta có  = 0,45x 1000x0.047x10
-6
= 21,1s
 xấp xỉ 45.1 lần thời gian thực hiện lệnh dài nhất của P, giá trò này của 
thỏa mãn yêu cầu đặt ra.


2.4.3_Mạch bàn phím (Keyboard):
Người sử dụng dùng bàn phím để điều chỉnh thời gian (Settime), đặt các thời
điểm báo hiệu đột xuất (Hottime), đặt các thời điểm cấm báo hiệu (Skiptime),
xem hoặc xóa nội dung bảng Hotime/Skiptime.
Để đáp ứng các yêu cầu trên, bàn phím sẽ có 5 phím với tên gọi như sau :
Ins, +, -, Del/Date và Ok chức năng từng phím do phần mềm qui đònh. Cách sử
dụng bàn phím được mô tả chi tiết ở phần “Mô tả Hệ Thống và hướng dẫn sử
dụng”.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động


Bàn phím được thiết kế theo nguyên tắc ánh xạ bộ nhớ, P sẽ xem bàn
phím như 1 byte nhớ. Bàn phím có đòa chỉ thuộc vùng nhớ từ 4000h đến 4FFFh.
P dùng tín hiệu điều khiển để truy xuất bàn phím. Các phím ấn khác nhau
sẽ làm cho byte nhớ có nội dung khác nhau tương ứng với chức năng khác nhau
của mỗi phím. Chu kì P đọc bàn phím như hình 11.

CLOCK

A0-A15
MERQ


D0-D7

Hình 11: CHU KÌ P ĐỌC BÀN PHÍM.
Tín hiệu
MERQ
từ P sẽ hiệu lực hóa việc giải mã đòa chỉ tạo ra tín hiệu

để P đọc bàn phím.
Bàn phím có cấu tạo gồm một IC đệm 8 bit 3 trạng thái và 5 Switch như sau:
Hình 12: SƠ ĐỒ CHI TIẾT MẠCH BÀN PHÍM .
IC 74LS245 được dùng làm mạch đệm 8 bit 3 trạng thái nên bàn phím có tối
đa 8 phím. Hiện tại bàn phím gồm 5 phím, P dùng tín hiệu điều khiển
KBD
tác
động vào chân G của IC 74LS245 để đọc bàn phím. Khi không có phím nào
Luận văn tốt nghiệp
Hệ thống báo giờ tự động


được ấ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 MÃ
Ins
Ins_+
Ins_-
+
-
Del
Ok
Del/Date _ +
Del/Date_ -
0FEh
0FCh
0FAh
0FDh

0FBh
0EFh
0F7h
0EDh
0EBh

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
Luận văn tốt nghiệp
Hệ thống báo giờ tự độ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


SETTIME
HOTTIME DATA BUS
SKIPTIME
SELECT SW


ACCECPT INT
IORQ

1
M

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
11011111
11101111
11111111
0008h
0018h
0028h
0038h
Setime
Phục vụ hotime
Phục vụ Skiptime
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

1
M
để đọ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
CHỐT 8
BIT 3
TRẠNG
THÁI
TẠO VECTƠ
NGẮT
MẠCH
GỌI NGẮT

GIẢI MÃ VÀ
CHỈ THỊ
Luận văn tốt nghiệp
Hệ thống báo giờ 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 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
Luận văn tốt nghiệp
Hệ thống báo giờ tự động



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

1
M

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
DB7 – DB0
CLK
RESET
CS\
RD\
WR\
I/O
I/O
I

I
I
I
I
CHỨC NĂNG
Data bus
Clock input
Reset input
Chip Select
Read input
Write input
Luận văn tốt nghiệp
Hệ thống báo giờ tự động


Ao
IRQ
Sl0 - SL3
RL0 – RL3
SHIFT
CNTL/STB
OUT A3 – 0
OUT B3 – 0
BD

I
O
O
I
I

I
O
O
O

Address
Interrupt request input
Scan lines
Return lines
Shift input
Control/Strobe input
Display (A) output
Display (B) output
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 = 0
2
: 8279 xem dữ liệu từ vi xử lí gởi tới 8279 là dữ liệu để hiển
thò.
 A0 = 1
2
: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
Luận văn tốt nghiệp
Hệ thống báo giờ tự động


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

Luận văn tốt nghiệp
Hệ thống báo giờ tự động


+ 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 đó.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động



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.

×