Часы реального времени M41T56

Visits: 2832


Catcatcat_M41T56Классика для часов реального времени.

Назначение выводов:

Catcatcat_M41T56_02a

Функциональная схема:

Catcatcat_M41T56_05

Назначение регистров:

Catcatcat_M41T56_04

 


Функция чтения данных времени из M41T56

void readtime (void)// чтение даты и времени
{
//    char a;
    // чтение даты и времени
    i2c_start (0xD0,0);             // загрузка адреса устройства,функция запись
    i2c_write (0x00);               // адрес ячейки памяти для обращения
    i2c_restart (0xD0,1);           // загрузка адреса устройства,функция чтение

    rtcSecN=i2c_read_ack();         // чтение секунд
    rtcSecN=rtcSecN&0b01111111;     // преобразование секунд
    rtcSecN=decbin_bin (rtcSecN);

    rtcMinN=i2c_read_ack();         // чтение минут
    rtcMinN=rtcMinN&0b01111111;     // преобразование минут
    rtcMinN=decbin_bin (rtcMinN);

    rtcHourN=i2c_read_ack();        // чтение часов
    rtcHourN=rtcHourN&0b00111111;   // преобразование часов
    rtcHourN=decbin_bin (rtcHourN);

    day=i2c_read_ack();             // чтение для недели
    day=day&0b00000111;             // преобразование

    rtcMdayN=i2c_read_ack();        // чтение даты
    rtcMdayN=rtcMdayN&0b00111111;   // преобразование даты
    rtcMdayN=decbin_bin (rtcMdayN);

    rtcMonN=i2c_read_ack();         // чтение месяца
    rtcMonN=rtcMonN&0b00011111;     // преобразование месяца
    rtcMonN=decbin_bin (rtcMonN);

    rtcYearN=i2c_read_noack();       // чтение года
    rtcYearN=decbin_bin (rtcYearN);  // преобразование года

    i2c_stop  ();
}//

Функция сохранения данных

void savetime (void)
{
    i2c_start (0xD0,0);                 // установка адреса.
    i2c_write (0x00);                   // адрес ячейки памяти для обращения
    i2c_write (bin_decbin (rtcSecN));   // данные записи СЕКУНДЫ
    i2c_write (bin_decbin (rtcMinN));   // данные записи МИНУТЫ
    i2c_write (bin_decbin (rtcHourN));  // данные записи ЧАСЫ
    i2c_write (day);                    // данные записи ДЕНЬ НЕДЕЛИ
    i2c_write (bin_decbin (rtcMdayN));  // данные записи ДАТА
    i2c_write (bin_decbin (rtcMonN));   // данные записи МЕСЯЦ
    i2c_write (bin_decbin (rtcYearN));  // данные записи ГОД
    i2c_stop ();
}//

 Функции чтения и сохранения данных калибровочной константы

//калибровка часов +/- 31
void CalibrationSaveTime (char Calibration)
{
//    Calibration=Calibration&0b00111111;
    Calibration=Calibration|0b11000000;
    i2c_start (0xD0,0);                // установка адреса.
    i2c_write (0x07);                  // адрес ячейки памяти для обращения
    i2c_write (Calibration);           // данные записи СЕКУНДЫ
    i2c_stop ();
}

//Чтение калибровки часов +/- 31
signed char CalibrationReadTime (void)
{
 char   Calibration;
    i2c_start (0xD0,0);                // установка адреса.
    i2c_write (0x07);                  // адрес ячейки памяти для обращения
    i2c_restart (0xD0,1);              // загрузка адреса устройства,функция чтение
    Calibration=i2c_read_noack();      // чтение Calibration
    if(!(Calibration&0b00100000))Calibration=Calibration&0b00111111;
    i2c_stop ();
    return Calibration;
}

Функции преобразования двоично-десятичных чисел в двоичные и обратно 

// преобразование двоично-десятичного в двоичное
char decbin_bin (char data)
{
    char a;
    a=data>>4;
    a=a*10;
    data=data&0b00001111;
    data+=a;
    return data;
}

// преобразование двоичного в двоично-десятичное
char bin_decbin (char data)
{
    char dest, edin;

    dest=data%100/10;
    edin=data%10;

    data=edin;
    data+=dest<<4;

    return data;
}

 


Ссылка на страницу производителя ST



Это может быть интересно


  • JDY-62A Audio bluetooth moduleJDY-62A Audio bluetooth module
    Visits: 1614 Простой модуль для простого аудио блютуса. Встроенные подсказки на английском языке. Модуль включён, режим муте – после подачи питания. Контроль разряда батареи предупреждение что батарея разряжена и необходима …
  • Цифровой тахометр для автомобиля CH-С3300Цифровой тахометр для автомобиля CH-С3300
    Visits: 1870  Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика …
  • Универсальный терморегулятор ch-c3000Универсальный терморегулятор ch-c3000
    Visits: 2948 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
  • Мультизоновый индикатор-терморегулятор ch-c3010Мультизоновый индикатор-терморегулятор ch-c3010
    Visits: 1139 Часто возникает необходимость получить информацию по температуре с множества точек контроля. Вам необходимо знать температуру в комнате, в коридоре,  температуру на улице, а в погребе (или на балконе) …
  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
    Visits: 1979 Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще …
  • УКВ – радиоприем, часть 2УКВ – радиоприем, часть 2
    Visits: 6168 Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального …
  • Altium Designer – подготовка документации для производства и сборки печатных платAltium Designer – подготовка документации для производства и сборки печатных плат
    Visits: 3597 В процессе освоения Altium Designer много возникает вопросов по подготовке документации для производства плат, а также для её сборки. Altium Designer позволяет сделать все требуемые документы, хотя скажем …
  • ch-светомузыка и AK4113ch-светомузыка и AK4113
    Visits: 1250 Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это …
  • CAN – Controller Area NetworkCAN – Controller Area Network
    Visits: 1053 Controller Area Network (CAN) первоначально был создан немецким поставщиком автомобильных систем Робертом Бош в середины 1980-х для автомобильной промышленности как метод для обеспечения возможности надежной последовательной связи. Целью было сделать автомобили более надежными, …
  • Ultrasonic Level Meters – ULM –53LUltrasonic Level Meters – ULM –53L
    Visits: 697 Измерение расстояния при помощи ультра звукового датчика ULM–53L–10. Диапазон измерения от 0,5 м до 10 м, полностью пластмассовый излучатель PVDF, механическое соединение фланцем из полиэтилена HDPE (исполнение “N”) Характеристики …