Электронные часы с одной цифрой. Измеряем время

Электронные часы с одной цифрой. Измеряем время

29.03.2024

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

Время, за которое солнце делает полный оборот, называется сутки . Сутки складываются в недели. Недели в месяцы. Месяцы в годы. Годы в века.

В одном веке – 100 лет.

В одном годе – 12 месяцев.

В одном месяце – 30 или 31 день (суток).

Со временем сутки разбили на две части до полудня и после полудня. Каждую часть разбили на 12 частей – часов. Поэтому на часах 12 делений. Всего в сутках 24 часа.

Давайте посмотрим на часы. Жирными черточками и цифрами здесь обозначены часы, их на часах 12. На часы указывает маленькая стрелка. За сутки маленькая стрелка делает два оборота по 12 часов. Медленно маленькая стрелка двигается от часа к часу.

Час разбит на 60 частей – минут. То есть в 1 часе 60 минут.

Циферблат часов разбит на 60 частей (одно деление – одна минута). Большая стрелка указывает на минуты. Когда большая стрелка делает один оборот проходит час и маленькая стрелка продвигается на 1 час.

Отсчет начинается с метки 12. В полночь – 0 часов 0 минут или 12 часов ночи.

Когда маленькая стрелка сделает полный оборот – пройдет 12 часов и будет 12 часов – полдень.

На электронных часах время отображается цифрами, например 1 час ночи будет изображаться вот так:

AM (лат. ante meridiem – до полудня) , значит, что отображаемое время находится в промежутке от полночи до полудня или от 0 до 12 часов.

После 12 часов отсчет времени продолжается. Через час будет 13 часов или 1 час после полудня, потом 14 (или 2 часа после полудня):

PM (лат. post meridiem – после полудня) – отображаемое время находится в промежутке от полудня до полуночи, то есть от 12 часов дня и до 12 ночи или от 12 до 24 часов

Минутная стрелка описывает круг за один час. Одно деление – 1 минута . Когда минутная стрелка указывает на 1 – это 5 минут, на 2 – 10 минут, на 3 – 15 минут и так далее, пока минутная стрелка не опишет полную окружность и вернется к 12 – 60 минут:

Давайте составим таблицу часов в течение суток:

00:00 AM

01:00 AM

02:00 AM

03:00 AM

04:00 AM

05:00 AM

06:00 AM

07:00 AM

08:00 AM

09:00 AM

10:00 AM

11:00 AM

12:00 PM

01:00 PM

02:00 PM

03:00 PM

04:00 PM

Вопрос: Задача. Электронные часы, основанные на простых арифметических действиях


Здравствуйте, форумчане!
Помогите с задачей, пожалуйста >_<
Задача:
Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями.

С начала суток прошло n секунд. Выведите, что покажут часы.
Входные данные
Вводится целое число n.

Выходные данные
Выведите ответ на задачу, соблюдая требуемый формат.

Примеры
входные данные
3602
выходные данные
1:00:02

Вот, что у меня получилось:

Java
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 import ; import javax.swing.plaf.synth.SynthOptionPaneUI ; import java.util.Scanner ; public class quest { public static void main(String args) { Scanner in = new Scanner (System .in ) ; long n,h,m,s; n = in.nextLong () ; h = (n % (3600 * 24 ) ) /3600 ; m = (n % 3600 ) / 60 ; s = (n % 60 ) ; if (m< 10 ) { if (s< 10 ) { System .out .println (h+ ":0" +m+ ":0" +s) ; } else if (s> 10 ) { System .out .println (h+ ":0" +m+ ":" +s) ; } } else if (m> 10 ) { if (s< 10 ) { System .out .println (h+ ":" +m+ ":0" +s) ; } else if (s> 10 ) { System .out .println (h+ ":" +m+ ":" +s) ; } } } }

Это решение верно не во всех случаях, хотя я не понимаю почему =c
Помогите найти проблему, буду благодарен!

Ответ:

Java
1 2 3 int i = 3602 ; LocalTime time = LocalTime.MIDNIGHT .plus (i, SECONDS) ; System .out .println (time) ;

Вопрос: Электронные часы с будильником Delphi


Друзья,надо защитить практику,дали задание электронные часы с будильником,кто поможет или скинет?)
Буду оооочень сильно-сильно благодарен)

Добавлено через 1 минуту
друзья,желательно с формулировкой)

Ответ:

Сообщение от anegdot

Электронные часы получается

Давай посмотрим на твои часы и что там не получается.


Входные данные

Выходные данные





Python
1 2 3 4 5 6 7 8 9 n = int (input () ) if n< 1440 : print (n//60 ) print (n%60 ) else : a = 1440 - n a *= -1 print (a//60 ) print (a%60 )

Ответ: Можно решить без условий:

Вопрос: Электронные часы


Необходимо разработать программу, которая реализует электронные часы.Цифры реализуются графически через набор прямоугольников, а не в текстовом виде.
Необходимые элементы интерфейса : панель главного меню, элементы Shape или использование свойства Canvas для прорисовки цифр и кнопки управления.

Ответ: xxbesoxx , не все так просто. Задача

Сообщение от Kapetra

Цифры реализуются графически через набор прямоугольников, а не в текстовом виде

Kapetra ,

P.S. если внимательно просмотрите тему, найдете много чего интересного

Вопрос: Задача про электронные часы


Дано число n. С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент.

Входные данные
Вводится число n - целое, положительное, не превышает 10 в седьмой степени.

Выходные данные
Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59).

Учтите, что число n может быть больше, чем количество минут в сутках.
__________________________________________________________________________________________
мое решение, помогите найти ошибку.
___________________________________________________________________________________________

Код Python
1 2 3 4 5 6 7 8 9 n = int (input () ) if n< 1440 : print (n//60 ) print (n%60 ) else : a = 1440 - n a *= -1 print (a//60 ) print (a%60 )

Ответ:

Сообщение от Andrey_Goa

Узнай кол-во суток

Зачем это? Количество суток нигде не понадобится, только остаток от деления

Код Python
1 2 hours = (n % 1440 ) // 60 mins = (n % 1440 ) % 60

Вопрос: "Электронные часы"


Сама задача: "Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями.
С начала суток прошло n секунд. Выведите, что покажут часы."
Ссылка на нее: .
Pascal
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 Program Time2; var a, n: Integer ; Begin Readln (n) ; If n= 0 then Writeln ("00" , ":" , "00" , ":" , "00" ) else If (n<3600 ) and ((n div 60 ) <10 ) and ((n mod 60 ) <10 ) then Writeln ("00:0" , n div 60 , ":0" , n mod 60 ) else If (n<3600 ) and ((n div 60 ) >= 10 ) and ((n mod 60 ) >= 10 ) then Writeln ("00:" , n div 60 , ":" , n mod 60 ) else If (n<86400 ) and (n>3600 ) and ((n div 3600 ) <10 ) and (((n mod 3600 ) div 60 ) <10 ) and (((n mod 3600 ) mod 60 ) <10 ) then Writeln ("0" , n div 3600 , ":0" , (n mod 3600 ) div 60 , ":0" , (n mod 3600 ) mod 60 ) else If (n<86400 ) and (n>3600 ) and ((n div 3600 ) >= 10 ) and (((n mod 3600 ) div 60 ) >= 10 ) and (((n mod 3600 ) mod 60 ) >10 ) then Writeln (n div 3600 , ":" , (n mod 3600 ) div 60 , ":" , (n mod 3600 ) mod 60 ) else If (n mod 86400 = 0 ) then Writeln ("00" , ":" , "00" , ":" , "00" ) else a: = n mod 86400 ; If (n>86400 ) and ((a div 3600 ) >= 10 ) and (((a mod 3600 ) div 60 ) >= 10 ) and (((a mod 3600 ) mod 60 ) >= 10 ) then Begin {a:=n mod 86400;} Writeln (a div 3600 , ":" , (a mod 3600 ) div 60 , ":" , (a mod 3600 ) mod 60 ) end else If (n>86400 ) and ((a div 3600 ) <10 ) and (((a mod 3600 ) div 60 ) <10 ) and (((a mod 3600 ) mod 60 ) <10 ) then Writeln ("0" , a div 3600 , ":0" , (a mod 3600 ) div 60 , ":0" , (a mod 3600 ) mod 60 ) end .

Проблема в том,что пока я не начал пытаться сделать так,чтобы выводилось в "правильном" формате, все было хорошо. Выдавало под любые заданные числа, протестировал вариантов 30. Начал мучаться с этими нулями, которые должны появляться перед минутами или секундами, если их меньше 10 и все покатилось к черту. Теперь программа правильно срабатывает только на определенные числа, причем алгоритм "срабатывания" я пока что не смог уловить. На большинстве же чисел программа просто ничего не выдает. Ладно бы хоть ошибки какие-то выдавала,так нет же,просто пустой экран.
Этот способ "правильной" записи через "If" имеет вообще право на жизнь?
Вот первоначальный вариант,где все выдавалось в неправильном формате,но правильно по сути

Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Program Time2; var a, n: Integer ; Begin Readln (n) ; If n= 0 then Writeln ("00" , ":" , "00" , ":" , "00" ) else If n<86400 then Writeln (n div 3600 , ":" , (n mod 3600 ) div 60 , ":" , (n mod 3600 ) mod 60 ) else If n mod 86400 = 0 then Writeln ("00" , ":" , "00" , ":" , "00" ) else If n>86400 then Begin a: = n mod 86400 ; Writeln (a div 3600 , ":" , (a mod 3600 ) div 60 , ":" , (a mod 3600 ) mod 60 ) ; end end .

И в каком случае программа вообще "просто молчит"?

Ответ:

Pascal
1 2 3 4 5 6 7 8 9 10 11 12 var n: Longint ; h, m, s: Integer ; begin ReadLn (n) ; h: = n div 3600 mod 24 ; m: = n mod 3600 div 60 ; s: = n mod 3600 mod 60 ; Write (h, ":" ) ; if m<10 then Write ("0" ) ; Write (m, ":" ) ; if s<10 then Write ("0" ) ; WriteLn (s) ; end .

Вопрос: Электронные часы с будильником


Привет, народ! Помогите пожалуйста разобраться с задачкой. Есть электронные часы, которые показывают реальное время. На форме нужно разместить 3 кнопки: "H", "M", "A". Кнопка
«H» (Hours) увеличивает на единицу число часов, а кнопка «M» (Minutes) – число минут. Увеличение происходит по модулю 24 и 60 соответственно. Такие часы обладают простым поведением, поскольку каждое из двух входных воздействий (нажатие первой или второй кнопки) приводит к единственной, заранее
определенной реакции часов. Дополнительная кнопка«A» (Alarm) предназначена в них для включения и выключения будильника. Если будильник выключен,то кнопка«A» включает его и переводит часы в режим,в
котором кнопки «H» и «M» устанавливают не текущее время, а время срабатывания
будильника. Повторное нажатие кнопки «A» возвращает часы в обычный режим. При чем, все это должно выполняться с помощью автоматного программирования. Вот проект:
А вот препод дал листинг программы, но только он на языке C++. Помогите пожалуйста, может кто-то что-то подобное делал. Может его как-то можно переделать.
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 classAlarm_Clock{ public : voidh_button() //Нажатие кнопки H { if (is_in_alarm_time_mode) { alarm_hours= (alarm_hours+ 1 ) % 24 ; } else { hours= (hours+ 1 ) % 24 ; } } voidm_button() //НажатиекнопкиM { if (is_in_alarm_time_mode) { alarm_minutes= (alarm_minutes+ 1 ) % 60 ; } else { minutes= (minutes+ 1 ) % 60 ; } } voida_button() //Нажатие кнопки A { if (is_alarm_on) { if (is_in_alarm_time_mode) { is_in_alarm_time_mode= false ; } else { bell_off() ; is_alarm_on= false ; } } else { is_alarm_on= true ; is_in_alarm_time_mode= true ; } } voidtick() //Срабатывание минутного таймера { if (is_alarm_on&&! is_in_alarm_time_mode) { if ((minutes== alarm_minutes1) && (hours== alarm_hours) || (alarm_minutes== 0 ) && (minutes== 59 ) && (hours== alarm_hours1) ) bell_on() ; elseif((minutes== alarm_minutes) && (hours== alarm_hours) ) bell_off() ; } minutes= (minutes+ 1 ) % 60 ; if (minutes== 0 ) hours= (hours+ 1 ) % 24 ; } private : inthours; //Часы текущего времени intminutes; //Минуты текущего времени intalarm_hours; //Часы срабатывания будильника intalarm_minutes; //Минуты срабатывания будильника boolis_alarm_on; //Включен ли будильник? boolis_in_alarm_time_mode; //Активенлирежимустановкивременибудильника? voidbell_on() { ...} //Включить звонок voidbell_off() { ...} //Выключить звонок } ;

Электронные часы самых разнообразных функциональных возможностей являются одним из наиболее широко применяемых в быту электронных приборов, управление которыми построено на основе конечноавтоматной модели. Электронные часы обычно показывают время, дату, дают возможность установки времени и даты, а также выполняют множество других функций (например, их можно превратить в секундомер со сбросом и остановкой его показаний, в будильник и т.д.). Управление всеми этими возможностями производится встроенным конечноавтоматным преобразователем, входами которого являются события нажатия внешних управляющих кнопок. Структурная схема электронных часов показана на рис. 3.11. Управляющие кнопки обозначены здесь “а” и “b”. Кроме устройства отображения, высвечивающего цифры, и схемы отображения, преобразующей двоично-десятичные коды цифр в семиразрядный код управления светодиодами, на схеме показаны четыре регистра отображения, хранящие двоично-десятичные коды четырех цифр, которые в настоящий момент высвечиваются на циферблате с помощью схемы и устройства отображения, комбинационные схемы “ИЛИ”, пропускающие любой из разрешенных кодов на регистры отображения, шина “Управление”, разрешающая в каждой ситуации выдачу на регистры отображения сигналов только либо секундомера, либо часов, либо даты. На схеме также присутствуют регистры секундомера и генератор тиков, который выдает сигнал с частотой 1 гц. На рисунке зафиксирован момент “19 июня, 15 часов 04 минуты, 43 секунды”.

Рис.3.11. Структурная схема электронных часов

Устройство управления, организующее работу всех элементов электронных часов, построено на основе модели конечного автомата. Граф переходов этого автомата изображен на рис. 3.12. В начальном состоянии отображается время. Это значит, что двоичный код этого состояния (после дешифрирования) открывает выходы четырех двоично-десятичных регистров, хранящих единицы и десятки минут и единицы и десятки часов на входы четырех комбинационных схем “ИЛИ”.

Рис.3.12. Автомат устройства управления электронными часами

Конечный автомат реагирует на событие нажатия кнопки “а” на корпусе часов переходом в состояние “Установка минут ”, в котором событие нажатия кнопки “b” вызовет увеличение числа, хранящегося в регистрах, отведенных для минут. При этом переносы из регистра секунд и в регистр, отведенный под хранение числа, блокируются. Событие нажатия кнопки “b” в состоянии “Уст. месяца ” вызовет увеличение числа, хранящегося в регистрах, отведенных для месяца. На рис. 3.12 не показана возможность и алгоритм работы с секундомером.

Промышленность выпускает много типов электронных часов с различными функциональными возможностями. Схемы управления таких часов можно построить имея навык реализации конечных функциональных преобразователей и построения конечно-автоматных моделей дискретных систем управления.

Я починил электронные часы. Это нереально круто, учитывая что я ни разу не электроник. Это первый раз в жизни. Поломка заключалась в том, что они стали выключаться в момент звонка будильника. Я подумал, что кондюк потерял свою кондючность. Не смотря на переезд, у меня сохранились кондюки, выпаянные из какой-то старой платы. Ножки были соответственно очень короткие. Надставил проводочками. Припаял в параллель старому и заработало. Интересно, что на плате было место как раз под еще один кондюк.

Общий вид:

А вот зеленый бочонок - это я припаял:

Отлично работает.

За одно решил поэкспериментировать. Я недавно узнал про динамические индикаторы. Это значит, что светящиеся индикаторы многих устройств не горят постоянно все время, а непрерывно моргают, потому что так дешевле, меньше проводов. (Это не относится к жидким кристаллам. Они вообще не горят, они - фильтры, а светится лампочка под ними.) Интересно, как это влияет на нервную систему... Для проверки можно пофотографировать какое-нибудь табло на короткой выдержке несколько раз и там вся дрыготня станет видна. На этих часах уже на 1/150 выдержке стало видно.





Если кто не понял: я снимал совершенно исправные часы. Сколько ни приглядываться, никакого мерцания невооруженным глазом увидеть невозможно. Ставим 1/25 выдержку - все становится нормально:

И глазами тоже все нормально выглядит. Вот так нас дурят индикаторы. Все.

Наверное ни одно устройство так не подвержено всевозможным изменениям и необычным воплощениям, как обычные часы. Начиная с солнечным и заканчивая атомарными - а сколько между ними всевозможных вариаций... Периодически выкладывая особенно интересные схемы и конструкции из зарубежных источников, и на этот раз познакомим вас с очередным устройством для показа текущего времени, которое мало того, что на старинном отечественном вакуумном индикаторе, так ещё и всего одна цифра.

Схема часов с одной цифрой

Эти часы используют микроконтроллер PIC16F84A. Схема довольно проста, поскольку она использует один индикатор, управляемый транзисторами и тут не нужен слишком мощный преобразователь питания.

Лампа, что в них использовал, это советская ИН-12А. Высокое напряжение питания получается на базе компонентов от дешёвого цифрового фотоаппарата (нерабочего), так что это почти ничего не стоит.

Часы отображают время таким образом, что периодически цифры индикатора сменяются от десятков часов до минут. Потом на несколько секунд гаснут. Например для того, чтоб показать время 12:45 , сначала загорится на секунду 1 , потом 2 , потом 4 , потом 5 . И несколько секунд пауза.

Для установки времени необходимо нажать кнопку, и тогда цифра, которую требуется изменить, будет увеличиваться каждый раз, когда вы нажимаете и так по кругу от 0 до 9.

Основная плата содержит все компоненты, за исключением модуля преобразования высокого напряжения питания. Все файлы плат, прошивок и так далее, находятся в общем архиве . Компоненты, необходимые для схемы:

  • Индикатор ИН-12
  • МК PIC16F84A
  • 10x высоковольтных SMD транзисторов MMBTA42
  • 13x 0805 резисторов
  • Кварц 4 МГц
  • 2x конденсатора 22pF
  • Кнопка

Преобразователь высокого напряжения, как говорилось выше, использует компоненты, извлеченные из вспышки фотоаппарата - трансформатор, диод и выходной конденсатор.

Если вы решили собрать эти часы, помните, что они используют высокое напряжение - до 400 В. Соблюдайте осторожность при сборки и эксплуатации!

Чтобы запрограммировать код в PIC, вам понадобится программатор и программное обеспечение для него. Тут использовался китайский программатор k150. Необходимо загрузить.hex-файл в программу, и прожечь чип МК.

© 2024 dhmoscow.ru - Компьютер надо изучать