мелодію, задаючи логічні рівні на вході динаміка з певною частотою, значення яких зберігається в масиві. p align="justify"> Рядки 110-222: функція Display (). Обробляє значенням змінних часу, запобігаючи введення невірних значень часу (наприклад, якщо значення hour = 23, то натискаючи на кнопку В«+1 HourВ», значення hour обнуляється, інкрементіруем значення змінної day, після чого виводить інформацію на дисплей. Аналогічні операції функція проробляє, якщо йде робота з налаштуванням будильника.
Рядки 224-298: функція Setting (). Відповідає за обробку натискання кнопок, відповідним чином підлаштовуючи годинник або будильник. Також відповідає за зупинку будильника. p align="justify"> Рядки 300-354: функція main (). Виробляє початкову настройку портів введення виводу, значення регістрів таймера, включає переривання, після чого ініціалізує LCD дисплей і відразу ж висновок інформаційне повідомлення за допомогою функції About (). Потім ініціалізує роботу I2C шини і мікросхеми RTC DS1307, задає їй початкові значення дати і часу, після чого входить в нескінченний цикл, викликаючи функцію Settings () для обробки натиснення клавіш і перевіряючи необхідність включення будильника. br/>
ВИСНОВОК
У даному курсовому проекті була написана програма для мікроконтролера Atmega8 фірми ATMEL. Програма була написана на мові С і становить понад 350 рядків коду, що реалізують взаємодію зі сторонніми пристроями, разом створюючі пристрій годин з функцією будильника. Розробка програми велася в середовищі програмування CodeVisionAVR 1.25. p align="justify"> Спроектована принципова електрична схема і створена В«прошивкаВ» мікроконтролера перевірені за допомогою програмного продукту Proteus 7.10 SP0, що дозволяє симулювати роботу електричних схем. У процесі виконання проекту були зроблені обгрунтування вибору способу вирішення поставленого завдання, дано опису використовуваних компонентів. br/>
СПИСОК ВИКОРИСТОВУЮТЬСЯ ДЖЕРЕЛ
# "justify"> ДОДАТОК
# include
// I2C Bus functions
# asm
. equ __ i2c_port = 0x15; PORTC
. equ __ sda_bit = 4
. equ __ scl_bit = 5
# endasm
# include
# include
# asm
. equ __ lcd_port = 0x12; PORTD
# endasm
# include
# include
# include
# include
al_cl = 0; char lcd_buffer [33]; char hour = 10; char min = 2; char sec = 30; char day = 10; char month = 9; char year = 12; char hour_b = 12; char min_b = 0; char ...