Sunteți pe pagina 1din 23

Proiectarea Microsistemelor Digitale

Curs 10

Proiectarea Microsistemelor Digitale


5.4. Aplicaii

5.4.1. S se proiecteze o interfa serial pe 2 canale, cu 2 circuite


8251, la o unitate central cu microprocesorul 8086, cu
urmtoarele date iniiale: 8 bii de date, paritate impar, 2 bii de
stop, factor 16, viteza de transfer 9600 bps pentru canalul 1 i 8
bii de date, paritate par, 1 bit de stop, factor 16, viteza de
transfer 2400 bps pentru canalul 2. Circuitele 8251 vor fi
comandate de un circuit 8253. Se va desena schema i se vor
scrie rutinele de programare i rutinele de baz de transfer.

Proiectarea Microsistemelor Digitale

Schema interfeei:

Proiectarea Microsistemelor Digitale

Adresele de port:

00H pentru portul de date al primului circuit 8251,


02H pentru portul de comenzi/ stri al primului circuit 8251,
20H pentru portul de date al celui de-al doilea circuit 8251,
22H pentru portul de comenzi/ stri al celui de-al doilea circuit 8251,
40H pentru contorul 0 al circuitului 8253,
42H pentru contorul 1 al circuitului 8253,
46H pentru Registrul Cuvntului de Comand al circuitului 8253.

Modul de lucru pentru contoarele circuitului 8253: 3

Constantele:

2 457 600/ 153 600 = 16 pentru contorul 0,


2 457 600/ 38 400 = 64 pentru contorul 1.

Proiectarea Microsistemelor Digitale

Rutina de programare a primului circuit 8251:


MOV AL,0FEH ; cuvnt de mod
OUT 02H,AL
MOV AL,15H ; cuvnt de comand
OUT 02H,AL

Rutina de programare a celui de-al doilea circuit 8251:


MOV AL,5EH ; cuvnt de mod
OUT 22H,AL
MOV AL,15H ; cuvnt de comand
OUT 22H,AL

Proiectarea Microsistemelor Digitale

Rutina de programare a circuitului 8253:


MOV
OUT
MOV
OUT
MOV
OUT
MOV
OUT

AL,16H ; cuvntul de comand pentru contorul 0


46H,AL
AL,10H ; constanta pentru contorul 0
40H,AL
AL,56H ; cuvntul de comand pentru contorul 1
46H,AL
AL,40H ; constanta pentru contorul 1
42H,AL

Proiectarea Microsistemelor Digitale

Rutina de transmisie caracter, primul circuit 8251:


TR: IN
RCR
JNC
MOV
OUT
RET

AL,02H ; citire i testare rang TxRDY din cuvntul de stare


AL,1
TR
AL,CL ; se preia data din registrul CL
00H,AL

Rutina de recepie caracter, primul circuit 8251:


REC: IN
RCR
JNC
IN
MOV
RET

AL,02H ; citire i testare rang RxRDY din cuvntul de stare


AL,2
TR
AL,00H ; se preia data de la 8251
CL,AL ; se depune data n registrul CL

Proiectarea Microsistemelor Digitale

Rutina de transmisie caracter, al doilea circuit 8251:


TR: IN
RCR
JNC
MOV
OUT
RET

AL,22H ; citire i testare rang TxRDY din cuvntul de stare


AL,1
TR
AL,CL ; se preia data din registrul CL
20H,AL

Rutina de recepie caracter, al doilea circuit 8251:


REC: IN
RCR
JNC
IN
MOV
RET

AL,22H ; citire i testare rang RxRDY din cuvntul de stare


AL,2
TR
AL,20H ; se preia data de la 8251
CL,AL ; se depune data n registrul CL

Proiectarea Microsistemelor Digitale

5.4.2. S se proiecteze o interfa serial cu circuitul 8251, la o unitate


central cu microprocesorul 8086, cu urmtoarele date iniiale:
viteza perifericului 2400 bps, factor de multiplicare 16, 7 bii de
date, fr paritate,1 bit de STOP. Interfaa va lucra prin ntreruperi
i va fi comandat de un circuit 8253. Se vor prezenta: schema,
rutinele de programare, rutinele de transfer, soluia prin care
microprocesorul ajunge la rutinele de tratare.

Proiectarea Microsistemelor Digitale

Schema interfeei:

10

Proiectarea Microsistemelor Digitale

Adresele de port:

20H pentru portul de date al circuitului 8251,


22H pentru portul de comenzi/ stri al circuitului 8251,
00H pentru contorul 0 al circuitului 8253,
06H pentru Registrul Cuvntului de Comand al circuitului 8253.

Modul de lucru pentru contorul 0 al circuitului 8253: 3

Constanta:

2 457 600/ 38 400 = 64.

11

Proiectarea Microsistemelor Digitale

Rutina de programare a circuitului 8251:


MOV AL,4AH ; cuvnt de mod
OUT 22H,AL
MOV AL,15H ; cuvnt de comand
OUT 22H,AL

Rutina de programare a circuitului 8253:


MOV AL,16H ; cuvntul de comand pentru contorul 0
OUT 06H,AL
MOV AL,40H ; constanta pentru contorul 0
OUT 00H,AL

12

Proiectarea Microsistemelor Digitale

Transferul unui caracter va avea loc n cadrul rutinei de tratare a


cererii de ntrerupere.
ntruct exist 2 surse pentru cereri de ntrerupere, microprocesorul
va trebui s identifice sursa.
Operaia se va realiza la nceputul rutinei de tratare a cererii prin
citirea octetului de stare i prin verificarea rangului RXRDY.
Dac acesta are valoarea 1 nseamn c sursa este recepia iar
dac are valoarea 0 atunci sursa este transmisia.
Recepia i transmisia caracterului se vor face rapid fr ca
microprocesorul s atepte asamblarea unui caracter, respectiv
golirea tamponului de ieire.
Accesul procesorului la rutina de tratare a cererii de ntrerupere se
va face prin intermediul unui vector generat de o logic de
ntrerupere (de obicei circuitul 8259A); vectorul va duce la o intrare
n tabela vectorilor de ntrerupere.

13

Proiectarea Microsistemelor Digitale

Rutina de tratare a cererii de ntrerupere:


SER: IN
AL,22H ; citire i testare rang RxRDY din cuvntul de stare
RCR
AL,2
JNC
REC
; transmisia
MOV
AL,CL
OUT
20H,AL ; se scrie data la 8251
EI ; reactivare a sistemului de ntreruperi
RET
; recepia
REC:IN
AL,00H ; se preia data de la 8251
MOV
CL,AL ; se depune data n registrul CL
EI ; reactivare a sistemului de ntreruperi
RET

14

Proiectarea Microsistemelor Digitale

5.4.3. S se proiecteze un modul care anun microprocesorul 8086 c


un eveniment extern a aprut de 1000 ori. O apariie este
anunat microprocesorului prin un tren de 500 impulsuri cu
caracteristici TTL. Se va utiliza un circuit 8253.

15

Proiectarea Microsistemelor Digitale

Schema modulului:

16

Proiectarea Microsistemelor Digitale

Se consider c exist un traductor ntre eveniment i circuitul 8253


care genereaz 500 impulsuri cu caracteristici TTL la o apariie a
evenimentului.
Constanta de programare este: 1000 x 500 = 500000 i este prea
mare i nu ncape n un contor al circuitului 8253.
Se vor folosi contoarele 0 i 1, nseriate, iar constantele de divizare
vor fi:

1000D = 03E8H pentru contorul 0 i


500D = 01F4H pentru contorul 1.

Ieirea contorului 0 va constitui intrare de tact pentru contorul 1.


Ieirea contorului 1 poate fi surs pentru cerere de ntrerupere sau
poate fi citit, prin program, de ctre microprocesor.
Se va folosi:

modul 3 pentru contorul 0 i


modul 0 pentru contorul 1.

17

Proiectarea Microsistemelor Digitale

Adresele de port:

00H pentru contorul 0 al circuitului 8253,


02H pentru contorul 1 al circuitului 8253,
06H pentru Registrul Cuvntului de Comand al circuitului 8253.

Programarea:
MOV AL,36H ;cuvntul de comand pentru contorul 0
OUT 06H,AL
MOV AL,0E8H ; octetul c.m.p.s. al constantei pentru contorul 0
OUT 00H,AL
MOV AL,03H ; octetul c.m.s. al constantei pentru contorul 0
OUT 00H,AL
MOV AL,70H ;cuvntul de comand pentru contorul 1
OUT 06H,AL
MOV AL,0F4H ; octetul c.m.p.s. al constantei pentru contorul 1
OUT 02H,AL
MOV AL,01H ; octetul c.m.s. al constantei pentru contorul 1
OUT 02H,AL

18

Proiectarea Microsistemelor Digitale

5.4.4. S se comande 32 semnale de ieire de ctre un microprocesor


8086. Se vor utiliza circuite 8255.

19

Proiectarea Microsistemelor Digitale

Schema modulului:

20

Proiectarea Microsistemelor Digitale

Adresele de port:

00H pentru portul PA al primului circuit 8255,


02H pentru portul PB al primului circuit 8255,
06H pentru Registrul Cuvntului de Comand al primului circuit 8255,
20H pentru portul PA al celui de-al doilea circuit 8255,
22H pentru portul PB al celui de-al doilea circuit 8255,
26H pentru Registrul Cuvntului de Comand al celui de-al doilea circuit
8255.

Modurile de lucru: 0 ieire

21

Proiectarea Microsistemelor Digitale

Programarea celor 2 circuite 8255:


MOV
OUT
OUT

AL,80H
06H,AL
26H,AL

Pentru a poziiona o ieire va trebui scris configuraia


corespunztoare la portul unde este conectat respectiva ieire. De
exemplu, pentru ca s existe urmtoarea configuraie: IES0 = IES2 =
IES4 = IES6 = 0, IES1 = IES3 = IES5 = IES7 = 1 va trebui executat
urmtoarea secven:
MOV
OUT

AL,0AAH
02H,AL.

22

Proiectarea Microsistemelor Digitale

Dac se dorete poziionarea unei singure ieiri, fr a le afecta


pe celelalte va fi necesar modificarea programrii circuitului.
Portul la care este conectat ieirea va trebui s fie poziionat ca
intrare, apoi se va citi combinaia de la respectivul port, se va
modifica combinaia, portul va fi programat ca ieire i apoi se va
scrie combinaia la respectivul port. De exemplu, dac se dorete
poziionarea ieirii IES0 la 1 logic, fr afectarea celorlalte, va
trebui executat urmtoarea secven:
MOV
OUT
IN
OR
MOV
MOV
OUT
MOV
OUT

AL,82H
06H,AL ;portul B din primul 8255 este poziionat ca intrare
AL,02H
AL,01H
CL,AL
AL,80H
06H,AL ;portul B din primul circuit 8255 este ieire
AL,CL
02H,AL ,se poziioneaz ieirea dorit
23

S-ar putea să vă placă și

  • Curs 14
    Curs 14
    Document30 pagini
    Curs 14
    Pasan Petru
    Încă nu există evaluări
  • Curs 11
    Curs 11
    Document34 pagini
    Curs 11
    Pasan Petru
    Încă nu există evaluări
  • Curs 9
    Curs 9
    Document29 pagini
    Curs 9
    Pasan Petru
    Încă nu există evaluări
  • Curs 12
    Curs 12
    Document35 pagini
    Curs 12
    Pasan Petru
    Încă nu există evaluări
  • Curs 13
    Curs 13
    Document25 pagini
    Curs 13
    Pasan Petru
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document34 pagini
    Curs 7
    Pasan Petru
    Încă nu există evaluări
  • Curs 8
    Curs 8
    Document21 pagini
    Curs 8
    Pasan Petru
    Încă nu există evaluări
  • Curs 6
    Curs 6
    Document26 pagini
    Curs 6
    Pasan Petru
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document26 pagini
    Curs 5
    Pasan Petru
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document24 pagini
    Curs 3
    Pasan Petru
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document37 pagini
    Curs 4
    Pasan Petru
    Încă nu există evaluări
  • Curs Flash 1
    Curs Flash 1
    Document35 pagini
    Curs Flash 1
    Alex Alex
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document39 pagini
    Curs 2
    Pasan Petru
    Încă nu există evaluări
  • PMD
    PMD
    Document34 pagini
    PMD
    Pasan Petru
    Încă nu există evaluări
  • LabAC 1
    LabAC 1
    Document5 pagini
    LabAC 1
    cornel_punga1504
    Încă nu există evaluări