Advertisement
Guest User

arduino

a guest
Apr 23rd, 2014
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #include <DS1302.h>
  2.  
  3. int dig[10] =
  4. {
  5. B00000011, // 0
  6. B10011111, // 1
  7. B00100101, // 2
  8. B00001101, // 3
  9. B10011001, // 4
  10. B01001001, // 5
  11. B01000001, // 6
  12. B00011111, // 7
  13. B00000001, // 8
  14. B00001001 // 9
  15. };
  16.  
  17. int pos[4] =
  18. {
  19. B00010000,
  20. B00100000,
  21. B01000000,
  22. B10000000
  23. };
  24.  
  25. int DSPin = 8; //DS SER
  26. int STPin = 9; //ST_CP RCLK
  27. int SHPin = 10; //SH_CP SRLCK
  28.  
  29. int DS1302_RST = 2;
  30. int DS1302_IO = 3;
  31. int DS1302_SCLK = 4;
  32.  
  33. int del = 2;
  34.  
  35. DS1302 rtc(DS1302_RST, DS1302_IO, DS1302_SCLK);
  36.  
  37. void setup() {
  38. rtc.halt(false);
  39. rtc.writeProtect(false);
  40. /*
  41. rtc.setDOW(SUNDAY); // Установка дня недели на ВТОРНИК
  42. rtc.setTime(16, 46, 0); // Установка времени 22:59:00
  43. rtc.setDate(23, 4, 2014); // Установка даты 24 апреля 2012
  44. //*/
  45. Serial.begin(9600);
  46. Serial.println("reset");
  47. pinMode(STPin, OUTPUT);
  48. pinMode(SHPin, OUTPUT);
  49. pinMode(DSPin, OUTPUT);
  50. RegW(B00000000,B00000000);
  51. }
  52.  
  53. void loop()
  54. {
  55. Time t = rtc.getTime();
  56.  
  57. int h1 = int(t.hour/10);
  58. int h2 = t.hour-h1*10;
  59.  
  60. int m1 = int(t.min/10);
  61. int m2 = t.min-m1*10;
  62.  
  63. int s1 = int(t.sec/10);
  64. int s2 = t.sec-s1*10;
  65. /*
  66. Serial.print(h1);
  67. Serial.print(h2);
  68. Serial.print(":");
  69. Serial.print(m1);
  70. Serial.print(m2);
  71. Serial.print(":");
  72. Serial.print(s1);
  73. Serial.print(s2);
  74. Serial.println();
  75. */
  76. RegW(dig[h1],pos[0]);
  77. delay(del);
  78. RegW(dig[h2],pos[1]);
  79. delay(del);
  80. RegW(dig[m1],pos[2]);
  81. delay(del);
  82. RegW(dig[m2],pos[3]);
  83. delay(del);
  84.  
  85. Serial.println(rtc.getTimeStr());
  86.  
  87. }
  88.  
  89. void RegW(byte M1, byte M2) {
  90. digitalWrite(STPin, LOW);
  91. shiftOut(DSPin, SHPin, MSBFIRST, M2);
  92. shiftOut(DSPin, SHPin, MSBFIRST, M1);
  93. digitalWrite(STPin, HIGH);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement