Documente Academic
Documente Profesional
Documente Cultură
8259A (cont)
Programarea 8259
Fig 6 (http://discipline.elcom.pub.ro/amp2/8259A_PIC_Datasheet.pdf)
Programarea se face prin scrierea unei secvente de cuvinte de programare -> la
aceeasi adresa
Initializarea 8259
- ICW1, ICW2, (ICW3), (ICW4)
Cuvinte de operare si control
- OCW1, OCW2
Fig. 7 (http://discipline.elcom.pub.ro/amp2/8259A_PIC_Datasheet.pdf)
- Obs. -> mod 8080 (vechi) -> adresa de servire (MSW) este tranmisa direct pe bA
-> mod 8086 -> se transmite tipul (MSB) intreruperii !
- de verificat:
- respectarea specificatiei date (si justificarea acesteia)
- corectitudinea schemei de selectie
- de verificat:
- stabilirea corecta a modului de lucru
- folosirea corecta a cuvintelor de programare asociate modului ales
- corectitudinea operatiilor pe biti
- de verificat:
- corectitudinea functionarii
- concordanta dintre specificatie, descriere formala si cod
Exemplu:
Imprimanta -> Rx
uC -> Tx
Protocol initiat uC (Tx) -> READY -> date gata catre imprimanta
-> ACK -> confirmarea primirii datelor de catre imprimanta
PORT_DATA -> port de date imprimanta -> buffer, 8 biti - D0-D7, in, selectie cu
CS0/
B1 -> buffer -> D0 (polling), in, selectie cu CS1/ sau
-> semnal intrerupere -> B1 se poate omite
R1 -> registru -> D0, out, selectie cu CS2/
Elemente de software:
a=portin(ADRIO);
void portout(int adr, char val); -> scrie in portul de out de adresa adr, valoare
val
portout(ADRIO, a);
De ex:
ADR_PD -> genereaza CS0/
ADR_B1 -> genereaza CS1/
ADR_R1 -> genereaza CS2/
sicronizarae cu intreruperi:
SCI_Rx -> cind READY =1 (activ) -> preia datele -> citeste PORT_DATA -> de catre uC
imprimantei
SCI-Tx -> cind ACK = 1 (activ) -> tranamite date -> de catre uC
Next
Lucrarea 1