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

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ạ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 (107.83 KB, 12 trang )

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
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.
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)
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.
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
CHƯƠNGTRÌNH
ĐỊA CHỈ
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
Không
xác đònh
Biến đổi HEX

BCD và xuất ra mạch
hiển thò
KEYPRO
Không
xác đònh
Đọc dữ liệu bàn
phím và xử lý phím
ấn
ERROR
Không
xác đònh
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:
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
0FA0h + 3(N -
1)+3
EORT (0FFh) End Of
Restime
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:
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
Skiptime). EOST là mã báo kết thúc bảng Skiptime. Cấu trúc
bảng Skiptime như ở hình sau:
103Dh 0FEh
103Ch EOST
End Of
Skiptime
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:
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
102Eh
STACK
103Dh
1028h
BẢNG SKIPTIME
1027h
1008h
BẢNG HOTTIME
1007h
THỜI GIAN THỰC
1005h
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Ớ

×