How to clear lcd with a push button in atmega32
There are a lot of problems with your code. 

First off, you only check the condition once, i.e. when you start running the code. So for that I'm adding a while(1) loop. 

Second, you have already put your PORTA=0x00, which means you've allotted them a LOW already. If you've already made them LOW, there seems to be no point of checking their status.

I'm not able to view the proteus image file you attached in the comments above. So, I'm assuming that the switch connects the pin to ground. If the switch connects to 5V then change the if condition to PINA.0 == 1;

void main(void)
{
    //PORTA=0x00; //If you already made them LOW, there won't be
    DDRA=0xFE;    //any point of checking their status.
    PORTD=0x00;
    DDRD=0x00;
    lcd_init();
    lcd_clear();
    lcd_goto(0,0);
    lcd_puts("Emad Helmi") ;    
    while (1)
    {
        if(PINA.0 == 0) //whenever you want to read the status
        {               //you access the PIN register and not PORT
            lcd_clear() ;    
        }
    }
}


If it still doesn't work then try to access PINA as a whole. Change the if condition to

if  (PINA == 0x00)


but if you do this remember to change individual PORTS to LOW. i.e.

PORTA.1 = 0; 


and so on to PORTA.7 .