Vai al contenuto
PLC Forum


Come Posso Pilotare Il Lo Shift Register Dm74ls164 Con Un Pic?


lutherblisset

Messaggi consigliati

la tabella delle verità dice:

Inputs Outputs

Clear Clock A B QA QB ... QH

L X X X L L ... L

H L X X QA0 QB0 ... QH0

H * ­ H H H QAn ... QGn

H ­ * L X L QAn ... QGn

H * X L L QAn ... QGn

H = HIGH Level (steady state)

L = LOW Level (steady state)

X = Don't Care (any input, including transitions)

*­ = Transition from LOW-to-HIGH level

QA0, QB0, QH0 = The level of QA, QB, or QH, respectively, before the indicated steady-state input conditions were established.

QAn, QGn = The level of QA or QG before the most recent ­ transition of the clock; indicates a one-bit shift.

Link al commento
Condividi su altri siti


concordo con quanto scritto da livio qui sopra.

Non conosco nemmeno i PIC comunque ci provo

1.- se il problema è quali sono le istruzioni per muovere le porte del pic la soluzione è .... leggere il manuale .

2.- Collegamenti

ti servono tre porte del PIC configurate in output

CLR collegata al CLR del 164

CLK collegata al CLK del 164

DATA collegata su A B del 164 (AeB puoi metterli in corto tra di loro con la porta del PIC che li controlla)

3.- Si parte CLR=1 e CLK=0 (reset delle porte) DATA come vuoi tu non ha importanza

4.- ogni volta che metti CLK=1 i valore presente su DATA vine trasferito alla prima uscita.(La freccina nella tabella di verità indica che il dato viene "letto" dal componente sul FRONTE di salita del CLK non sul LIVELLO) Quando porti CLK a zero non succede nulla. Riporti CLK a 1 e il dato presente su Q0 passa in Q1 mentre il valore presente su DATA entra in Q0 e così via

5.- se vuoi "cancellare" i dati presenti e riportare le uscite a zero un colpetto di CLR=0 ed è fatta. Quando dai il colpetto di CLR tieni fermi CLK e DATA (non servirebbe ma...)

Suggerimento: guarda bene come sono fatte le porte del PIC per capire come fare ma ti conviene mettere una resistenza verso massa sul CLR così all'accensione quando il micro non controlla ancora le porte le tue uscite hanno tutte uno stato noto Qx=0.

Un pseudo codice potrebbe essere questo

set DATA

set CLK

nop

rst CLK

rst DATA

set CLK

nop

rst CLK

nop

set CLK

nop

rst CLK

dopo queste istruzioni dovresti avere Q0=0 Q1=0 e Q2=1

i nop non servirebbero ma rallentano un po il clk.

per cancellare

rst CLR

nop

set CLR

Se non funziona controlla prima la configurazione del PIC le tre porte scelte devono ovviamente essere configurate in output.

Non offenderti se ho detto cose banali e conosciute ma credimi dalla domanda non si capisce cosa vuoi fare e qual'è effettivamente il problema

ciao

Link al commento
Condividi su altri siti

lutherblisset

si,avete ragione scusate,era un modo per pilotare dei digit 7 segmenti con 3 uscite del pic,siccome il dm74ls174 lo avevo già nel cassetto :D .....dite che non è adatto allo scopo?

Link al commento
Condividi su altri siti

Con 3 porte non piloti comunque un 7 segmenti. Te ne servono 4 per i dati e una per ogni cifra per lo strobe; poi devi usare un decoder per 7 segmenti. Butti fuori i dati, dai un impulso allo strobe, butti fuori i dati, dai un impulso al secondo strobe e così per tutte le cifre. Domanda: perchè non usi display come ilo TL311 texas che ha gia incorporato la decodifica conmemoria?

Link al commento
Condividi su altri siti

Forse Livio non ha scritto la sigla esatta perchè il TL311 non lo trovo (non significa nulla perchè io con le ricerche sono piuttosto imbranato)

comunque se proprio vuoi usicre in seriale dal micro credo che il 164 ritorni nel cassetto.

Forse hai omesso altri dettagli ma se utilizzi solo il 164 avrai uno sfarfallio sul display mentre aggiorni il dato perchè le uscite cambiano continuamente mentre scrivi il nuovo dato nello shift. Se il display ha più cifre l'ultima deve attraversare tutti gli shift.

Io per una cosa simile (per pilotare relè) avevo usato dei 74HC595 hanno lo shift simile al 164 alla fine quando hai carciato tutti i dati in seriale con una linea di strobe (pin aggiuntivo del micro) sposti il dato sui latch di uscita del componente. (poco chiaro sicuramente il datasheet spiega meglio le cose)

Se il display ha tanti digit prendi anche in cosiderazione (o hai già scartato?) la possibilità di usare un multiplexing. Accendi i digit per brevi intervalli di tempo (Devi fare tutto il ciclo in meno di 25Hz (teorici)). Hai meno luminosità ma semplifichi il circuito.

Link al commento
Condividi su altri siti

ifachsoftware
Forse Livio non ha scritto la sigla esatta perchè il TL311 non lo trovo (non significa nulla perchè io con le ricerche sono piuttosto imbranato)

Link al commento
Condividi su altri siti

Scuscettibile il nostro ifachsoftware.

La sigla indicata da Livio era TL311 e io da bravo soldatino ho cercato TL311 (E qualcosa esce anche così)

Non essendo il diretto interessato (accacca non lutherblisset) non ho approfondito. Ho voluto solo segnalare la cosa e proporre un'alternativa.

Se poi ammettere di non appartenere all'olimpo ma di essere un comune mortale scatena queste risposte preferisco starmene al paesello (con vostra gioia credo)

grazie comunque per il link corretto che spero sia d'aiuto a lutherblisset.

Link al commento
Condividi su altri siti

ifachsoftware

Nessuno fa parte dell'olimpo (me per primo) , ritengo solo che anche se e' stata scritta in maniera errata una sigla basta un po' di buona volonta' e con una ricerca incrociata i dati saltano fuori cosi' come ho fatto io.

La proposta di Livio e' sicuramente la migliore dal punto di vista tecnico , in quanto che multiplexando si ottiene un risultato scadente sotto il punto di vista della visibilita'.

Naturalmente una scelta ripetto ad un'altra va valutata sotto diversi puntoi di vista (io da tecnico scelgo sempre la migliore).

Ciao :)

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...