Спойлер
#include <mega8.h>#include <delay.h>
void main(void)
{
PORTB=0b11111111;
DDRB= 0x00;
PORTC=0b00111111;
DDRC= 0x00;
PORTD=0b01111111;
DDRD= 0b10000000;
while (1)
{
if (PINB.0==0) //Иммитируем сигнал (A)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(500);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.1==0) //Иммитируем сигнал (B)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(400);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.2==0) //Иммитируем сигнал (C)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(400);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.3==0) //Иммитируем сигнал (D)//
{
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.4==0) //Иммитируем сигнал (E)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.5==0) //Иммитируем сигнал (F)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.6==0) //Иммитируем сигнал (G)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(300);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINB.7==0) //Иммитируем сигнал (H)//
{
PORTD.7=0;
delay_us(400);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINC.0==0) //Иммитируем сигнал (I)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINC.1==0) //Иммитируем сигнал (J)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINC.2==0) //Иммитируем сигнал (K)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINC.3==0) //Иммитируем сигнал (L)//
{
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINC.4==0) //Иммитируем сигнал (M)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PINC.5==0) //Иммитируем сигнал (N)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(300);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.0==0) //Иммитируем сигнал (O)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(400);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.1==0) //Иммитируем сигнал (P)//
{
PORTD.7=0;
delay_us(500);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.2==0) //Иммитируем сигнал (Q)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.3==0) //Иммитируем сигнал (R)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.4==0) //Иммитируем сигнал (S)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.5==0) //Иммитируем сигнал (T)//
{
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
if (PIND.6==0) //Иммитируем сигнал (U)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_ms(500);
};
};
};



