P0 i P2 se koriste za spoljasnji EPROM na kome se nalazi program koji se izvrsava. Da li je do hardvera problem, jer su displeji i dip switch - evi povezani na isti port?
OK. Pretpostavljam da si odradio softverske izmene koje su kolege sugerisale:
1. Iz interapt rutine je izbačena funkcija delay.
2. Pre čitanja linija na portu koje se koriste kao dvosmerne (P1.3, P1.4, P1.5 i P1.6) treba ih prebaciti u READ (upisati "1" u dogovarajući latch).
Nije dovoljno samo pri inicijalizaciji uraditi P1=0xFF. To ima smisla ako se port koristi isključivo kao ulazni.
Pretpostavljam da imaš neki 8051 datasheet, u njemu verovatno postoji poglavlje koje se zove "port hardware configuration" ili nešto slično. Pažljivo pročitaj,
3. Ovo nije uzrok problema, ali bi trebalo zaustaviti tajmer pre inicijalizacije:
Umesto
TH0=0xFC;
TL0=0x66;
bi trebalo da stoji
TR0=0;
TH0=0xFC;
TL0=0x66;
TR0=1;