Вівторок, 12.12.2017, 05:24
Приветствую Вас Гість | RSS

Radiomanoff+

Меню сайта
Форма входа
Календарь
«  Грудень 2017  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Бегущие огни на Attiny 13

Простейший проект - "Бегущие огни".Светодиоды зажигаются поочередно начиная с D1

Схема:



Программа на СИ :

1 вариант

#include<avr/io.h>
#define F_CPU 128000UL
#include<util/delay.h>

int main(void)
{

DDRB = 0b11111111;//Объявить как выходы
PORTB = 0b11111111;//Выключить светодиоды,

  while(1)
 {
    _delay_ms(50);//задержка 50 мс
    PORTB = 0b11111110;//вкл 1 светодиод PB0

    _delay_ms(50);//задержка 50 мс
    PORTB = 0b11111101;//вкл 2 светодиод PB1

    _delay_ms(50);//задержка 50 мс
    PORTB = 0b11111011;//вкл 3 светодиод PB2

    _delay_ms(50);//задержка 50 мс
    PORTB = 0b11110111;//вкл 4 светодиод PB3

    _delay_ms(50);//задержка 50 мс
    PORTB = 0b11101111;//вкл 5 светодиод PB4

  }
}


2 вариант

#include<avr/io.h>
#define F_CPU 128000UL
#include<util/delay.h>

int main(void)

{

 unsigned char rab;

 DDRB = 0b11111111;//Объявить как выходы
 PORTB = 0b11111111;//Выключить светодиоды,

 while(1)
  {
   rab = 0b00000001;  // Запись начального значения

   while (rab!=32) 
        { 

          PORTB=rab^0xFF;  // Запись в порт с инверсией
          rab = rab << 1;  // Сдвиг разрядов
          _delay_ms (50);  // Задержка на 200 мсек

        }
   }
}



Архив записей
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0