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

Views: 2962


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



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


  • VU Meter Tower ART – part 2VU Meter Tower ART – part 2
    Views: 1200 Проект – VU Meter Tower ART получил продолжение в своем развитии. Теперь можно заказать набор деталей из акрила для самостоятельной сборки. В проект корпуса внесено целый ряд доработок, …
  • LCD драйвер – UC1601sLCD драйвер – UC1601s
    Views: 1818 http://svetomuzyka.narod.ru/project/UC1601s.html Читайте обновление на http://catcatcat.d-lan.dp.ua/?page_id=178 В данный момент можно приобрести в ООО “Гамма” несколько типов индикаторов на драйвере UC1601s. RDX0048-GC, RDX0077-GS, RDX0154-GC и RDX0120-GC выполнены по технологии COG.
  • Емкостной сенсорЕмкостной сенсор
    Views: 3224 Изучаем изготовление емкостных сенсоров на PIC-микроконтроллере. Конструкция емкостных сенсоров имеет вид: Емкостные сенсоры строятся по схеме высокочастотного генератора, сам принцип основан на измерение частоты этого генератора. Частота зависит …
  • PIC32MZ – Core Timer (библиотека)PIC32MZ – Core Timer (библиотека)
    Views: 584 Переработанные файлы от Microchip, библиотека для работы с Core Timer.
  • ch-4050 – дифференциальный терморегуляторch-4050 – дифференциальный терморегулятор
    Views: 2080 ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя …
  • Самый простой диммер для светодиодного освещенияСамый простой диммер для светодиодного освещения
    Views: 3202 Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы …
  • Акриловый корпус для платы ch-4000Акриловый корпус для платы ch-4000
    Views: 863 Плата ch-4000 подходит для монтажа в корпуса на дин рейку, но для домашней автоматики необходимо что-то другое, поэтому был разработан корпус из акрила который позволит создавать настольные и настенные устройства. Корпус …
  • PIC18F25K42 – v. A001 – выявленные баги.PIC18F25K42 – v. A001 – выявленные баги.
    Views: 806 Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На …
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовMCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов
    Views: 812 При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном …
  • Проект с использованием MCC часть 15Проект с использованием MCC часть 15
    Views: 1733 EUSART – Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. … читать на вики. Внесем изменения в нашу схему, …



Поделись этим!