: Đoàn Nam Sơn Lớp 95KĐĐ3/
LẤY GIỜ BÁO HIỆU KẾ
KẾ LẤY GIỜ, PHÚT THỰC ĐỊA CHỈ ĐẦU BẢNG HOTTIME TRỪ 3 KHỞI ĐỘNG HỆ THỐNG PHÚT THAY ĐỔI ? LẤY PHÚT THỰC
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 xuất cho mạch mức 0 để reset. Sau 9 giây chương trình hoàn tất việc báo hiệu.
Để phân biệt thời điểm báo hiệu là Restime hay Hottime, ta dùng một mã định hướng. Mã định hướng này nằm trong thanh ghi C:
Khi C = 0 ; định hướng Restime, C = 1; định hướng Hottime.
Vấn đề xóa Hottime và Skiptime:
Để bảng Hottime (Skiptime) vẫn giữ được cấu trúc là danh sách tuần tự sau khi xóa Hottime (Skiptime), phải thực hiện theo cách sau: dời những byte còn lại 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 N N
Hệ thống báo giờ tự động CÒN SKIPTIME ? N N PHẢI T7 HAY CN ? Y Y LẤY GIỜ SKIPTIME
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