Steven Smith Inserito: 18 giugno 2007 Segnala Inserito: 18 giugno 2007 Salve a tutti, sono nuovo di questo forum e sto facendo i primi esperimenti programmando un 16F84 in .ASM.Ho collegato su PORTB un data bus proveniente da un A/D converter da 8 bit.Le mie domande sono queste: usando l'istruzione movf per acquisire il valore su PORTB, mi sparisce il bit meno significativo? Se si, come posso fare per rimpiazzarlo (usando btfsc o btfss??) Non c'è qualche modello di pic che consenta di trasferire i dati da un registro all'altro copiando tutti e 8 i bit? Oppure, se passassi ad un pic con A/D C integrato a 10 bit, come farei ad ottenere un numero <= a 255 che è ciò che mi serve?Grazie anticipatamente a chi mi risponderà.
Livio Orsini Inserita: 18 giugno 2007 Segnala Inserita: 18 giugno 2007 1 - l'istruzione "movf' trasferisce il contenuto di un registro da 8 bits in un altro da 8 bits; non si cancella nessun bit e non si influenza nessun flag. Così è la specifica di Microchip e così l'ho sempre usata senza inconvenienti.2 - Se passi ad un A/D converter da 10 bits devi usare 2 bytes. Come? questo dipende dal tipo di converter. Se hai 10 bits in parallelo dovrai usare altri due ingressi. Se usi un convertitore che fa 2 fasi trasferendo il primo bytes, poi il secondo, puoi usare solo una porta, ma devi usare sempre due bytes di memoria.Domanda. Perchè non usi un altro pic? Per esempio 16F88 è identico, è simile al 16F84 ma ha più memoria e ha gia A/D converter da 10 bits integrati. Le porte A sono anche canali analogici.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora