» » » » Изучаем микроконтроллеры AVR. Пишем следующую программу

Изучаем микроконтроллеры AVR. Пишем следующую программу

Автор: g1ar от 5-02-2013, 00:46

Написание 2й программы неизбежно как падение капитализма, и поэтому мы сегодня напишем программу для крутой мигалки. Нам нужно будет не только сконфигурировать порты, но и задействовать кнопку (для этого будем использовать циклы for, while).
Принцип работы: мк ждёт нажатия кнопки, после чего происходит поочередное мигание светодиодов с частотой в 2Гц.
Самый простой способ использовать кнопку -  выставить порт к которому она подключена на вход, либо сконфигурировать только определенный вывод. Я буду использовать порт В для кнопки и порт D для светодиодов.

#include <mega8.h>
#include <delay.h>
// Declare your global variables here
 int i; //переменная для цикла
void main(void)
{PORTB=0xff; //вкл подтягивающие резисторы
DDRB=0x00; //весь порт как вход
PORTD=0x00; //все нули(GND)
DDRD=0xff; //весь порт как выход
 while (PINB.0==1) //проверяем состояние кнопки, если = 1, то разомкнута
      {     
      }           
 while (PINB.0==0) //кнопка замкнута
      { 
while (1) //запускаем бесконечный цикл
      {
      for(i=0;i<3;i++) //цикл выполнится 3 раза, т.е. наш светодиод мигнет столько же
      { PORTD.0=1; //выставили в 1 нулевой выход порта В
      delay_ms(500); //500мс задержка 
      PORTD.0=0; //выставили в 0 нулевой выход порта В
      delay_ms(500); }
      
      for(i=0;i<3;i++)
      {PORTD.1=1; //выставили в 1 первый  выход порта D
      delay_ms(500);
      PORTD.1=0; //выставили в 0  первый  выход порта D
      delay_ms(500);}  
      break; //Фуллстоп 
      }     
      }           
}


Теперь рассмотрим пару моментов.
Почему, когда кнопка разомкнута на входе "1" ? В общем, как я уже говорил, на входах висит слабая единица, которая возникает там благодаря подтягивающим резисторам (вход подключён к источнику питания резистором на 100КОм), когда мы замыкаем кнопку, то все внимание переходит к ней т.к. ток течет по наименьшему сопротивлению, и эта единица уходит через кнопку (уровень напряжения на входе падает и мы получаем "0").

Комманда PINx.x отслеживает состояние только для ВХОДОВ!

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


Вот вам прошивка Project2.rar [395 b] (cкачиваний: 233) и скрин схемы:

Изучаем микроконтроллеры AVR. Пишем следующую программу

Ещё учтите, что при сборке реальной схемы, необходимо обеспечить светодиоды токоограничительными резисторами, в протеусе ничего не сгорит, а вот в реальной схеме wizard .

Продолжение следует ...

Теги: микроконтроллер, программа, первая, проект, codevisin, atmega, avr

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Вторник
25-04-2017
21:28
Поиск по сайту

Профиль
Здравствуйте Гость


Логин:
Пароль:
Поиск документации
Новое на форуме
вопрос по mk cd4017 [Болталка] Ответов 2, последний: 23-02-2017, 17:43 от skameykin22
датчик движения из видеокамеры [Болталка] Ответов 0, последний: 9-02-2017, 07:18 от Germ
платы расширения arduino due [Поиск аналогов] Ответов 0, последний: 9-02-2017, 07:03 от Germ
Часы пропеллер [Светоэффекты] Ответов 103, последний: 9-01-2017, 21:17 от Andrey
Болтовня про стробоскоп [Болталка] Ответов 9, последний: 6-01-2017, 01:00 от Germ
Новое в блогах
Если arduino не переходит в режим DFU 16.04.2017 - Если arduino не переходит в режим DFU (0)
Программатор ключей Ibutton RW1990 на arduino 05.05.2016 - Программатор ключей Ibutton RW1990 на … (3)
Регулятор громкости на Arduino и энкодере 31.03.2016 - Регулятор громкости на Arduino и энкод… (1)
Двухканальный ШИМ регулятор мощности на AtTiny 13 27.03.2016 - Двухканальный ШИМ регулятор мощности н… (0)
Резистивная клавиатура на Arduino pro micro 23.03.2016 - Резистивная клавиатура на Arduino pro … (0)
Статистика
Пользователей онлайн: 10
Гостей: 10
Реклама
Теги

Требуется для просмотраFlash Player 9 или выше.

Покаказать все теги
Социальные сети