Olen tutkinut 8032
-mikro-ohjainta. Mainitaan, että 8032
ei ole sisäistä ROM-levyä. Nyt minulla on muutama kysymys.
-
Tarvitsemmeko ulkoista ROM-levyä Suorita ohjelmia välttämättä? Voimmeko käyttää 256 tavun sisäistä RAM-muistia?
-
Oletetaan, että käytän 8032-mikrokontrolleria ulkoisen ROM-levyn kanssa
2732
ja käytetään myös salpaa portin P0 osoitteen (alemman asteen) tallentamiseen (joka voi siirtää osoitetta / dataa). Kun olet ottanut käyttöön EA ja liittänyt PSEN miten 8032 suorittaa ohjelman? Mitä tapahtuu, jos käynnistän järjestelmän? (Kuinka 8032-mikrokontrollerin ohjelmalaskuri suorittaa sisäänpääsyt? Mistä ulkoisen muistin osoitteesta ohjelma tulisi lukea?
Minulla on lue nämä käyttöohjeet- Intel 8032H Keil , Atmel 80C32E .
Vastaa
Jos tarkastelet tyypillistä 80 (C) 32 -piiriä alla ( täältä ):
Voit nähdä, että 8032 puhuu ulkoisen EPROM: n, RAM: n ja EEPROM: n kanssa väylä – 8-bittinen data ja 16-bittinen osoite. Jälkimmäinen on lukittu ja siten demultipleksoitu HCT573: n kanssa. Joitakin siruja, joiden salpa on rakennettu, on suunniteltu käytettäväksi 8031/8032: n kanssa, mutta yllä olevat olivat yleisempiä kokoonpanoja – käyttäen matalaa -kustannusten vakiomikropiirit. Siellä on myös vähän ” liimaa ” -logiikkaa osoitteiden purkamiseksi ja sukuihin Muistien oikeat signaalit (HCT138 ja quad NAND).
On tärkeää, että liimalogiikka on suunniteltu siten, että EPROM asuu osoitteessa 0, koska palautuksen jälkeen suoritus alkaa aina 8032 noutaa käskyn ensimmäisen tavun kyseisestä osoitteesta. Tämä on 8032: n laitteiston toiminto, eikä sitä voi muuttaa. Tyypillisesti käsky on 3-tavuinen LJMP-käsky, joka hyppää ohjelman alkuun. Kutsumme tätä ” NOLLAA VEKTORI ”. Muut vektorit käyttävät tavuja välittömästi nollausvektorin yläpuolella – ulkoisen keskeytyspalvelurutiinin ja ajastimen keskeytyspalvelurutiinin osalta.
Noina päivinä erillinen ohjelmoija ohjelmoi (kirjoitetaan) EPROM: in kytketään sitten tyypillisesti pistorasiaan. Ei piirin sisäistä ohjelmointia noina päivinä. Mikro voi kirjoittaa RAM-muistin ja EEPROM-muistin, mutta ohjelma olisi ladattava EPROM-muistiin ennen kuin mikä tahansa niistä oli mahdollista.
Kommentit
Vastaus
Ei, koodin pitämiseen ei voi käyttää sisäistä RAM-muistia. 8051/8032 käyttää Harvard-arkkitehtuuria, mikä tarkoittaa, että siinä on täysin erillinen muistitilat koodille ja tiedoille. Ohjeet haetaan kooditilasta, mutta RAM-muisti on tietotilassa.
Nyt kun olet ottanut EA: n käyttöön ja liittänyt PSEN: n, miten suorittaa 8032 ohjelman?
8032 hakee ohjeet kooditilasta. Koska EA on väitetty, nämä haut (muistilukemat) näkyvät ulkoisessa muistiväylässä , PSEN
väitetään. Kun PSEN
EI ole vahvistettu ulkoisen muistin lukutoiminnossa, se on luettu tietotila.
Mitä tapahtuu, jos käynnistän järjestelmän?
8032 aloittaa ohjeiden hakemisen kooditilasta osoitteesta 0.
Kuinka 8032-mikrokontrollerin ohjelmalaskuri suorittaa sisäänpääsyt?
ohjelmalaskuri on yksinkertaisesti vastuussa seuraavan suoritettavan käskyn osoitteen pitämisestä. Muut suorittimen osat suorittavat ohjeet.
Mistä ulkoisen muistin osoitteesta ohjelma tulisi lukea?
Osoite 0.
Jos haluat käyttää keskeytyksiä ohjelmassasi, niille varataan vähän muita kooditilan muistissa olevia osoitteita, joten antamasi koodi Suorita uudelleenkäynnistyksen yhteydessä täytyy lopulta ”hypätä ympäri” näitä varattuja osoitteita.
Kommentit
- Tämä on vastaus ensimmäiseen kysymykseen. Annan +1. Voisitteko kertoa tarkemmin kysymyksen toisesta osasta? Tästä osasta en voi ’ saada mitään vihjeitä.
- Katso edellinen muokkaus.
Vastaa
8032: lla, joka on muunnos 8052: sta, ei ole sisäistä ROM-muistia ohjelmien tallennusta varten. Sen sijaan ohjelman pitämiseen on käytettävä ulkoista ROM-levyä / EPROM / EEPROM.
Ulkoisen muistin käyttämiseen käytetään kahta porttia: Portti 0 (rivit P0.0-P0.7) lähettää matalan 8 16-bittisen 64K-osoitteen bittiä ja toimii myös 8-bittisenä luku- / kirjoitusväylänä, kun ulkoinen muisti on lukinnut osoitteen.
P2 (rivit P2.0-P2.7 ) käytetään 16-bittisen 64K-osoitteen korkeiden 8-bittisten viestien lähettämiseen.
Vaikka 8032: ssa on 256 tavua sisäistä RAM-muistia, sitä voidaan laajentaa lisäämällä RAM-siru myös ulkoiseen osoiteväylään. .
Ulkoinen osoiterivi \ $ \ mathsf {\ small \ overline {\ text {EA}}} \ $ pidetään matalana osoittaakseen, onko pääsy ulkoiseen ohjelmamuistiin, muuten ulkoinen Oletetaan RAM-muistia.
Koodin suorittamiseksi ulkoisesta muistista ohjelmalaskurin osoite tulostetaan Port 0- ja Port 2 -rivillä; sitten lukusyklin aikana tavut, jotka haetaan ROM-levyltä luettuna Porttiin 0 ja suoritin suorittaa.
Vain yksi käsky haetaan kerrallaan.
\ $ \ mathsf {\ small \ overline {\ text {PSEN}}} \ $ on strobe, jota käytetään ulkoisen ohjelman muistin käytön aikana.
Kommentit
- .: Mutta miten se suorittaa ulkoisessa muistissa olevan ohjelman? Katsokaa, en ymmärrä, miten tietokone selviää, kun ohjelma on ulkoisessa muistissa. Tarkoitan, että jokaisella m / c-jaksolla se hakee jonkin verran tavua. Sitten noutamisen jälkeen ohjelma suoritetaan heti tai koko ohjelma haetaan kerralla >, jos siinä tapauksessa se tallennetaan?
- .: Joten aluksi
PC=0000h
. Se alkaa hakea tavuja jokaisella m / c-jaksolla ja suorittaa sen sitten? Joten ROM-levyllä meidän tulisi aina polttaa ohjelma osoitteesta0000h
, muuten emme pystyisi suorittamaan sitä oikein. - @learner. Oikea. Yleensä osoite hyppää koodin ” todelliseen ” alkuun.
- .: I antaa +1 vastauksellesi. Mutta jos ohjelma suoritetaan käsky ohjeella, miten tällaista eteenpäin viittausta hallitaan?
L1:JNZ L2 .. L2:....
. - JNZ-käsky (ja muut Jump and Branch -ohjeet) lataa Jumpin kohdeosoitteen ohjelmalaskuriin, joten prosessori hakee seuraavan ohjeet tältä osoitteelta pikemminkin kuin hyppyn jälkeen.
glue logic
osan. Näyttää siltä, ettäLJMP
siirtyy ohjelman alkuun? Mutta tässä ohjelma on ulkoisessa muistissa. Tässä käytetäänkö tällaista ohjetta? Tarkoitan yksinkertaisia ohjeita, jotka haetaan ulkoisesta muistista ja sijoitetaanIR
-kansioon, puretaan ja suoritetaan? MissäLJMP
-tapaus on täällä?