zewnętrzna pamięc programu procesora

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
Awatar użytkownika
mariusz256
Użytkownik
Posty: 144
Rejestracja: 28 wrz 2005, 17:16
Lokalizacja: Stobierna k/Rzeszowa
Kontakt:

zewnętrzna pamięc programu procesora

Post autor: mariusz256 » 05 lip 2006, 18:19

Czy ma znaczenie typ pamięci (eeprom, flash), jak skonfigurować porty procesora i podłączyć z pamięcią, czy trzeba jakiś specjalny programator czy nie, i przy pisaniu programu trzeba dodac jakieś liniki z poleceniami. Wszystkie procesory 51 maja mozliwość dołączenia zewnętrznepamięci???

Tak wogule jest to mozliwe?


Pozdrawiam.

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 06 lip 2006, 8:54

mariusz256 pisze:Czy ma znaczenie typ pamięci (eeprom, flash),
Z punktu widzenia trwałości przechowywanych danych - znaczenia nie ma.
Ważne jest natomiast aby kość była dostosowana do pracy z magistralą równoległą
(linie adresowe, danych i sterujące).
mariusz256 pisze:jak skonfigurować porty procesora
W '51 nie konfiguruje się portów (w takim sensie jak np. w procesorach AVR),
a w szczególności gdy mają one pracować jako zewnętrzna magistrala danych/adresów...
mariusz256 pisze:i podłączyć z pamięcią
Najlepiej według typowych opisów dostępnych w literaturze lub sieci.
mariusz256 pisze:czy trzeba jakiś specjalny programator czy nie
Do równoległych eeprom/flash/eprom potrzeba a stopień jego skomplikowania
będzie zależał od typu konkretnego układu do zaprogramowania.
mariusz256 pisze:i przy pisaniu programu trzeba dodac jakieś liniki z poleceniami.
Programy, które wykorzystują zewnętrzną pamięć danych/programu
w swoim kodzie maszynowym posiadają instrukcje przeznaczone do jej obsługi czyli: movx, movc.
Pisząc w assemblerze będziesz musiał ich użyć, pisząc w C będziesz musiał kompilatorowi
kazać ich użyć (wybierając model pamięci i odpowiednio deklarując zmienne),
pisząc w Bascom... :roll: hmm, nieważne....
mariusz256 pisze:Wszystkie procesory 51 maja mozliwość dołączenia zewnętrznepamięci???
Nie, nie wszystkie, chociażby AT89C4051.
Można natomiast przyjąć, że zewnętrzną pamięć da się podłączyć do każdej
mutacji '51 która posiada porty P0 (adres/dane) i P2 (starsze bity adresu)

Proszę zapoznać się z tymi materiałami:
https://elportal.pl/index.php?module=Co ... rokomputer
tam jest wszystko napisane, naprawdę bardzo przystępnym językiem

tasza

ZbeeGin

Post autor: ZbeeGin » 06 lip 2006, 20:28

tasza pisze:pisząc w Bascom... hmm, nieważne....
Może jednak ważne... :mrgreen:
CPEEK() - do odczytania z pamięci kodu,
INP() - do odczytania z pamięci external,
OUT - do zapisania w pamięci external.

POKE i PEEK() są przenaczone dla wewnętrznej pamięci RAM.

Po resztę informacji zapraszam do helpa (np. polskiego :cool:)

Awatar użytkownika
mariusz256
Użytkownik
Posty: 144
Rejestracja: 28 wrz 2005, 17:16
Lokalizacja: Stobierna k/Rzeszowa
Kontakt:

Post autor: mariusz256 » 13 lip 2006, 17:24

Szukałem trochę no i nic praktycznego nie znalazłem, sama teoria!!!, i jak ja mam zakapować ( do tego mam słabe nerwy). nadal czegoś nie rozumie, może macie jakiś przykładowy programik napisany w Bascomie 51, może to pomoże PROSZĘ.
Z góry dziękuje.

Pozdrawiam

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 13 lip 2006, 21:13

mariusz256 pisze:Szukałem trochę no i nic praktycznego nie znalazłem, sama teoria!!!
po prostu brak mi słów...

więc proszę, oto kawałek kodu w Bascom dla 8051

Kod: Zaznacz cały

dim aa as integer
dim bb as byte

' CODE

'odczyt pamięci kodu
for aa = 0 to 255
    bb = cpeek(aa)                         
    printhex bb ; "  ";
next

' XDATA

'zapis do XDATA pod adres 8000h
out &H8000 , 123                        

'odczyt komórki z XDATA
bb = inp(&H8000)                        

' i wyświetlenie
print bb

end

napisane w ciemno na bazie helpa do Bascom 51, możliwe że nawet działa...nie wiem.

ODPOWIEDZ