obsługa portów w 8051 - parę pytań

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
piotrus
-
Posty: 1
Rejestracja: 16 paź 2006, 10:37

obsługa portów w 8051 - parę pytań

Post autor: piotrus » 16 paź 2006, 10:47

W jaki sposób ustawić jedną połowę portu P1 jako wejście, a drugą jako wyjście?
W jaki sposób później wysyłać albo odbierać dane z portu?

Korzystając z rozkazu mov A, P1 nie wiem czy dostanę w akumulatorze stan linii portu, czy stan rejestru stanu portu P1, bardzo byłbym wdzięczny za parę słów wyjaśnienia :)

Jeszcze jedno pytanie: do jednej końcówki portu procesora podłączono jumper (wybór stanu H albo L). Czy możliwe jest tak nieodpowiedzialne napisanie programu aby układ uległ trwałemu uszkodzeniu?

Awatar użytkownika
marcing
Użytkownik
Posty: 868
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 16 paź 2006, 10:55

piotrus pisze:Jeszcze jedno pytanie: do jednej końcówki portu procesora podłączono jumper (wybór stanu H albo L). Czy możliwe jest tak nieodpowiedzialne napisanie programu aby układ uległ trwałemu uszkodzeniu?
Zacznę od tego pytania - jeśli nie zastosujesz rezystora między pinem a jumperem, możliwe jest zwarcie zasilania przy próbie wymuszenia na pinie stanu "0" przy zapiętym jumperze na "H"...
piotrus pisze:W jaki sposób ustawić jedną połowę portu P1 jako wejście, a drugą jako wyjście?
W jaki sposób później wysyłać albo odbierać dane z portu?
Według mojej wiedzy, najlepiej część portu służącą jako wejście ustawić w stan "H" - niestety, ta rodzina nie ma specjalnego rejestru określającego kierunek pracy portu.
piotrus pisze:Korzystając z rozkazu mov A, P1 nie wiem czy dostanę w akumulatorze stan linii portu, czy stan rejestru stanu portu P1, bardzo byłbym wdzięczny za parę słów wyjaśnienia
Odczytasz cały rejestr, jednakże wykorzystując zaraz za tym instrukcję AND wydzielisz interesujące Ciebie bity.

ODPOWIEDZ