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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ного формата могут производиться ЖКИ-модули нескольких конструктиров, отличающиеся как габаритами ЖКИ, так и размерами платы и посадки. В нашем случае используется WH1602D, размеры которого указаны на рисунке 1.5. Назначение выводов приведены в таблице 5.

 

№ выводаНазваниеФункция1VssОбщий (GND)2VddНапряжение питания3VoКонтрастность4RSКоманды/Данные5R/WЧтение/запись6EВыбор модуля7DB0Линия данных 08DB1Линия данных 19DB2Линия данных 210DB3Линия данных 311DB4Линия данных 412DB5Линия данных 513DB6Линия данных 614DB7Линия данных 7Таблица 5. Назначение выводов WH1602D

 

ЖКИ-модули могут оснащаться задней подсветкой, размещённой между ЖКИ и печатной платой, для чего ЖКИ производится полупрозрачным или прозрачным задним слоем. Сама подсветка может быть реализована несколькими способами: с помощью электролюминисцентной панели, представляющей собой тонкую плёнку, излучающей свет при прикладывании переменного тока повышенного напряжения порядка 100…150 В; люминисцентной лампой с холодным катодом(также работающей при повышенном напряжении), излучение которого равномерно распределяется по всей площади ЖКИ с помощью отражателя или светодиода; третий вариант - подсветка на основе светодиодной матрицы. Этот вариант не требует высоковольтного источника, кроме того имеет значительно большее время наработки. А также только она допустима к эксплуатации в расширенном диапазоне температор(-20оС…+70 оС). Этот вариант подсветки и используется в выбранном дисплее.

 

 

 

.АНАЛИЗ ПРИНЦИПА ДЕЙСТВИЯ РАЗРАБОТАННОЙ СХЕМЫ

 

Рисунок 2.1 - Принципиальная схема прибора ЧБ-1.

 

Основным элементом схемы является микроконтроллер Atmega8 фирмы ATMEL. К порту D контроллера подключён знакосинтезирующий ЖКИ дисплей WH1602D следующим образом: нулевой пин порта D подключён к входу RS - командный флаг - если подать 0, то мы посылаем команду. Если 1 -посылаются данные.

Первый пин к входу RW - Чтение/запись - 1 - читаем данные, 0 - записываем.

Второй пин на вход E - импульс - чтобы модуль начал обработку данных с остальных контактов, необходимо установить 1 на время подачи сигналов.

Третий мин оставляем свободным.

С четвёртого по седьмой - четырёхразрядная шина данных(4 пин порда D соответствует четвёртому пину порта данных, пятый пятому и т.д.). Первые четыре разряда порта данных дисплея подводим к земле.

Также в LCD дисплее имеются контакты VDD и VSS, к которым подводят +5 вольт и землю соответственно.

Оставшийся контакт - VEE - отвечает за контрастность изображения. Если закоротить на минус, то получим максимальную контрастность. Необходимо этот контакт подключить к минусу через резистор номиналом 4.7 кОм(номинал определён опытным путём с помощью переменного резистора).

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

Так, к нулевому пину порта подключена кнопка +1 Hour, которая добавляет 1 час к значению времени(при замыкании на пин подаётся низкий уровень).

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

Ко всем последующим пинам также подключены кнопки:

Пин два - плюс 10 минут к значению времени\будильника.

Пин три - плюс 1 минута к значению времени\будильника.

Пин четыре - плюс 1 день к значению даты\будильника.

Пин пять - плюс 1 месяц к значению даты\будильника.

Пин шесть - останавливает проигрывание мелодии при срабатывании будильника.

Пин семь - переключает между отображением времени-даты и настройкой будильника.

От порта С задействованы лишь выводы SDA и SDL(пин четыре и пять соответственно). Они используются для образования связи с часами реального времени(RTC) DS1307 по I2C шине.

Ко входам X1 и X2 подключается кварцевый резонатор с частотой 32768 Гц(часовой кварц). Производитель DS1307 рекомендует заземлить корпус кварца, для уменьшения погрешности.

Ко входам SCA и SCL подводится +5 вольт через подтягивающие резисторы. Также эти входы образуют шину I2C с соответствующими входами микроконтроллера.

 

3.РЕАЛИЗАЦИЯ ПРОГРАММНОЙ ЧАСТИ

 

.1 Описание работы программы

 

Реализовать инкрементирование секунды можно несколькими способами:

. Используя встроенный в микроконтроллер таймер, сконфигурированный на вызов прерывания по совпадению.

. Используя внешнюю микросхему.

Рассмотрим оба варианта.

В первом случае необходимо настроить таймер на определённую частоту, кратную основной частоте микроконтроллера (в нашем случае она равна 4 МГц). Предделитель должен быть кратен степени двойки. Например, возьмём предделитель равный 1024. Тогда 4 * 106 / 1024 = 3906 - частота работы таймера, Гц. Для вызова прерывания необходимо задаться каким-либо числом для сравнения. Если взять число 7812(вдвое больше частоты работы таймера), то прерывание будет срабатывать каждые две секунды(поскольку Гц = 1/с, то число 3906 означает число тактов в секунду. И с заданным числом для сравнения как раз и сравнивается число тактов). Поскольку нам нужно инкрементировать значение часов каждую секунду, то число для сравнения должно быть 3906. Этот вариант не гарантирует высокой точности хода.

Второй вариант предусматривает использование отдельной микросхемы, отвечающей за ход часов. Всё, что нужно для работы - задать начальное значение даты и времени, а также подключить внешний часовой кварц. Далее и будем использовать этот вариант.

Из всех существующих м