标题: DS1302电子钟芯片程序 [打印本页]

作者: daming    时间: 2014-12-29 20:46
标题: DS1302电子钟芯片程序
  1. ///////////////////////////////////////////////////////////////////
  2. /*名称:单片机读取DS1302时钟芯片                                  /
  3. /*作者:周光明                                                    /
  4. /*时间:2010年12月3日                                             /
  5. /*功能:                                                          /
  6. /*                                                                /
  7. /*                                                                /
  8. ///////////////////////////////////////////////////////////////////*/

  9. #include <reg52.h>
  10. #define uchar unsigned char
  11. #define uint unsigned int
  12. #define xiemiao 0x80
  13. #define xiefen  0x82
  14. #define xieshi  0x84
  15. #define xieri   0x86
  16. #define xieyue  0x88
  17. #define xiezhou 0x8a
  18. #define xienian 0x8c
  19. #define dumiao  0x81
  20. #define dufen   0x83
  21. #define dushi   0x85
  22. #define duri    0x87
  23. #define duyue   0x89
  24. #define duzhou  0x8b
  25. #define dunian  0x8d
  26. #define baohu 0x8e
  27. uchar bdata CDIO;
  28. sbit DCE=P2^2;
  29. sbit DIO=P2^1;
  30. sbit SCLK=P2^0;
  31. sbit CDIO_7=CDIO^7;
  32. /*----------------------------------写入DS1302--------------------*/
  33. xieds1302(uchar dizhi,shuju)
  34. {
  35. uchar i,temp;
  36. DCE=0;
  37. SCLK=0;
  38. DIO=0;
  39. DCE=1;
  40. for(i=0;i<8;i++)                 //送地址
  41.     {
  42.   SCLK=0;
  43.   temp=dizhi;
  44.   DIO=(bit)(temp&0x01);
  45.   dizhi>>=1;
  46.   SCLK=1;
  47.   }
  48. for(i=0;i<8;i++)                 //送数据
  49.      {
  50.    SCLK=0;
  51.    temp=shuju;
  52.    DIO=(bit)(temp&0x01);
  53.    shuju>>=1;
  54.    SCLK=1;
  55.    }
  56.   DCE=0;
  57. }

  58. /*----------------------------------从DS1302读出--------------------*/
  59. duds1302(uchar dizhi)
  60. {
  61. uchar i,temp;
  62. DCE=0;
  63. SCLK=0;
  64. DIO=0;
  65. DCE=1;
  66. for(i=0;i<8;i++)                 //送地址
  67.     {
  68.   SCLK=0;
  69.   temp=dizhi;
  70.   DIO=(bit)(temp&0x01);
  71.   dizhi>>=1;
  72.   SCLK=1;
  73.   }
  74. for(i=0;i<8;i++)                //读数据
  75.      {
  76.    CDIO_7=DIO;
  77.    SCLK=1;
  78.    CDIO>>=1;
  79.    SCLK=0;
  80.    }
  81.   DCE=0;
  82.   temp=CDIO;
  83.   return(temp);
  84. }
  85. //////////////////////////////////////////////////
  86.   
复制代码



作者: 1qaz2wsx77    时间: 2015-10-12 21:04
做的很好
作者: cqt5001    时间: 2017-8-21 10:38
赞一个   学习
作者: zdmjjp    时间: 2020-2-29 18:23
我还是个小白,佩服




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1