久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2280|回復: 1
打印 上一主題 下一主題
收起左側

DS1302的C語言源代碼 直接移植使用

[復制鏈接]
跳轉到指定樓層
樓主
  1. #include "ds1302.h"


  2. char  ds1302_data_read()
  3. {
  4. return P22;
  5. }  

  6. /***************************************************
  7. 程序驅動
  8. ****************************************************/
  9. void DS1302_Write(unsigned char D)
  10. {
  11. unsigned char i;
  12. for(i=0;i<8;i++)
  13.         {
  14.         ds1302_data(D&0x01);
  15.         ds1302_sclk(1);
  16.         ds1302_sclk(0);
  17.         D=D>>1;
  18.         }
  19. }
  20. //寫地址和數據
  21. void WDS1302(unsigned char ucAddr, unsigned char ucDat)
  22. {
  23. ds1302_rst(0);
  24. ds1302_sclk(0);
  25. ds1302_rst(1);
  26. DS1302_Write(ucAddr);
  27. DS1302_Write(ucDat);
  28. ds1302_sclk(1);
  29. ds1302_sclk(0);
  30. ds1302_data(1);
  31. }
  32. //讀一串數據
  33. unsigned char DS1302_Read()
  34. {
  35. unsigned char TempDat=0,i;
  36.     for(i=0;i<8;i++)
  37.     {
  38.     TempDat>>=1;                        
  39.     if(ds1302_data_read()) TempDat=TempDat|0x80;
  40.                         ds1302_sclk(1);                        
  41.                         ds1302_sclk(0);
  42.     }
  43. return TempDat;
  44. }
  45. //寫地址然后讀數據
  46. unsigned char read1302(unsigned char ucAddr)
  47. {
  48. unsigned char ucDat;
  49. ds1302_rst(0);
  50. ds1302_sclk(0);
  51. ds1302_rst(1);
  52. DS1302_Write(ucAddr);
  53. ucDat=DS1302_Read();
  54. ds1302_sclk(1);
  55. ds1302_rst(0);
  56. ds1302_data(1);
  57. return ucDat;
  58. }

  59. /***************************************************
  60. ds1302程序初始化
  61. ****************************************************/
  62. void w_ram()
  63. {
  64. WDS1302(0x8e,0x00);//關閉保護寄存器
  65. WDS1302(0xc0,0x51);  //ram里面的一個數據
  66. WDS1302(0x8e,0x80);//開保護
  67. }
  68. unsigned char g_ram()
  69. {
  70. unsigned char g_ram_data;
  71. g_ram_data=read1302(0xc1);
  72. return g_ram_data;
  73. }

  74. void init_time()
  75. {
  76. if(g_ram()!=0x51)
  77.         {
  78.         w_ram();
  79.         WDS1302(0x8e,0x00);//關閉保護寄存器
  80.         WDS1302(0x80,0x00);//set秒
  81.         WDS1302(0x82,0x36);//set分
  82.         WDS1302(0x84,0x20);//set時
  83.         WDS1302(0x8A,0x03);//set星期
  84.         WDS1302(0x86,0x16);//set日
  85.         WDS1302(0x88,0x03);//set月
  86.         WDS1302(0x8C,0x22);//set年
  87.         WDS1302(0x90,0xa5);//充電
  88.         WDS1302(0x8e,0x80);//開保護
  89.         }
  90. }


  91. void  w_nian(unsigned char a)
  92. {
  93. unsigned char b;
  94. b=a/10*16+a%10;
  95. WDS1302(0x8e,0x00);//關閉保護寄存器
  96. WDS1302(write_nian,b);//年
  97. WDS1302(0x8e,0x80);//開保護
  98. }
  99. void  w_yue(unsigned char a)
  100. {
  101. unsigned char b;
  102. b=a/10*16+a%10;
  103. WDS1302(0x8e,0x00);//關閉保護寄存器
  104. WDS1302(write_yue,b);//年
  105. WDS1302(0x8e,0x80);//開保護
  106. }
  107. void  w_ri(unsigned char a)
  108. {
  109. unsigned char b;
  110. b=a/10*16+a%10;
  111. WDS1302(0x8e,0x00);//關閉保護寄存器
  112. WDS1302(write_tian,b);//年
  113. WDS1302(0x8e,0x80);//開保護
  114. }
  115. void  w_fen(unsigned char a)
  116. {
  117. unsigned char b;
  118. b=a/10*16+a%10;
  119. WDS1302(0x8e,0x00);//關閉保護寄存器
  120. WDS1302(0x82,b);//set分
  121. WDS1302(0x8e,0x80);//開保護
  122. }
  123. void w_shi(unsigned char a)
  124. {
  125. unsigned char b;
  126. b=a/10*16+a%10;
  127. WDS1302(0x8e,0x00);//關閉保護寄存器
  128. WDS1302(0x84,b);//set時
  129. WDS1302(0x8e,0x80);//開保護
  130. }
  131. void w_miao(unsigned char a)
  132. {
  133. unsigned char b;
  134. b=a/10*16+a%10;
  135. WDS1302(0x8e,0x00);//關閉保護寄存器
  136. WDS1302(write_second,b);//setmiao
  137. WDS1302(0x8e,0x80);//開保護
  138. }
  139. void w_zhou(unsigned char a)
  140. {
  141. unsigned char b;
  142. b=a/10*16+a%10;
  143. WDS1302(0x8e,0x00);//關閉保護寄存器
  144. WDS1302(write_zhou,b);//setmiao
  145. WDS1302(0x8e,0x80);//開保護
  146. }
  147. unsigned char  get_fen()
  148. {
  149. unsigned char a,b;
  150. a=read1302(read_fen);
  151. b=a%16+a/16*10;
  152. return b;
  153. }
  154. unsigned char  get_shi()
  155. {
  156. unsigned char a=0,b=0;
  157. a=read1302(read_xiaoshi);
  158. b=a%16+a/16*10;
  159. return b;
  160. }
  161. unsigned char  get_miao()
  162. {
  163. unsigned char a=0,b=0;
  164. a=read1302(read_miao);
  165. b=a%16+a/16*10;
  166. return b;
  167. }
  168. unsigned char  get_nian()
  169. {
  170. unsigned char a=0,b=0;
  171. a=read1302(read_nian);
  172. b=a%16+a/16*10;
  173. return b;
  174. }
  175. unsigned char  get_yue()
  176. {
  177. unsigned char a=0,b=0;
  178. a=read1302(read_yue);
  179. b=a%16+a/16*10;
  180. return b;
  181. }
  182. unsigned char  get_ri()
  183. {
  184. unsigned char a=0,b=0;
  185. a=read1302(read_tian);
  186. b=a%16+a/16*10;
  187. return b;
  188. }
  189. unsigned char  get_zhou()
  190. {
  191. unsigned char a=0,b=0;
  192. a=read1302(read_zhou);
  193. b=a%16+a/16*10;
  194. return b;
  195. }
復制代碼
源代碼免費提供給大家,直接使用


上圖2個文件下載 c代碼(請自行移植到各單片機平臺): DS1302.zip (1.48 KB, 下載次數: 39)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:1023698 發表于 2022-5-4 10:45 | 只看該作者
感謝樓主無私奉獻
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 中文字幕国产精品 | 国产高清一区二区三区 | 91av在线影院| 亚洲精品三级 | 国内精品一区二区 | 精品日韩一区二区三区av动图 | 国产一区二区三区网站 | 国产精品亚洲二区 | 亚洲成人毛片 | 亚洲夜夜爽 | 91亚洲精品国偷拍自产在线观看 | 成人免费视频观看视频 | 精品亚洲一区二区三区 | 日韩视频一区 | 91性高湖久久久久久久久_久久99 | 精品国产乱码久久久久久图片 | 婷婷丁香在线视频 | 久久亚洲国产 | 亚洲三级免费看 | 91视频88av| 精品久久国产视频 | 国产成人精品免费视频大全最热 | 亚洲欧洲一区 | 亚洲精品一 | 亚洲国产欧美在线 | 亚洲国产精品一区 | 国产精品久久久久久久久免费高清 | 精品免费国产 | 国产成视频在线观看 | av免费网站在线 | 狠狠亚洲 | 国产一区二区影院 | 2018天天干天天操 | 在线国产视频 | 日韩欧美二区 | 国产一区二区影院 | 久久国产精品免费一区二区三区 | 色婷婷av一区二区三区软件 | 久草免费在线视频 | 欧美三级视频 |