Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kyrsova_robota.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

Void main() // главная ф-ия

{

unsigned char k; //определение вспомогательной переменной k

DDRB.0=1; // определение ножки 0 порта B на выход

PORTB.0=0; // подача на ножку 0 порта B логического 0

DDRB.1=1; // определение ножки 1 порта B на выход

PORTB.1=0; // подача на ножку 1 порта B логического 0

DDRB.2=1; // определение ножки 2 порта B на выход

PORTB.2=0; // подача на ножку 2 порта B логического 0

DDRB.4=0; // определение ножки 1 порта B на вход

PORTB.4=0; // Z состояние - высокоомный вход

PORTB.0=PINB.4; //присвоить PORTB.0 состояние PINB.4

PORTB.2=PINB.4; //присвоить PORTB.2 состояние PINB.4

PORTB.1=~PINB.4; //присвоить PORTB.1 инверсию состояния PINB.4

while(1) //безконечный цикл

{

// мигание с периодом 600 мс при отжатой кнопке(когда 1)

if(PINB.4==1) // при отжатой кнопке, когда на входе 1

{

k=0; //обнулить переменную счета

while(PINB.4==1) //делать цикл, пока отжата кнопка

{

delay_ms(10); //задержка 10 миллисекунд

k++; //увеличить переменную счета на 1

if(k==30) // если переменная счета достигла 30 (30 проход цикла)

{

k=0; //обнулить переменную счета

PORTB.0 ^= 1; // инвертируем состояние выходов

PORTB.1 ^= 1;

PORTB.2 ^= 1;

}

}

}

else // мигание с периодом 100 мс при нажатой кнопке(когда 0)

{

k=0; //обнулить переменную счета

while(PINB.4==0) //делать цикл, пока нажата кнопка

{

delay_ms(10); //задержка 10 миллисекунд

k++; //увеличить переменную счета на 1

if(k==5) // если переменная счета достигла 5 (5 проход цикла)

{

k=0; //обнулить переменную счета

PORTB.0 ^= 1; // инвертируем состояние выходов

PORTB.1 ^= 1;

PORTB.2 ^= 1;

}

}

}

}

}

Эта программа, будучи загруженной, в микроконтроллер выполняет нужные требования поставленной задачи.

Выводы и рекомендации

Трудности, возникающие у разработчика при проектировании пятого или десятого контроллера, меркнут на фоне проблем, с которыми сталкивается новичок. Поэтому этот курсовой проект поможет новичкам разобраться, что и как делать и с чего начать.

Микроконтроллеры семейства AVR имеют очень широкий спектр возможностей и дополнительной периферии. На микроконтроллерах этого семейства очень удобно и легко создавать свои проекты.

Благодаря приобретенной информации и навыкам возможна в дальнейшем разработка более сложных устройств на основе микроконтроллеров.

Список используемой литературы

  1. «Применение микроконтроллеров AVR: Схемы, алгоритмы, программы», В. Н. Баранов, Москва, Издательский дом «Додэка - ХХІ» 2004

  2. «Микроконтроллеры семейства AVR фирмы Atmel», В. В. Гребнев, ИП РадиоСофт, 2002

  3. «Микроконтроллеры AVR семейства Classic фирмы ATMEL», А. В. Евстифеев, Москва, Издательский дом «Додэка - ХХІ» 2006

  4. « Микроконтроллеры AVR: от простого к сложному», М. С. Голубцов, Москва, СОЛОН-Пресс, 2003

  5. «Микроконтроллеры AVR семейства Mega фирмы ATMEL», А. В. Евстифеев, Москва, Издательский дом «Додэка - ХХІ» 2007

  6. «Микроконтроллеры AVR семейства Tiny и Mega фирмы ATMEL», А. В. Евстифеев, Москва, Издательский дом «Додэка - ХХІ» 2005

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]