» » » » Изучаем микроконтроллеры 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качиваний: 226) и скрин схемы:

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

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

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

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

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Понедельник
05-12-2016
23:47
Поиск по сайту

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


Логин:
Пароль:
Поиск документации
Новое на форуме
Усилитель НЧ Hi-Fi 32 Вт на TDA2050 [Усилители] Ответов 15, последний: 26-11-2016, 13:08 от DOSS
терменвокс [Разное] Ответов 2, последний: 22-11-2016, 12:54 от tuskinette
Часы пропеллер [Светоэффекты] Ответов 101, последний: 12-11-2016, 10:03 от AAArchi
помогите с воздушным трансформатором [Разное] Ответов 0, последний: 21-10-2016, 01:30 от Den_Ch1k
сабвуфер watson [Усилители] Ответов 1, последний: 31-07-2016, 19:30 от Tonich
Новое в блогах
Программатор ключей Ibutton RW1990 на arduino 05.05.2016 - Программатор ключей Ibutton RW1990 на … (0)
Регулятор громкости на Arduino и энкодере 31.03.2016 - Регулятор громкости на Arduino и энкод… (1)
Двухканальный ШИМ регулятор мощности на AtTiny 13 27.03.2016 - Двухканальный ШИМ регулятор мощности н… (0)
Резистивная клавиатура на Arduino pro micro 23.03.2016 - Резистивная клавиатура на Arduino pro … (0)
Зарядное устройство Li-ion аккумуляторов 22.01.2016 - Зарядное устройство Li-ion аккумулятор… (13)
Статистика
Пользователей онлайн: 30
Гостей: 29
Зарегистрированных: 1
Алесь5
Реклама
Теги

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

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