资源描述:
《DS1302时钟芯片读写详解.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、DS1302时钟芯片读写详解2008-09-2613:07/*DS1302读写程序(C51)*/sbitDS13CLK=P1^5;/*DS1302的SCLK脚脉冲*/sbitDS13IO=P1^6;/*DS1302的IO脚数据*/sbitDS13CS=P1^7;/*DS1302的RST脚片选*//*向DS1302写一个字节*/void_wds13byte(uchar_code){uchari;DS13CLK=0;DS13CLK=0;for(i=0;i<8;i++){if(_code&0x01)DS13IO=1;elseDS13IO=0;DS13CLK=1;DS13CLK=1;DS13CLK=0
2、;DS13CLK=0;_code=_code>>1;}}/*从DS1302读一个字节*/uchar_rds13byte(void){uchari,_code;_code=0;DS13CLK=0;DS13CLK=0;DS13IO=1;for(i=0;i<8;i++){_code=_code>>1;if(DS13IO)_code=_code
3、0x80;DS13CLK=1;DS13CLK=1;DS13CLK=0;DS13CLK=0;}return_code;}/*读功能_code读功能命令*/ucharreadds1302(uchar_code){DS13CS=0;/*关闭DS1302*/DS13C
4、LK=0;DS13CLK=0;DS13CS=1;/*使能DS1302*/_wds13byte(_code);/*读代码*/_code=_rds13byte();/*返回读取数字*/DS13CLK=1;DS13CS=0;/*关闭DS1302*/return_code;}/*写功能fp写的地址,_code写的内容*/voidwriteds1302(ucharfp,uchar_code){DS13CS=0;/*关闭DS1302*/DS13CLK=0;DS13CLK=0;DS13CS=1;/*使能DS1302*/_wds13byte(fp);/*写控制命令*/_wds13byte(_code);/*写
5、入数据*/DS13CLK=1;DS13CS=0;/*关闭DS1302*/}/*******DS1302设置快速充电***************/voidds13_charg(void){writeds1302(0x8e,0x00);/*解除写保护*/writeds1302(0x90,0xa5);/*单二极管2K电阻充电*/writeds1302(0x8e,0x80);/*置位写保护*/}(5);;;DS1302读写程序(汇编);;;;*********************************************************************/T_CLKBitP1
6、.5;实时时钟时钟线引脚T_IOBitP1.6;实时时钟数据线引脚T_RSTBitP1.7;实时时钟复位线引脚;**********************************************************;子程序名:Set1302;功能:设置DS1302初始时间,并启动计时。;说明:;调用:RTInputByte;入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.YearL(地址连续);出口参数:无;影响资源:ABR0R1R4R7;**************************************************
7、********Set1302:CLRT_RSTCLRT_CLKSETBT_RSTMOVB,#8EH;控制寄存器LCALLRTInputByteMOVB,#00H;写操作前WP=0LCALLRTInputByteSETBT_CLKCLRT_RSTMOVR0,#Second;MOVR7,#7;秒分时日月星期年MOVR1,#80H;秒写地址S13021:CLRT_RSTCLRT_CLKSETBT_RSTMOVB,R1;写秒分时日月星期年地址LCALLRTInputByteMOVA,@R0;写秒数据MOVB,ALCALLRTInputByteINCR0INCR1INCR1SETBT_CLKCLRT_
8、RSTDJNZR7,S13021CLRT_RSTCLRT_CLKSETBT_RSTMOVB,#8EH;控制寄存器LCALLRTInputByteMOVB,#80H;控制,WP=1,写保护LCALLRTInputByteSETBT_CLKCLRT_RSTRET;**********************************************************;子程序名:Get130