//Если нажать кнопку и отпустить - загориться светодиод. Если повторно нажать и отпустить кнопку - светодиод погаснет.
#include <avr/io.h>
int main(void)
{
    DDRD=0x00;
    DDRB=0xFF;
    PORTB=0xFF;
    PORTD=0x7F;
    ACSR=0x80;
    while(1)
    {
        while((PIND&(1<<PIND0))) //PIND0-это просто 0.Сдвинуть влево на 0 бит 1-цу,
        {                        //and с PIND.Если в PIND 0-й бит 1,то бесконечный
        }                        //цикл,если 1,то выходим из цикла.
        if ((PINB&(1<<PINB0)))   //Если после and 1
        {
            PORTB&=(~(1<<PB0));  //то скидываем бит
        }
        else
        {
            PORTB|=(1<<PB0);     //иначе подымаем 1-й бит
        }
        while(!(PIND&(1<<PIND0)))//Результат выражения такойже как и первый выше,
        {                        //но со знаком not(!) всё наоборот.
        }                
    }
}

 

 

 

НАЗАД               Assembler AVR               Assembler PIC                 ДАЛЕЕ