汇编程序:
ORG 0000H
AJMP START
START:
ACALL SETTIME;设置初始时间
LOOP: ACALL GETTIME;循环读取当前时间
AJMP LOOP;
SETTIME:
MOV DPTR,#7D0AH;DS12C887的A寄存器
MOV A,#20H
MOVX @DPTR,A;打开DS12C887的内部晶振并使RTC(实时时钟)记录时间
INC DPTR;DS12C887的B寄存器
MOV A,#08H
MOVX @DPTR,A;设十进制BCD码,24小时制,不定时
MOV DPTR,#7D0DH;DS12C887的D寄存器
MOVX A,@DPTR;如果D寄存器的第7位为0,表示电池耗尽
JNB ACC.7,ERROR
MOV DPTR,#7D00H;DS12C887的秒单元
MOV A,#00H
MOVX @DPTR,A;写入秒
MOV DPTR,#7D02H;DS12C887分单元
MOV A,#21H
MOVX @DPTR,A;写入分
MOV DPTR,#7D04H;DS12C887时单元
MOV A,#03H
MOVX @DPTR,A;写入时
MOV DPTR,#7D06H;DS12C887星期单元
MOV A,#03H
MOVX @DPTR,A;写入星期
MOV DPTR,#7D07H;DS12C887日单元
MOV A,#20H
MOVX @DPTR,A;写入日