Indholdsfortegnelse:

DS1307 Ur Med CloudX: 4 trin
DS1307 Ur Med CloudX: 4 trin

Video: DS1307 Ur Med CloudX: 4 trin

Video: DS1307 Ur Med CloudX: 4 trin
Video: Modified DS1307 real time clock module to work with non rechargeable battery 2024, November
Anonim
DS1307 Ur Med CloudX
DS1307 Ur Med CloudX
DS1307 Ur Med CloudX
DS1307 Ur Med CloudX

Forestil dig nogensinde, at du vil lave dit eget tilpassede ur eller ur. sammenlægning af en DS1307 og CloudX kan gøre din aspiration problemfri

Trin 1: Åbn din CloudX IDE

Åbn dit CloudX IDE
Åbn dit CloudX IDE
Åbn dit CloudX IDE
Åbn dit CloudX IDE

Beklager, jeg er ikke meget af en taler, men jeg ved, når det kommer til Real Time Clock -projekter, cloudX har dækket dig.

Enkle trin

1. importer cloudX hovedbibliotek med skråstreg sin bordmodel

2. importer DS1307 og andet funktionsbibliotek, der er nødvendigt

3. nyd og leg med DS1307 -funktionerne fra biblioteket

Trin 2: KODE !, KODE !!, KODE !

/*

* Fil: main.c * Forfatter: Ogboye Godwin * * Oprettet den 24. april 2018, 11:02 */

#omfatte

#omfatte

#omfatte

usigneret kort tid [9], Mdate [11];

usigneret kort mth, Dday, yr, hr, min, sek;

getDateTime ();

loadLcd ();

resetClock ();

int sæt = 16;

int inc = 15;

int dec = 14;

Opsætning(){

pinMode (sæt, INPUT);

pinMode (inc, INPUT);

pinMode (dec, INPUT);

pinMode (1, INPUT);

Lcd_setting (2, 3, 4, 5, 6, 7);

Ds1307_init ();

loop () {

mens (readPin (sæt) == 0) {

getDateTime ();

loadLcd ();

forsinkelser (500);

}

hvis (readPin (sæt) == 1)

resetClock ();

}

}

getDateTime () {

hr = Ds1307_read (time); // hr

tid [0] = BCD2UpperCh (time);

tid [1] = BCD2LowerCh (time);

time [2] = ':';

min = Ds1307_read (minut); // min

tid [3] = BCD2UpperCh (min);

tid [4] = BCD2LowerCh (min);

time [5] = ':';

sek = Ds1307_read (anden); // sek

tid [6] = BCD2UpperCh (sek);

tid [7] = BCD2LowerCh (sek);

mth = Ds1307_read (måned); //måned

Mdate [0] = BCD2UpperCh (mth);

Mdate [1] = BCD2LowerCh (mth);

Mdate [2] = ':';

Dday = Ds1307_read (dato); //dag

Mdate [3] = BCD2UpperCh (Dday);

Mdate [4] = BCD2LowerCh (Dday);

Mdate [5] = ':';

år = Ds1307_read (år); //år

Mdate [6] = '2';

Mdate [7] = '0';

Mdate [8] = BCD2UpperCh (år);

Mdate [9] = BCD2LowerCh (år);

}

loadLcd () {

int cx;

Lcd_cmd (klar);

Lcd_writeText (1, 1, "Dato:");

// lcdWriteTextCP (Mdate);

for (cx = 0; cx <11; cx ++)

Lcd_writeCP (Mdate [cx]);

Lcd_writeText (2, 1, "Tid:");

// lcdWriteTextCP (tid);

for (cx = 0; cx <9; cx ++)

Lcd_writeCP (tid [cx]);

}

resetClock () {

Ds1307_write (anden, Binary2BCD (0)); // skriv 0 sekund

Ds1307_write (minut, Binary2BCD (12)); // skriv 12 minutter

Ds1307_write (time, Binary2BCD (12)); // skriv 12 timer

Ds1307_write (dag, Binary2BCD (3)); // skriv dag tirsdag

Ds1307_write (dato, Binary2BCD (24)); // skriv dato 24

Ds1307_write (måned, Binary2BCD (4)); // skriv måned til april

Ds1307_write (år, Binary2BCD (18)); // skriv år 18, dvs. 2018

Ds1307_write (SQWE, Binary2BCD (frekvens)); // indstil SQWE -output til 1 Hz

Ds1307_write (anden, Binary2BCD (startOscilator)); // nulstil det andet til 0sek, og start oscilatoren

mens (readPin (sæt) == 1);

}

Trin 3: Design i Proteus

Design i Proteus
Design i Proteus

type in proteus isis disse krav

1. cloudX

2. DS1307

3. 4,7k modstand

4. knap

5. lm016 LCD

6. krystal på 32 khz

og eller glem selvfølgelig ikke din positive og grund.

lav dine forbindelser som mine.

Anbefalede: