battiesguscia Inserito: 14 giugno 2005 Segnala Share Inserito: 14 giugno 2005 Ciao a tutti!!Mi sto esercitando un po in assembler!!Voglio comandare due dispaly 7 segmenti con un pic 16f84.Mi spiego:io cliccando un pulsante incremento di uno il numero sul display, con un altro pulsante scendo!!Voglio contare fino a 99!!Non riesco a capire la rountime del multiplex per i segmenti.due uscite le uso per abilitazione displayaltre sette per i segmenti.Ciao e mille grazie.. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 giugno 2005 Segnala Share Inserita: 14 giugno 2005 Scusa ma la routine per pilotare i displies chi la fatta? Poi come li piloti i displaies? direttamente? c'è un hw di interfaccia?Perchè le informazioni bisogna estorcerle e non le dai spontaneamente? Link al commento Condividi su altri siti More sharing options...
battiesguscia Inserita: 15 giugno 2005 Autore Segnala Share Inserita: 15 giugno 2005 Scusami per la descrizione spilorcia!!Volevo comandare i due display direttamente dal pic!!Ho scaricato qualche programma simile, ma non riesco a capire come facciano a funzionare!!Mi spiego:ne ho visto uno che aveva una rountime con una specie di tabella dove c'era la corrispondenza del numero con le uscite da mandare alte!!, mentre un altro scaricava solo il valore dell'accumulatore sulll'uscite!!Scusa ma non sono molto capace!!Non riesco a capire i cicli che devo fare!!Grazie mille se mi dai una mano a capire!! Link al commento Condividi su altri siti More sharing options...
Giorgio Demurtas Inserita: 15 giugno 2005 Segnala Share Inserita: 15 giugno 2005 La procedura è la seguente:-abilito la prima cifra -sulle sette linee mando il numero che deve comparire nella prima cifra-spengo al prima e accendo la seconda-mando il numero per la seconda-spengo la seconda e rincomincioper gestire questa temporizzazione devi usare l'interrupt.Un consiglio: non cimentarti in sw ancora troppo difficili per te. Non copiare il listato degli altri.Studia bene il corso pic by example e comincia con i programmi più seplici (lampeggiare un led...). Vedrai che dopo ti sarà più facile far funzionare il tuo circuito.ciao Link al commento Condividi su altri siti More sharing options...
S.D.R. Inserita: 18 dicembre 2005 Segnala Share Inserita: 18 dicembre 2005 Ciao a tutti ; La cosa che vuole fare battiesguscia interessa anche a me .Il corso "pic by example" ,molto utile e spiega anche come pilotare un display intelligente 16x2 non spiega come pilotare i display 7 segmenti ! Pilotare più di un display 7 a mio parere è un po' complesso e il corso in questione non aiuta per niente a capire come si fa .Se gentilissimamente qualcuno può farci un po' di scuola grasssie millleee !!!!! Allora avendo un pic 16f84 collegato in questo modo :- le uscite RB0,1,2,3,4,5,6,7 rispettivamente per i segmenti a,b,c,d,e,f,. - le uscite RA0,1, per i 2 Display di tipo a k comune quindi devo mettere a zero un uscita di RAX per accendere il display interessato (ovvamente ci vuole un transistor per pilotare...)e mettere a uno i vari RBX per accendere i segmenti interessati .- RA2 e RA3 rimangono liberi per collegare due pulsanti per fare incrementare e decrementare il valore sul display . Link al commento Condividi su altri siti More sharing options...
S.D.R. Inserita: 19 dicembre 2005 Segnala Share Inserita: 19 dicembre 2005 (modificato) Allora mi sono messo di impegno e ho creato questo file.asm che purtroppo non funziona , dove ho sbagliato ? PROCESSOR 16F84 RADIX DEC INCLUDE "P16F84.INC" ERRORLEVEL -302 __CONFIG 3FF1HSW1 EQU 0 ; incrementaSW2 EQU 1 ; decrementaDISP1 EQU 2 ; display unitàDISP2 EQU 3 ; display decine ORG 0CHtmp RES 1unita RES 1decine RES 1 ORG 00H bsf STATUS,RP0 movlw 00000100B movwf OPTION_REG movlw 00000000B movwf TRISB movlw 00000011B movwf TRISA bcf STATUS,RP0 clrf unita clrf decine clrf PORTB clrf PORTA;***********************************************************************; CONTROLLO PULSANTI;***********************************************************************Main call Delay btfss PORTA,SW1 goto inc btfss PORTA,SW2 goto dec goto contr1;***********************************************************************; COMANDI INCREMENTO E DECREMENTO ;***********************************************************************inc incf unita,W goto contr1 dec decf unita,W goto contr1 ;***********************************************************************; COMANDI CONTROLLO UNITA' E DECINE;***********************************************************************contr1 sublw 10 btfss STATUS,Z goto contr2 clrf unita incf decine,fcontr2 sublw 255 btfss STATUS,Z goto finecontr clrf unita decf decine,f goto visualizzafinecontr goto Main;;***********************************************************************; COMANDI CONTROLLO DISPLAY ;***********************************************************************visualizza bsf PORTA,DISP1 movwf unita call Tabella movwf PORTB bcf PORTA,DISP1 bsf PORTA,DISP2 movwf decine call Tabella movwf PORTB goto Main Tabella addwf PCL,F; .gfedcba retlw B'00111111' ; 0 retlw B'00000110' ; 1 retlw B'01011011' ; 2 retlw B'01001111' ; 3 retlw B'01100110' ; 4 retlw B'01101101' ; 5 retlw B'01111101' ; 6 retlw B'00000111' ; 7 retlw B'01111111' ; 8 retlw B'01101111' ; 9 return;***********************************************************************; CHIAMATA RITARDO;***********************************************************************Delay movlw 6 movwf TMR0 movlw 30 movwf tmpDelayLoop movf TMR0,W btfss STATUS,Z goto DelayLoop ;No, aspetta... movlw 6 ;Si, reimposta TMR0 e controlla se movwf TMR0 ;e' passato per 125 volte per lo zero decfsz tmp,1 goto DelayLoop return ;I pulsanti SW1 ed SW2 quando non sono premuti gli ingressi RA0 ed RA1 ;sono normalmente a 5V e vanno a 0V quando si agisce su di essi .;;Il display è di tipo Katodo comune . END Modificato: 19 dicembre 2005 da S.D.R. Link al commento Condividi su altri siti More sharing options...
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