Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <DS1302.h>
- int dig[10] =
- {
- B00000011, // 0
- B10011111, // 1
- B00100101, // 2
- B00001101, // 3
- B10011001, // 4
- B01001001, // 5
- B01000001, // 6
- B00011111, // 7
- B00000001, // 8
- B00001001 // 9
- };
- int pos[4] =
- {
- B00010000,
- B00100000,
- B01000000,
- B10000000
- };
- int DSPin = 8; //DS SER
- int STPin = 9; //ST_CP RCLK
- int SHPin = 10; //SH_CP SRLCK
- int DS1302_RST = 2;
- int DS1302_IO = 3;
- int DS1302_SCLK = 4;
- int del = 2;
- DS1302 rtc(DS1302_RST, DS1302_IO, DS1302_SCLK);
- void setup() {
- rtc.halt(false);
- rtc.writeProtect(false);
- /*
- rtc.setDOW(SUNDAY); // Установка дня недели на ВТОРНИК
- rtc.setTime(16, 46, 0); // Установка времени 22:59:00
- rtc.setDate(23, 4, 2014); // Установка даты 24 апреля 2012
- //*/
- Serial.begin(9600);
- Serial.println("reset");
- pinMode(STPin, OUTPUT);
- pinMode(SHPin, OUTPUT);
- pinMode(DSPin, OUTPUT);
- RegW(B00000000,B00000000);
- }
- void loop()
- {
- Time t = rtc.getTime();
- int h1 = int(t.hour/10);
- int h2 = t.hour-h1*10;
- int m1 = int(t.min/10);
- int m2 = t.min-m1*10;
- int s1 = int(t.sec/10);
- int s2 = t.sec-s1*10;
- /*
- Serial.print(h1);
- Serial.print(h2);
- Serial.print(":");
- Serial.print(m1);
- Serial.print(m2);
- Serial.print(":");
- Serial.print(s1);
- Serial.print(s2);
- Serial.println();
- */
- RegW(dig[h1],pos[0]);
- delay(del);
- RegW(dig[h2],pos[1]);
- delay(del);
- RegW(dig[m1],pos[2]);
- delay(del);
- RegW(dig[m2],pos[3]);
- delay(del);
- Serial.println(rtc.getTimeStr());
- }
- void RegW(byte M1, byte M2) {
- digitalWrite(STPin, LOW);
- shiftOut(DSPin, SHPin, MSBFIRST, M2);
- shiftOut(DSPin, SHPin, MSBFIRST, M1);
- digitalWrite(STPin, HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement