Friday, May 17, 2013

FASTEST FINGER FIRST USING ATMEGA32

HEY GUYS  I HAD DEVELOPED CODE FOR FASTEST FINGER FIRST USING ATMEGA 32 AND USED WIN-AVR ENVIRONMENT FOR CODING.PLEASE GO THROUGH IT.


#include <avr/io.h>
#include <util/delay.h>

void ProcessPressedButton(int ButtonPressed);
void ProcessReleasedButton(int ButtonReleased);
int Pressed_Confidence_Level[2];
int Released_Confidence_Level[2];
int Pressed[2];
int LEDNumber[2];
int main(void)
{
DDRB = 0b01111111;
DDRD = 0b01111111;
PORTB = 0b10000000;
PORTD = 0b10000000;

while (1)
{
if (bit_is_clear(PINB, 7))
{
ProcessPressedButton(0);
}
else
{
ProcessReleasedButton(0);
}
if (bit_is_clear(PIND, 7))
{
ProcessPressedButton(1);
}
else
{
ProcessReleasedButton(1);
}
}
}

void ProcessPressedButton(int ButtonPressed)
{
Pressed_Confidence_Level[ButtonPressed] ++;
if (Pressed_Confidence_Level[ButtonPressed] > 500)
{
if (Pressed[ButtonPressed] == 0)
{
Pressed[ButtonPressed] = 1;
if (ButtonPressed == 0) PORTB |= 1 << LEDNumber[ButtonPressed];
if (ButtonPressed == 1) PORTD |= 1 << LEDNumber[ButtonPressed];
LEDNumber[ButtonPressed] ++;
if (LEDNumber[ButtonPressed] >6)
{
for(int i=0;i < 10;i++)
{
if (ButtonPressed == 0) PORTB = 0b11111111;
if (ButtonPressed == 1) PORTD = 0b11111111;
_delay_ms(10);
if (ButtonPressed == 0) PORTB = 0b10000000;
if (ButtonPressed == 1) PORTD = 0b10000000;
_delay_ms(10);
}
LEDNumber[0] = 0;
LEDNumber[1] = 0;
PORTB = 0b10000000;
PORTD = 0b10000000;
}
}
Pressed_Confidence_Level[ButtonPressed] = 0;
}
}

void ProcessReleasedButton(int ButtonReleased)
{
Released_Confidence_Level[ButtonReleased] ++;
if (Released_Confidence_Level[ButtonReleased] > 500)
{
Pressed[ButtonReleased] = 0;
Released_Confidence_Level[ButtonReleased] = 0;
}
}

Digital lock using arduino uno

HEY GUYS THIS IS THE CODE FOR DIGITAL LOCK USING ARDUINO UNO

PLEASE GO THROUGH IT

/*Circuit connections for LCD Interfacing:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)
 *Circuit connections for Keypad Interfacing:
 */
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
char* secretCode = "2218";//character pointer secretCode stores the starting address of the string "2218"
int p=0;
const byte rows = 4;//four rows
const byte cols = 3;//three columns
char keys[rows][cols] =
{
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[rows] = {9,8,7,6};//connect to the row pinouts of the keypad
byte colPins[cols] = {12,11,10};//connect to the column pinouts of the keypad
Keypad nirma = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
int redPin = 4;
int greenPin =2;
void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  lcd.begin(16,2);//set up the LCD's number of columns and rows
  lcd.print("Enter password ");
  //setLocked(true);
}

void loop()
{
  lcd.setCursor(0, 1);
  char input = nirma.getKey();//returns the key that is pressed
  for(int i=3;i>0;i--)//Loop controls no. of attempts(3)
  {
    for(int k=1;k<5;k++)//Loop controls no. of keypad presses(4)
    {
      if (input == '*' || input == '#')
      {
        p = 0;
        setLocked(true);
        lcd.println("Invalid numerals");//Red LED is on untill all 4 no.s have been pressed
      }
      else if(input == secretCode[p])
      {
        lcd.print("*");
        p++;
        if(p == 4)
        {
          setLocked(false);//Green LED glows when all 4 no.s have been entered
          lcd.println("Correct Password");
        }
      }
      else
      {
        lcd.print("*");
        p++;
        if(p == 4)
        {
          setLocked(true);
          lcd.println("I am locked.");
          lcd.println(i-1); lcd.print("trials left");
          if(i==1)
          {
            lcd.println("I am blocked.");
          }
        }
      }
    }
    delay(100);
  }
}
void setLocked(int locked)//user-defined function setlocked
{
  if(locked)
  {
    digitalWrite(redPin, HIGH);
    digitalWrite(greenPin, LOW);
  }
  else
  {
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, HIGH);
  }
}

LED FLASHING WITH ATMEGA32

HEY GUYS I HAD DEVELOPED FLASHING LED PROGRAM USING FLASHING LED PROGRAM BY USING ATMEGA-32.


#include <avr/io.h>
int main(void)
{
DDRC = 0b00001111;
PORTC = 0b00000000;
DDRD = 0b00001111;
PORTD = 0b00000000;
TCCR1B |= 1<<CS10 | 1<<CS11;
int LEDNumber[2];
while(1)
{
if (TCNT1 > 3906)
{
TCNT1 = 0;
PORTC = 1<<LEDNumber[0];
LEDNumber[0] ++;
if (LEDNumber[0] > 3)
{
LEDNumber[0] = 0;
PORTD = 1<<LEDNumber[1];
LEDNumber[1] ++;
if (LEDNumber[1] > 3)
LEDNumber[1] = 0;
}
}
}
}

VHDL CODE FOR BOOTH MULTIPLIER

HEY GUYS THIS IS THE VHDL CODE FOR BOOTH MULTIPLIER GO THROUGH IT.


library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    use ieee.std_logic_unsigned.all;
   
    entity Boot is
        port(x, y: in std_logic_vector(3 downto 0);
             O: out std_logic_vector(7 downto 0));
    end Boot;
   
    architecture boot of Boot is
        begin
           
            process(x, y)
             variable a: std_logic_vector(8 downto 0);
             variable s,p : std_logic_vector(3 downto 0);
             variable i:integer;


                begin
                    a := "000000000";
                    s := y;
                    a(4 downto 1) := x;
                   
                    for i in 0 to 3 loop
                       if(a(1) = '1' and a(0) = '0') then
                          p := (a(8 downto 5));
                          a(8 downto 5) := (p - s);
                         
                       elsif(a(1) = '0' and a(0) = '1') then
                          p := (a(8 downto 5));
                          a(8 downto 5) := (p + s);
                         
                       end if;
                     
                       a(7 downto 0) := a(8 downto 1);
                     
                    end loop;
                   
                    O(7 downto 0) <= a(8 downto 1);
                   
                end process;
               
            end boot;

VHDL CODE FOR SQUARE OF 3 BIT NUMBER

HEY GUYS I HAD DEVELOPED VHDL CODE TO FIND SQUARE OF 3 BIT NUMBER .GO THROUGH IT !!!



library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity squ is

port(
a : in std_logic_vector( 2 downto 0);
b : out std_logic_vector(5 downto 0)
);

end squ;
architecture squ of squ is
begin
process(a)
begin
b(0)<= a(0);
b(1)<= '0';
b(2)<= a(1) and (not(a(0)));
b(3)<= (a(2) xor a(1)) and a(0);
b(4)<= a(2) and ((not(a(1))) or a(0));
b(5)<= a(2) and a(1);
end process;
end architecture;


GCD FINDER VHDL CODE

HEY GUYS I HAD DEVELOPED VHDL CODE TO FIND GCD YOU CAN GO THROUGH IT


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;


entity gcd is
port(   X:    in unsigned(3 downto 0);
        Y:    in unsigned(3 downto 0);
        o:  out unsigned(3 downto 0)
);
end gcd;

architecture gcd of gcd is
begin
    process(X,Y)
variable tmp_X, tmp_Y: unsigned(3 downto 0);
    begin
tmp_X := X;
tmp_Y := Y;

for i in 0 to 15 loop
   if (tmp_X/=tmp_Y) then
if (tmp_X < tmp_Y) then
               tmp_Y := tmp_Y - tmp_X;
else
   tmp_X := tmp_X - tmp_Y;
                    exit loop;
end if;
   else
o<= tmp_X;
   end if;
end loop;

    end process;
end gcd;

VHDL CODE FOR ROM


HEY GUYS I HAD DEVELOPED VHDL CODE FOR ROM !! GO THROUGH IT HOPE IT MAY HELPFUL TO YOU.

ROM

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;  
use ieee.std_logic_unsigned.all;

entity ROM is
port( Clock   : in std_logic;
Reset : in std_logic;
Enable : in std_logic;
Read : in std_logic;
Address : in std_logic_vector(1 downto 0);
Data_out: out std_logic_vector(3 downto 0)
);
end ROM;

--------------------------------------------------------------

architecture Behav of ROM is

    type ROM_Array is array (0 to 3) 
of std_logic_vector(3 downto 0);

    constant Content: ROM_Array := ("0000","0010","1111","1101");       

begin
    process(Clock, Reset, Read, Address)
    begin
        if( Reset = '1' ) then
   Data_out <= "XXXX";
        elsif( Clock'event and Clock = '1' ) then
   if Enable = '1' then
if( Read = '1' ) then
   Data_out <= Content(conv_integer(Address));
            end if;
   end if;
        end if;
    end process;
end Behav;

VHDL CODE FOR 4*4 RAM

Hey guys i had developed vhdl code for 4*4 Ram .you can go through it !!


4*4 RAM


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

--------------------------------------------------------------

entity SRAM is
port( Clock: in std_logic;
Enable: in std_logic;
Read: in std_logic;
Write: in std_logic;
Read_Addr: in std_logic_vector(1 downto 0);
Write_Addr: in std_logic_vector(1 downto 0);
Data_in: in std_logic_vector(3 downto 0);
Data_out: out std_logic_vector(3 downto 0)
);
end SRAM;

--------------------------------------------------------------

architecture behav of SRAM is

type ram_type is array (0 to 3) of
std_logic_vector(3 downto 0) ;
signal tmp_ram : ram_type := ( "0000", "0011", "0111", "0101" ) ;

begin

    -- Read Functional Section
    process(Clock, Read)
    begin
if (Clock'event and Clock='1') then
   if Enable='1' then
if Read='1' then
   Data_out <= tmp_ram(conv_integer(Read_Addr));
end if;
   end if;
end if;
    end process;

    -- Write Functional Section
    process(Clock, Write)
    begin
if (Clock'event and Clock='1') then
   if Enable='1' then
if Write='1' then
   tmp_ram(conv_integer(Write_Addr)) <= Data_in;
end if;
   end if;
end if;
    end process;

end behav;

Hope you like it!!!!!!

C CODE FOR K-MAP SOLVER

Hey Guys i had created c program for solving K-map(Karnaugh map) go through it!!


K-MAP SOLVER



#include<stdio.h>
#include<conio.h>
void main()
{
 int i,j,a[4],m[4]={0,0,0,0},n,c=0,d,k[8]={0,0,0,0,0,0,0,0},e,f=0,g,l[8]={0,0,0,0,0,0,0,0},
y[13]={0,0,0,0,0,0,0,0,0,0,0,0,0},o[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
p[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},b=0,h[64];
 int s,t,u,v,q,z;
 clrscr();
 for(i=0;i<64;i++)
 {
 h[i]=0;
 }
 printf("how many variable kmap you want to solve (2,3,4):");
 scanf("%d",&d);
 if(d==2)
 {
printf("enter how many minterms you want to enter:");
scanf("%d",&n);

if(n>4)
{
   printf("you have entered wrong minterms because maximum minterm in 2 variable k-map is 4:");
   goto l;
}

z:

for(i=0;i<n;i++)
{
       printf("%d""th minterm:",i);
       scanf("%d",&a[i]);
}
printf("\nEntered minterms are : ");

for(i=0;i<=3;i++)
{
printf("%d",a[i]);
}
printf("\n if emtered minterms are correct press 1 or press 0 to go back:");
scanf("%d",&q);
if(q==0)
{
goto z;
}
if(q==1)
{


printf("\n The matrix is");
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
     if(a[i]-j==0)
     {
 m[j]=1;

     }
}
}
printf("\n");
for(i=0;i<=3;i++)
{
printf("%d",m[i]);
}
printf("\n");
printf("the ans is:");
for(i=0;i<=3;i++)
{              if(m[i]==1)
      {
    c++;
      }
}
if(c==4)
{
printf("y=1");
}

else
{
printf("y=");
if(m[0]==1&&m[1]==1)
{
printf("!A+");
}
if(m[0]==1&&m[2]==1)
{
printf("!B+");
}
if(m[1]==1&&m[3]==1)
{
printf("B+");
}
if(m[2]==1&&m[3]==1)
{
printf("A+");
}
if(m[1]==0&&m[2]==0&&m[0]==1)
{
    printf("!A!B+");
}
if(m[1]==1&&m[3]==0&&m[0]==0)
{
    printf("!AB+");
}
if(m[0]==0&&m[2]==1&&m[3]==0)
{
printf("A!B+");
}
if(m[1]==0&&m[2]==0&&m[3]==1)
{
    printf("AB");
}

}
getch();
}
}
if(d==3)
{
printf("enter how many minterms you want to enter:");
scanf("%d",&e);

if(e>8)
{
   printf("you have entered wrong minterms because maximum minterm in 3 variable is 8:");
   goto l;
}

t:
for(i=0;i<e;i++)
{
       printf("%d""th minterm:",i);
       scanf("%d",&k[i]);
}

printf("\n entered minterms are");
for(i=0;i<=7;i++)
{
printf("%d",k[i]);
}

printf("\n if entered minterms are correct press 1 or press 0 to go back:");
scanf("%d",&s);
if(s==0)
{
goto t;
}
if(s==1)
{
printf("\n Final matrix");
for(i=0;i<=7;i++)
{
for(j=0;j<=7;j++)
{
     if(k[i]-j==0)
     {
 l[j]=1;

     }
}
}
printf("\n");
for(i=0;i<=7;i++)
{
printf("%d",l[i]);
}
printf("\n");
printf("the ans is:");
for(i=0;i<=7;i++)
{              if(l[i]==1)
      {
    f++;
      }
}
if(f==8)
{
printf("x=1");
}
else
{
printf("x=");

       if(l[0]==1&&l[1]==1&&l[4]==1&&l[5]==1)
       {
y[0]=1;
printf("!B+");
       }
       if(l[2]==1&&l[3]==1&&l[6]==1&&l[7]==1)
       {
y[1]=2;

printf("B+");
       }

       if(l[0]==1&&l[1]==1&&l[2]==1&&l[3]==1)
       {
y[2]=3;

printf("!A+");
       }
       if(l[4]==1&&l[5]==1&&l[6]==1&&l[7]==1)
       {
y[3]=4;

printf("A+");
       }
       if(l[0]==1&&l[2]==1&&l[4]==1&&l[6]==1)
       {
y[4]=5;
printf("!C+");
       }
       if(l[1]==1&&l[3]==1&&l[7]==1&&l[5]==1)
       {
y[5]=6;

printf("C+");
       }
       if(y[4]!=5&&y[0]!=1&&l[0]==1&&l[4]==1)
       {
y[6]=7;
printf("!B!C+");
       }
       if(y[0]!=1&&l[1]==1&&l[5]==1&&y[5]!=6)
       {
y[7]=8;
printf("!BC+");
       }
       if(y[5]!=6&&y[1]!=2&&l[3]==1&&l[7]==1)
       {
y[8]=9;
printf("BC+");
       }

       if(y[4]!=5&&y[1]!=2&&l[2]==1&&l[6]==1)
       {
y[9]=10;
printf("B!C+");
       }


       if(y[0]!=1&&l[0]==1&&l[1]==1&&y[2]!=3)
       {
y[10]=11;
printf("!B!A+");
       }
       if(y[1]!=2&&l[3]==1&&l[2]==1&&y[2]!=3)
       {
y[11]=12;
printf("!AB+");
       }
       if(y[1]!=2&&l[7]==1&&l[6]==1&&y[3]!=4)
       {
y[12]=13;
printf("AB+");
       }
       if(y[0]!=1&&l[4]==1&&l[5]==1&&y[3]!=4)
       {
y[13]=14;
printf("!BA+");
       }


       if(y[5]!=6&&l[3]==1&&l[1]==1&&y[2]!=3)
       {

printf("!AC+");
       }
       if(y[5]!=6&&l[5]==1&&l[7]==1&&y[3]!=4)
       {

printf("AC+");
       }
       if(y[2]!=3&&y[4]!=5&&l[0]==1&&l[2]==1)
       {
printf("!A!C+");
       }
       if(y[4]!=5&&l[4]==1&&l[6]==1&&y[3]!=4)
       {

printf("A!C+");
       }
       if(l[1]==0&&l[4]==0&&l[0]==1&&l[2]==0)
       {

printf("!A!B!C+");
       }
       if(l[0]==0&&l[5]==0&&l[1]==1&&l[3]==0)
       {
printf("!A!BC+");
       }
       if(l[1]==0&&l[2]==0&&l[3]==1&&l[7]==0)
       {
printf("!ABC+");
       }
       if(l[3]==0&&l[6]==0&&l[0]==0&&l[2]==1)
       {
printf("!AB!C+");
       }
       if(l[0]==0&&l[4]==1&&l[6]==0&&l[5]==0)
       {
printf("A!B!C+");
       }
       if(l[1]==0&&l[4]==0&&l[5]==1&&l[7]==0)
       {
printf("A!BC+");
       }
       if(l[3]==0&&l[5]==0&&l[6]==0&&l[7]==1)
       {
printf("ABC+");
       }
       if(l[2]==0&&l[4]==0&&l[6]==1&&l[7]==0)
       {
printf("AB!C+");
       }



}
getch();
}
}

if(d==4)
{
printf("enter how many minterms you want to enter:");
scanf("%d",&g);

if(g>16)
{
   printf("you have entered wrong minterms because maximum minterm in 4 variable is 16:");
   goto l;
}
v:
for(i=0;i<g;i++)
{
       printf("%d""th minterm:",i);
       scanf("%d",&o[i]);
}

printf("\n entered minterms are");
for(i=0;i<g;i++)
{
printf("%d",o[i]);
}

printf("\n if minterms are  correct press 1 or press 0 to go back:");
scanf("%d",&u);
if(u==0)
{
goto v;
}
if(u==1)
{
printf("\n Final matrix is:");
for(i=0;i<g;i++)
{
for(j=0;j<=15;j++)
{
     if(o[i]-j==0)
     {
 p[j]=1;

     }
}
}
printf("\n");
for(i=0;i<=15;i++)
{
printf("%d",p[i]);
}
printf("\n");
printf("the ans is:");
for(i=0;i<=15;i++)
{              if(p[i]==1)
      {
    b++;
      }
}
if(b==16)
{
printf("x=1");
}
else
{
printf("x=");

       if(p[0]==1&&p[1]==1&&p[2]==1&&p[3]==1&&p[4]==1&&p[5]==1&&p[6]==1&&p[7]==1)
       {
h[0]=1;
printf("!A+");
       }
       if(p[8]==1&&p[9]==1&&p[10]==1&&p[11]==1&&p[12]==1&&p[13]==1&&p[14]==1&&p[15]==1)
       {
h[1]=1;
printf("A+");
       }
       if(p[0]==1&&p[1]==1&&p[2]==1&&p[3]==1&&p[8]==1&&p[9]==1&&p[10]==1&&p[11]==1)
       {
h[2]=1;
printf("!B+");
       }
       if(p[4]==1&&p[5]==1&&p[6]==1&&p[7]==1&&p[12]==1&&p[13]==1&&p[14]==1&&p[15]==1)
       {
h[3]=1;
printf("B+");
       }
       if(p[0]==1&&p[1]==1&&p[4]==1&&p[5]==1&&p[12]==1&&p[13]==1&&p[8]==1&&p[9]==1)
       {
h[4]=1;
printf("!C+");
       }
       if(p[2]==1&&p[3]==1&&p[6]==1&&p[7]==1&&p[10]==1&&p[11]==1&&p[14]==1&&p[15]==1)
       {
h[5]=1;
printf("C+");
       }
       if(p[0]==1&&p[2]==1&&p[4]==1&&p[6]==1&&p[8]==1&&p[10]==1&&p[12]==1&&p[14]==1)
       {
h[6]=1;
printf("!D+");
       }
       if(p[1]==1&&p[3]==1&&p[5]==1&&p[7]==1&&p[9]==1&&p[11]==1&&p[13]==1&&p[15]==1)
       {
h[7]=1;
printf("D+");
       }


       if(p[0]==1&&p[1]==1&&p[2]==1&&p[3]==1&&h[0]!=1&&h[2]!=1)
       {
h[8]=1;
printf("!A!B+");
       }
       if(p[4]==1&&p[5]==1&&p[6]==1&&p[7]==1&&h[0]!=1&&h[3]!=1)
       {
h[9]=1;
printf("!AB+");
       }
       if(p[12]==1&&p[13]==1&&p[14]==1&&p[15]==1&&h[1]!=1&&h[3]!=1)
       {
h[10]=1;
printf("AB+");
       }
       if(p[8]==1&&p[9]==1&&p[10]==1&&p[11]==1&&h[1]!=1&&h[2]!=1)
       {
h[11]=1;
printf("A!B+");
       }
       if(p[0]==1&&p[4]==1&&p[8]==1&&p[12]==1&&h[4]!=1&&h[6]!=1)
       {
h[12]=1;
printf("!C!D+");
       }
       if(p[1]==1&&p[5]==1&&p[9]==1&&p[13]==1&&h[4]!=1&&h[7]!=1)
       {
h[13]=1;
printf("!CD+");
       }
       if(p[3]==1&&p[7]==1&&p[11]==1&&p[15]==1&&h[7]!=1&&h[5]!=1)
       {
h[14]=1;
printf("CD+");
       }
       if(p[2]==1&&p[6]==1&&p[10]==1&&p[14]==1&&h[5]!=1&&h[6]!=1)
       {
h[15]=1;
printf("C!D+");
       }
       if(p[0]==1&&p[1]==1&&p[4]==1&&p[5]==1&&h[0]!=1&&h[4]!=1)
       {
h[16]=1;
printf("!A!C+");
       }
       if(p[1]==1&&p[3]==1&&p[5]==1&&p[7]==1&&h[0]!=1&&h[7]!=1)
       {
h[17]=1;
printf("!AD+");
       }
       if(p[2]==1&&p[3]==1&&p[6]==1&&p[7]==1&&h[0]!=1&&h[5]!=1)
       {
h[18]=1;
printf("!AC+");
       }
       if(p[0]==1&&p[2]==1&&p[4]==1&&p[6]==1&&h[0]!=1&&h[6]!=1)
       {
h[19]=1;
printf("!A!D+");
       }
       if(p[4]==1&&p[5]==1&&p[12]==1&&p[13]==1&&h[3]!=1&&h[4]!=1)
       {
h[20]=1;
printf("B!C+");
       }
       if(p[5]==1&&p[7]==1&&p[13]==1&&p[15]==1&&h[3]!=1&&h[7]!=1)
       {
h[21]=1;
printf("BD+");
       }
       if(p[6]==1&&p[7]==1&&p[14]==1&&p[15]==1&&h[3]!=1&&h[5]!=1)
       {
h[22]=1;
printf("BC+");
       }
       if(p[4]==1&&p[6]==1&&p[12]==1&&p[14]==1&&h[3]!=1&&h[6]!=1)
       {
h[23]=1;
printf("B!D+");
       }
       if(p[8]==1&&p[9]==1&&p[12]==1&&p[13]==1&&h[1]!=1&&h[4]!=1)
       {
h[24]=1;
printf("A!C+");
       }
       if(p[9]==1&&p[11]==1&&p[13]==1&&p[15]==1&&h[1]!=1&&h[7]!=1)
       {
h[25]=1;
printf("AD+");
       }
       if(p[10]==1&&p[11]==1&&p[14]==1&&p[15]==1&&h[1]!=1&&h[5]!=1)
       {
h[26]=1;
printf("AC+");
       }
       if(p[8]==1&&p[10]==1&&p[12]==1&&p[14]==1&&h[1]!=1&&h[6]!=1)
       {
h[27]=1;
printf("A!D+");
       }
       if(p[0]==1&&p[1]==1&&p[8]==1&&p[9]==1&&h[2]!=1&&h[4]!=1)
       {
h[28]=1;
printf("!B!C+");
       }
       if(p[1]==1&&p[3]==1&&p[9]==1&&p[11]==1&&h[2]!=1&&h[7]!=1)
       {
h[29]=1;
printf("!BD+");
       }
       if(p[2]==1&&p[3]==1&&p[10]==1&&p[11]==1&&h[2]!=1&&h[5]!=1)
       {
h[30]=1;
printf("!BC+");
       }
       if(p[0]==1&&p[2]==1&&p[8]==1&&p[10]==1&&h[2]!=1&&h[6]!=1)
       {
h[31]=1;
printf("!B!D+");
       }
       if(p[0]==1&&p[1]==1&&h[8]!=1&&h[16]!=1&&h[28]!=1&&h[0]!=1&&h[2]!=1&&h[4]!=1)
       {
h[32]=1;
printf("!A!B!C+");
       }
       if(p[1]==1&&p[3]==1&&h[8]!=1&&h[17]!=1&&h[29]!=1&&h[0]!=1&&h[2]!=1&&h[7]!=1)
       {
h[33]=1;
printf("!A!BD+");
       }
       if(p[2]==1&&p[3]==1&&h[8]!=1&&h[18]!=1&&h[30]!=1&&h[0]!=1&&h[2]!=1&&h[5]!=1)
       {
h[34]=1;
printf("!A!BC+");
       }
       if(p[0]==1&&p[2]==1&&h[8]!=1&&h[19]!=1&&h[31]!=1&&h[0]!=1&&h[2]!=1&&h[6]!=1)
       {
h[35]=1;
printf("!A!B!D+");
       }
       if(p[4]==1&&p[5]==1&&h[9]!=1&&h[16]!=1&&h[20]!=1&&h[0]!=1&&h[3]!=1&&h[4]!=1)
       {
h[36]=1;
printf("!AB!C+");
       }
       if(p[5]==1&&p[7]==1&&h[9]!=1&&h[17]!=1&&h[21]!=1&&h[0]!=1&&h[3]!=1&&h[7]!=1)
       {
h[37]=1;
printf("!ABD+");
       }
       if(p[6]==1&&p[7]==1&&h[9]!=1&&h[18]!=1&&h[22]!=1&&h[0]!=1&&h[3]!=1&&h[5]!=1)
       {
h[38]=1;
printf("!ABC+");
       }
       if(p[4]==1&&p[6]==1&&h[9]!=1&&h[19]!=1&&h[23]!=1&&h[0]!=1&&h[3]!=1&&h[6]!=1)
       {
h[39]=1;
printf("!AB!D+");
       }
       if(p[12]==1&&p[13]==1&&h[10]!=1&&h[20]!=1&&h[24]!=1&&h[1]!=1&&h[3]!=1&&h[4]!=1)
       {
h[40]=1;
printf("AB!C+");
       }
       if(p[13]==1&&p[15]==1&&h[10]!=1&&h[21]!=1&&h[25]!=1&&h[1]!=1&&h[3]!=1&&h[7]!=1)
       {
h[41]=1;
printf("!A!BD+");
       }
       if(p[14]==1&&p[15]==1&&h[10]!=1&&h[22]!=1&&h[26]!=1&&h[5]!=1&&h[3]!=1&&h[1]!=1)
       {
h[42]=1;
printf("!A!BC+");
       }
       if(p[12]==1&&p[14]==1&&h[10]!=1&&h[23]!=1&&h[27]!=1&&h[1]!=1&&h[6]!=1&&h[3]!=1)
       {
h[43]=1;
printf("!A!B!D+");
       }
       if(p[8]==1&&p[9]==1&&h[11]!=1&&h[24]!=1&&h[28]!=1&&h[1]!=1&&h[2]!=1&&h[4]!=1)
       {
h[44]=1;
printf("A!B!C+");
       }
       if(p[9]==1&&p[11]==1&&h[11]!=1&&h[25]!=1&&h[29]!=1&&h[7]!=1&&h[2]!=1&&h[1]!=1)
       {
h[45]=1;
printf("A!BD+");
       }
       if(p[10]==1&&p[11]==1&&h[11]!=1&&h[26]!=1&&h[30]!=1&&h[1]!=1&&h[2]!=1&&h[5]!=1)
       {
h[46]=1;
printf("A!BC+");
       }
       if(p[8]==1&&p[10]==1&&h[11]!=1&&h[27]!=1&&h[31]!=1&&h[6]!=1&&h[2]!=1&&h[1]!=1)
       {
h[47]=1;
printf("A!B!D+");
       }
       if(p[0]==1&&p[4]==1&&h[12]!=1&&h[16]!=1&&h[19]!=1&&h[0]!=1&&h[6]!=1&&h[4]!=1)
       {
h[48]=1;
printf("!A!C!D+");
       }
       if(p[4]==1&&p[12]==1&&h[12]!=1&&h[20]!=1&&h[23]!=1&&h[3]!=1&&h[6]!=1&&h[4]!=1)
       {
h[49]=1;
printf("B!C!D+");
       }
       if(p[8]==1&&p[12]==1&&h[12]!=1&&h[24]!=1&&h[27]!=1&&h[1]!=1&&h[6]!=1&&h[4]!=1)
       {
h[50]=1;
printf("A!C!D+");
       }
       if(p[0]==1&&p[8]==1&&h[12]!=1&&h[28]!=1&&h[31]!=1&&h[6]!=1&&h[2]!=1&&h[4]!=1)
       {
h[51]=1;
printf("!B!C!D+");
       }
       if(p[1]==1&&p[5]==1&&h[13]!=1&&h[16]!=1&&h[17]!=1&&h[0]!=1&&h[7]!=1&&h[4]!=1)
       {
h[52]=1;
printf("!A!CD+");
       }
       if(p[5]==1&&p[13]==1&&h[13]!=1&&h[20]!=1&&h[21]!=1&&h[3]!=1&&h[7]!=1&&h[4]!=1)
       {
h[53]=1;
printf("B!CD+");
       }
       if(p[9]==1&&p[13]==1&&h[13]!=1&&h[24]!=1&&h[25]!=1&&h[1]!=1&&h[7]!=1&&h[4]!=1)
       {
h[54]=1;
printf("A!CD+");
       }
       if(p[1]==1&&p[9]==1&&h[13]!=1&&h[28]!=1&&h[29]!=1&&h[7]!=1&&h[2]!=1&&h[4]!=1)
       {
h[55]=1;
printf("!B!CD+");
       }
       if(p[3]==1&&p[7]==1&&h[14]!=1&&h[17]!=1&&h[18]!=1&&h[5]!=1&&h[7]!=1&&h[0]!=1)
       {
h[56]=1;
printf("!ACD+");
       }
       if(p[7]==1&&p[15]==1&&h[14]!=1&&h[21]!=1&&h[22]!=1&&h[5]!=1&&h[7]!=1&&h[3]!=1)
       {
h[57]=1;
printf("BCD+");
       }
       if(p[11]==1&&p[15]==1&&h[14]!=1&&h[25]!=1&&h[26]!=1&&h[5]!=1&&h[7]!=1&&h[1]!=1)
       {
h[58]=1;
printf("ACD+");
       }
       if(p[3]==1&&p[11]==1&&h[14]!=1&&h[29]!=1&&h[30]!=1&&h[5]!=1&&h[2]!=1&&h[7]!=1)
       {
h[59]=1;
printf("!BCD+");
       }
       if(p[2]==1&&p[6]==1&&h[15]!=1&&h[18]!=1&&h[19]!=1&&h[0]!=1&&h[6]!=1&&h[5]!=1)
       {
h[60]=1;
printf("!AC!D+");
       }
       if(p[6]==1&&p[14]==1&&h[15]!=1&&h[22]!=1&&h[23]!=1&&h[5]!=1&&h[6]!=1&&h[3]!=1)
       {
h[61]=1;
printf("BC!D+");
       }
       if(p[10]==1&&p[14]==1&&h[15]!=1&&h[26]!=1&&h[27]!=1&&h[1]!=1&&h[6]!=1&&h[5]!=1)
       {
h[62]=1;
printf("AC!D+");
       }
       if(p[2]==1&&p[10]==1&&h[15]!=1&&h[30]!=1&&h[31]!=1&&h[5]!=1&&h[2]!=1&&h[6]!=1)
       {
h[63]=1;
printf("!BC!D+");
       }
       if(p[0]==1&&p[1]==0&&p[2]==0&&p[4]==0&&p[8]==0)
       {
printf("!A!B!C!D+");
       }
       if(p[1]==1&&p[0]==0&&p[3]==0&&p[5]==0&&p[9]==0)
       {
printf("!A!B!CD+");
       }
       if(p[2]==1&&p[0]==0&&p[3]==0&&p[6]==0&&p[10]==0)
       {
printf("!A!BC!D+");
       }
       if(p[3]==1&&p[1]==0&&p[2]==0&&p[7]==0&&p[11]==0)
       {
printf("!A!BCD+");
       }
       if(p[4]==1&&p[0]==0&&p[5]==0&&p[6]==0&&p[12]==0)
       {
printf("!AB!C!D+");
       }
       if(p[5]==1&&p[1]==0&&p[4]==0&&p[7]==0&&p[13]==0)
       {
printf("!AB!CD+");
       }
       if(p[6]==1&&p[2]==0&&p[4]==0&&p[7]==0&&p[14]==0)
       {
printf("!ABC!D+");
       }
       if(p[7]==1&&p[3]==0&&p[5]==0&&p[6]==0&&p[15]==0)
       {
printf("!ABCD+");
       }
       if(p[8]==1&&p[0]==0&&p[9]==0&&p[10]==0&&p[12]==0)
       {
printf("A!B!C!D+");
       }
       if(p[9]==1&&p[1]==0&&p[8]==0&&p[11]==0&&p[13]==0)
       {
printf("A!B!CD+");
       }
       if(p[10]==1&&p[2]==0&&p[8]==0&&p[11]==0&&p[14]==0)
       {
printf("A!BC!D+");
       }
       if(p[11]==1&&p[3]==0&&p[9]==0&&p[10]==0&&p[15]==0)
       {
printf("A!BCD+");
       }
       if(p[12]==1&&p[4]==0&&p[8]==0&&p[13]==0&&p[14]==0)
       {
printf("AB!C!D+");
       }
       if(p[13]==1&&p[5]==0&&p[9]==0&&p[12]==0&&p[15]==0)
       {
printf("AB!CD+");
       }
       if(p[14]==1&&p[6]==0&&p[10]==0&&p[12]==0&&p[15]==0)
       {
printf("ABC!D+");
       }
       if(p[15]==1&&p[7]==0&&p[11]==0&&p[13]==0&&p[14]==0)
       {
printf("ABCD+");
       }

}
l:

getch();
}
}
}