Автор работы: Пользователь скрыл имя, 24 Ноября 2013 в 15:05, курсовая работа
Степень интеграции элементов в микросхемах на сегодняшний день очень высока. В результате этого развития появились многофункциональные микросхемы, называемые микроконтроллерами. Они могут объединять себе микропроцессор, АЛУ, порты ввода/вывода, ПЗУ, ОЗУ и т. д. С помощью таких микросхем можно создавать сложные системы управления технологическими процессами. В качестве объектов управления могут быть практически любые устройства, в том числе и трехпозиционные термостаты. Цель данной курсовой работы ознакомиться с устройством микроконтроллера ATmega 128 и получить навыки разработки управляющих устройств. А так же укрепить знания в области программной части микроконтроллера и его программирования.
1. Введение………………………………………………………………………3
2. Содержание задания (исходные данные)…………………………………...4
3. Описание элементов системы……………………………………………….5
3.1 Описание объекта управления……………………………………………..5
3.2. Описание микроконтроллера ATmega128………………………………..5
4. Описание системы индикации……………………………………………...15
4.1 Светодиоды ………………………………………………………………...15
4.2 Описание кнопок…………………………………………………………...15
5. Алгоритм управления………………………………………………………..16
6. Заключение…………………………………………………………………...17
7. Используемая литература……………………………………………………18
{
portd &=~_bv(PD1); delay_ms(ms);
}
//функция включения синего светодиода
void ledon0 (int ms)
{
portd &=~_bv(PD2); delay_ms(ms);
}
//функция выключения красного светодиода
void ledoff0(int ms)
{
portd |= _bv(PD0); delay_ms(ms);
}
//функция выключения зеленого светодиода
void ledoff0(int ms)
{
portd |= _bv(PD1); delay_ms(ms);
}
//функция выключения синего светодиода
void ledoff0(int ms)
{
portd |= _bv(PD2); delay_ms(ms);
}
int main (void) //главная программа
{
//конфигурирование на вывод порта D
DDRD |= _BV(PD0); //конфигурирование битов
DDRD |= _BV(PD1); //PD0, PD1, PD2
DDRD |= _BV(PD2); //на выход
PORTD = 0xFF; //включаем подтягивающие резисторы
pp=1000; //задаем скорость зажигания /гашения
for(;;)//бесконечный цикл
{
//зажигаем красный светодиод
portd &=~_bv(PD0);
//плавное зажигание зеленого светодиода
for (i=20;i<pp;i++)
{
p=pp-i; ledon1(i); ledoff1(p);
}
//зеленый светодиод остается гореть
portd &=~_bv(PD1);
//плавное гашение красного светодиода
for (i=20;i<pp;i++)
{
p=pp-i; ledon0(p); ledoff0(i);
}
//зеленый светодиод остается гореть
portd &=~_bv(PD1);
//плавное зажигание синего светодиода
for (i=20; i<pp; i++)
{
p=pp-i; ledon2(i); ledoff2(p);
}
//синий светодиод остается гореть
portd &=~_bv(PD2);
//плавное гашение зеленого светодиода
for (i=20; i<pp; i++)
{
p=pp-i; ledon1(p); ledoff1(i);
}
//синий светодиод остается гореть
portd &=~_bv(PD2);
//плавное зажигание красного светодиода
for (i=20; i<pp; i++)
{
p=pp-i; ledon0(i); ledoff0(p);
}
//красный светодиод остается гореть
portd &=~_bv(PD0);
//плавное гашение синего светодиода
for (i=20; i<pp; i++)
{
p=pp-i; ledon2(p); ledoff2(i);
}
}
}
Информация о работе Разработка микропроцессорного устройства управления