Cuprins:

DS1307 Ceas cu CloudX: 4 pași
DS1307 Ceas cu CloudX: 4 pași

Video: DS1307 Ceas cu CloudX: 4 pași

Video: DS1307 Ceas cu CloudX: 4 pași
Video: PIC16F877A and DS1307 RTC based Digital Clock 2024, Iulie
Anonim
DS1307 Ceas cu CloudX
DS1307 Ceas cu CloudX
DS1307 Ceas cu CloudX
DS1307 Ceas cu CloudX

Imaginați-vă vreodată că doriți să vă creați propriul ceas sau ceas personalizat. fuzionarea unui DS1307 cu CloudX vă poate face aspirația fără probleme

Pasul 1: Deschideți IDE-ul dvs. CloudX

Deschideți IDE-ul dvs. CloudX
Deschideți IDE-ul dvs. CloudX
Deschideți IDE-ul dvs. CloudX
Deschideți IDE-ul dvs. CloudX

Îmi pare rău, nu prea vorbesc, dar știu când vine vorba de proiecte cu ceas în timp real, cloudX te-a acoperit.

Pași simpli

1. importați biblioteca principală cloudX cu slash modelul său de bord

2. importați DS1307 și alte biblioteci funcționale necesare

3. bucurați-vă și jucați-vă cu funcțiile DS1307 din biblioteca sa

Pasul 2: COD !, COD !!, COD !

/*

* Fișier: main.c * Autor: Ogboye Godwin * * Creat la 24 aprilie 2018, 11:02 AM * /

#include

#include

#include

timp scurt nesemnat [9], Mdate [11];

lună scurtă nesemnată, Dday, yr, hr, min, sec;

getDateTime ();

loadLcd ();

resetClock ();

int set = 16;

int inc = 15;

int dec = 14;

înființat(){

pinMode (set, INPUT);

pinMode (inc, INPUT);

pinMode (dec, INPUT);

pinMode (1, INPUT);

Setare LCD (2, 3, 4, 5, 6, 7);

Ds1307_init ();

buclă(){

while (readPin (set) == 0) {

getDateTime ();

loadLcd ();

delayms (500);

}

if (readPin (set) == 1)

resetClock ();

}

}

getDateTime () {

hr = Ds1307_read (ora); //HR

timp [0] = BCD2UpperCh (hr);

timp [1] = BCD2LowerCh (hr);

time [2] = ':';

min = Ds1307_read (minut); // min

timp [3] = BCD2UpperCh (min);

timp [4] = BCD2LowerCh (min);

timp [5] = ':';

sec = Ds1307_read (second); // sec

timp [6] = BCD2UpperCh (sec);

timp [7] = BCD2LowerCh (sec);

mth = Ds1307_read (lună); //lună

Mdate [0] = BCD2UpperCh (mth);

Mdate [1] = BCD2LowerCh (mth);

Mdate [2] = ':';

Dday = Ds1307_read (data); //zi

Mdate [3] = BCD2UpperCh (Dday);

Mdate [4] = BCD2LowerCh (Dday);

Mdate [5] = ':';

yr = Ds1307_read (an); //an

Mdate [6] = '2';

Mdate [7] = '0';

Mdate [8] = BCD2UpperCh (an);

Mdate [9] = BCD2LowerCh (an);

}

loadLcd () {

int cx;

Lcd_cmd (clar);

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

// lcdWriteTextCP (Mdate);

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

Lcd_writeCP (Mdate [cx]);

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

// lcdWriteTextCP (ora);

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

Lcd_writeCP (time [cx]);

}

resetClock () {

Ds1307_write (al doilea, Binary2BCD (0)); // scrie 0 secunda

Ds1307_write (minute, Binary2BCD (12)); // scrie 12 minute

Ds1307_write (ora, Binary2BCD (12)); // scrie 12 ore

Ds1307_write (day, Binary2BCD (3)); // scrie marți ziua

Ds1307_write (data, Binary2BCD (24)); // scrie data 24

Ds1307_write (luna, Binary2BCD (4)); // scrie luna-aprilie

Ds1307_write (anul, Binary2BCD (18)); // scrie anul 18 adică 2018

Ds1307_write (SQWE, Binary2BCD (frecvență)); // setați ieșirea SQWE la 1hz

Ds1307_write (al doilea, Binary2BCD (startOscilator)); // resetează a doua la 0sec și pornește oscilator

while (readPin (set) == 1);

}

Pasul 3: Proiectați în Proteus

Proiectare în Proteus
Proiectare în Proteus

introduceți proteusul în aceste cerințe

1. cloudX

2. DS1307

3. Rezistor 4.7k

4. buton

5. LCD lm016

6. cristal de 32khz

și, bineînțeles, nu uitați pozitivul și motivul.

face conexiunile tale ca ale mele.

Recomandat: