Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
1

Не работают часы реального времени в связки с ЖКИ

11.12.2018, 16:10. Просмотров 107. Ответов 2
Метки нет (Все метки)

Исходник и схему взял отсюда
Мне нужно в протеусе вывести на ЖКИ LM0216L реальное время и дату.
0
Миниатюры
Не работают часы реального времени в связки с ЖКИ  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2018, 16:10
Ответы с готовыми решениями:

Часы реального времени на Atmega16
Собрала в Proteus схему и написала код, но работает криво (схема в Протеус и код в архиве)....

Часы Реального времени на атмега16
Всем доброго вечера. Подскажите пожалуйста как написать на С функцию прерывания, используя часы...

Программные часы реального времени (RTC)
Доброго, подскажите исходник (желательно C++) программых часов реального времени (RTC), чтобы...

Часы реального времени
надо часы сделать для процессора Atmega. Схема в протеусе сделана,а вот только как запрогать его...

Часы реального врмеени-таймер. RV-2123-C2-TA-QC-020
Привет всем! Имеется один вопросик по часам релаьного времени. в общем имеется...

2
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
11.12.2018, 16:11  [ТС] 2
0
inquisitor
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,763
11.12.2018, 19:30  [ТС] 3
Как кнопками регулировать часы и минуты на дисплее?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <DS1307new.h>
#include <Wire.h>
 
// Подключаем стандартную библиотеку LiquidCrystal
#include <LiquidCrystal.h>
// Инициализируем объект-экран, передаём использованные
// для подключения контакты на Arduino в порядке:
              // RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
int hourplus = 7;
int hourminus = 6;
 
 
void setup()
{
  Serial.begin(9600);
  if(RTC.isPresent()){ // обнаружен ли модуль?
    Serial.println("RTC Ready"); // все хорошо
  } else {
    Serial.println("Error!!!! RTC Module not found"); // сообщаем о проблеме
    while(1); // и останавливаем скетч
  }
 
  lcd.begin(16, 2); // запускаем библиотеку экрана
 
 
}
void loop()
{
RTC.getTime();// получить время от модуля
  printTimeToSerial(); // выводим полученное время в лог
  printTimeToLCD();; // выводи время на экран
  doSerialCommands(); // слушаем и выполняем команды из Serial
  if(digitalRead(hourplus )==HIGH )
  {
    RTC.hour = RTC.hour+1;
    printTimeToSerial();
    if(RTC.hour >23)RTC.hour =23;
  }
 
    if(digitalRead(hourminus)==HIGH )
  {
    RTC.hour = RTC.hour-1;
    printTimeToSerial();
    if(RTC.hour <0)RTC.hour =0;
  }
}
 
// Выводит текущие время в Serial
void printTimeToSerial(){
  byte static prevSecond=0; // тут будем хранить, сколько секунд было при прошлом отчете
 
  if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись
    Serial.print(RTC.hour); // часы
 
    Serial.print(":"); // разделитель
    Serial.print(RTC.minute);
 
    Serial.print(":");
    Serial.println(RTC.second);
   
    prevSecond=RTC.second; // запомнили когда мы "отчитались"
  }
}
// Выводит текущие время на LCD
void printTimeToLCD(){
    byte static prevSecond=0; // тут будем хранить, сколько секунд было при выводе
   
    if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись
       lcd.setCursor(5,0); // устанавливаем позицию курсора
      
      if(RTC.hour<10)lcd.print(" ");
      lcd.print(RTC.hour); // часы
   
      lcd.print( (RTC.second % 2)?" ":":"); // разделитель моргает
     
      if(RTC.minute<10)lcd.print(0); // лидирующий ноль, если нужен
      lcd.print(RTC.minute);
   
    prevSecond=RTC.second; // запомнили когда мы "отчитались"
  }
}
// устанавливает часы модуля на какое-то заранее определенное время
void setSomeTime(){
  RTC.stopClock();// останавливаем часы
  RTC.fillByHMS(19,15,0); // "подкручиваем стрелки на 19:15:00
  RTC.setTime();// отправляем "подкрученное время" самому модулю
  RTC.startClock(); // и опять запускаем часы
}
// слушает из Serial команды и выполняет их. Каждая команда - один символ.
// доступны команды:
//  s - установить время указанное в функции setSomeTime()
void doSerialCommands(){
  if(Serial.available()){ // что-нибудь пришло?
    char ch=Serial.read(); // читаем что пришло
   
    switch(ch){
      case 's': // команда установки времени
           setSomeTime(); // устанавливаем
           break;
          
       // тут, в будущем, мы можем добавлять дополнительные команды
      default:;
           // на неизвестную команду - ничего не делаем
    };
  }
}
Мне нужно что бы на дисплей выводилось текущее время(часы и минуты). С этой задачей я справился.Дальше мне нужно кнопками увеличивать/уменьшать часы и аналогично с минутами так,что бы оно выводилось ,а не терялось при обновлении.
Вот правильная схема
Не работают часы реального времени в связки с ЖКИ
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2018, 19:30

Разработка часов реального времени на МС68НС11 (точность до 1 мин)
Всем привет. Необходимо разработать часы на МС68НС11, время отображаться будет на жк индикаторе....

Вывод данных с часов реального времени DS3231S (asm)
Приобрел платку с DS3231SN. И пробую подключить ее к меге16 на пинбоарде с помощью программной...

Эффективность чтения датчиков SPI через DMA в режиме реального времени
Кто знает, насколько эффективно использование разных датчиков интерфейса SPI, для отслеживания...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru