當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 1 ds1302的程序,不是很簡(jiǎn)潔,占的程序空間有點(diǎn)長(zhǎng) 2 3 程序: 4 5 ////////////////////////////////// 6 //根據(jù)自己的接線改管腳定義 7 sbit DS1302_cs=P1^2; 8 sbit DS1302_data=P1^1; 9 sbit DS1302_clk=P1^0;10

1 ds1302的程序,不是很簡(jiǎn)潔,占的程序空間有點(diǎn)長(zhǎng)

2

3 程序:

4

5 //////////////////////////////////

6 //根據(jù)自己的接線改管腳定義

7 sbit DS1302_cs=P1^2;

8 sbit DS1302_data=P1^1;

9 sbit DS1302_clk=P1^0;

10 sbit ACC0=ACC^0;

11 sbit ACC7=ACC^7;

12 //////////////////////////////////

13 #define uchar unsigned char

14 #define uint unsigned int

15

16 uchar year,month,date,hour,minute,second,week;//定義變量

17

18 //////////////////////////////////

19 //函數(shù)聲明

20 oid DS1302_init();//ds1302初始化

21 void DS1302_write(unsigned char DS1302_temp); //寫入一個(gè)字節(jié)

22 uchar DS1302_read(void); //讀一字節(jié)

23 void DS1302_write_time(int command,int dat);//寫入second or minute or hour...... or 寫入一個(gè)命令

24 uchar DS1302_read_time(int command);//讀取second or minute or hour......

25 void DS1302_readdate();

26 void DS1302_writedate();

27 void long_ds1302_delay() //長(zhǎng)延時(shí)

28 void short_ds1302_delay();//短延時(shí)

29 //////////////////////////////////

30

31

32 void short_ds1302_delay()

33 {

34 uchar i;

35 for(i=0;i<5;i++);

36 }

37

38 void long_ds1302_delay()

39 {

40 uchar i;

41 for(i=0;i<25;i++);

42 }

43

44 void DS1302_write(unsigned char DS1302_temp) //寫入一個(gè)字節(jié)

45 {

46 uchar i,temp;

47 long_ds1302_delay();

48 temp=DS1302_temp;

49 for(i=0;i<8;i++)

50 {

51 DS1302_data=temp&0x01;

52 short_ds1302_delay();

53 DS1302_clk=1;

54 short_ds1302_delay();

55 DS1302_clk=0;

56 temp=temp>>1;

57 }

58 }

59

60 unsigned char DS1302_read(void) //讀一字節(jié)

61 {

62 uchar i,temp;

63 long_ds1302_delay();

64 temp=0;

65 for(i=0;i<8;i++)

66 {

67 temp=temp>>1;

68 if(DS1302_data==1)

69 temp=temp+0x80;

70 DS1302_clk=1;

71 short_ds1302_delay();

72 DS1302_clk=0;

73 short_ds1302_delay();

74 }

75 return temp;

76 }

77 /*

78 /////////寫操作設(shè)置,當(dāng)a=0x80時(shí)禁止寫操作,a=0x00時(shí)允許////////////////

79

80 void DS1302_write_able(unsigned char a)

81 {

82 DS1302_cs=0;

83

84 DS1302_clk=0;

85 short_ds1302_delay();

86 DS1302_cs=1;

87 DS1302_write(0x8e);

88 DS1302_data=1;

89 DS1302_write(a);

90 DS1302_cs=0;

91 short_ds1302_delay();

92 DS1302_clk=1;

93 }

94

95 /////////讀操作設(shè)置,當(dāng)a=0x80時(shí)禁止讀操作,a=0x00時(shí)允許////////////////

96

97 void DS1302_read_able(unsigned char a)

98 {

99 DS1302_cs=0;

100

101 DS1302_clk=0;

102 short_ds1302_delay();

103 DS1302_cs=1;

104 DS1302_write(0x8f);

105 DS1302_data=1;

106 DS1302_write(a);

107 DS1302_cs=0;

108 short_ds1302_delay();

109 DS1302_clk=1;

110 }

111 */

112 ////////////////////ds1302初始化////////////////////////

113 void DS1302_init()

114 {

115 uchar i;

116 DS1302_write_time(0x8e,0x00); //允許寫操作

117

118 DS1302_cs=0;

119

120 DS1302_clk=0;

121 short_ds1302_delay();

122 DS1302_cs=1;

123 DS1302_write(0x81);

124 DS1302_data=1;

125 i=DS1302_read();

126 DS1302_cs=0;

127 short_ds1302_delay();

128 DS1302_clk=1;

129 second=((i>>4)&0x07)*10+(i&0x0f);

130

131 DS1302_clk=0;

132 short_ds1302_delay();

133 DS1302_cs=1;

134 DS1302_write(0x80);

135 DS1302_data=1;

136 DS1302_write(0x7f&i);

137 DS1302_cs=0;

138 short_ds1302_delay();

139 DS1302_clk=1;

140

141 DS1302_clk=0; //充電設(shè)置

142 short_ds1302_delay();

143 DS1302_cs=1;

144 DS1302_write(0x90);

145 DS1302_data=1;

146 // DS1302_write(0xa6); //允許充電,一個(gè)二極管 4k電阻

147 DS1302_write(0x00); //禁止充電

148 DS1302_cs=0;

149 short_ds1302_delay();

150 DS1302_clk=1;

151

152 DS1302_write_time(0x8e,0x80); //禁止寫操作

153 }

154

155 unsigned char DS1302_read_time(int command)//讀取second or minute or hour......

156 {

157 uchar i;

158 DS1302_clk=0;

159 short_ds1302_delay();

160 DS1302_cs=1;

161 DS1302_write(command);

162 DS1302_data=1;

163 i=DS1302_read();

164 DS1302_cs=0;

165 short_ds1302_delay();

166 DS1302_clk=1;

167 return i;

168 }

169 void DS1302_readdate()

170 {

171 uchar i;

172 DS1302_cs=0;

173

174 //讀取second

175 i=DS1302_read_time(0x81);

176 second=((i>>4)&0x07)*10+(i&0x0f);

177

178 //讀取分minute

179 i=DS1302_read_time(0x83);

180 minute=((i>>4)&0x07)*10+(i&0x0f);

181

182 //讀取時(shí)hour

183 i=DS1302_read_time(0x85);

184 hour=((i>>4)&0x03)*10+(i&0x0f);

185

186 //讀取日date

187 i=DS1302_read_time(0x87);

188 date=((i>>4)&0x03)*10+(i&0x0f);

189

190 //讀取月份month

191 i=DS1302_read_time(0x89);

192 month=((i>>4)&0x01)*10+(i&0x0f);

193

194 //讀取周week

195 i=DS1302_read_time(0x8b);

196 week=i&0x07;

197

198 //讀取年份year

199 i=DS1302_read_time(0x8d);

200 year=((i>>4)&0x0f)*10+(i&0x0f);

201 }

202

203

204 void DS1302_write_time(int command,int dat)//寫入second or minute or hour...... or 寫入一個(gè)命令

205 {

206 DS1302_clk=0;

207 short_ds1302_delay();

208 DS1302_cs=1;

209 DS1302_write(command);

210 DS1302_data=1;

211 DS1302_write(dat);

212 DS1302_cs=0;

213 short_ds1302_delay();

214 DS1302_clk=1;

215 }

216

217 void DS1302_writedate()

218 {

219

220 DS1302_write_time(0x8e,0x00); //允許寫操作

221 DS1302_cs=0;

222 DS1302_write_time(0x80,0x7f&(((second/10)<<4)+(second%10))); //寫second

223 DS1302_write_time(0x82,0x7f&(((minute/10)<<4)+(minute%10))); //minute

224 DS1302_write_time(0x84,0x3f&(((hour/10)<<4)+(hour%10))); //hour

225 DS1302_write_time(0x86,0x3f&(((date/10)<<4)+(date%10))); //date

226 DS1302_write_time(0x88,0x1f&(((month/10)<<4)+(month%10))); //month

227 DS1302_write_time(0x8a,0x07&week); //week

228 DS1302_write_time(0x8c,((year/10)<<4)+(year%10)); //year

229 DS1302_write_time(0x8e,0x80); //禁止寫操作

230 }


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉