Програмування мікроконтролерів

Програма-симулятор для прийома та передачи даних з портів мікроконтролера, з попереднім їх налаштуванням на введення, виведення даних, встановлення переривань та управління часовими затримками. Розробка програмної схеми для реалізації функції світлофора.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 23.04.2014
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ВСТУП

В моєму завданні треба реалізувати функцію світлофору з регулюванням часу між сигналами. Для свого курсового проекту я обрав найбільш широко використовуваний варіант світлофору, це автомобільний світлофор.

Світлофор - пристрій оптичної сигналізації, призначений для регулювання руху людей, велосипедів, автомобілів і інших учасників дорожнього руху, поїздів залізниці та метрополітену, річкових і морських суден, трамваїв, тролейбусів, автобусів і всього транспорту. Використовується у всіх країнах світу.

Щодо їх конструкції, то світлофори бувають на лампах розжарювання і галогенних лампах та світлодіодні.

Блок управління світлофорних об'єктів:

Мовою дорожніх служб світлофорним об'єктом називаються кілька світлофорів, які управляються загальним електронним блоком і діють як єдине ціле. Найпростіший спосіб управління світлофором - електромеханічний, за допомогою кулачкового механізму. Більш просунуті електромеханічні контролери мали кілька програм роботи (кілька пакетів кулачків) - під різні навантаження перехрестя. У сучасних світлофорах застосовуються мікропроцесорні схеми. У великих містах, які страждають від «пробок», світлофорні об'єкти підключають до єдиної системи регулювання руху (як правило, через GSM-модем). Це дозволяє оперативно змінювати програми роботи світлофора (у тому числі тимчасово, на кілька годин або днів) і синхронізувати світлофорні об'єкти один з одним з точністю до секунд. ля проходу пішоходів через жваву трасу, а також на нерівнозначних перехрестях застосовуються контролери викличної дії, що дають зелений, коли із другорядного напрямку наближається машина (для цього під асфальтом розташовується індуктивний датчик), або коли пішохід натисне на кнопку.

1. РОЗРОБКА ПРОГРАМНОЇ СХЕМИ

Для реалізації функції світлофора було обрано мікроконтролерATMEL 90s83535. Даний мікроконтролер має 4 порти для роботи з даними, в своїй роботі я задіяв 2 порти, обидва були налаштовані на вивід даних. За допомогою одного я подавав сигнали на різнокольорові світло-діоди, з певною затримкою, таким чином була реалізована функція світлофора. А за допомогою іншого я подавав комбінації при яких загорався той чи інший світло-діод мого світлофора(див. рис. 1.1).

Рис. 1.1. програмна схема для реалізації функції світлофора.

2. ПРОГРАМА-СИМУЛЯТОР МІКРОКОНТРОЛЕРНИХПРИСТРОЇВ

Для побудови схеми було використано програмне середовище Proteus VSM- програма-симулятор мікроконтролернихпристроїв. А якщо точніше, тоProteus 7.7 ServicePack 2.

Програмне середовище Proteusна рис 2.1.

Рис. 2.1. Програмне середовище Proteus.

Зверху ми бачимо панель меню з головними налаштуваннями та функціями(див. рис 2.2).

Рис. 2.2. Верхня панель-меню.

Зліва знаходиться панель часто використовуваних, та основних компонентів для побудови схем (див. рис 2.3).

Рис. 2.3 Панель компонентів

І знизу ми бачимо панель керування симуляцією, тобто, роботою схеми. Це запуск, покрокова робота схеми, пауза і стоп(див. рис 2.4). Також справа від них знаходиться рядок стану, де відображається кількість повідомлень щодо несправності, чи якихось інших випадків, що виникають під час роботи схеми.

Рис. 2.4 Панель управління симуляцією

І саме головне, це підключення .hex файлу до нашого мікроконтролеру. Цей процес реалізований дуже просто, достатньо два рази клацнути на наш мікроконтролер і у вікні налаштувань навпроти «Programfile» вказати шлях до створеного .hex файлу(див рис 2.5).

Рис. 2.5 Вікно характеристик мікроконтролера

3. СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ МІКРОКОНТРОЛЕРІВ

Програмна частина мого завдання реалізовувалась в програмному середовищі CodeVisionAVRv. 2.05.3 Standart (див. рис 3.1).

Рис. 3.1 Програмне середовище CodeVisionAVR

Зверху ми бачимо знайому нам всім панель меню з основними функціями.

Зліва знаходиться панель, в якій відображається компоненти нашого проекту, а сама підключені заготовочні файли, бібліотеки, файли вихідного коду тощо.

З правого боку є панель для швидкої вставки заготовлених блоків циклів, операторів порівняння тощо. Це пришвидшує, та спрощую написання програмного коду.

Знизу є панель помилок та попереджень, як і в багатьох програмних середовищах для розробки програмного забезпечення.

Після запуску процесу компіляції і створення потрібного нам .hex файлу, для роботи нашої схеми, з'являється вікно з повідомленням про результат компіляції нашого програмного коду (див рис 3.2).

світлофор мікроконтролер схема порт

Рис. 3.2 Результат компіляції програмного коду

Якщо ж під час компіляції були знайдені помилки в програмному коді, то це вікно буде виглядати дещо інакше.

4. РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Отже, мною було розроблено програму для реалізації програмної частини завдання, а саме функції світлофора. Як я писав вище, я задіяв два порти, в саме порт А і портD. Обидва порти налаштовані на вивід інформації.

На порт А подавалась комбінація для загорання того чи іншого кольорового світло-діода. На порт Dподавалась та ж комбінація і ця комбінація відображалась на 8 світло-діодах, таким чином імітувалась робота з LPT портом. Тобто, приходить відповідна комбінація на LPT порт, загораються певні світло-діоди, і згідно прийнятої комбінації загорається один із світло-діодів світлофора. Все це відбувається з певною затримкою.

Блок-схема для програми:

Програмний код на мові С(Сі):

#include<90s8535.h>

#include<delay.h>

voidred();

voidyellow();

voidgreen();

voidmain(void)

{

DDRA=0b11111111;// настраиваем порт А на вывод

DDRD=0b11111111;// настраиваем порт D на вывод

GIMSK=0b11111111;// разрешаемпрерывания

while(1)

{

//имитацияроботысветофора

red();

yellow();

green();

}

}

voidred()

{

//гориткрасный

PORTA=0b00010101;

PORTD=0b00010101;

delay_ms(5000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

}

voidyellow()

{

//горитжелтый

PORTA=0b00101010;

PORTD=0b00101010;

delay_ms(5000);

//мигаетжелтый

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

PORTA=0b00101010;

PORTD=0b00101010;

delay_ms(1000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

PORTA=0b00101010;

PORTD=0b00101010;

delay_ms(1000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

PORTA=0b00101010;

PORTD=0b00101010;

delay_ms(1000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

}

voidgreen()

{

//горитзеленый

PORTA=0b11000000;

PORTD=0b11000000;

delay_ms(5000);

//мигаетзеленый

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

PORTA=0b11000000;

PORTD=0b11000000;

delay_ms(1000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

PORTA=0b11000000;

PORTD=0b11000000;

delay_ms(1000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

PORTA=0b11000000;

PORTD=0b11000000;

delay_ms(1000);

PORTA=0b00000000;

PORTD=0b00000000;

delay_ms(250);

}

ВИСНОВКИ

Під час роботи над курсовим проектом було застосовано знання з програмування мікроконтролерів, а саме прийом та передача даних з портів мікроконтролера, з попереднім їх налаштуванням на введення/виведення даних, встановлення переривань та управління часовими затримками.

Тобто, було реалізовано функцію світлофора за допомогою відповідного програмування мікроконтролеа. В моєму випадку, в якості світлофора виступали 3 колорьових світлодіода, що загорались з певною часовою затримкою, що регулювалась запрограмованим мікроконтролером.

Для написання прошивки для використовуваного мікроконтролера я користувався знаннями з мови програмування С(Сі).

Також була проведена робота з іншими джерелами щодо роботи та програмування мікроконтролері.

Размещено на Allbest.ur


Подобные документы

  • Характеристика особливостей мікроконтролерів AVR сімейства Mega: пам'ять даних на основі РПЗПЕС, можливість захисту від читання і модифікації пам'яті програм. Аналіз проблем побудови цифрових пристроїв на МК та ПЛІС. Розгляд портів введення-виведення.

    курсовая работа [4,0 M], добавлен 05.12.2014

  • Складання блок-схеми і програми обчислення значення функції з заданою точністю та програми табулювання функції з заданим кроком. Обчислення двох значень поліному за допомогою схеми Горнера. Програма введення вхідних даних з клавіатури і з файлу ZAD4.DAT.

    контрольная работа [168,6 K], добавлен 29.09.2010

  • Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.

    лекция [445,0 K], добавлен 24.07.2014

  • Короткий опис мікроконтролера ATmega6450, його особливості та опис виводів. Розробка принципової схеми стенду. Написання програми на мові СІ при використанні програмного середовища CodeVisionAVR. Перепрограмування мікроконтролера ATmega6450 сімейства AVR.

    курсовая работа [491,2 K], добавлен 15.05.2013

  • Виявлення основних сутностей предметної області. Побудова схеми реляційної бази даних. Вбудовані процедури і тригери. Опис архітектури програмної системи і концептуальної моделі бази даних, програмної реалізації та інтерфейсу користувача додатку.

    курсовая работа [4,3 M], добавлен 05.12.2012

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

  • Правила відтворення даних при введенні. Введення-виведення даних та їх формування. Буферизований вихідний потік для повідомлення про помилки. Управління форматами за допомогою компонентних функцій класу ios. Визначення користувальницьких маніпуляторів.

    реферат [16,5 K], добавлен 23.01.2011

  • Розробка візуальної програми, яка містить головне меню та забезпечує введення-виведення даних у діалоговому вікні. Створення панелі інструментів, рядку стану. Реалізація функції мовою Assembler. Створення та підключення бібліотеки Dll. Робота з файлами.

    курсовая работа [370,9 K], добавлен 01.04.2016

  • Поняття бази даних та основне призначення системи управління. Access як справжня реляційна модель баз даних. Можливості DDE і OLE. Модулі: Visual Basic for Applications програмування баз даних. Система управління базами даних Microsoft SQL Server 2000.

    реферат [41,2 K], добавлен 17.04.2010

  • Розрахунок часових затримок для формування імпульсів у програмі передачі даних через послідовний порт мікроконтролера, а також розрахунок швидкості передачі даних через послідовний порт. Алгоритм підпрограми обробки переривань від послідовного порту.

    курсовая работа [29,9 K], добавлен 07.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.