• RU
  • icon На проверке: 21
Меню

Часы с будильником на Atmega8

  • Добавлен: 24.01.2023
  • Размер: 561 KB
  • Закачек: 0
Узнать, как скачать этот материал

Описание

Часы с будильником на Atmega8

Состав проекта

icon
icon
icon [113 Гундин]Принципиальная схема.dwg
icon [113 Гундин]Перечень элементов.dwg
icon [113 Гундин]ПЗ.docx
icon [113 Гундин]Принципиальная схема.png
icon [113 Гундин]Алгоритм.vsd
icon [113 Гундин]Титульник,Реферат.docx
icon Новый текстовый документ.txt
icon
icon
icon ISIS.dmp
icon ds1307.cof
icon ds1307.prj
icon ds1307.cwp
icon ds1307.PWI
icon ds1307.hex
icon ds1307.c
icon ds1307__.c
icon ds1307.lst
icon ds1307.map
icon ds1307.i
icon ds1307.asm
icon ds1307.c~
icon ds1307.pr~
icon ds1307.obj
icon ds1307.inc
icon ds1307.vec
icon ds1307.rom
icon [113 Гундин]exe.hex
icon [113 Гундин][Proteus]ds1307.DSN
icon index.rtf

Дополнительная информация

Контент чертежей

icon [113 Гундин]Принципиальная схема.dwg

[113 Гундин]Принципиальная схема.dwg

icon [113 Гундин]Перечень элементов.dwg

[113 Гундин]Перечень элементов.dwg

icon [113 Гундин]ПЗ.docx

ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ5
1 Микроконтроллер Atmega8 фирмы Atmel5
2 Часы реального времени DS1307 фирмы Dallas Semiconductor9
АНАЛИЗ ПРИНЦИПА ДЕЙСТВИЯ РАЗРАБОТАННОЙ СХЕМЫ16
1 Описание работы разработанной схемы16
В приложении А представлена принципиальная электрическая схема разработанного устройства.16
2 Расчёт потребляемого тока18
1 Описание работы программы19
2 Описание исходного кода программы20
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ23
В современном мире ни один электрический прибор не обходится без использования микроконтроллеров. Равно как и не обходится без визуализации информации с помощью LCD дисплеев.
В данном курсовом проекте применяются оба эти элемента. Так в качестве управляющего микроконтроллера используется Atmega8 фирмы ATMEL. В качестве знакосинтезирующего ЖК-дисплея используется WH1602D фирмы Winstar.
Помимо этого важным элементом прибора является микросхема носящая название «часы реального времени»(RTC) модели DS1307 фирмы Dallas Semiconductor которые обеспечивают точный ход разрабатываемых часов.
В первой главе подробно рассматриваются все перечисленные элементы приводятся их параметры характеристики схемы и назначение выводов.
Вторая глава посвящена описанию принципиальной электрической схемы разрабатываемого устройства. Рассматривается назначение каждого используемого пина микросхем.
В третьей главе приводится описание программной части проекта. Рассматриваются возможные варианты реализации принципы работы каждого элемента с программной точки зрения. Также в этой главе даётся описание исходного кода микроконтроллера всех реализованных функций.
ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1 Микроконтроллер Atmega8 фирмы Atmel
Микроконтроллер ATmega8 выполнен по технологии CMOS 8-разрядный микропотребляющий основан на AVR-архитектуре RISC. Выполняя одну полноценную инструкцию за один такт ATmega8 достигает производительности 1 MIPS на МГц позволяя достигнуть оптимального соотношения производительности к потребляемой энергии [1]. Цоколевка микросхемы представлена на рис.1.1 назначение выводов приведено в таб.1-4.
Технические параметры:
Память для программ составляет 8 Кб с возможностью перезаписать 10000 раз;
2 байт флеш-памяти для хранения переменных (100 000 циклов перезаписи);
Кб ОЗУ и 32 регистра общего назначения;
Два 8-разрядных ТаймераСчетчика с раздельным прескалером режим сравнения;
-разрядный ТаймерСчетчик с раздельным прескалером режим сравнения режим захвата;
Таймер реального времени с независимым генератором;
каналов 10-разрядного АЦП;
Двухпроводный последовательный интерфейс;
Программируемый последовательный
Интерфейс SPI с режимами MasterS
Программируемый сторожевой таймер с отдельным независимым генератором;
Встроенный аналоговый компаратор;
Сброс при включении питания программируемая защита от провалов питания;
Встроенный калиброванный RC-генератор;
Обработка внутренних и внешних прерываний;
режимов с пониженным энергопотреблением: Idle ADC No
Напряжение питания 4.5 - 5.5В;
Тактовая частота 0-16 МГц.
порта вводавывода объединенных в 3 группы:
Порт В (PB0 - РВ7): Два вывода (РВ6 и PB7) используются для подключения кварцевого резонатора. Выводы РВ2 - РВ5 зарезервированы для внутрисхемного программирования. Таким образом для общего применения остаются порты PB0 и PB1.
Порт С (PC0 - РС6 : 7 выводов): Порты PC0 - РС5 можно использовать в качестве аналоговых входов. РС6 обычно используется для сброса.
Порт D (PD0 - PD7 : 8 выводов): Эти порты можно использовать для общего применения.
Описание выводов микроконтроллера ATmega8:
напряжение питания от +4.5 до +5.5 В
напряжение питания + 5 В для модуля АЦП
вход опорного напряжения для АЦП
выход сравненияШИМ 1А
выход сравненияШИМ 1В
выход сравненияШИМ 2
вход данных в режиме Slave для SPI и ISP выход данных в режиме Master для SPI и ISP
вход данных в режиме Master для SPI и ISP выход данных в режиме Slave для SPI и ISP
тактовый вход в режиме Slave для SPI и ISP тактовый выход в режиме Master для SPI и ISP
цифровой порт РВ6 при работе от встроенного генератора
тактовый вход кварцевый резонатор
не используется при работе от внешнего генератора
цифровой порт РВ7 при работе от встроенного генератора
для подключения кварцевого резонатора
тактовый выход при работе от встроенного генератора
аналоговый вход канал 0
аналоговый вход канал 1
аналоговый вход канал 2
аналоговый вход канал 3
аналоговый вход канал 4
канал данных для 2-проводного последовательного интрефеиса
аналоговый вход канал 5
тактовый выход для 2-проводного последовательного интерфейса
вход приемника USART
выход передатчика USART
внешнее прерывание канал 0
внешнее прерывание канал 1
внешний такт для USART
внешний вход Timer 0
внешний вход Timer 1
вход аналогового компаратора канал 0
вход аналогового компаратора канал 1
Рисунок 1.1 – Расположение выводов Atmega8 в DIP корпусе
2 Часы реального времени DS1307 фирмы Dallas Semiconductor
Часы реального времени с последовательным интерфейсом DS1307 – это малопотребляющие полные двоично-десятичные часы-календарь включающие 56 байт энергонезависимой статической ОЗУ. Адреса и данные передаются последовательно по двухпроводной двунаправленной шине. Часы-календарь отсчитывают секунды минуты часы день дату месяц и год. Последняя дата месяца автоматически корректирутся для месяцев с количеством дней меньше 31 включая коррекцию високосного года. Часы работают как в 24-часовом так и в 12-часовом режимах с индикатором АМPM. DS1307 имеет встроенную схему наблюдения за питанием которая обнаруживает перебои питания и автоматически переключается на питание от батареи.
Точность часов зависит от точности кварцевого резонатора и точности соответствия между ёмкостной нагрузкой схемы тактового генератора и внутренней ёмкостью кварцевого резонатора. Дополнительная погрешность будет вноситься дрейфом частоты кварцевого резонатора происходящим из-за температурных перепадов. Помехи и шум внешней схемы могут привести к убыванию синхронизации.
Характеристики микросхемы:
часы реального времени (RTC) отсчитывают секунды минуты часы дату месяца месяц день недели и год с компенсацией високосного года действительной до 2100 года;
-байтовое энергонезависимое ОЗУ с питанием от батареи для хранения пользовательских данных;
двухпроводной последовательный интерфейс;
программируемый выходной сигнал с прямоугольными импульсами (для тактирования внешних устройств);
автоматическое обнаружение падения напряжение и схема переключения на батарею;
потребление менее 500 нА в режиме батарейной поддержки при работающем тактовом генераторе;
промышленный диапазон температур: от - 40 °C до + 85 °C;
микросхема производится в 8-выводных корпусах DIP и SOIC.
Выводы часов приводятся на рисунке 1.2:
Рисунок 1.2 – Расположение выводов DS1307 в DIP корпусе
X1 X2– Выводы для подключения кварцевого резонатора на частоту 32.768 кГц;
VBAT– Вывод для подключения 3-х вольтовой батареи резервного питания;
SDA– линия данных шины
SCL– линия тактовых импульсов шины
SQWOUT– выходной сигнал для тактирования внешних устройств;
VCC– питание 5 вольт.
Карта адресов для RTC и регистров ОЗУ представлена нарис.1.3.Регистры RTC расположены в ячейках адресов от 00h до 07h. Регистры ОЗУ расположены в ячейках адресов от 08h до 3Fh. В процессе многобайтного доступа когда адресный указатель достигает 3Fh (конец пространства ОЗУ) он перемещается на ячейку 00h - начало пространства RTC [2].
Рисунок 1.3 –Карта адресов DS1307
Информация от часов и календаря получается чтением соответствующих байтов регистра. Регистры RTC показаны нарисунке 1.4. Время и календарь устанавливаются или инициализируются записью соответствующих байтов регистра. Содержимое регистров времени и календаря имеет двоично-десятичный формат. Бит 7 регистра 0 - это бит останова часов (clock halt - CH). Когда этот бит установлен в 1 тактовый генераторвыключен. Когда сброшен в 0 - тактовый генератор включен.
DS1307 может работать и в 12-часовом и в 24-часовом режимах. Бит 6 регистра часов отвечает за выбор 12- или 24-часового режима. Когда он установлен в 1 выбран 12-часовой режим. В этом режиме бит 5 - это бит AMPM при этом высокий логический уровень означает PM. В 24-часовом режиме бит 5 - это бит второго десятка часов (20 - 23 часа).
При появлении на двухпроводной шине условия START текущее время копируется во второй набор регистров. Информация о времени читается из этих вспомогательных регистров в то время как часы могут продолжать работать. Это устраняет необходимость перечитывать регистры DS1307 в случае обновления их содержимого во время чтения.
Рисунок 1.4 –Регистры хронометра DS1307
3 LCD дисплей WH1602D фирмы Winstar
LCD дисплей WH1602D использует контроллер HD44780. Этот контроллер производимый фирмой Hitachi фактически является промышленным стандартом при производстве алфавитно-цифровых ЖКИ-модулей.
Аналоги этого контроллера или совместимые с ним по интерфейсу и командному языку выпускают множество фирм среди которых: Epson Toshiba Sanyo Samsung Philips. Ещё большее число фирм производят ЖКИ-модули на базе данных контроллеров. Эти модули можно встретить в самых устройствах: измерительных приборах медицинском оборудовании промышленном и технологическом оборудовании офисной технике – принтерах телефонах.
Алфавитно-цифровые ЖКИ-модули представляют собой недорогое и удобное решение позволяющее сэкономить время и ресурсы при разработке новых изделий при этом обеспечивают отображение большого объёма информации при хорошей различимости и низком энергопотреблении.
Контроллер HD44780 потенциально может управлять 2-мя строками по 40 символов в каждой при матрице символа 5 х 7 строчек [3].
В рамках одного формата могут производиться ЖКИ-модули нескольких конструкций отличающиеся как габаритами ЖКИ так и размерами платы и посадки. В нашем случае используется WH1602D размеры которого указаны на рис.1.5. Назначение выводов приведено в таб.5 [4].
Рисунок 1.5 –Размеры и номера выводов WH1602D
Таблица 5.Назначение выводов WH1602D
ЖКИ-модули могут оснащаться задней подсветкой размещённой между ЖКИ и печатной платой для чего ЖКИ производится полупрозрачным или прозрачным задним слоем. Сама подсветка может быть реализована несколькими способами: с помощью электролюминисцентной панели представляющей собой тонкую плёнку излучающей свет при прикладывании переменного тока повышенного напряжения порядка 100 150 В; люминисцентной лампой с холодным катодом(также работающей при повышенном напряжении) излучение которого равномерно распределяется по всей площади ЖКИ с помощью отражателя или светодиода; третий вариант – подсветка на основе светодиодной матрицы. Этот вариант не требует высоковольтного источника кроме того имеет значительно большее время наработки. А также только она допустима к эксплуатации в расширенном диапазоне температор (-20оС +70 оС). Этот вариант подсветки и используется в выбранном дисплее.
АНАЛИЗ ПРИНЦИПА ДЕЙСТВИЯ РАЗРАБОТАННОЙ СХЕМЫ
1 Описание работы разработанной схемы
В приложении А представлена принципиальная электрическая схема разработанного устройства.
Основным элементом схемы является микроконтроллер Atmega8 фирмы ATMEL. К порту D контроллера подключён знакосинтезирующий ЖКИ дисплей WH1602D следующим образом: нулевой пин порта D подключён к входу RS - командный флаг - если подать 0 то мы посылаем команду. Если 1 -посылаются данные.
Первый пин к входу RW - Чтениезапись - 1 - читаем данные 0 - записываем.
Второй пин на вход E - импульс - чтобы модуль начал обработку данных с остальных контактов необходимо установить 1 на время подачи сигналов.
Третий мин не используется ЖКИ модулем поэтому подключим на него кнопку уменьшающую значение времени на 1 час.
С четвёртого по седьмой – четырёхразрядная шина данных(4 пин порда D соответствует четвёртому пину порта данных пятый пятому и т.д.). Первые четыре разряда порта данных дисплея подводим к «земле».
Также в LCD дисплее имеются контакты VDD и VSS к которым подводят +5 вольт и «землю» соответственно.
Оставшийся контакт – VEE – отвечает законтрастность изображения. Если закоротить на минус то получим максимальную контрастность. Необходимо этот контакт подключить к минусу через резистор номиналом 4.7 кОм(номинал определён опытным путём с помощью переменного резистора).
Далее рассмотрим пины порта B микроконтроллера. Порт используется для настройки часов и будильника а также для подачи информационного сигнала на динамик.
Так к нулевому пину порта подключена кнопка «+1 Hour» которая добавляет 1 час к значению времени(при замыкании на пин подаётся низкий уровень).
Первый пин используется для подключения динамика и вывода мелодии во время срабатывания будильника.
Ко всем последующим пинам также подключены кнопки [6]:
Пин два – плюс 10 минут к значению временибудильника.
Пин три – плюс 1 минута к значению временибудильника.
Пин четыре – плюс 1 день к значению датыбудильника.
Пин пять – плюс 1 месяц к значению датыбудильника.
Пин шесть – останавливает проигрывание мелодии при срабатывании будильника.
Пин семь – переключает между отображением времени-даты и настройкой будильника.
От порта С задействованы лишь выводы SDA и SDL(пин четыре и пять соответственно). Они используются для образования связи с часами реального времени(RTC) DS1307 по I2C шине.
Ко входам X1 и X2 подключается кварцевый резонатор с частотой 32768 Гц(«часовой» кварц) [5]. Производитель DS1307 рекомендует заземлить корпус кварца для уменьшения погрешности.
Ко входам SCA и SCL подводится +5 вольт через подтягивающие резисторы. Также эти входы образуют шину I2C с соответствующими входами микроконтроллера.
2 Расчёт потребляемого тока
Согласно технической документации используемых электронных компонентов максимальные значения потребляемого тока каждого из них:
WH1602D LED – 40 мА;
Также в схеме используется два резистора C2-33 мощностью 0.25 Вт с номиналом 10 кОм [7]. Исходя из этих параметров рассчитаем потребляемый ток каждого из них:
Поскольку все элементы подключены параллельно между собой то полный потребляемый ток цепи будет равен суммы потребляемых токов каждого элемента:
Однако использовать подсветку для работы ЖКИ не обязательно. Отключив её потребляемый ток можно уменьшить до 16.6 мА(минимальная нагрузка).
Также в схеме присутствует динамик позволяющий реализовать функцию будильника. Рассчитаем потребляемый ток в режиме срабатывания будильник. Для этого определим параметры используемого динамика 20CL08GS. Потребляемая мощность которого составляет 0.1 Вт при сопротивлении 8 Ом [8]. Таким образом:
Следовательно при максимальной нагрузке схема будет потреблять:
1 Описание работы программы
Реализовать инкрементирование секунды можно несколькими способами:
Используя встроенный в микроконтроллер таймер сконфигурированный на вызов прерывания по совпадению.
Используя внешнюю микросхему.
В первом случае необходимо настроить таймер на определённую частоту кратную основной частоте микроконтроллера (в нашем случае она равна 4 МГц). Предделитель должен быть кратен степени двойки. Например возьмём предделитель равный 1024. Тогда 4 * 106 1024 = 3906 – частота работы таймера Гц. Для вызова прерывания необходимо задаться каким-либо числом для сравнения. Если взять число 7812(вдвое больше частоты работы таймера) то прерывание будет срабатывать каждые две секунды(поскольку Гц = 1с то число 3906 означает число тактов в секунду. И с заданным числом для сравнения как раз и сравнивается число тактов). Поскольку нам нужно инкрементировать значение часов каждую секунду то число для сравнения должно быть 3906. Этот вариант не гарантирует высокой точности хода.
Второй вариант предусматривает использование отдельной микросхемы отвечающей за ход часов. Всё что нужно для работы – задать начальное значение даты и времени а также подключить внешний «часовой» кварц. Далее и будем использовать этот вариант.
Из всех существующих микросхем была выбрана DS1307 ввиду её распространённости простоты использования и дешевизны. Для получения текущего значения времени будем использовать прерывания по таймеру так как было описано выше.
Средства используемой среды разработки(CodeVisionAVR) позволяют сильно упростить работу с LCD дисплеем предлагая готовые функции инициализации и вывода символов [9]. Но при этом мы обязаны работать по четырёхразрядной шине вместо восьмиразрядной что повлияет на скорость вывода информации. Обновлять информацию на дисплее будем сразу после считывания значения времени с микросхемы DS1307 в том же прерывании.
Для обеспечения возможности настройки часов и будильника порт B микроконтроллера будет опрашивать состояние кнопок соединенных с «землёй».
2 Описание исходного кода программы
Алгоритм работы программы представлен в приложении В ниже даётся описание всего исходного кода.
Строки 1-19: подключение необходимых заголовочных файлов конфигурирование микроконтроллера для работы с внешними устройствами.
Строки 21-55: объявление глобальных переменных с заданием начальных значений.
Строки 57-71: функция About(). Выводит на дисплей «бегущую» строку с информацией об устройстве и её авторе.
Строки 73-78: функция Delay_note(). Используется для обеспечения возможности задания «паузы» в работе с помощью переменной(встроенная функция delay_ms() способна принимать только константы). Это необходимо при проигрывании мелодии т.к. время задержки звука задана в массиве и для каждой ноты разное значение задержки.
Строки 80-113: функция Alarm(). Вызывается когда значение даты и времени совпадает со значением переменных хранящих настройки будильника. Она выводит на дисплей сообщение о включении будильника и проигрывает мелодию задавая логические уровни на входе динамика с определённой частотой значение которых хранится в массиве[1011].
Строки 111-227: функция Display(). Обрабатывает значением переменных времени предотвращая ввод неверных значений времени(например если значение hour=23 то нажимая на кнопку «+1 Hour» значение hour обнуляется инкрементируя значение переменной day после чего выводит информацию на дисплей. Аналогичные операции функция проделывает если идёт работа с настройкой будильника.
Строки 229-326: функция Setting().Отвечает за обработку нажатия кнопок соответствующим образом подстраивая часы или будильник. Также отвечает за остановку будильника.
Строки 328-382: функция main(). Производит начальную настройку портов вводавывода значение регистров таймера после чего инициализирует LCD дисплей и сразу же выводит информационное сообщение с помощью функции About(). Затем инициализирует работу I2C шины и микросхемы RTC DS1307 задаёт ей начальные значения даты и времени после чего входит в бесконечный цикл вызывая функцию Settings() для обработки нажатия клавиш и проверяя необходимость включения будильника.
В работе подробно рассматриваются основные элементы разработанной схемы: микроконтроллер Atmega8 фирмы ATMEL знакосинтезирующий ЖК дисплей WH1602D и микросхема RTC DS1307.
Проводится описание принципа работы электрической схемы рассматриваются принципы взаимодействия с пользователем (путём нажатия кнопок) и элементов схемы между собой.
После чего приводится расчёт потребляемого тока схемы которая приведена в приложении А и реализована с помощью САПР Autocad [12]. Это необходимо для того чтобы определить сколько ещё устройств может быть подключено к USB хосту от которого происходит питание схемы. По результатам расчёта минимальное потребление – 16.6 мА максимальное – 167.6 мА что значительно меньше ограничения в 500 мА и позволяет подключить ещё не одно устройство.
Затем производится обоснование выбора реализованного схемотехнического и программного исполнения описывается работа каждой функции приводится алгоритм работы программы который реализован с помощью среды Microsoft Visio 2010 [13]
Программа написана на языке C в среде CodeVisionAVR 1.25 и составляет более 350 строк кода реализующих взаимодействие со сторонними устройствами вместе образующими часы с функцией будильника. Исходный код представлен в приложении Г.
Спроектированная принципиальная электрическая схема и созданная «прошивка» микроконтроллера проверены с помощью программного продукта Proteus 7.10 SP0 позволяющего симулировать работу электрических схем [14].
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
Четвертков И.И. Резисторы. Справочник – Москва: Радио и связь 1991. – 56 с.
Белов Л.В. Самоучитель разработчика устройств на микроконтроллерах AVR Л.В. Белов. – СпБ.: Наука и техника 2008. – 196 с.
AutoCAD 2013- 2D and 3D CAD Design Software [Электронный ресурс]. – Режим доступа: usa.autodesk.comautocad 04.09.2012 - Загл. с экрана.
.equ __i2c_port=0PORTC
.equ __lcd_port=0PORTD
uns часы минуты секунды
В лесу родилась елочка
В траве сидел кузнечик
void delay_note (unsigned int delay)
uns Код длительности
uns Временная переменная
cnt=0; На начало мелодии
while (melody[cnt]!=0)
if (PINB.6==0) Stop ALARM
freqnote = tmp&0 Код ноты
delaynote = (tmp>>5)&0 Код длительности
if (freqnote!=0) Если не пауза
OCR1A=notefreq[freqnote];
de выдерживаем длительность ноты
TCCR1A=0 выключаем звук
de выдерживаем паузу
чтоб две ноты не сливались в одну
cnt++; Следующая нота
if (al_cl==0) режим Alarmclock(+)
if(sec>59) если сек = 60
m добавляем 1 к переменной "минута"
sec=0; зануляем переменную "секунда"
if(min>59) если мин = 60
hour++; добавляем 1 к переменной "час"
m зануляем переменную "минута"
if (hour>23) так как у нас часы имеют 24 часовый формат
при достижении 24 часов онулируем все переменные.
rtc_set_date(daymonthyear);
if ((month==2) && ((year%4)==0))
if (day==0) day = ma
rtc_get_t считать время
rtc_get_date(&day&month&year); считать дату
lcd_putchar(hour10+0
lcd_putchar(hour%10+0
lcd_putchar(min%10+0
lcd_putchar(sec%10+0
lcd_putchar(day%10+0
lcd_putchar(month10+0
lcd_putchar(month%10+0
lcd_putchar(year10+0
lcd_putchar(year%10+0
if(min_b>59) если мин = 60
hour_b++; добавляем 1 к переменной "час"
if (hour_b>23) так как у нас часы имеют 24 часовый формат
if ((month_b==2) && ((year%4)==0))
if (day_b==0) day_b = ma
if(day_b==0) day_b = ma
lcd_putchar(hour_b10+0
lcd_putchar(hour_b%10+0
lcd_putchar(min_b10+0
lcd_putchar(min_b%10+0
lcd_putchar(day_b10+0
lcd_putchar(day_b%10+0
lcd_putchar(month_b10+0
lcd_putchar(month_b%10+0
if (PINB.0==0) +1 HOUR
de задержка 14 сек. (для удобства) выбора
if (PINB.2==0) +10 MIN
if (PINB.3==0) +1 MIN
if (PINB.4==0) +1 DAY
if (PINB.5==0) +1 MONTH
if (PINB.7==0) ALARM CLOCK
if (PIND.3==0) -1 HOUR
I2C Bus initialization
rtc_set_date(daymonthyear); установить дату: деньмесяцгод
rtc_set_t установить время: часы минуты секунды
if (((hour==hour_b) && (min==min_b) && (day==day_b) && (month==month_b)) && (disAlarming==0)) срабатывание будильника
if (hour!=hour_b min!=min_b day!=day_b month!=month_b && disAlarming==1)

icon [113 Гундин]Титульник,Реферат.docx

Белорусский национальный технический университет
Кафедра «Информационно-измерительная техника и технологии»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
по дисциплине «Программирование цифровых устройств»
Тема: Часы с будильником
студентка 4-го курса 113319 группы
Пояснительная записка 37с. 7 рис. 14 источников 4 прил.
ЧАСЫ ATMEGA8 DS1307 WH1602D CODEVISIONARV МИКРОКОНТРОЛЛЕР.
Целью курсового проекта является разработка принципиальной электрической схемы прибора «часы с будильником» и написание исходного кода для управляющего микроконтроллера его взаимодействие со сторонними микросхемами – часами реального времени DS1307 и контроллером управляющим LCD-дисплеем. А также с пользователем путём подключения кнопок управления к порту микроконтроллера.
В работе произведён анализ разработанной схемы дано описание исходного кода проекта. Разработка велась в среде CodeVisionAVR.

Свободное скачивание на сегодня

Обновление через: 22 часа 40 минут
up Наверх