如有用过,能否为我提供部分程序?huxhua@163.com 我在此先谢过了各位。 
--------------------------------------------------------------- 
好象有个pcf8583,带ram的,蛮不错的,试试看。 
--------------------------------------------------------------- 
用1302做过系统,感觉体积小、接口线少,缺点是没有中断输出,还需外接电池。 
--------------------------------------------------------------- 
--------------------------------------------------------------- 
--------------------------------------------------------------- 
大家好多都在用DS12887,你也试试吧。 
--------------------------------------------------------------- 
;========================时钟读写程序============================= 
; ----------D1302充电程序--------------------------- 
CD: LCALL ST02 ; D1302充电程序 
MOV A,#90H 
LCALL WR02 
MOV A,#0A5H 
LCALL WR02 RET ;---------将秒分时日月年分别从F9~FF这7个寄存器写入时钟芯片中程序------- 
WRCLOCK: MOV R0, #0F9H LCALL ST02 ; 起动D1302 
MOV A, #80H ;写入秒 ;写入日期 
LCALL WR02 
MOV A, @R0 
LCALL WR02 
LCALL STOP02 
LCALL ST02 ;写入分 
INC R0 
MOV A,#82H 
LCALL WR02 
MOV A, @R0 
LCALL WR02 
LCALL STOP02 
LCALL ST02 ;写入小时 
INC R0 
MOV A,#84H 
LCALL WR02 
MOV A, @R0 
LCALL WR02 
LCALL STOP02 
LCALL ST02 ;写入日 
INC R0 MOV A,#86H 
LCALL WR02 
MOV A, @R0 
LCALL WR02 
LCALL STOP02 
LCALL ST02 ;写入月 
INC R0 
MOV A,#88H 
LCALL WR02 
MOV A, @R0 
LCALL WR02 
LCALL STOP02 
LCALL ST02 ;写入年 
INC R0 
INC R0 
MOV A,#8CH 
LCALL WR02 
MOV A, @R0 
LCALL WR02 
LCALL STOP02 
RET ;----------------;将秒分时日月周年分别读入到F9~FF这7个寄存器中-------------- 
CSCLOCK1:LCALL ST02 ;起动D1302 
MOV A, #0BFH ;BFH为突发寄存器,可一次性读 
LCALL WR02 ;写D1302 
MOV R0, #0F9H ;秒,分,时地址 
MOV R6, #07H 
LP: LCALL RD02 ;调读D1302 
MOV @R0, A 
INC R0 
DJNZ R6, LP 
LCALL STOP02 ;停止D1302 
RET ; ------------起动D1302子程序-------------- 
ST02: CLR P2.5 
CLR CL 
NOP 
NOP 
SETB P2.5 
RET ; ------------写D1302子程序---------------- 
WR02: MOV R7, #08H 
LP02: CLR CL 
RRC A 
MOV SD, C 
NOP 
NOP 
SETB CL 
NOP 
NOP 
DJNZ R7, LP02 RET ; --------- 读D1302子程序----------------- 
RD02: MOV R7, #08H 
SETB SD 
LP021: CLR CL 
NOP 
MOV C, SD 
RRC A 
SETB CL 
NOP 
NOP 
DJNZ R7, LP021 
RET ; --------- 结束D1302子程序----------------- 
STOP02: CLR P2.5 ;停止D1302 NOP NOP RET 
--------------------------------------------------------------- 
--------------------------------------------------------------- 
--------------------------------------------------------------- 
#include #define uchar unsigned char #define uint unsigned int sbit led=P0^0; sbit rst=P1^2; sbit clk=P1^0; sbit io=P1^1; uchar temp; void delay1(uchar x) { /*空*/ uchar i; for(i=0;i>1; clk=1;delay1(2);clk=0;delay1(2);} } uchar read(){ /*读操作*/ uchar tmp; register uchar i;bit x; tmp=0; for(i=0;i<8;i++){x=io;clk=1;delay1(2);clk=0;delay1(2); if(x==1)tmp+=1<>1; clk=1;delay1(2);clk=0;delay1(2);} rst=0; } 
--------------------------------------------------------------- 
我正在改用别的的时钟芯片,DS1302常乱码,如你想用它,我可以把程序传给你