Luận văn tốt nghiệp
Hệ thống báo giờ tự động
Hình 26 : LƯU ĐỒ TỔNG QUÁT CHƯƠNG TRÌNH MAIN
Khởi động hệ thống như sau:
Khởi động Stack ở đòa chỉ 27FFh
Reset mạch báo hiệu : xuất ra giá trò 0h ở đòa chỉ 3000h.
Xóa vùng nhớ từ 1000h đến 1007h bằng giá trò 00h.
Tạo bảng Hottime và Skiptime rỗng có đòa chỉ từ 1008h đến 103Dh bằng
giá trò 0FEh.
Chọn ngắt INT và cho phép ngắt.
Hiển thò thời gian thực đầu tiên 2 00 00 00.
Tự động báo hiệu.
Quá trình tự động báo hiệu được bắt đầu ngay sau khi khởi động hệ thống,
quá trình này do một vòng lặp thực hiện, mỗi phút một lần.
_ Chương trình bắt đầu duyệt bảng Hottime và Restime để tìm một thời điểm
báo hiệu bằng với thời gian thực, nếu không có chương trình quay về chờ thực
hiện quá trình mới.
_ Nếu có thời điểm trùng với thời gian thực, chương trình sẽ duyệt bảng
Skiptime. Nếu không có Skiptime bằng với thời gian thực và thứ là thứ 2 – 6 thì
chương trình ra quyết đònh báo hiệu (nếu thời điểm báo hiệu đó là Restime).
Nếu có Skiptime bằng với thời gian thực, nghóa là thời điểm đó bò cấm báo hiệu,
chương trình sẽ không báo hiệu và xóa Skiptime đó.
_ Sau khi báo hiệu hay xóa Skiptime xong chương trình sẽ xóa Hottime (nếu
thời điểm báo hiệu là (Hottime) rồi trở về thực hiện quá trình mới.
_ Khi nhận quyết đònh báo hiệu, chương trình sẽ lấy mã chuông của thời
điểm cần báo hiệu. Mỗi giây 1 bit trong byte mã chuông sẽ được truyền cho
mạch báo hiệu theo thứ tự từ D7 đến D0, mức cao làm chuông reo. Sau cùng
THỰC?
BẰNG PHÚT
THỰC ?
CẤM NGẮT INT
LẤY ĐỊA CHỈ ĐẦU
BẢNG SKIPTIME TRỪ 2
PHÚT THAY
ĐỔI ?
LẤY PHÚT THỰC
LẤY ĐỊA CHỈ ĐẦU
BẢNG RESTIME TRỪ 3
trong bảng kể từ sau khi Hottime (Skiptime) cần xóa đến đòa chỉ của Hottime
(Skiptime ) cần xóa.
Lưu đồ chi tiết chương trình MAIN Y
MINWT
Y
N
Y
N
PHẢI HOTTIME /
N Y
N BẰNG GIỜ THỰC ? LẤY MÃ CHUÔNG
Y
LẤY PHÚT SKIPTIME
LẤY GIÂY THỰC N
BẰNG PHÚT THỰC ? Y
N
CÓ THAY ĐỔI ? XÓA SKIPTIME Y
CẶP NHẬT SỐ SKIPTIME
3.3.2- Chương trình RTP (Realtime program).
Mô tả chương trình .
Chương trình được đặt ở đòa chỉ 0066h đáp ứng cho ngắt NMI. Tần số gọi
ngắt là 1Hz. Khi được gọi, chương trình RTP thực hiện như sau:
Tăng giây thêm 1. Khi giây = 60 phải tăng phút thêm 1 và cho giây bằng 0.
Khi phút = 60 phải tăng giờ thêm 1 và cho phút bằng 0.
Khi giờ = 24 phải tăng thứ thêm 1 và gán giờ bằng 0.
Khi thứ = 8 phải gán thứ = 2
Khi giây thực có sự thay đổi, phải tham khảo DPMASK để quyết đònh việc
hiển thò thời gian thực:
Nếu DPMASK = 0 ; Hiển thò
DPMASK = 1 ; Không hiển thò.
Lưu đồ chi tiết chương trình RTP
Y
PHÚT = 0, GIỜ + 1
GIỜ = 24 ? N
Y GIỜ = 0, THỨ + 1
THỨ = 9 ? N Y
THỨ = 2
Y CÓ CHE HIỂN THỊ ?
N
Người sử dụng phải theo qui đònh của chương trình Keypro để điều chỉnh
thời gian thực.
Lưu đồ chi tiết.
.
.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động BẮT ĐẦU .
.
Luận văn tốt nghiệp
Hệ thống báo giờ tự động
3.3.4-Chương trình Hottime.
Mô tả chương trình.
Đây là chương trình phục vụ ngắt mode 0 ở đòa chỉ 018h đảm nhiệm chức
năng về Hottime: Xem những Hottime đã có trong bảng (gọi là preview), xóa
những Hottime đã có trong bảng (gọi là delete), đặt một Hottime mới (gọi là
Insert). Lưu đồ tổng quát như sau: Y
ĐỊA CHỈ
PHẢI PHÍM “+” HOTTIME
KẾ SAU
N
Y ĐỊA CHỈ
PHẢI PHÍM “-“ HOTTIME
KẾ TRƯỚC
N
Y
PHẢI PHÍM “DEL” XÓA
HOTTIME
N
Y
PHẢI PHÍM “OK”
DPMASK = 0
N
hiển thò giờ, phút ở trạng thái Blank) và khi ấn phím “+” hay “-“ mạch hiển thò
vẫn tắt.
Nếu không có Hottime nào trong bảng (các Led 7 đoạn hiển thò giờ, phút ở
trạng thái Blank), khi ấn phím “Del” thì xuất hiện thông báo lỗi do chương con
Error thực hiện. Khi xóa Hottime xong, chương trình sẽ hiển thò lại Hottime đầu
tiên trong bảng.
Khi đặt 1 Hottime mới:
Nếu trong bảng đã đủ 10 Hottime chương trình sẽ dùng chương trình con
Error để báo lỗi, ấn “OK” để bỏ lỗi.
Nếu trong bảng còn Hottime rỗng, chương trình Hottime sẽ gọi chương trình
con Keypro để người sử dụng dùng bàn phím chọn giờ, phút cho Hottime mới.
Trước khi gọi Keypro, chương trình Hottime phải xác đònh đòa chỉ đặt Hottime
mới để truyền cho Keypro. Người sử dụng dùng bàn phím theo quy đònh của
chương trình Keypro để đặt Hottime mới.
Khi thoát khỏi Keypro chương trình tiếp tục ghi mã chuông cho Hottime
(0B7h) và trở về chức năng preview và hiển thò Hottime vừa cài đặt.
Để tránh việc hiển thò thời gian thực do chương trình RTP thực hiện, phải đặt
mặt nạ DPMASK=1 để che hiển thò ở đầu chương trình Hottime và bỏ mặt nạ
DPMASK = 0 ở cuối chương trình Hottime để cho phép RTP hiển thò thời gian
thực trở lại.
Lưu đồ chi tiết
Lưu đồ tiết chương trình Hottime vẽ ở hình sau:
.
.