1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6 doc

12 448 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

Tiêu đề Thiết Kế Phần Mềm
Trường học Trường Đại Học Khoa Học Tự Nhiên
Thể loại Đồ án tốt nghiệp
Thành phố Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 107,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phần mềm được thiết kế nhằm tạo cho Hệ Thống Báo Giờ Tự Động có 5 chức năng như sau:  Chức năng tự động báo hiệu.. 3.1.1- Chức năng báo hiệu tự động : Điều kiện để báo hiệu: khi có 1 Re

Trang 1

Chương 6:

THIẾT KẾ PHẦN MỀM

3.1- Tổng quát phần mềm hệ thống.

Phần mềm được thiết kế nhằm tạo cho Hệ Thống Báo Giờ Tự Động có 5 chức năng như sau:

 Chức năng tự động báo hiệu

 Chức năng tạo thời gian thực và hiển thị thời gian thực

 Chức năng điều chỉnh thời gian thực

 Chức năng về Hottime gồm : Xem, xóa và đặt mới

 Chức năng về Skiptime gồm : Xem, xóa và đặt mới

Mỗi chức năng nêu trên được một chương trình thực hiện Do đó, phần mềm Hệ Thống gồm 5 chương trình thực hiện 5 chức năng chính của Hệ Thống và 3 chương trình con phục vụ chung cho các chương trình

3.1.1- Chức năng báo hiệu tự động :

Điều kiện để báo hiệu: khi có 1 Restime hay Hottime bằng với thời gian thực và không có Skiptime nào bằng với thời gian thực thì tiến hành việc báo hiệu

Việc báo hiệu phải được thực hiện tự động Do đó, chương trình đảm nhận việc báo hiệu tự động sẽ được đặt ở địa chỉ 0000h trong vùng nhớ Tên chương trình này được đặt là MAIN Đây là chương trình điều khiển chính của Hệ Thống Ngoài việc thực hiện chức năng báo hiệu tự động, chương trình MAIN phải giúp khởi động Hệ Thống

Khi Hệ Thống vừa được cấp điện, chương trình MAIN sẽ khởi động Hệ Thống Sau đó, 1 vòng lặp sẽ thực hiện quá trình

so sánh thời gian thực với các thời điểm báo hiệu (Restime, Hottime), các thời điểm cấm báo hiệu (Skiptime) và thứ trong

Trang 2

tuần để quyết định việc báo hiệu hay không đối với từng thời điểm hiện tại Nếu cần báo hiệu, chương trính MAIN sẽ điều khiển mạch báo hiệu …

3.1.2- Chức năng tạo thời gian thực:

Tín hiệu định thời gọi ngắt NMI có tần số 1Hz, nên thời gian thực được tạo ra bởi chương trình phục vụ ngắt NMI đặt tại địa chỉ 0066h có tên là RTP (Real Time Program)

Khi được gọi, chương trình RTP sẽ tăng thời gian thực thêm 1 giây và hiển thị thời gian thực

Trang 3

3.1.3- Chức năng điều chỉnh thời gian thực:

Việc điều chỉnh thời gian thực do người sử dụng quyết định thực hiện thông qua thiết bị gọi ngắt INT

Chương trình Settime được đặt ở địa chỉ 08h sẽ đáp ứng ngắt

INT mode 0 để phục vụ chức năng điều chỉnh thời gian thực cho người sử dụng

Bằng bàn phím và đèn hiển thị, người sử dụng dễ dàng điều chỉnh thời gian thực

3.1.4- Chức năng về Hottime: ( Xem - Xóa - Đặt)

Các chức năng về Hottime được thực hiện bởi chương trình Hottime Chương trình Hottime sẽ đáp ứng ngắt INT mode 0 ở địa chỉ 18h

Khi người sử dụng quyết định thực hiện chức năng về Hottime nhờ thiết bị gọi ngắt, chương trình sẽ được thi hành Thông qua bàn phím và đèn hiển thị, người sử dụng có thể thực hiện một trong các chức năng xem, xóa và đặt Hottime

3.1.5- Chức năng về Skiptime: (Xem - Xóa - Đặt)

Tương tự như chức năng về Hottime, chương trình Skiptime được đặt ở địa chỉ 28h sẽ đáp ứng ngắt INT mode 0

Chương trình Skiptime được thi hành theo yêu cầu của người sử dụng và nhận sự điều khiển từ bàn phím

3.1.6- Các chương trình con:

 Chương trình con hiển thị (tên là DISPLAY):

Thực hiện việc biến đổi dữ liệu giờ và phút từ mã HEX sang BCD Sau đó thực hiện việc so sánh từ 0 - 9 rồi viết sang 8279 để hiển thị các thông tin về thời gian

 Chương trình xử lý bàn phím (tên là KEYPRO)

Trang 4

Nhận phím được ấn để phục vụ việc lựa chọn Thứ Giờ -Phút

 Chương trình báo lỗi (tên là ERROR):

Gởi thông báo lỗi đến người sử dụng thông qua đèn hiển thị Phần mềm Hệ Thống được viết bằng ngôn ngữ ASSEMBLY cho Z80, hợp dịch bằng M80 và L80 Phần mềm Hệ Thống được nạp vào 1 vi mạch ROM 2732 có địa chỉ từ 0000h đến 0FFFh

Trang 5

Bảng sau đây trình bày tóm tắt tên và địa chỉ các chương trình phần mềm

TÊN

NHIỆM VỤ

MAIN 0000h Tự động báo hiệu

RTP 0066h Tạo thời gian thực và hiển thị thời gian

thực SETTIME 0008h Điều chỉnh thời gian

thực HOTTIME 0018h Xem, xóa và đặt

Hottime SKIPTIME 0028h Xem, xóa và đặt

Skiptime

DISPLAY xác địnhKhông BCD và xuất ra mạch Biến đổi HEX

hiển thị KEYPRO

Không xác định

Đọc dữ liệu bàn phím và xử lý phím

ấn ERROR xác địnhKhông Báo lỗi

Bảng 7: TÓM TẮT CHƯƠNG TRÌNH PHẦN MỀM 3.2- Tổ chức dữ liệu:

Trang 6

Dữ liệu là một thành phần rất quan trọng của phần mềm, cấu trúc của nó quyết định giải thuật xử lý dữ liệu, dữ liệu có cấu trúc phù hợp làm cho giải thuật đơn giản và chặt chẽ hơn

Dữ liệu của phần mềm Hệ Thống Báo Giờ chủ yếu là thời gian (Thứ-Giờ-Phút-Giây) dưới dạng số HEX có cấu trúc như sau:

3.2.1- Thời gian thực:

Gồm 4 byte cho Thứ, Giờ, Phút và Giây được đặt trong vùng nhớ RAM có địa chỉ là:

DATE EQU 1004H; Byte cứa thứ thực

HOUR EQU 1005H; Byte chứa Giờ thực

MIN EQU 1006H; Byte chứa Phút thực SEC EQU 1007H; Byte chứa Giây thực Thời gian thực được chương trình RTP hay chương trình Settime cập nhật

3.2.2- Restime:

Các Restime được đặt liên tiếp nhau trong một vi mạch ROM

2732 tạo thành bảng Restime Do đó, bảng Restime có cấu trúc là một danh sách tuần tự (còn gọi là danh sách đặc) Địa chỉ đầu bảng Restime là 0FA0h Cuối bảng Restime là byte EORT (End

Of Restime) EORT có giá trị là 0FFH dùng để báo kết thúc bảng Restime

Mỗi Restime chiếm 3 byte, mỗi byte cho Giờ, Phút và Mã chuông Cấu trúc bảng Restime vẽ bởi hình như sau:

0FFFh 0FA0h + 3(N -1)+4

Trang 7

0FA0h + 3(N -1)+3 EORT (0FFh) RestimeEnd Of 0FA0h + 3(N

-1)+2

Mã chuông N

0FA0h + 3(N -1)+1 Phút Restime N 0FA0h + 3(N -1) Giờ Restime N

0FA5h Mã chuông 2 0FA4h Phút Restime

2 0FA3h Giờ Restime 2 0FA2h Mã chuông 1 0FA1h Phút Restime

1 0FA0h Giờ Restime 1

Hình 22: CẤU TRÚC BẢNG RESTIME

3.2.3-Hottime

Với cấu trúc tương tự như bảng Restime, bảng Hottime gồm

32 byte được đặt trong vùng nhớ RAM từ địa chỉ 1008h đến địa chỉ 1027h

Mỗi Hottime gồm 3 byte (Giờ, Phút và Mã chuông ) Bảng Hottime chứa tối đa được 10 Hottime, 2 byte cuối của bảng Hottime luôn có giá trị là 0FEh Byte EOHT (End Of Hottime) là mã kết thúc bảng Hottime Cấu trúc bảng Hottime như sau:

Trang 8

1027h 0FEh Dùng cho xóa Hottime 1026h EOHT (0FEh) END Of Hottime 1025h Mã chuông

1024h Phút Hottime 10 1023h Giờ Hottime 10

100Ah Mã chuông 1 1009h Phút Hottime 1 1008h Giờ Hottime 1

Hình23 : CẤU TRÚC BẢNG HOTTIME

Hottime là loại dữ liệu động Khi khởi động Hệ Thống phải tạo bảng Hottime gồm 10 Hottime rỗng, Hottime rỗng có giá trị là 0FEh

Hottime được thiết kế cho mục đích báo hiệu đột xuất Mỗi Hottime chỉ có tác dụng cho một lần báo hiệu, do đó Hottime sẽ

bị xóa sau khi báo hiệu

3.2.4- Skiptime:

Cấu trúc bảng Hottime cũng là danh sách tuần tự gồm 22 byte trong vùng nhớ RAM từ địa chỉ 1028h đến địa chỉ 103Dh

Mỗi Skiptime gồm 2 byte, một byte cho Giờ và một byte cho Phút Bảng Skiptime chứa tối đa 10 Skiptime, 2 byte cuối của bảng Skiptime cũng có giá trị 0FEh dùng làm EOST (End Of

Trang 9

Skiptime) EOST là mã báo kết thúc bảng Skiptime Cấu trúc bảng Skiptime như ở hình sau:

Trang 10

103Dh 0FEh 103Ch EOST SkiptimeEnd Of 103Bh Phút

Skiptime10 103Ah Giờ Skiptime

10

1029h Phút Skiptime

1 1028h Giờ Skiptime

1

Hình 24: CẤU TRÚC BẢNG SKIPTIME

Cũng như Hottime, Skiptime là loại dữ liệu động Vì vậy, khi Hệ Thống mới khởi động phải tạo bảng Skiptime gồm 10 Skiptime rỗng bởi giá trị 0FEh

Mỗi Skiptime chỉ cấm báo hiệu một thời điểm trong ngày, nên sẽ bị xóa đi sau khi đã được sử dụng

3.2.5-Mã chuông:

Mã chuông là số nhị phân 8 bit Mỗi bit sẽ tác động lên mạch báo hiệu trong một giây theo thứ tự từ bit cao đến bit thấp Mức cao sẽ làm cho mạch điều khiển báo hiệu hoạt động

Các Restime có thể có mã chuông khác nhau, tùy mục đích báo hiệu của từng thời điểm Mã chuông cho các Hottime đều giống nhau và thể hiện mục đích báo hiệu đột xuất Người viết tạm thời qui định mã chuông như sau:

Trang 11

Mã chuông Restime có 2 kiểu:

 Bắt đầu tiết học: 0ABh (10101011)

 Kết thúc tiết học: 0CFh (11001111)

Mã chuông cho Hottime: 0B7h (10110111)

3.2.6- Các biến :

Ngoài các dữ liệu trên, còn sử dụng các biến để thuận lợi cho các chương trình, tên và địa chỉ như sau:

SPMASK EQU 1000h ; Mặt nạ che hiển thị thời gian thực

; (1 : che ) HTSTA EQU 1001h ; Trạng thái bảng Hottime

; Số Hottime có trong bảng

SKTSTA EQU 1002h ; Trạng thái bảng Skiptime

; Số Skiptime có trong bảng

3.2.7- Phân chia vùng nhớ :

Trong không gian 6KB gồm 4KB ROM và 2KB RAM bộ nhớ của Hệ Thống được phân chia như sau:

17FEh

103Dh 1028h BẢNG SKIPTIME 1027h

1008h BẢNG HOTTIME 1007h THỜI GIAN THỰC

Trang 12

1004h

1000h VÙNG ĐỆM

0FFFh

0FA0h BẢNG RESTIME 0F9Fh

0000h PHẦN MỀM

Hình 25: BẢNG PHÂN CHIA BỘ NHỚ

Ngày đăng: 21/01/2014, 20:20

HÌNH ẢNH LIÊN QUAN

Bảng sau đây trình bày tóm tắt tên và địa chỉ các chương  trình phaàn meàm. - Tài liệu Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6 doc
Bảng sau đây trình bày tóm tắt tên và địa chỉ các chương trình phaàn meàm (Trang 5)
Hình 22: CẤU TRÚC BẢNG RESTIME - Tài liệu Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6 doc
Hình 22 CẤU TRÚC BẢNG RESTIME (Trang 7)
Hình 24: CẤU TRÚC BẢNG SKIPTIME - Tài liệu Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6 doc
Hình 24 CẤU TRÚC BẢNG SKIPTIME (Trang 10)
Hình 25: BẢNG PHÂN CHIA BỘ NHỚ - Tài liệu Thiết kế và thi côn hệ thống báo giờ tự động ứng dụng CPU Z80, chương 6 doc
Hình 25 BẢNG PHÂN CHIA BỘ NHỚ (Trang 12)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm