po kolei...
po pierwsze jak już ktoś też wspominał wyrzuć te rezystory 47R na liniach D0-D4 oraz RS i EN
po drugie odłącz to podświetlanie od tego pinu WYS (zrób przez tranzystor - też ktoś już podpowiedział tranzystor zwykły npn)
po trzecie ja na twoim miejcu tak bym konfigurował porty:
Config PORTA = &B01111000
zamiast
albo jeszcze przejrzyściej chociaż więcej kodu:
Config PINA.7 = Input
Config PINA.6 = Output
Config PINA.5 = Output
Config PINA.4 = Output
Config PINA.3 = Output
Config PINA.2 = Input
Config PINA.1 = Input
Config PINA.0 = Input
wtedy widzisz to jasno i przejrzyście - a naprawdę nie wiem i nie mogę sie doczytać co znaczy samo Ddra = coś tam
kolejna rzecz, jak już ustawisz kierunki portów to nie ma sensu pisać :
chyba, że chcesz właśnie konkretne piny podciągnąć do VCC
ale wtedy też można to zrobić tak jak już wspominałem:
..... kolejna b.ważna rzecz, jaką dostrzegł rzeczywiście wcześniej jeden z kolegów to
MUSISZ WYŁĄCZYĆ FuseBit JtagEn
wejdź w Bascomie w zakładkę programowanie, odczytają ci się bieżące fusebity, i jeśli nie potrzebujesz sam zmieniać nic jeśli chodzi o częstotliwość taktowania procka to spokojnie wyłącz tylko ten JTAG bo on jeśli jest włączony to blokuje ci normalne działanie niektórych pinów (to normalne) a jak go wyłączysz to wszystko ładnie ruszy
tylko tak się zastanawiam, czy przestawiłeś sobie ATmega16 na taktowanie 8MHz skoro na początku programu masz to tak zadeklarowane ???