В 1929 году появились первые кварцевые часы. Точность таких колебаний состовляет 1с за 10 лет. Атомные часы были разработаны в 1948г в США. Основаны на частоте излучения атомов цезия, они позволяют измрять время с точностью 1с в 1,6 млн лет. По книге ГИННЕСС БОЛЬШАЯ КНИГА ЗНАНИЙ

Для кого будет полезна эта информация?

Прежде всего, разработчикам аппаратуры, программистам, электронщикам, а также всем тем, кто хочет узнать как работают компьютеры на примере работы микропроцессора PIC16F84-04 I/P.

КАК ПОЛЬЗОВАТЬСЯ ЧАСАМИ

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

Часы имеют четыре кнопки:

"REZET" для сброса часов.
"MODE" для выбора режима.
"SELECT" для выбора размерности времени для корректировки.
"SET" для установки часов.
При нажатии кнопки "MODE", часы переходят из режима показа времени

     в режим показа года

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

Часы могут находиться в одном из следующих режимов:

Режим установки года.

В этом режиме можно скорректировать год, месяц, день, неделю. Переход в этот режим возможен только из режима показа года, при этом надо нажать кнопку "SELECT". Далее следующим нажатием этой кнопки выбирается корректируемый параметр времени (он будет мигать). С помощью кнопки "SET" установите нужное число или день недели. Год устанавливается в два приема - устанавливаются года и устанавливаются столетия.

Режим установки времени.

В этом режиме можно скорректировать день, час, минуты, секунды. Переход в этот режим возможен только из режима показа времени. Корректировка времени происходит аналогично, как и в режиме корректировки года. Рекомендуется использовать этот режим после режима установки года, так как во время установки используется информация о високосном годе и количестве дней в йесяце.

Режим корректировки точности хода часов.

Чтобы перейти в этот режим, часы должны находиться в режиме показа времени. Удерживая кнопку "SET", необходимо нажать кнопку "MODE". Появление символа "P" говорит о переходе в этот режим (при переходе в этот режим, может пройти несколько секунд). Далее можно использовать кнопку "SELECT" для убыстрения хода часов, кнопку "SET" для замедления хода часов (в этих кнопках действует автоповтор). Информация о корректировке представляет собой число в диапазоне от -65535 до +65535. Выберите оптимальное число при котором часы будут идти более точно. Технология корректировки производится методом последовательных приближений в несколько этапов, используя сигналы точного времени. При нажатии кнопки "MODE", часы переходят в нормальный режим работы. Информация о корректировке сохраняется во FLASH памяти и не пропадает при выключении питания.

Описание работы схемы электронных часов "CLOCK 2000"

Часы разработаны на основе однокристального микропроцессора PIC16F84-04 фирмы © 2000 Microchip Technology Inc. с использованием динамической индикации. Обмен данными с микропроцессором производится с помощью восьмибитной шины, реализованной программным способом. Регистр U3 хранит текущее состояние сегментов, дня недели, и секундных импульсов. Регистр U4 хранит текущее состояние цифровых разрядов. Регистр U2 предназначен для ввода состояния кнопок, информация в этот регистр вводится по стробу ST2. (смотри схему)
В режиме отображения часов светодиодные индикаторы Digit7 и Digit6 показывают часы, Digit5 и Digit4 показывают минуты, Digit3 и Digit2 день месяца, Digit1 и Digit0 секунды. Светодиоды D1-D7 отображают день недели, светодиод D8 секундные импульсы. В данной схеме не используются запятые светодиодных индикаторов, вместо них подключены светодиоды D1-D8.
В режиме отображения года светодиодные индикаторы Digit7 - Digit4 показывают год, Digit3 и Digit2 показывают месяц, Digit1 и Digit0 день месяца. Светодиоды D1-D7 также как и в режиме отображения часов, показывают день недели, светодиод D8 не мигает.
Данное схемное решение позволяет использовать мощные светодиодные индикаторы с общим катодом. При необходимости, можно использовать более высокое напряжение питания светодиодных индикаторов чем +12V.
На элементах Q1-Q16 и R1-R8, R10-R33 собраны анодные электронные ключи, которые подают положительный потенциал на сегменты и светодиоды. Резисторы R19,R21,R23,R25, R27,R29,R31,R33 должны иметь мощность 2 Ватта.
На элементах Q17-Q24 и R37-R44 собраны катодные электронные ключи, которые подают отрицательный потенциал на разряды. В текущий момент времени включен только один катодный электронный ключ. Резисторы R37-R44 задают токи, проходящие через светодиодные индикаторы. Изменяя значение сопротивлений R37-R44 можно в какой-то мере регулировать яркость свечения индикаторов. Как видно на схеме, резисторы R41-R44 имеют большее значение сопротивления чем R37-R40, поэтому катодные ключи там, где они установлены коммутируют светодиодные индикаторы меньшей мощности.
Для изготовления часов использован термостабильный генератор 1 МГц. (CTS KNIGHTS MXO 50 - 2 1.0 MHz). Это повышает точность хода часов. Если вы будете использовать кварцевый генератор другой частоты, необходимо соответственно скорректировать программу. При использовании генератора менее 0.5 MHz будет заметно мигание дисплея.

Вы можите загрузить схему в виде само разворачивающегося архива.


Режим программирования микросхемы PIC16F84-04 следующий

OSC = XT Резонатор определен как керамический или кварцевый
WDT = OFF Сторожевой таймер отключен
PWRT = ON Сброс при включении питания включен
CP = OFF Защита кода выключена

Вы можите скачать код для программирования микросхемы PIC16F84-04.


Краткое описание программы

Здесь вы можите скачать программу.

А загрузить ассемблерный файл в виде само разворачивающегося архива можно отсюда.

Здесь приводится краткое описание программы (более подробное описание содержится в комментариях кода программы), а также небольшой анализ кода.

Программа "ЧАСЫ 2000" версия VER @00.04

Эта программа на языке ассемблера для микропроцессора PIC16F84 фирмы © 2000 Microchip Technology Inc. реализует часы. Особенность часов состоит в том, что в них нет подстройки кварцевого генератора.
Подстройка хода точности часов осуществляется цифровым способом. Благодаря применению такого способа настройки, можно достичь высокой точности хода часов, которая будет зависеть только от нестабильности генератора. Все настройки сохраняются в долговременной памяти даже при отключении питания. Кроме того в часах одновременно вы можете наблюдать секунды, минуты, часы, дни, дни недели, а также имеется возможность индикации года.
В часах учитывается количество дней в месяце с учётом високосного года.

Программа состоит из следующих частей:

Программы начальной инициализации.
Программы основного цикла.
Программы обработки прерывания.
И различных подпрограмм.

На мой взгляд заслуживают внимание такие подпрограммы как:

KeyInA, KeyInB, KeyInC
Для ввода состояния клавиш в них реализован, так называемый (мной) "Временной Гестирезис", который отлично справляется с дребезгом контактов. Этот гестирезис можно регулировать, изменяя постоянные в программе. В этих подпрограммах есть небольшой недостаток - для каждой клавиши используется своя подпрограмма.
REATIS
Подпрограмма приращения секунд. Она довольно компактная и в ней по оптимальному алгоритму учитывается количество дней в месяце с учетом високосного года.
Service_int
Программа обработки прерывания. Тоже на мой взгляд неплохая. Здесь найдено решение как синхронизировать время в программе прерывания, а также программной (цифровой) подстройки точности хода часов.

Я не могу гарантировать вам, что данный код не содержит ошибок, а также что его нельзя больше оптимизировать. Буду признателен, если вы найдете ошибки или более оптимальный код и напишете мне по адресу электронной почты kornilov@kmv.ru.

Для работы с PIC - контроллерами вам понадобятся следующие инструменты:

MPLAB v5.31 - Среда для разработки под WIN98(Эмулятор,отладчиик,ассемблер)(11.48 Mb).
Информация на Русском языке под DOS в файле PicDocRu.zip - 263Kb.
Полезные ссылки и название книг где можно найти информацию по PIC - контроллерам.
www.platan.ru
www.chip-dip.ru
www.symmetron.ru

Сайт фирмы Microchip на английском языке © 2000 Microchip Technology Inc.
www.mchip.com


Сайт фирмы технической поддержки Microchip на руском языке.
www.microchip.ru


ORMIX Ltd. - официальный дистрибьютор
Microchip Technology Inc. (в Латвии).
www.ormix.riga.lv
E-mail: ormix@mail.ormix.riga.lv

Книга из серии Электронные компоненты
издательства ORMIX Рига 1997г.

- Однокристальные микроконтроллеры
Microchip: PIC16C8X.

В следующих выпусках серии:
Однокристальные микроконтроллеры
Microchip: ассемблер и симулятор.

Книги из серии Справочник Микроконтроллеры
издательства ДОДЕКА

Выпуск 1 1998г.
- Однокристальные микроконтроллеры PIC17C4X, PIC17C75X, M3820.

Выпуск 2 2000г.
- Однокристальные микроконтроллеры PIC12C5X, PIC12C6X, PIC16X8X, PIC14000, M16C/61/62

© 2001 Создание агентство "АРТНЕТ"