//При включении питания контроллера светодиод двигается в одну сторону.Если нажать кнопку,светодиод будет двигаться в другую сторону.
#include <avr/io.h>
#include "util/delay_basic.h"
int main(void)
{
unsigned char rab; //Переменная беззнаковая 1байт
ACSR|=(1<<ACD);
DDRD&=(~(1<<DDD0));
DDRB=0xFF;
PORTB=0xFF;
PORTD|=(1<<PD0);
while(1)
{
if (PIND&(1<<PIND0)) //Кнопка нажата?
{ //Нет.
rab=0b10000000; //Запись начального значения.
while(rab!=0) //Пока не ноль.
{
PORTB=rab^0xFF; //Запись в порт с инверсией xor.
rab=rab>>1; //Сдвиг вправо 1-бит
_delay_loop_2(10000);
}
}
else
{ //Да.
rab=0b00000001; //Запись начального значения.
while(rab!=0) //Пока не ноль.
{
PORTB=rab^0xFF; //Запись в порт с инверсией xor.
rab<<=1; //Сдвиг влево 1-бит
_delay_loop_2(10000);
}
}
}
}
НАЗАД Assembler AVR Assembler PIC ДАЛЕЕ