Конструкция цифровых часов (вечного календаря) на базе однокристального микрокомпьютера, микросхема DS1302, год, месяц, день, неделя, бумага, программа, принципиальная схема.
Конструкция цифровых часов (вечного календаря) на базе однокристального микрокомпьютера, микросхема DS1302, год, месяц, день, неделя, бумага, программа, принципиальная схема.

требования к дизайну

1. Отображение года, месяца, дня, недели, часа, минуты и секунды в григорианском календаре;

2. Год, месяц, день, час, минута и секунда могут быть отрегулированы в любое время;

3. Может отображать лунное время и указывать год Ping-Run;

4. Он имеет функцию напоминания о настройке будильника;

5. Возможность отображения текущей температуры окружающей среды;

Обзор системы

Система электронного вечного календаря использует микроконтроллер AT89C52 в качестве ядра для формирования схемы управления микроконтроллера. Она сочетает в себе микросхему часов DS1302 и датчик температуры DS18B20 для считывания времени и температуры. Вся информация отображается в режиме реального времени на жидкостном дисплее LCD1602. кристалл.

Калибровка календарного времени и настройка будильника осуществляются четырьмя независимыми кнопками. Календарь может отображать год, месяц, день по григорианскому календарю и лунному календарю, а также день недели, часы, время. минуты и секунды. При отображении года по лунному календарю он также может указывать день и ночь.

Вся система состоит из следующих модулей, как показано на рисунке ниже.

Схема моделирования Proteus

Принципиальная схема

Анализ моделирования

Откройте файл моделирования Proteus, расширение файла — DSN. Дважды щелкните микроконтроллер, загрузите файл WanNianLi.hex (находится в папке программы Keil C) и запустите моделирование. Результаты показаны на рисунке ниже.

Результаты работы вечного календаря
Результаты работы вечного календаря

Как видно из приведенного выше рисунка, информация о времени, отображаемая на ЖК-дисплее, полностью соответствует окну DS1302 Clock-U3, что указывает на то, что микроконтроллер успешно считывает данные чипа DS1302. Текущая дата — пятница, 9 октября 2020 г., время — 21:30:39, температура — 31,0 ℃.

Операция по установке времени: нажмите кнопку «Установить», секундная стрелка начнет мигать. В это время вы можете использовать «клавишу плюс» и «клавишу минус», чтобы настроить время. Настройка секундной стрелки следующая. .

Настройка секундной стрелки, курсор мигает
Настройка секундной стрелки, курсор мигает

После завершения настройки секундной стрелки еще раз нажмите кнопку «Установить», минутная стрелка начнет мигать, продолжайте установку с помощью клавиш «плюс» и «минус» и т. д., чтобы установить час, день, месяц и год, год ( диапазон может достигать 2099). После завершения настройки нажмите еще раз. Нажмите кнопку «Настройки», чтобы выйти из настройки времени и вернуться к обычному интерфейсу ЖК-дисплея.

Нажмите кнопку «Лунный календарь/Будильник», чтобы отобразить текущую дату по лунному календарю и год Ping-Run (год PING: PING и високосный год: RUN). Как показано на рисунке ниже, лунный день соответствует лунному дню. 9 октября 2020 года по григорианскому календарю — это 23 августа. А 2020 год — високосный год, поэтому информация о преобразовании григорианского и лунного календаря точна.

Отображение лунной даты
Отображение лунной даты

Нажмите кнопку «Лунный календарь/Будильник» еще раз, чтобы отобразить время будильника и состояние включения/выключения будильника (ВКЛ.: означает, что будильник включен, ВЫКЛ.: означает, что будильник выключен. На рисунке время будильника системы по умолчанию). Сейчас 01:01, и сигнализация включена.

Состояние системной сигнализации по умолчанию
Состояние системной сигнализации по умолчанию

Порядок настройки будильника: в текущем интерфейсе отображения будильника нажмите кнопку «Настройки». Часы будильника будут мигать. Используйте «Кнопку «Добавить»» и «Минус», чтобы настроить часы. Часы установлены, нажмите кнопку «Установить» еще раз, минуты начнут мигать, введите настройку минут.

Таким же образом после установки минут снова нажмите кнопку «Установить». Следует отметить, что при установке переключателя будильника не мигает курсор. Нажмите кнопку «Плюс» или «Минус», чтобы включить или выключить будильник, а также переключиться между ВКЛ и ВЫКЛ.

После настройки всего вышеперечисленного нажмите кнопку «Установить», индикатор ON или OFF мигнет один раз, указывая на то, что настройка будильника завершена. В это время нажмите кнопку «Лунный календарь/Будильник», чтобы выйти из интерфейса будильника и вернуться к обычному интерфейсу отображения времени.

Например, если время будильника установлено на 8:30 утра, будильник включен и его статус включен, результаты будут следующими.

Установите время будильника на 8:30.
Установите время будильника на 8:30.

По истечении времени таймера будильника прозвучит звуковой сигнал и прозвучит сигнал будильника; будильник можно выключить, нажав кнопку «плюс», «минус» или «лунный календарь/будильник».

Нажимая красные стрелки вверх и вниз на модуле DS18B20, вы можете моделировать изменения температуры, а на ЖК-дисплее отображается текущее значение температуры в режиме реального времени. Например, заданная температура составляет 22,0 ℃, как показано на рисунке.

Моделируемое значение температуры составляет 22,0 ℃.
Моделируемое значение температуры составляет 22,0 ℃.

Подводя итог, можно сказать, что эффект моделирования конструкции электронного вечного календаря Proteus удовлетворяет требованиям к дизайну.

Часть кода C

Язык кода:c
копировать
/*
Функция: ввод данных солнечного календаря в формате BCD, вывод данных лунного календаря в формате BCD (разрешено только для 1901–2099 годов).
Пример вызова функции: Conversion(c_sun,year_sun,month_sun,day_sun)
Например: Вычислить конверсию(0,0x4,0x10,0x16) 16 октября 2004 г.;
c_sun,year_sun,month_sun,day_sun — все данные в формате BCD, c_sun — отметка столетия, c_sun=0 — 21 век.
Век, c_sun=1 — 19 век.
После вызова функции исходные данные остаются неизменными. Прочитайте c_moon,year_moon,month_moon,day_moon, чтобы получить данные лунного календаря в формате BCD.
*/

void Conversion(bit c,uchar year,uchar month,uchar day)
{                         //c=0 Для 21 века c=1 для 19 века Все входные и выходные данные представляют собой данные BCD.
    uchar temp1,temp2,temp3,month_p;
    uint temp4,table_addr;
    bit flag2,flag_y;
    temp1=year/16;   //BCD->hex Сначала преобразуйте данные в шестнадцатеричный формат.
    temp2=year%16;
   // year=temp1*10+temp2;
	year=temp1*16+temp2;
    temp1=month/16;
    temp2=month%16;
    //month=temp1*10+temp2;
	month=temp1*16+temp2;
    temp1=day/16;
    temp2=day%16;
    //day=temp1*10+temp2;
	day=temp1*16+temp2;
    //Находим адрес таблицы данных
    if(c==0){                   
        table_addr=(year+0x64-1)*0x3;
    }
    else {
        table_addr=(year-1)*0x3;
    }
    //Находим адрес таблицы данных Заканчивать
    //Получить месяц по григорианскому календарю, в котором в этом году проводится Весенний фестиваль
    temp1=year_code[table_addr+2]&0x60; 
    temp1=_cror_(temp1,5);
    //Получить месяц по григорианскому календарю, в котором в этом году проводится Весенний фестиваль Заканчивать
    //Получить календарный день весеннего фестиваля этого года
    temp2=year_code[table_addr+2]&0x1f; 
    //Получить календарный день весеннего фестиваля этого года Заканчивать
    // Подсчитайте количество дней от Праздника Весны текущего года до Нового года текущего года. Праздник Весны приходится только на январь или февраль григорианского календаря.
    if(temp1==0x1){  
        temp3=temp2-1;  
    }  
    else{
        temp3=temp2+0x1f-1;        
    }

Содержание ресурса

(1) Полная версия электронного вечного календаря на базе 51 микроконтроллера;

(2)Altium DesignerПринципиальная схемадокумент;

(3) программа Keil C;

(4) файл моделирования Proteus;

(5) блок-схема программирования Visio;

(6) Письмо об окончательном задании;

(7) Техническое руководство по чипу;

(8) Список компонентов;

(9) Введение в знание компонентов;

Скриншот ресурса

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose