Chương2 :
Các chương trình phục vụ cho RTC
1. SEND_START (Gửi điều kiện START)
2. SEND_STOP (Gửi điều kiện STOP)
3. SCL_HIGH (đưa SCL lên mức cao)
4. SEND_BYTE (gửi byte vào RTC)
5. READ_BYTE
(đọc byte từ RTC)
6. READ_CLOCK (đọc giờ từ RTC)
7. SET_CLOCK (cài đặt giờ RTC)
8. READ_RAM (đọc 56 byte từ RTC)
9. SET_RAM (ghi 56 byte vào RTC)
10. OSC_CONTROL
(Điều khiển bộ dao động trong
RTC)
11.
SQW_CONTROL_1HZ (xuất xung 1Hz ở chân 7 của RTC)
12.
SQW_CONTROL_4KHZ(xuất xung 4.096KHz ở chân 7 của
RTC)
13.
SQW_CONTROL_8KHZ(xuất xung 8.192Hz ở chân 7 của
RTC)
14.
SQW_CONTROL_32KHZ(xuất xung 32.768Hz ở chân 7 của
RTC)
15. ALARM_TEST (ki
ểm tra báo thức)
;START CONDITION
SEND_START:
CLR NO_START
MOV BITCOUNT,#8H
SEND_BYTE_LOOP:
JNB ACC.7,LEVEL_LOW
SETB SDA
AJMP SEND_BITS
LEVEL_LOW:
CLR SDA
SEND_BITS:
; NOP
; NOP
; NOP
LCALL SCL_HIGH
LCALL DELAY
CLR SCL;KET THUC 1 XUNG NHIP
RL A
DJNZ BITCOUNT,SEND_BYTE_LOOP
SETB SDA;CAU HINH DE NHAN XUNG ACK
NOP
LCALL SCL_HIGH
; NOP
; NOP
; NOP
CLR ACK
JNB SDA,SEND_BYTE_COMPLISH
SETB ACK
SEND_BYTE_COMPLISH:
LCALL DELAY
CLR SCL
LCALL DELAY
RET