#include <mega8.h>
#include <delay.h>
/////////////////////  01011001010101011011 - 1
/////////////////////  01010011011010010101 - 2
/////////////////////  01101010100101010011 - 3
/////////////////////  00110110101010011001 - 4
/////////////////////  01011010110110010011 - 5
/////////////////////  01010101101010101011 - 6

char a=0,x=0,y=0,z=0,c=144,s=0,d=0,v=72;  // v = 1/2 c - вероятность 
char b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20;   
void main(void)
{
PORTC=0b00000000;
DDRC=0b00000000;
PORTD=0b00000000;
DDRD=0b11111111;
/////////////////////////////// задержка вкл
mesto_98:
delay_ms(3);

/////////////////////////////// ошибка  кода  
mesto_99:
PORTD.0=0;
/////////////////////////////// шум > сброс
x=x+1;
if (x>1) { 
PORTD=0b00000000;    
x=1;     
     };
/////////////////////////////////////////// вкл
while (1)
      { 
if (PINC.4==1) {///////// пуск 
y=0;
z=0;
goto mesto_1;  
     };
///////////////////////// нет сигнала > сброс
if (PINC.4==0) { 
y=y+1;         
     };
if (y>50) {   
z=z+1;
y=0;
     };
if (z>50) {   
z=0;
PORTD=0b00000000; /////// нет сигнала 
     };
     };



///////////////////////////////////// пуск код  
mesto_1:         
 
////////////////////////////// 1        
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b1=1;         
     };
if (d<v) { 
b1=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 2         
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b2=1;         
     };
if (d<v) { 
b2=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 3   
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b3=1;         
     };
if (d<v) { 
b3=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 4
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b4=1;         
     };
if (d<v) { 
b4=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 5       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b5=1;         
     };
if (d<v) { 
b5=0;         
     };
d=0;
PORTD.0=0;    
////////////////////////////// 6       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b6=1;         
     };
if (d<v) { 
b6=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 7       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b7=1;         
     };
if (d<v) { 
b7=0;         
     };
d=0;
PORTD.0=0;         
////////////////////////////// 8       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b8=1;         
     };
if (d<v) { 
b8=0;         
     };
d=0;
PORTD.0=0;          
////////////////////////////// 9      
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b9=1;         
     };
if (d<v) { 
b9=0;         
     };
d=0;
PORTD.0=0;    
////////////////////////////// 10       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b10=1;         
     };
if (d<v) { 
b10=0;         
     };
d=0;
PORTD.0=0;          
////////////////////////////// 11       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b11=1;         
     };
if (d<v) { 
b11=0;         
     };
d=0;
PORTD.0=0;  
////////////////////////////// 12       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b12=1;         
     };
if (d<v) { 
b12=0;         
     };
d=0;
PORTD.0=0;         
////////////////////////////// 13      
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b13=1;         
     };
if (d<v) { 
b13=0;         
     };
d=0;
PORTD.0=0;     
////////////////////////////// 14      
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b14=1;         
     };
if (d<v) { 
b14=0;         
     };
d=0;
PORTD.0=0;        
////////////////////////////// 15       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b15=1;         
     };
if (d<v) { 
b15=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 16       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b16=1;         
     };
if (d<v) { 
b16=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 17      
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b17=1;         
     };
if (d<v) { 
b17=0;         
     };
d=0;
PORTD.0=0;    
////////////////////////////// 18      
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b18=1;         
     };
if (d<v) { 
b18=0;         
     };
d=0;
PORTD.0=0;          
////////////////////////////// 19       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b19=1;         
     };
if (d<v) { 
b19=0;         
     };
d=0;
PORTD.0=0;
////////////////////////////// 20       
PORTD.0=1;
for (a=0;a<c;a++) {
if (PINC.4==0) { 
d=d+1;         
     };
     }; 
if (d>v) { 
b20=1;         
     };
if (d<v) { 
b20=0;         
     };
d=0;
PORTD.0=0;

/////////////////////////////////// вкл 1
if (b1==0&&b2==1&&b3==0&&b4==1&&b5==1&&b6==0&&b7==0&&b8==1&&b9==0&&b10==1&&b11==0&&b12==1&&b13==0&&b14==1&&b15==0&&b16==1&&b17==1&&b18==0&&b19==1&&b20==1) { 
 PORTD=0b00000011;
 s=1;
     }
/////////////////////////////////// вкл 2
if (b1==0&&b2==1&&b3==0&&b4==1&&b5==0&&b6==0&&b7==1&&b8==1&&b9==0&&b10==1&&b11==1&&b12==0&&b13==1&&b14==0&&b15==0&&b16==1&&b17==0&&b18==1&&b19==0&&b20==1) {      
 PORTD=0b00000101;
s=1;
     }
/////////////////////////////////// вкл 3
if (b1==0&&b2==1&&b3==1&&b4==0&&b5==1&&b6==0&&b7==1&&b8==0&&b9==1&&b10==0&&b11==0&&b12==1&&b13==0&&b14==1&&b15==0&&b16==1&&b17==0&&b18==0&&b19==1&&b20==1) { 
 PORTD=0b00001001;
s=1;
     }
/////////////////////////////////// вкл 4
if (b1==0&&b2==0&&b3==1&&b4==1&&b5==0&&b6==1&&b7==1&&b8==0&&b9==1&&b10==0&&b11==1&&b12==0&&b13==1&&b14==0&&b15==0&&b16==1&&b17==1&&b18==0&&b19==0&&b20==1) { 
 PORTD=0b00010001;
s=1;
     }
/////////////////////////////////// вкл 5
if (b1==0&&b2==1&&b3==0&&b4==1&&b5==1&&b6==0&&b7==1&&b8==0&&b9==1&&b10==1&&b11==0&&b12==1&&b13==1&&b14==0&&b15==0&&b16==1&&b17==0&&b18==0&&b19==1&&b20==1) { 
 PORTD=0b00100001;
s=1;
     }
/////////////////////////////////// вкл 6
if (b1==0&&b2==1&&b3==0&&b4==1&&b5==0&&b6==1&&b7==0&&b8==1&&b9==1&&b10==0&&b11==1&&b12==0&&b13==1&&b14==0&&b15==1&&b16==0&&b17==1&&b18==0&&b19==1&&b20==1) { 
 PORTD=0b01000001;
s=1;
     }
/////////////////////////// проверка  
if (s==1) { 
s=0;
x=0;
goto mesto_98;
     }
////////////////////////// ошибка кода
goto mesto_99;
 };

