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

Luận văn tố t nghiệp ỨNG DỤNG CPU z80 THIẾT kế và THI CÔNG hệ THỐNG báo GIỜ tự ĐỘNG

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 (3.54 MB, 188 trang )

Luận văn tố t nghiệp

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN _ ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ

LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI:

ỨNG DỤNG CPU Z80
THIẾT KẾ VÀ THI CÔNG
HỆ THỐNG BÁO GIỜ TỰ ĐỘNG

SVTH : PHAN THANH TÀI
LỚP
: 95KĐĐ
GVHD : TS_ TRẦN THU HÀ

TP. HỒ CHÍ MINH Tháng 3-2000

Hệ thống báo giờ tự động


Luận văn tố t nghiệp

LờI CảM Tạ
Có lẽ không một ai có thể quên được những mái trường mà mình đã đi qua
trong một thời thơ ấu cho đến lúc trưởng thành và tôi không phải là một ngoại lệ.
Các mái trường đã lần lượt nối tiếp nâng dần từng bước đi lên của tôi. Cứ sau mỗi


chặng đường đi qua, tôi lại thấy mình lớn lên, vững vàng hơn trong kiến thức và
năng lực. Chặng đường vừa đi qua là chặng đường cuối cùng của thời cắp sách đến
trường đó là năm năm dài đầy cam go và thử thách dưới mái trường Đại Học Sư
Phạm Kỹ Thuật. Nơi đây đã không chỉ đơn giản cung cấp cho tôi những kiến thức
khoa học kỹ thuật mà quý hơn cả là đã nhóm trong tôi ngọn lửa yêu khoa học và rèn
luyện cho tôi một nghị lực vững vàng để làm hành trang bước vào đời.
Bên cạnh đó gia đình còn là nguồn động lực to lớn về tinh thần lẫn vật chất
giúp cho tôi bước đi trên con đường mà tôi đã chọn.
Con xin cảm ơn ba mẹ đã không quản khó nhọc lo toan chăm chút cho con,
nuôi dưỡng con thành người. Nay con kính dâng lên ba mẹ những gì con đã gặt hái
được trên ghế nhà trường.
Xin cảm ơn những mái trường mà tôi đã đi qua suốt thời niên thiếu. Tôi sẽ ghi
nhớ mãi công ơn của tất cả thầy cô đã dìu dắt tôi từ những buổi học vở lòng đến
nay. Cảm ơn trường Đại Học Sư Phạm Kỹ Thuật, nơi in đậm những vui buồn, thất
bại và thành công của tuổi sinh viên. Kính lời cảm ơn khoa điện cùng các thầy cô
của khoa, tất cả như những người thân đã dành nhiều tình cảm tốt đẹp đối với tôi và
tạo mọi điều kiện thuận lợi để tôi học tập tốt.
Gởi đến cô Trần Thu Hà lời ghi ơn vô vàn, người cô đã trực tiếp theo sát, tận
tình hướng dẫn tôi trong suốt quá trình làm luận văn.
Sau cùng là lời cảm ơn chân thành về những ý kiến đóng góp của quí thầy cô và
tất cả bạn đọc.

Hệ thống báo giờ tự động


Luận văn tố t nghiệp

LờI NÓI ĐầU
Kỹ thuật vi xử lí với tốc độ phát triển nhanh đã và đang mang đến những thay đổi to
lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày. Ngày nay, các thiết

bị, máy móc ngày càng trở nên thông minh hơn và dễ sử dụng hơn. Các công việc được
thực hiện với hiệu quả cao hơn. Đó cũng nhờ vào kỹ thuật vi xử lí.
Kỹ thuật vi xử lí là kỹ thuật của tương lai, là chìa khóa đi vào công nghệ hiện đại.
Đối với sinh viên chuyên ngành Điện Tử, đây là một lĩnh vực mới, hứa hẹn mở ra nhiều
triển vọng. Để góp phần làm nền tảng ban đầu cho việc học tập, tìm hiểu kỹ thuật vi xử lí
người viết đề nghị thực hiện đề tài : ỨNG DỤNG CPU Z80 VÀO HỆ THỐNG BÁO GIỜ
TỰ ĐỘNG.

Trong quá trình thực hiện đề tài, mặc dù người viết đã rất cố gắng, xong chắc chắn
không tránh khỏi thiếu xót. Rất mong nhận được sự góp ý, phê bình và chỉ dẫn của quí
thầy cô và bạn đọc.

Hệ thống báo giờ tự động


Luận văn tố t nghiệp

Hệ thống báo giờ tự động


Luận văn tố t nghiệp
I- MỤC TIÊU CỦA ĐỀ TÀI:
Việc báo hiệu thời gian trong trường học, trong phân xưởng sản xuất hay ở các xí
nghiệp … tuy rất đơn giản nhưng đòi hỏi phải có người quản lý theo dõi thường xuyên và
báo hiệu chính xác.
Để đề phòng cháy nổ cho các cơ quan, kho tàng … cần phải được trang bị các thiết bị
phát hiện hỏa hoạn. Việc phát hiện sớm các vụ hỏa hoạn sẽ hạn chế được những thiệt hại
về tính mạng con người cũng như của cải vật chất.
Mục tiêu của đề tài là thiết kế một Hệ Thống có những khả năng sau:
_ Tạo ra thời gian thực.

_ Tự động báo hiệu tại những thời điểm đã được qui định (Gồm những thời điểm
được đặt trước trong ROM và những thời điểm do người sử dụng tự đặt vào Hệ Thống qua
bàn phím).
_ Việc báo hiệu có thể được thực hiện bằng nhiều cách khác nhau.
_ Thăm dò các thiết bị phát hiện hỏa hoạn (Sensors) và phát tín hiệu báo động khẩn
cấp khi có hỏa hoạn xảy ra.
Trong khuôn khổ của luận văn tốt nghiệp, người viết chỉ thiết kế Hệ Thống thực hiện
việc tạo thời gian thực và tự động báo hiệu tại những thời điểm đã được qui định. Hệ
Thống có tên gọi “Hệ Thống Báo Giờ Tự Động” được thiết kế nhằm mục đích thay thế
người quản lý tự động báo hiệu tại các thời điểm trong ngày một cách chính xác.
II- KHẢ NĂNG CỦA HỆ THỐNG BÁO GIỜ TỰ ĐỘNG:
Với tên gọi “Hệ Thống Báo Giờ Tự Động” Hệ Thống có những khả năng sau:
_ Cho phép theo dõi thời gian thực (Gồm thứ, giờ, phút và giây) và điều chỉnh thời
gian thực.
_ Tự động báo hiệu tại những thời điểm cố định hằng ngày (Những thời điểm này
được đặt sẵn theo yêu cầu nơi sử dụng). Không báo hiệu vào ngày thứ 7 và Chủ nhật.
_ Cho phép người sử dụng đặt vài thời điểm báo hiệu đột xuất trong ngày.
_ Người sử dụng có thể cấm báo hiệu tại những thời điểm nào đó trong ngày.
_ Cho phép xem lại hay xóa mất bất kì thời điểm nào do người sử dụng tự đặt vào Hệ
Thống.
_ Tiếng chuông báo hiệu đa dạng: số hồi chuông, độ dài hồi chuông được thay đổi
nhằm thể hiện mục đích mỗi thời điểm báo hiệu.
_ Hệ Thống vẫn làm việc khi mất điện lưới (nhưng sẽ không báo hiệu).

_ Hệ Thống có đèn chỉ thị yêu cầu đặt lại thời gian thực khi việc tạo thời gian
thực bị gián đoạn.
_ Hệ Thống có khả năng phát hiện ra lỗi và sẽ gởi thông báo lỗi đến người sử dụng
qua led hiển thị.
III- MỘT SỐ QUI ƯỚC :


Để ngắn gọn trong trình bày, người viết xin qui ước các thuật ngữ sau đây:

Hệ thống báo giờ tự động


Luận văn tố t nghiệp
_ Điều chỉnh thời gian thực: là thay đổi thời điểm hiện tại, gọi là SETTIME
_ Thời điểm báo hiệu thường trực: là những thời điểm báo hiệu cố định hàng ngày,
chẳng hạn như giờ học trong trường học, gọi là RESTIME.
_ Thời điểm báo hiệu tức thời: là những thời điểm do ngươi sử dụng tự đặt vào Hệ
Thống để báo hiệu đột xuất, gọi là HOTTIME.
_ Thời điểm cấm báo hiệu: là những thời điểm do sử dụng tự đặt vào để cấm báo
hiệu tại bất kì một thời điểm nào trong ngày, gọi là SKIPTIME.
IV-PHƯƠNG HƯỚNG GIẢI QUYẾT:
Để Hệ Thống có những tính năng mạnh mẽ, dễ dàng trong sử dụng, người viết dùng
kỹ thuật vi xử lý để thiết kế Hệ Thống. Hoạt động của Hệ Thống là sự kết hợp chặt chẽ
giữa phần cứng và phần mềm.
4.1-Giải pháp phần cứng:
Hệ Thống được thiết kế dựa trên bộ vi xử lí (P Micro processor) Z80 của hãng
Zilog. Hệ Thống có:
_ Bộ nhớ ROM và RAM phục vụ cho hoạt động của Hệ Thống.
_ Tín hiệu định thời để phục vụ việc tạo thời gian thực bằng phần mềm.
_ Bàn phím để người sử dụng giao tiếp với Hệ Thống.
_ Mạch kiểm soát các vectơ ngắt INT mode 0 dùng cho việc phục vụ các chức năng:
Settime, Hottime và Skiptime.
_ 7 led 7 đoạn để hiển thị thời gian (Thứ, giờ, phút và giây).
_ Mạch điều khiển chuông điện để báo hiệu.
_ Mạch nguồn cấp điện có accu dự phòng khi mất điện lưới.
4.2. Giải pháp phần mềm:
Phần mềm Hệ Thống được thiết kế dựa trên cấu tạo phần cứng Hệ Thống được tổ

chức như sau:
_ Một IC ROM chứa phần mềm Hệ Thống và bảng Restime.
_ Một IC RAM được dùng làm vùng đệm, Stack, bảng Hottime, bảng Skiptime.
_ Chương trình ra quyết định báo hiệu và điều khiển báo hiệu.
_ Chương trình phục vụ ngắt NMI để đếm thời gian thực.
_ Các chương trình phục vụ các ngắt INT mode 0 để thực hiện các chức năng:
Settime, Hottime và Skiptime.
_ Xử lý bàn phím và hiển thị để người sử dụng giao tiếp với Hệ Thống.
Trên đây là giải pháp kỹ thuật mà người viết chọn để thiết kế Hệ Thống.
V- NGUYÊN LÝ CHUNG CỦA HỆ THỐNG BÁO GIỜ TỰ ĐỘNG:
Bộ vi xử lý (P) Z80 là một P 8 bit, có khả năng truy xuất 64KB bộ nhớ, có
nhiều kiểu ngắt. Tần số xung clock tối đa 2.5MHz (họ Z80 CPU). Tập lệnh gồm 158 lệnh.

Hệ thống báo giờ tự động


Luận văn tố t nghiệp
Trong quá trình hoạt động của Hệ Thống, cứ mỗi giây tín hiệu định thời tác động vào
ngắt NMI để gọi chương trình tạo thời gian thực và mỗi giây thời gian thực được hiển thị
trên đèn led 7 đoạn.
Chương trình phần mềm thường xuyên thực hiện quá trình so sánh thời gian thực với
từng Restime, Hottime, Skiptime và thứ trong tuần để ra quyết định báo hiệu.
Khi có tín hiệu gọi ngắt INT , tùy vào địa chỉ ngắt mode 0, các chức năng như:
Xem_Xóa_Đặt Hottime, Xem_Xóa_Đặt Skiptime và Settime sẽ được chương trình tương
ứng phục vụ. Khi đó, thông qua bàn phím và đèn hiển thị người sử dụng sẽ thực hiện các
chức năng đã chọn.
Nhìn chung:
Người viết thấy yêu cầu phần cứng ngoài bộ vi xử lí và bộ nhớ (ROM và RAM)
cần phải có mạch hiển thị, bàn phím, mạch kiểm soát ngắt mode 0, mạch điều khiển báo
hiệu, mạch tạo xung đồng hồ và định thời.

Vê phần mềm, ngoài việc khởi động Hệ Thống cần phải thực hiện các nhiệm vụ sau:
tạo thời gian thực, quyết định việc báo hiệu và điều khiển báo hiệu. Phục vụ người sử dụng
điều chỉnh thời gian thực, thực hiện các chức năng về Hottime và Skiptime. Điều khiển
mạch hiển thị để hiển thị các thông tin cần thiết như thời gian thực, các Hottime và
Skiptime, tạo thông báo lỗi. Xử lí bàn phím để nhận lệnh từ người sử dụng.

Hệ thống báo giờ tự động


Luận văn tố t nghiệp

PHẦN II

NỘI DUNG

Hệ thống báo giờ tự động


Luận văn tố t nghiệp
I- GIỚI THIỆU CÁC DẠNG MẠCH ĐÃ CÓ TRONG NƯỚC.
Trước đây đã có một vài Hệ Thống báo Giờ Tự Động được thiết kế và thi công. Tuy
nhiên, do chúng được thiết kế bằng cách dùng “Eprom” nên đã vấp phải một vài hạn chế
về tính năng trong sử dụng cũng như việc tính toán phức tạp trong kết nối phần cứng. Sau
đây, người viết sẽ giới thiệu hai dạng mạch dùng “Eprom” điển hình.
1.1_ Đề tài : “Thiết Kế Và Thi Công Máy Báo Tiết Cho Trường ĐHSPKT”
Gvhd: Trần Minh Chánh.
Svth : Nguyễn Đình Mạnh Chiến
Trần Thị Bạch Ngọc

Sơ đồ khối chi tiết mạch:

DAO ĐỘNG
1Hz

NGUỒN
12V.5V

CHIA 30

OR

DAO ĐỘNG
CHỈNH

Trình bày sơ đồ khối:

ĐẾM

ĐIỀU KHIỂN
BÁO

NHỚ VÀ ĐỆM

CHỈ THỊ

CÔNG SUẤT
VÀ TẢI

_ Khối dao động: tạo tần số chuẩn 1Hz làm tần số cơ sở để mạch hoạt động và tạo
xung điều khiển mạch báo giây.
_ Khối chia 30: tạo tần số 1/30 Hz tức ½ giây là tần số để mạch đếm thay đổi địa chỉ

bộ nhớ.

_ Khối đếm: Là mạch đếm lên làm tăng dần địa chỉ bộ nhớ sau mỗi xung ½
giây. Có thể đặt lại trạng thái ban đầu (reset) bằng tay hoặc từ ngõ ra của bộ nhớ.
_ Khối nhớ và đệm: ghi toàn bộ chương trình báo tiết học trong 24 giờ.


Tạo xung cho mạch chỉ thị (1 phút) .



Tạo xung reset cho mạch chỉ thị sau 60 phút, sau 24 giờ.

 Tạo xung reset toàn mạch sau 24 giờ (bằng cách reset mạch đếm về trạng
thái ban đầu mà tại địa chỉ đó chứa đoạn chương trình reset toàn mạch).
_ Khối điều khiển báo hiệu:


Tạo thời gian dài (7’) cho đầu tiết học.



Tạo thời gian ngắn (3’) cho cuối tiết học.



Tắt mở báo bằng tay theo yêu cầu sử dụng (ALARM ON/OFF).

Hệ thống báo giờ tự động



Luận văn tố t nghiệp
_ Khối công suất: gồm transistor công suất, rơle đóng cắt tải AC, DC (110V, 220V).
_ Khối dao động điều chỉnh:
Tạo tần số dao động cao hơn tần số dao động cơ bản để điều chỉnh lại đồng hồ báo
giờ.


Chỉnh với tốc độ nhanh.



Chỉnh với tốc độ chậm.

_ Khối nguồn: Gồm có mạch ổn áp, mạch bảo vệ nhằm cực tính nguồn accu từ bên
ngoài
Nguyên lý hoạt động cơ bản của hệ thống như sau:
Dữ liệu từ 0 đến 23 giờ và tín hiệu điều khiển báo chuông được nạp trong một IC
ROM 2732. Dữ liệu này không xuất trực tiếp ra led 7 đoạn để hiển thị mà chúng có nhiệm
vụ tạo ra xung clock cho mạch đếm BCD và xung reset cho mạch đếm sau 60 phút và sau
24 giờ.
Nguyên tắc tạo ra xung clock cho mạch đếm BCD như sau :
Cứ mỗi phút ở ngõ ra của IC ROM sẽ xuất hai 2 byte, ở bit D0 của byte thứ nhất có
giá trị là 0 và byte thứ 2 có giá trị là 1, IC ROM cứ tuần hoàn xuất ra dữ liệu như thế nên ở
bit D0 ngõ ra sẽ tạo thành một chuỗi xung liên tục có tần số là 1/60 Hz hay 1 phút (dạng
chuỗi xung có được mô tả ở hình phía dưới) kích cho mạch đếm BCD để mạch đếm này cứ
đếm tăng lên, sau đó số đếm BCD này sẽ được giải mã từ BCD ra led 7 đoạn để hiển thị.
Địa chỉ :

0h 1h


2h

3h

4h

D0

0

0

1

0

1

Dạng sóng

1/60 Hz
Do mạch đếm là mạch đếm BCD nên ở phút 60 phải có xung reset mạch đếm phút về
00 và tăng giờ lên 1, tương tự khi giờ bằng 24 phải reset giờ về 00.
Nguyên tắc reset mạch đếm phút và giờ như sau:
Bit D1 dùng để reset mạch đếm phút. Giả sử mạch đếm phút được reset ở mức 0 thì tất
cả các byte ở phút 60 phải đặt bit D1 = 0 còn các byte khác phải đặt bit D1 = 1.
Tương tự như reset mạch đếm phút, bit D2 dùng để reset mạch đếm giờ. Byte tương
ứng với 24 giờ phải đặt bit D2 = 0 (giả sử mạch đếm giờ có reset tác động mức 0) còn các
byte còn lại phải đặt bit D2 = 1.

VD : Mạch reset phút tác động mức 0 thì phải ghi chương trình như sau:
Địa chỉ :

118D

119D

102D

121D

Giờ ứng :

0:59

0:59:30

1:00:00

1:00:30

Hệ thống báo giờ tự động


Luận văn tố t nghiệp

D1

:


1

1

0
Chục
phút

Phút

D0 ck

IC1

1

CO ck

IC2

Chục
giờ

Giờ

CO ck

Reset 60 phút
D1


IC3

CO ck

IC4

Reset 24 giờ
D2

SƠ ĐỒ MẠCH ĐẾM BCD CHO PHÚT, GIỜ
Nguyên tắc xuất tín hiệu điều khiển chuông:
Sử dụng bit D4 để phát tín hiệu điều khiển chuông cho đầu tiết học và bit D5 để phát
tín hiệu điều khiển chuông ở cuối tiết học, phải dùng 2 bit để điều khiển chuông là do phải
sử dụng 2 mạch dao động đơn ổn, một mạch định thời gian dài cho đầu tiết và một mạch
định thời gian ngắn cho cuối tiết.
1.2 _ Đề tài : “Thiết Kế Và Thi Công Mạch Đồng Hồ Báo Giờ”
Giáo viên hướng dẫn : Nguyễn Phương Quang
Sinh viên thực hiện

: Võ Đức Trí
: Đoàn Nam Sơn

Lớp

: 95KĐĐ3/7

Sơ đồ khối chi tiết mạch.

KHỐI ĐIỀU KHI ỂN
BÁO


KHỐI HIỂN THỊ

KHỐI GIẢI ĐA
HỢP, CHỌN KÊNH

KHỐI CHỐT

Hệ thống báo giờ tự động
BỘ NHỚ


Luận văn tố t nghiệp

Nhiệm vụ các khối:
_ Khối tạo xung: khối này có chức năng tạo dao động và chia tần số để được xung 1
Hz. Xung này được đưa đến bộ đếm và giải mã địa chỉ bộ nhớ.

_ Khối giải mã địa chỉ bộ nhớ: khối này là bộ đếm lên nhận xung clock với tần
số 1/60 Hz (1 phút), 11 ngõ ra của bộ đếm được đưa đến 11 đường địa chỉ từ A2
đến A12 của IC nhớ 2764.
_ Bộ nhớ: Là nơi lưu trữ dữ liệu đã nạp từ trước. Mạch giải mã địa chỉ bộ nhớ sẽ làm
cho địa chỉ bộ nhớ thay đổi, khi đó dữ liệu sẽ được xuất ra mạch bên ngoài qua mạch đệm
dữ liệu.
Bộ chốt dữ liệu: có nhiệm vụ chốt dữ liệu và giao tiếp với bộ nhớ để hiển thị dữ liệu ra
led 7 đoạn.
_ Khối giải mã và chọn kênh: nhận xung từ bộ dao động sau đó giải mã ở ngõ ra để
chọn bộ đệm.
_ Khối hiển thị: cho phép người sử dụng xem được giờ, phút thông qua led 7 đoạn.
_ Khối điều khiển báo: đây là khối thực hiện nhiệm vụ chính, nó có nhiệm vụ phát ra

tín hiệu điều khiển chuông.
_ Khối dao động điều chỉnh: tạo tần số dao động cao hơn tần số dao động cơ bản để
cho phép người sử dụng chỉnh lại giờ, phút của đồng hồ.
_ Khối nguồn: khối này đảm bảo cho toàn mạch hoạt động liên tục, gồm có mạch ổn
áp và accu dự phòng.
Nguyên lý hoạt động cơ bản của hệ thống như sau:
Dữ liệu từ 0 đến 23 giờ và tín hiệu điều khiển báo chuông được lưu trong Eprom.
Dữ liệu này sẽ được xuất ra led 7 đoạn và mạch điều khiển báo chuông chỉ qua bộ đệm mà

Hệ thống báo giờ tự động


Luận văn tố t nghiệp
không cần giải mã, mỗi phút sẽ có 4 byte dữ liệu gồm 2 byte cho giờ và 2 byte cho phút
xuất lần lượt ra 2 led giờ và 2 led phút, chúng sẽ vẫn cứ xuất ra lần lượt như thế (quét) với
tần số khá cao để người quan sát không còn thấy được sự chớp tắt của nó nữa. Dữ liệu xuất
ra ở bộ đệm có 32 đường, trong đó 28 đường cung cấp cho hiển thị giờ, phút, một đường
cấp cho hiển thị AM/PM thông qua 1 FF-T, một đường cấp cho mạch điều khiển chuông
để báo giờ.
Dựa vào nguyên tắc hoạt động của hai dạng mạch nêu trên người viết nhận thấy rằng
mặc dù nguyên tắc hoạt động của chúng khác nhau nhưng chúng đều có chung những khả
năng sau:
_ Tạo ra thời gian thực gồm giờ và phút.
_ Điều chỉnh thời gian thực, cách điều chỉnh là điều chỉnh với tốc độ nhanh và
chậm nhưng không có khả năng điều chỉnh giờ, phút độc lập với nhau cũng như không có
khả năng điều chỉnh theo hướng giảm giờ, phút.
_ Tự động báo hiệu tại những thời điểm đã được qui định, những thời điểm này là
cố định và được đặt trước trong EPROM.

1.3- Ưu nhược điểm của hệ thống bao giờ tự động dùng “EPROM” và vi xử lí Z80.

Như vậy hệ thống báo giờ tự động mà người viết thiết kế có được những ưu, nhược
điểm so với 2 dạng mạch nêu trên như sau:
Ưu điểm:

_ Hiển thị được thêm thứ và giây.
_ Điều chỉnh thứ, giờ, phút độc lập với nhau. Có thể điều chỉnh thời gian theo hướng
tăng hoặc giảm.
_ Có thể đặt vào hệ thống 10 thời điểm báo hiệu đột xuất thông qua bàn phím
_ Có thể đặt vào hệ thống 10 thời điểm cấm báo hiệu thông qua bàn phím
_ Có thể xem lại và xóa đi các thời điểm báo hiệu đột xuất và các thời điểm cấm báo
hiệu do người sử dụng đặt vào hệ thống.
_ Không báo hiệu vào ngày thứ bảy và chủ nhật (giải quyết bằng phần mềm).
_ Tín hiệu báo chuông được điều khiển bằng phần mềm nên rất đa dạng nhằm mục
đích thể hiện ý nghĩa của loại thời điểm báo hiệu.
_ Có chương trình báo lỗi nhằm tăng thêm tính sống động của hệ thống.
Nhược điểm:
_ Hệ thống sử dụng nhiều IC hơn, nhưng cách kết nối các bộ phận như bộ nhớ, bàn
phím, hiển thị lại đơn giản hơn.
_ Cách viết phần mềm cho hệ thống khó hơn

Hệ thống báo giờ tự động


Luận văn tố t nghiệp

II_ THIếT Kế PHầN CứNG.
2.1_ Tổng quát phần cứng Hệ Thống.
Phần cứng Hệ Thống được xây dựng với yêu cầu đơn giản nhưng hiệu quả,
phục vụ tốt cho các hoạt động của Hệ Thống. Sơ đồ khối tổng quát của Hệ Thống
được mô tả ở hình 1.

 Trình bày sơ đồ khối
Thành phần cốt lõi của Hệ Thống là bộ vi xử lí (P) Z80, các vi mạch nhớ
ROM (Read Only Memory), RAM (Random Access Memory). Các bộ phận bổ trợ
như mạch tạo xung đồng hồ và định thời (Clock generator và Timer), mạch bàn
phím (Keyboard), mạch hiển thị (Display), mạch kiểm soát ngắt INT (Interrupt
controller) và mạch điều khiển báo hiệu (Bell Driver).
Hệ Thống sẽ gồm có 1 vi mạch ROM và 1 vi mạch RAM. Vi mạch ROM sẽ lưu
trữ phần mềm Hệ Thống và các thời điểm báo hiệu Restime. Vi mạch RAM dùng
để làm vùng nhớ làm việc của Hệ Thống và là vùng đệm để lưu trữ các Hottime và
Skiptime.
Mạch tạo xung đồng hồ và định thời sẽ phát ra xung nhịp cho hoạt động của Hệ
Thống và tín hiệu định thời tần số 1Hz tác động vào ngắt NMI của P phục vụ việc
tạo thời gian thực.
Bàn phím gồm 5 phím chức năng (Xây dựng theo nguyên tắc ánh xạ bộ nhớ)
cho phép người sử dụng điều chỉnh thời gian thực cũng như đặt các Hottime và
Skiptime.
Mạch hiển thị gồm 7 led 7 đoạn sẽ thông báo thời gian (Thứ, giờ, phút và giây)
và cho phép người sử dụng theo dõi được các thao tác trên bàn phím.
Mạch kiểm soát ngắt giúp người sử dụng lựa chọn các chế độ hoạt động
Settime, Hottime và Skiptime tương ứng với các ngắt INT mode 0.
Mạch điều khiển báo hiệu phát ra tín hiệu theo sự điều khiển của phần mềm.

Hệ thống báo giờ tự động


Luận văn tốt nghiệp

POWER

SUPPLY


EPROM
8KB

RAM

BELL

2KB

DRIVER

KEYBO
ARD

DISPLAY

ADDRESS BUS

VXL
Z80

CONTROL BUS
DATA BUS
1Hz

277khZ

TIMER


INTERR
UPT

CONTR
CLOCK
OLLER
Hình 1 : SƠ ĐỒ KHỐI TỔNG
QUÁT HỆ THỐNG

Hệ thống báo giờ tự động



Luận văn tốt nghiệp
 Ngun lí hoạt động tổng qt:
Hệ thống báo giờ tự động là một hệ vi xử lí nên hoạt động của hệ thống là sự
kết hợp chặt chẽ giữa phần cứng và phần mềm.
Vi xử lí được đặt ở chế độ “auto reset” nên khi mới mở điện vi xử lí sẽ bắt đầu
đọc bộ nhớ tại địa chỉ 0000h. Đây cũng là địa chỉ bắt đầu của chương trình hệ
thống. Ngồi ra, mạch kiểm sốt ngắt sẽ cấm tín hiệu Timer tác động vào ngắt NMI
của Z80 nhằm mục đích tránh việc tạo thời gian thực sai dẫn đến hệ thống báo giờ
sai.
Về mặt phần mềm:
Khi mới mở điện chương trình hệ thống sẽ khởi động mạch hiển thị (khởi tạo
8279) để mạch hiển thị sẵn sàng hiển thị dữ liệu thời gian thực từ vi xử lí gởi tới.
Ngồi ra, chương trình hệ thống còn reset mạch báo chng …
Mạch bàn phím hoạt động khi chương trình con Keypro được gọi để phục vụ
cho Settime, Hottime hay Skiptime.
Phần “cấu tạo và ngun tắt hoạt động của các khối mạch” sẽ giúp chúng ta
hiểu rõ hơn hoạt động của Hệ Thống. Bước đầu tiên trong việc thiết kế Hệ Thống là

phân bố bộ nhớ và thực hiện giải mã địa chỉ cho các bộ phận của Hệ Thống.

Hệ thống báo giờ tự động


Luận văn tốt nghiệp
2.2_Bộ nhớ Hệ Thống và giải mã địa chỉ:
2.2.1_Bộ nhớ Hệ Thống:
Hệ Thống báo giờ tự động là một hệ vi xử lí nên việc phân bố bộ nhớ Hệ
Thống là hết sức cần thiết. Ngồi bộ nhớ ROM, RAM Hệ Thống còn có các bộ
phận: bàn phím, mạch hiển thị và mạch điều khiển báo hiệu. Các bộ phận này được
xem như bộ nhớ. Bộ vi xử lí sẽ truy xuất các khối mạch này giống như truy xuất bộ
nhớ (phương pháp ánh xạ bộ nhớ).
Do u cầu hoạt động với vùng nhớ nhỏ. Hệ Thống chỉ sử dụng 20KB đầu
tiên (0000h – 4FFFh) trong khơng gian 64KB mà Z80 quản lí. Với u cầu trên bộ
nhớ sẽ được phân chia thành các vùng nhớ dành cho ROM, RAM, vùng nhớ dành
cho mạch hiển thị, mạch báo hiệu và bàn phím.
Để đơn giản, bộ nhớ Hệ Thống sẽ chia thành 5 vùng với dung lượng
4KB/vùng được phân bố như sau:
4FFFh
MẠCH BÀN PHÍM

4KB

MẠCH BÁO HIỆU

4KB

MẠCH HIỂN THỊ


4KB

CHƯA DÙNG

2KB

RAM

2KB

ROM

4KB

4000h
3FFFh
3000h
2FFFh
2000h
1FFFh
1800h
17FFh
1000h
0FFFh
0000h
Hình 2: BẢN ĐỒ BỘ NHỚ HỆ THỐNG
Vùng nhớ từ địa chỉ 0000h đến 0FFFh dành cho IC ROM chứa phần mềm
Hệ Thống và lưu trữ các Restime. IC ROM được dùng là 2732 (4KBx8). Bảng mơ
tả hoạt động và sơ đồ chân chức năng như sau:
CHẾ ĐỘ


CE

OE \Vpp

Vcc

OUTPUT

Hệ thống báo giờ tự động


Luận văn tốt nghiệp
Read

VIL

VIL

Vcc

Dout

Stand by

VIH

X

Vcc


High Z

Program

VIL

Vpp

Vcc

Din

Program verify

VIL

VIL

Vcc

Dout

Program Inhibit

VIH

Vpp

Vcc


High Z

Bảng 1 : BẢNG MƠ TẢ HOẠT ĐỘNG CỦA IC – ROM 2732

Hình 3: SƠ ĐỒ CHÂN CHỨC NĂNG CỦA IC-ROM 2732
Vùng nhớ từ 1000h đến 1FFFh là vùng nhớ RAM dùng để làm ngăn xếp
(Stack), vùng đệm, bảng Hottime và bảng Skiptime. Với u cầu hiện tại, Hệ Thống
chỉ sử dụng 2KB từ 1000h đến 17FFh khi có u cầu mở rộng 2KB còn lại sẽ được
dùng đến. IC- RAM được chọn là loại RAM tĩnh (Static Ram) 6116 (2KBx8). IC
6116 có bảng mơ tả hoạt động và sơ đồ chân chức năng như sau:

CHẾ ĐỘ

CE

OE

WE

DATA

Hệ thống báo giờ tự động


Luận văn tốt nghiệp
Khơng chọn

H


X

X

High Z

Cấm xuất

L

H

H

High Z

Đọc (Read)

L

L

H

Dout

Ghi (Write)

L


H

L

Din

Bảng 2 : BẢNG MƠ TẢ HOẠT ĐỘNG CỦA IC – RAM 6116

Hình 4: SƠ ĐỒ CHÂN CHỨC NĂNG CỦA RAM 6116
Vùng nhớ còn lại được dành cho các bộ phận: bàn phím, hiển thị, điều
khiển báo hiệu.
2.2.2_ Mạch giải mã địa chỉ:
Nhiệm vụ mạch giải mã địa chỉ là thực hiện hoạt động giải mã để tạo ra các
tín hiệu : chọn IC nhớ ROM , RAM ( CS chip select) và các tín hiệu điều khiển
chọn các bộ phận bàn phím, hiển thị, điều khiển báo hiệu.
Mạch giải mã địa chỉ là một mạch giải mã từ 3 ra 8 đường sử dụng 3 đường
địa chỉ A12, A13, A14 để giải mã tạo 8 đường tín hiệu điều khiển và chọn chip.
Bảng giải mã địa chỉ chi tiết cùng các tín hiệu điều khiển như sau:
A15

A14 A13 A12

0

0 0

0

0


0 0

1

A 11 A10
……A0
x
x
0

x
x

……
……

VÙNG NHỚ

TÍN
HIỆU

CHỨC
NĂNG

0000h – 0FFFh

CS1

Chọn IC ROM


1000h - 17FFh

CS 2

Chọn IC RAM

Hệ thống báo giờ tự động


Luận văn tốt nghiệp
0

0 0

1

x

0

0 1

0

x

……

0


0 1

1

1
x
x

x

….. x

x

x

….. x

x
x

x

……

0

1 0

0


1800h – 1FFFh

Chưa dùng

2000h – 2FFFh

DPL

Hiển thị

3000h - 3FFFh

BDR

Báo hiệu

4000h - 4FFFh

KBD

Đọc bàn phím

Bảng 3 : BẢNG GIẢI MÃ ĐỊA CHỈ BỘ NHỚ.
Mạch giải mã địa chỉ dùng IC 74LS138 có 8 ngõ ra tác động mức thấp. Tín
hiệu MERQ từ P tác động vào 2 ngõ vào điều kiện G2A và G2B để điều khiển
việc giải mã chọn chip.

Hình 5: SƠ ĐỒ CHI TIẾT MẠCH GIẢI MÃ ĐỊA CHỈ.
2.2.3_Tóm tắt:

Mạch điện bộ nhớ Hệ Thống có cấu tạo như sau:

Hệ thống báo giờ tự động


Luận văn tốt nghiệp

Hình 6: SƠ ĐỒ CHI TIẾT MẠCH BỘ NHỚ
Các tín hiệu CS1 , CS 2 thực hiện chọn IC ROM và IC RAM. Tín hiệu RD
từ P điều khiển việc đọc dữ liệu trong ROM và RAM, tín hiệu WR cho phép P
ghi dữ liệu vào RAM.
Giản đồ thời gian các chu kì P đọc và ghi bộ nhớ như hình 7:

Hệ thống báo giờ tự động


Luận văn tốt nghiệp

CLOCK
A0-A15

VALID ADDRESS

MERQ
RD
D0-D7

DATA IN

WR


D0-D7

DATA OUT

Hình 7: CHU KÌ  P ĐỌC VÀ GHI BỘ NHỚ.
Hoạt động đọc, ghi bộ nhớ của P như sau:
HOẠT ĐỘNG CỦA P

MERQ

CS

RD

WR

Đọc bộ nhớ

L

L

L

H

Ghi bộ nhớ

L


L

H

L

Các bộ phận bàn phím, hiển thị và điều khiển báo hiệu thiết kế theo ngun
tắt ánh xạ bộ nhớ. Hoạt động của P truy xuất các bộ phận này như sau:

HOẠT ĐỘNG CỦA P

ĐỊA CHỈ

MERQ

TÍN HIỆU
ĐIỀU KHIỂN

Hiển thị

2000h – 2FFFh

L

DPL = L

Điều khiển báo hiệu

3000h – 3FFFh


L

BDR = L

Đọc bàn phím

4000h – 4FFFh

L

KBD = L

2.3_ Khảo sát tính chất ngắt NMI :
(NON_ MASKABLE INTERRUPT)

Hệ thống báo giờ tự động


Luận văn tốt nghiệp
Ngắt NMI (ngắt khơng thể che bằng phần mềm) của Z80 là ngắt có độ ưu tiên
tuyệt đối. Khi có ngắt NMI tác động, chương trình Hệ Thống sẽ tạm dừng cơng
việc hiện tại để thực hiện chương trình phục vụ ngắt NMI bắt đầu tại địa chỉ 0066h.
Với u cầu đặt ra là Hệ Thống làm việc với thời gian thực, nên đòi hỏi việc
đếm thời gian phải thực hiện chính xác và được ưu tiên hàng đầu. Do đó, ngắt NMI
dành cho việc đếm thời gian thực. Tuy nhiên, ngồi hoạt động đếm thời gian thực
chương trình Hệ Thống còn phải thực hiện các cơng việc khác như: phục vụ bàn
phím, phục vụ việc báo hiệu cũng như hiển thị. Ngắt NMI khơng được làm ảnh
hưởng đến các hoạt động trên .
Cơng việc thăm dò ngắt INT và NMI được Z80 thực hiện tại chu kì đồng hồ

cuối cùng ở chu kì máy cuối cùng của một chu kì lệnh (gọi là các thời điểm to).
Chu kì máy cuối

Chu kì máy lệnh kế

to

Hình 8: GIẢN ĐỒ NHẬN NGẮT NMI
Theo hình 8, nếu có tín hiệu gọi ngắt NMI (hoặc ngắt INT ) xuất hiện tại các
thời điểm khác với các thời điểm to thì chương trình Hệ Thống sẽ khơng nhận được
ngắt NMI và chương trình phục vụ ngắt để tạo thời gian thực sẽ khơng được thực
hiện.
Phần mềm Hệ Thống bao gồm nhiều loại lệnh và các lệnh này được thực hiện
với số chu kì đồng hồ khác nhau. Do vậy, xung gọi ngắt NMI phải đủ rộng để việc
thăm dò ngắt NMI được thực hiện một cách hồn hảo. Nếu xung gọi ngắt NMI có
độ rộng lớn hơn mức cần thiết thì điều gì xảy ra ?
Qua thử nghiệm người viết nhận thấy, khi có ngắt NMI chương trình Hệ Thống
tạm dừng cơng việc hiện tại và thực hiện chương trình phục vụ ngắt NMI , nếu tín
hiệu ngắt NMI tiếp tục được giữ ở mức logic thấp thì sau khi chương trình phục vụ
ngắt NMI thực hiện xong, P sẽ trở về thực hiện cơng việc dở dang trước khi phục
vụ ngắt mà khơng bận tâm đến tín hiệu ngắt NMI dù lúc này vẫn đang ở mức tích
cực thấp. Để nhận ngắt trở lại, chân NMI của Z80 phải được kéo lên mức logic cao
trước khi có tín hiệu ngắt kế tiếp.
Như vậy có thể nói rằng, khi tín hiệu NMI ở mức thấp và P nhận ngắt thì việc
thăm dò ngắt sẽ khơng được thực hiện cho đến khi tín hiệu NMI lên mức cao. Việc
cho tín hiệu NMI lên mức cao trước khi có tín hiệu ngắt kế tiếp tương đương với
việc khơi phục hoạt động thăm dò ngắt của P .

Hệ thống báo giờ tự động



Luận văn tốt nghiệp
Tóm lại, để hoạt động đếm thời gian thực khơng ảnh hưởng đến các hoạt động
khác của Hệ Thống (trong đó có việc P nhận ngắt INT ) thì độ rộng xung gọi ngắt
gọi ngắt NMI (đếm thời gian) phải được chọn thích hợp và chương trình phục vụ
ngắt NMI phải khơng được q dài. Đây là u cầu quan trọng đối với hoạt động
của Hệ Thống .
2.4_Cấu tạo và ngun tắt hoạt động các khối mạch:
2.4.1_Mạch tạo xung đồng hồ:
Mạch tạo xung đồng hồ có vai trò như quả tim đập nhịp cho hoạt động của Hệ
Thống. Viêc tạo thời gian thực sẽ càng chính xác nếu tần số xung clock cấp cho P
càng cao. Tuy nhiên, Hệ Thống sẽ hoạt động khó ổn định ở tần số cao do nhiễu xuất
hiện trên đường mạch in. Do vậy, tần số xung clock được chọn sau cho giảm thiểu
sai số trong việc tạo thời gian thực và tránh được nhiễu xuất hiện trên mạch in để
Hệ Thống hoạt động ổn định. Tần số xung clock được chọn là 500KHz.
Căn cứ vào tần số xung clock đã chọn và tính chất ngắt NMI của P là sẽ nhận
ngắt khi phải thực hiện xong lệnh còn đang dang dở ta tính được sai số về thời gian
cực đại do việc tạo thời gian thực như sau:
Thời gian thực hiện lệnh dài nhất t = 23x1/fck
= 23/500000
= 0.46s
Sai số trong 1 phút = 60 x t
= 60 x 0.46
= 27,6S
Tính tương tự ta có sai số cực đại trong một năm = 365 x 24 x 60 x 60 x t
= 365 x 24 x 60x 60 x27,6
= 870s
Sai số này là sai số max, thực tế khơng phải lúc nào tín hiệu gọi ngắt NMI cũng
ngay vừa lúc P nhận một lệnh dài nhất nên tần số hoạt động của Hệ Thống =
500KHz là chấp nhận được.

Tần số xung clock này cũng được cấp cho IC 8279 để hiển thị.
Để tận dụng số lượng cổng logic trên mạch cũng như đơn giản trong thiết kế,
mạch dao động được thiết kế như sau:
Hình 9: SƠ ĐỒ MẠCH TẠO XUNG ĐỒNG HỒ

Hệ thống báo giờ tự động


×