|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
Termometro digitale 8bit 2 display 7 segmenti + bs2
salve a tutti, spero di riuscire a spiegare il mio problema.
Il mio progetto è quello di utilizzare un lm35 (sensore di temperatura ) con un convertitore analogico digitale, per poi arrivare al pic che leggerà il valore shifatatogli dentro. a questo punto con il pic shifto il valore letto in gradi, a un Sipo (74hc/ls164), a sua volta; L'intenzione era quella di collegarli un encoder per display a 7 segmenti, però questi encoder che ho trovato sono tutti a 4bit, esiste un dual encoder a 8bit per pilotare 2 display? Oppure esiste il modo tramite il pic di spezzare la variabile?, cioè per esempio Il sensore legge 28gradi, io prendo il 2 lo shifto al sipo, poi shifto 8 e a sua volta a un flip flop (dato che i numeri entrerebbero un po in ritardo, cosi li potrei mandare al encoder tutti e 2 contemporaneamente) e poi 2 encoder a 4bit collegati ognuno a un display Se è possibile spezzare una variabile, qualcuno sa dirmi come si fa in ambiente Basic Stamp 2? grazie e saluti |
![]() |
![]() |
![]() |
#2 | |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Quote:
Basta un solo encoder e due transistor. 4 linee per mandare i due dati BCD e 2 per accendere e spegnere il display delle decine e delle unità. I due display sono collegati allo stesso encoder, e i transistor operano sui loro catodi(o anodi) comuni, pilotati da due linee del PIC. In pratica fau questo: -mandi l'8 all'encoder -accendi il display delle decine -attendi qualche ms -spegni il display delle decine -mandi il 2 all'encoder -accendi il display delle unità -attendi qualche ms -spegni il display delle unità -ricominci da capo
__________________
Chiuso per protesta |
|
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
ciao, grazie mille della risposta, e dell'attenzione
il problema è propio questo, cioè non riesco a dividere questo valore, come posso fare per mandare prima il l'8 poi il 2? anche perchè il problema è che in binario 28 = 00011100 quindi se io prendo i primi 4 bit non riesco a ottere 2(0010) , e nemmeno se prendo gli altri 4 ottengo 8(1000)! |
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Quote:
__________________
Chiuso per protesta |
|
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
Temperatura var byte
Cs con 0 Data_ con 1 Clock_ con 2 high cs loop: low cs shiftin Data_,clock_,msbpost,[temperatura/8] high cs pause 500 goto loop temperatura = in gradi per l'esempio 28 gradi ora come posso fare? è gia in decimale la temperatura! |
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Quote:
28 MOD 10 = 8
__________________
Chiuso per protesta |
|
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Eh, vabbé, ma questa è l'ABC della programmazione....
MOD è l'operatore modulo, cioè quello che ti da' il resto di una divisione. Che linguaggio usi per i PIC?
__________________
Chiuso per protesta |
![]() |
![]() |
![]() |
#9 | |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
Quote:
si mi sono appena documentato su wiki pedia, io come progammazione uso basic stamp 2 conosci percaso come si utilizza in ambiente bs2 questa funzione? |
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Ci sarà pure un elenco delle istruzioni, da qualche parte.
__________________
Chiuso per protesta |
![]() |
![]() |
![]() |
#11 |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
|
![]() |
![]() |
![]() |
#12 | |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Quote:
Nella sintassi C è lui che svolge l'operazione di modulo.
__________________
Chiuso per protesta |
|
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
|
![]() |
![]() |
![]() |
#14 | |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Quote:
unità= numero - 10*(numero DIV 10)
__________________
Chiuso per protesta |
|
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Dec 2003
Città: FM
Messaggi: 152
|
Trovato.
L'operatore modulo è //. (doppia barra) http://award.altervista.org/docs/pba...mies210104.pdf Pagina 11.
__________________
Chiuso per protesta |
![]() |
![]() |
![]() |
#16 | |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
Quote:
![]() con la calcolatrice in modalita programmatore funziona 28 - 10*(28/10) = 8 mentre nelle uscite del pic mi ritrovo 100100=36 edit letto ora ora, provo subito |
|
![]() |
![]() |
![]() |
#17 | |
Bannato
Iscritto dal: Jan 2006
Città: Rimini
Messaggi: 4767
|
Quote:
![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:59.