Вы вошли на сайт, как Гость
Регистрация

Вывод некоторого числа по нажатию кнопки

Программные примеры для микроконтроллеров AVR - AVRStudio
(Вывод некоторого числа по нажатию кнопки)

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

К порту А подключены кнопочные переключатели, к порту В — светодиоды. Пока не нажата какая-либо кнопка, светоиндикаторы загораются по очереди, создавая как бы "бегущую точку". В то же время подсчитывается некоторое число, которое при нажатии любой кнопки отображается в двоичной форме с помощью светоиндикаторов, а также выводится в символьном виде через приемопередатчик UART.

Примечание: при компиляции проекта требуется добавить в проект следующие библиотеки: "avr/io.h", "avr/delay.h", "stdio.h".

char n;
char c;

int main (void)
{
  UBRR = 25;
  UCR = 0x18;
  DDRA = 0x00; 
  PORTA = 0xFF; 
  DDRB = 0xFF; 
  while (1)
  {
    c = 1;
	while(PINA == 0xFF) 
	{
	  if (c == 0) c = 1;
	  PORTB = ~c;
	  _delay_loop_2(100);
	  n++;
	  c = c << 1;
	}
	printf("%d", n);
	PORTB = ~n;
	_delay_loop_2(1000);
	PORTB = 0xFF;	
  }
}

Файлы проекта можно скачать здесь: