II. THIẾT KẾ MẠCH ĐỒNG HỒ THỜI GIAN THỰC
2.4.3. Giải thuật chương trình con “READ_CLOCK”
• Gởi điều kiện START đến RTC • Gởi tiếp địa chỉ Slave + W (0D0h).
• Gởi địa chỉ thanh ghi đầu tiên được chọn để ghi (00h: địa chỉ thanh ghi SECOND).
• Gởi điều kiện STOP. • Gởi lại điều kiện START. • Gởi địa chỉ Slave + R (0D1h).
• Bắt đầu đọc lần lượt từng byte dữ liệu từ RTC. Đầu tiên là giây, phút, giờ, thứ, ngày, tháng, năm, giá trị thanh ghi control và cuối cùng là thời gian báo thức
• •
• 2.4.4.. Lưu đồ
2.4.4.1.Lưu đồ chương trình chính
BEGIN
Khởi tạo giá trị ban đầu
Đọc thời gian thực từ RTC
Hiển thị thời gian ra led 7 đoạn
Thời gian báo thức
Mở/tắt chuông theo từng giờ
2.4.2.2. Lưu đồ chương trình con
Lưu đồ chương trình con “WRITE_CLOCK” BEGIN
Gởi điều kiện STOP Gởi điều kiện
START
Gởi địa chỉ Slave+W (0D0h)
Gởi 1 byte địa chỉ con trở (00h)
Ghi tất cả byte dữ liệu như: giây, phút,....,thời gian báo
Lưu đồ chương trình con “READ_CLOCK”
BEGIN
RET
Gởi điều kiện STOP Gởi điều kiện
START
Gởi địa chỉ Slave+W (0D0h)
Gởi 1 byte địa chỉ con trở (00h)
Đọc tất cả byte dữ liệu như: giây, phút,....,thời gian báo
thức từ RTC Gởi điều kiện STOP
Gởi điều kiện START Gởi địa chỉ Slave+R
Lưu đồ chương trình con ghi 1 byte vào DS1307“SEND_BYTE” N Y Y Y N N BEGIN RET Tạo một xung nhip
tại chân SCL Gán giá trị BITCOUNT = 08
ACC.7 = = 0
SDA = 1 SDA = 0
Quay trái thanh ghi A
LAST = = 0
Gởi bit NACK Gởi bit ACK
BITCOUNT = =
Lưu đồ chương trình con đọc 1 byte từ DS1307“READ_BYTE” N Y Y N BEGIN RET Đưa dữ liệu từ SDA
vào cờ C Gán giá trị: A = 00
BITCOUNT = 08
Quay trái thanh ghi A có cớ nhớ C
LAST = = 0
Gởi bit NACK Gởi bit ACK
BITCOUNT = = 0 Tạo một xung nhip tại
Lưu đồ chương trình con “ALARM_CLOCK_TEST” N N Y N Y Y BEGIN RET HOUR = = ALK_HOUR MINUTE = = ALK_MINUTE Kích hoạt hệ thống âm thanh MINUTE = = ALK_MINUTE Đọc thời gian thực từ RTC Hiển thị ra led 7 đoạn Dừng kích hoạt hệ thống âm thanh
Lưu đồ chương trình con “TAT_MO_CHUONG” N N N Y Y Y Y BEGIN RET R3 = = 0FFH MINUTE = = 0 Kích hoạt hệ thống âm thanh SECOND = = 0 Tạo trễ khoảng 0.5s Dừng kích hoạt hệ thống âm thanh