Параметры, характеристики, схемы и назначение выводов микроконтроллера. Разработка программы, реализующей взаимодействие со сторонними устройствами, вместе образующих устройство часов с функцией будильника. Электрическая схема разрабатываемого устройства.
В современном мире ни один электрический прибор не обходится без использования микроконтроллеров. Так, в качестве управляющего микроконтроллера был выбрал Atmega8 фирмы ATMEL. В качестве знакосинтезирующего ЖК-дисплея выбран WH1602D фирмы Winstar. Помимо этого, важным элементом прибора является микросхема, носящая название «часы реального времени»(RTC) модели DS1307 фирмы Dallas Semiconductor, которые обеспечивают точный ход разрабатываемых часов.23 порта ввода/вывода, объединенных в 3 группы: Порт В (PB0 - РВ7): Два вывода (РВ6 и PB7) используются для подключения кварцевого резонатора. Порт С (PC0 - РС6 : 7 выводов): Порты PC0 - РС5 можно использовать в качестве аналоговых входов. Порт D (PD0 - PD7 : 8 выводов): Эти порты можно использовать для общего применения. 17 MOSI Вход/Выход вход данных в режиме Slave для SPI и ISP / выход данных в режиме Master для SPI и ISP 18 MISO Вход/Выход вход данных в режиме Master для SPI и ISP / выход данных в режиме Slave для SPI и ISPЧасы реального времени с последовательным интерфейсом DS1307 - это малопотребляющие полные двоично-десятичные часы-календарь, включающие 56 байтов энергонезависимой статической ОЗУ. Часы-календарь отсчитывают секунды, минуты, часы, день, дату, месяц и год. Часы работают как в 24-часовом, так и в 12-часовом режимах с индикатором AM/PM.часы реального времени (RTC) отсчитывают секунды, минуты, часы, дату месяца, месяц, день недели и год с компенсацией високосного года, действительной до 2100 года; Выводы часов расположены следующим образом: Рисунок 1.2 - Расположение выводов DS1307 в DIP корпусе Карта адресов для RTC и регистров ОЗУ представлена на рисунке. Регистры ОЗУ расположены в ячейках адресов от 08h до 3Fh. Информация от часов и календаря получается чтением соответствующих байтов регистра.Аналоги этого контроллера или совместимые с ним по интерфейсу и командному языку выпускают множество фирм, среди которых: Epson, Toshiba, Sanyo, Samsung, Philips. Еще большее число фирм производят ЖКИ-модули на базе данных контроллеров. Эти модули можно встретить в самых устройствах: измерительных приборах, медицинском оборудовании, промышленном и технологическом оборудовании, офисной технике - принтерах, телефонах. Алфовитно-цифровые ЖКИ-модули представляют собой недорогон и удобное решение, позволяющее сэкономить время и ресурсы при разработке новых изделий, при этом обеспечивают отображение большого объема информации при хорошей различимости и низком энергопотреблении. В рамках одного формата могут производиться ЖКИ-модули нескольких конструктиров, отличающиеся как габаритами ЖКИ, так и размерами платы и посадки.К порту D контроллера подключен знакосинтезирующий ЖКИ дисплей WH1602D следующим образом: нулевой пин порта D подключен к входу RS - командный флаг - если подать 0, то мы посылаем команду. Второй пин на вход E - импульс - чтобы модуль начал обработку данных с остальных контактов, необходимо установить 1 на время подачи сигналов. Необходимо этот контакт подключить к минусу через резистор номиналом 4.7 КОМ(номинал определен опытным путем с помощью переменного резистора). Порт используется для настройки часов и будильника, а также для подачи информационного сигнала на динамик. Так, к нулевому пину порта подключена кнопка « 1 Hour», которая добавляет 1 час к значению времени(при замыкании на пин подается низкий уровень).Реализовать инкрементирование секунды можно несколькими способами: 1. Используя встроенный в микроконтроллер таймер, сконфигурированный на вызов прерывания по совпадению. В первом случае необходимо настроить таймер на определенную частоту, кратную основной частоте микроконтроллера (в нашем случае она равна 4 МГЦ). Для вызова прерывания необходимо задаться каким-либо числом для сравнения. Если взять число 7812(вдвое больше частоты работы таймера), то прерывание будет срабатывать каждые две секунды(поскольку Гц = 1/с, то число 3906 означает число тактов в секунду.Строки 43-50: функция, вызываемая по прерыванию таймера. Обнуляет значение счетчика, изменяет изначально заданное число для сравнения(поскольку при инициализации на дисплей выводится информационное сообщение и во время его отображение прерывание срабатывать не должно) и вызывает функцию Display(); Выводит на дисплей «бегущую» строку с информацией об устройстве и ее авторе. Строки 69-74: функция Delay_note(). Обрабатывает значением переменных времени, предотвращая ввод неверных значений времени(например, если значение hour=23, то нажимая на кнопку « 1 Hour», значение hour обнуляется, инкрементируя значение переменной day, после чего выводит информацию на дисплей.Программа была написана на языке С и составляет более 350 строк кода, реализующих взаимодействие со сторонними устройствами, вместе образующие устройство часов с функцией будильника.
План
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.1 Микроконтроллер Atmega8 фирмы Atmel6
1.2 Часы реального времени DS1307 фирмы Dallas Semiconductor
1.3 LCD дисплей WH1602D фирмы Winstar
2.АНАЛИЗ ПРИНЦИПА ДЕЙСТВИЯ РАЗРАБОТАННОЙ СХЕМЫ
3.РЕАЛИЗАЦИЯ ПРОГРАММНОЙ ЧАСТИ
3.1 Описание работы программы
3.2 Описание исходного кода программы
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ
Вывод
В данном курсовом проекте была написана программа для микроконтроллера Atmega8 фирмы ATMEL. Программа была написана на языке С и составляет более 350 строк кода, реализующих взаимодействие со сторонними устройствами, вместе образующие устройство часов с функцией будильника. Разработка программы велась в среде программирования CODEVISIONAVR 1.25.
Спроектированная принципиальная электрическая схема и созданная «прошивка» микроконтроллера проверены с помощью программного продукта Proteus 7.10 SP0, позволяющего симулировать работу электрических схем. В процессе выполнения проекта были сделаны обоснования выбора способа решения поставленной задачи, даны описания используемых компонентов.