Код: Выделить всё
#include <mega8>
#include <delay>
int a; // переменная для хранения состояния порта В
void main(void)
{
//инициализируем порты
PORTB=0x3F;
DDRB=0x00;
PORTD=0x00;
DDRD=0xFF;
//********************
while (1)
{
a=PINB&0x3F; //считываем состояние порта и проверяем
//по маске биты порта к которым подключены
//кнопки.
//цикл определения какая кнопка нажата и выдача информации на соответствующий пин порта Д
switch (a) {
case 0b00111110 : PORTD.0=~PORTD.0; break;
case 0b00111101 : PORTD.1=~PORTD.1; break;
case 0b00111011 : PORTD.2=~PORTD.2; break;
case 0b00110111 : PORTD.3=~PORTD.3; break;
case 0b00101111 : PORTD.4=~PORTD.4; break;
case 0b00011111 : PORTD.5=~PORTD.5; break;
};
delay_ms (200);
a=0; // обнуляем переменную порта В
};
}