Mapiranje
Memorijski prostor Intelovog mikrokontrolera 8051 je podeljen na dva bloka po 64KB. Pomoću signala PSEN vrši se pristupanje spoljnjem ROM-u tj. EPROM-u, a pomoću signala RD i WR upis i čitanje iz spoljašnjeg RAM-a. Na ovaj način, ne samo da je omogućeno adresiranje 64KB ROM i 64KB RAM memorije, nego se ROM i RAM mogu preklapati. To znači da se na istoj adresi može nalaziti i lokacija u RAM-u i lokacija u ROM-u.
Jednostavni razvojni sistemi sa mikrokontrolerom 8031 se najčešće prave da podržavaju po 32KB EPROM-a i 32KB RAM-a. EPROM-u se adresnim signalom A15 dodeljuje prostor od donjih 32KB (tj. adrese 0000-7FFFh), a RAM-u gornjih 32KB (tj. adrese 8000-FFFFh) putem invertovane adrese A15.
Ovakva situacija daje mogućnost jednostavnog povećanja broja ulaza i izlaza. Naime, adresnim signalom A15 se nekoj periferiji može dodeliti donjih 32KB memorijskog prostora, pod uslovom da joj se pristupa putem signala RD i WR. Adresno, između EPROM-a i te periferije postoji preklapanje, ali ne dolazi do njihovog “sudaranja” jer se chip select signal za periferiju dobija pomoću logičke veze adrese A15 i signala RD ili WR.
Na slici je data električna šema, kojom je ostvareno “mapiranje” dva leča u adresnom prostoru gore navedenog sistema. Na bilo kojoj lokaciji od 0000-7FFFh nalaze se dva kola 74HC573. Prvo kolo je spojeno na data bus kao izlazni leč kojim se može vršiti pojedinačno paljenje 8 LE dioda, a drugo kao ulazni leč kojim se na data bus prenosi stanje 8 tastera. Selektovanje kola U1 vrši se pomoću NILI veze adrese A15 i signala WR, a selektovanje kola U2 pomoću inverovane NILI veze adrese A15 i signala RD.
|
|
U nastavku je dat predlog asemblerskog koda za upravljanje šemom sa slike.
Asemblesrki kod za npr. paljenje svake druge LED može da izgleda:
mov dptr,#0xxxxxxxb ;Vazno je da je A15=0
mov a,#10101010b ;Pale se LED 2,4,6,8
movx @dptr,a ;Upis na lokaciju ;0xxxxxxxb |
Asemblesrki kod za očitavanje stanja tastera na data liniji D0:
mov dptr,#0xxxxxxxb ;Vazno je da je A15=0
movx a,@dptr ;Citanje lokacije 0xxxxxxxb
jb a.0,Set ;Testiranje stanja tastera ;sa data linije D0
clr Taster1 ;Taster1 je pritisnut
Set: setb Taster1 ;Taster1 nije pritisnut. |
(Sve naredbe korišćene u primerima se odnose na asembler firme '2500AD SOFTWARE, INC' )
| Pročitajte
više o ovoj temi |
|
|
|