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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2252|回復: 1
收起左側

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

[復制鏈接]
ID:50487 發表于 2022-3-23 11:06 | 顯示全部樓層 |閱讀模式
  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. }
復制代碼
源代碼免費提供給大家,直接使用
51hei.png

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

評分

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

查看全部評分

回復

使用道具 舉報

ID:1023698 發表于 2022-5-4 10:45 | 顯示全部樓層
感謝樓主無私奉獻
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产综合精品一区二区三区 | 色网在线播放 | 喷水毛片 | 成人影视网址 | 亚洲精品中文字幕 | 国产精品一二区 | 亚洲九色 | 亚洲va欧美va天堂v国产综合 | 亚洲国产精品久久久久秋霞不卡 | 视频在线一区二区 | 91不卡 | 欧美日韩高清在线一区 | 日韩欧美在线免费观看视频 | 欧美日韩成人 | 欧洲色| 国产欧美精品一区二区三区 | 91视频一区 | 欧美亚洲激情 | 黄频免费 | 国产精品99久久久久久www | 一区二区在线观看免费视频 | 国产精品日日摸夜夜添夜夜av | 午夜精品三区 | 国产美女在线播放 | 国产91一区二区三区 | 国产一区二区麻豆 | 亚洲一区在线日韩在线深爱 | 欧美精品一区二区在线观看 | 麻豆亚洲 | www.亚洲免费 | 久久成人午夜 | 中文在线日韩 | 日韩在线一区二区 | 中文字幕乱码亚洲精品一区 | 亚洲色视频| 亚洲精选一区 | 人人鲁人人莫人人爱精品 | www.亚洲国产精品 | 日韩免费av | 视频三区 | 国产精品久久一区二区三区 |