View Full Version : Emulatori per PIC
Ciao a tutti! ;) Vorrei dedicarmi alla programmazione dei pic, qualcuno mi sa dire se conosce un qualche sito dove ci sia (gratis) un emulatore di pic in cui io possa inserire il mio programma e vedere se funzia? Grazie... :)
I PIC sono dei microcontrollori, quindi al loro interno hanno gia' integrati processore, eprom, ingressi e uscite. Alcuni hanno direttamente la possibilita' di gestire schermi a cristalli liquidi, oppure hanno cose come convertitori AD/DA integrati... si programmano in assembler... se vuoi informazioni vai sul sito del produttore, www.microchip.com :)
Marco.exe
27-04-2002, 22:13
mplab. lo puoi scaricare gratuitamente:D
anche tu programmi quella bestia?;)
Originariamente inviato da Marco.exe
[B]mplab. lo puoi scaricare gratuitamente:D
anche tu programmi quella bestia?;)
:D eheh, programmo, e' una parola grossa... :)
Ho fatto il primo programmino oggi, niente di che, in pratica ho cinque led che partono con acceso quello di mezzo, poi con due pulsanti up e down mi sposto in alto e in basso... mi serve per la regolazione della temperatura di un frigo elettrico: il segnale esce su un partitore e viene paragonato col valore che tiro fuori da una sonda, e se e' maggiore l'uscita pilota dei mosfet che fanno andare la Peltier... carino, no? :)
Comunque io cercavo un emulatore per provare i programmi prima di caricarli sul pic... se ti interessa ne ho trovato uno gratis fatto in java che mi sembra molto carino... il sito e' www.feertech.demon.co.uk/misim/ ;)
Marco.exe
28-04-2002, 00:05
non ti preoccupare, anche io ho incominciato così...
comunque mplab ti fa la simulazione, è molto carino come programma.
per il regolatore di tensione usi il mitico uA741?
Originariamente inviato da Marco.exe
[B]non ti preoccupare, anche io ho incominciato così...
comunque mplab ti fa la simulazione, è molto carino come programma.
per il regolatore di tensione usi il mitico uA741?
Ah dai, non avevo visto che lo faceva anche mplab...
Na, come comparatore usavo un... lm... non mi ricordo quale, perche' il uA741 ha l'alimentazione duale invece io ne voglio uno con alimentazione singola, tanto il mos sta spento anche con 0V, non ho bisogno di andare in negativo...e in macchina non ho la batteria duale... :D
Marco.exe
28-04-2002, 00:26
ma non c'è bisogno per forza di 2 alimentazioni, una la metti a Vcc e l'altra a massa. l'uscita sarà così o a +Vcc o a massa.
che pic usa?16F84?
Originariamente inviato da Marco.exe
[B]ma non c'è bisogno per forza di 2 alimentazioni, una la metti a Vcc e l'altra a massa. l'uscita sarà così o a +Vcc o a massa.
che pic usa?16F84?
Si', il 16F84...
Ho notato che il 741 funziona male senza alimentazione duale, almeno quando hai solo 5V di tensione di alimentazione... anzi, avevo provato in un circuito per un aereomodello e proprio non andava con alimentazione singola di 5V...
Marco.exe
28-04-2002, 09:19
si... il 741 è il più infimo operazionale mai costruito....:D
sarebbe bello overcloccare il pic....:D
Originariamente inviato da Marco.exe
[B]si... il 741 è il più infimo operazionale mai costruito....:D
sarebbe bello overcloccare il pic....:D
Si fa, si fa, gli metti il quarzo a frequenza piu' alta... ;)
Ah, senti, piuttosto... mi sai dire dove trovo una descrizione dei vari pic e quello che hanno integrato? Mi spiego... se volessi fare un'applicazione dove ho bisogno di un pic che mi controlli un display, dove trovo una lista dei modelli che hanno questa possibilita'? Oppure quelli con convertitori AD/DA? Cose del genere... e poi, ho scaricato a suo tempo un manuale di assembler per i PIC, ma non ci sono tutti i comandi che ho trovato invece su delle lezioni... conosci niente in giro su internet da scaricare con la descrizione? Perche' poi questi comandi cambieranno anche a seconda del pic, no? Cioe', uno che fa la conversione AD avra' dei comandi che il 16F84 non ha, o mi sbaglio?
Marco.exe
28-04-2002, 13:43
io ho un manuale dove c'è una tabella con tutti i tipi di PIC. su internet non so dove si trova...
Per i comandi (sempre sul manuale) c'è scritto che sono tutti uguali tranne uno che non ricordo... cambia solo l'HW (più porte...)
(comunque dopo vado a controllare)
Per il display qualunque pic credo che possa comandare un qualunque display, proprio adesso sto facendo un progetto che comanda un display a matrice di punti via seriale, è tutta questione di firmware e temporizzazioni...
Mi sai dare gli estremi del manuale (casa editrice, autore, etc, PREZZO :) ,...)? Tu che tipo di programmi fai? Per cosa hai usato i PIC? Giusto per avere un'idea di cosa ci si puo' fare... io attualmente volevo utilizzarli per fare il controllo di un frigorifero a Peltier per la macchina e un deumidificatore per lo stanzino dove tengo gli strumenti... conosci per caso lo schema di un termometro che mi dia l'uscita in digitale (cioe' che io possa utilizzare per controllare la temperatura, ad esempio, del frigorifero, interfacciandolo direttamente con il pic?)
Marco.exe
29-04-2002, 19:13
mah il PIC lo puoi avere moltissime appplicazioni.
allora il libro è:
Sistemi E Tecnologie, Tramontana. (c'è anche un codice T523).
costa abbastanza però.... sui 30€.
(se ti servono poche pagine te le posso scannerizzare)(io questo non te l'ho mai detto).
adesso io come programma sto progettanto un orologio sveglia... all'inizio mi sembrava tanto facile, ma adesso è un macello assurdo. speriamo in bene....
Bhuuuaaaaa, non funzionaaaaa.... :( :( :(
Perche'? Perche'?? Sull'emulatore va!! Il circuito l'ho ricontrollato, nella compilazione ho messo il clock su XT e disabilitato tutti i fuses.... perche' non va??? T'e' mai capitato? Che mi consigli?
Marco.exe
30-04-2002, 22:52
cosa vuol dire non va? il firmware è giusto?
prova a programmarlo due volte di seguito. (che programmatore usi?)
Non va...vuol dire che non va... :) Quando do tensione tre led su cinque si accendono, poi si spengono subito e non fa piu' nulla... il programma mi pare corretto, sull'emulatore funziona correttamente...
Come programmatore uso il jdm programmer, ma quello funziona, lo uso da molto tempo (per altri impeghi coi pic... :cool: ;) ). Ti posto il programma? ;) tanto e' corto... :)
MA si' dai che te lo posto... :)
PROCESSOR 16F84
RADIX DEC
ERRORLEVEL -302
INCLUDE "P16F84.INC"
OFF EQU 0
ON EQU 1
Shift RES 1
LED1 EQU 0
LED2 EQU 1
LED3 EQU 2
LED4 EQU 3
LED5 EQU 4
UP EQU 0
DOWN EQU 1
ORG 0x0C
Count RES 2
ORG 0x00
bsf STATUS,RP0
movlw B'00000011'
movwf TRISA
movlw B'00000000'
movwf TRISB
bcf STATUS,RP0
bsf PORTB,LED1
bsf PORTB,LED2
bsf PORTB,LED3
bsf PORTB,LED4
bsf PORTB,LED5
call Delay
movlw B'00000100'
movwf Shift
mainloop
movf Shift, W
movwf PORTB
bcf STATUS,C
btfsc PORTA, UP
call su
btfsc PORTA, DOWN
call giu
goto mainloop
su
btfsc PORTA, UP
goto su
btfss Shift, LED5
rlf Shift,F
return
giu
btfsc PORTA, DOWN
goto giu
btfss Shift, LED1
rrf Shift,F
return
Delay
clrf Count
clrf Count+1
DelayLoop
decfsz Count,1
goto DelayLoop
decfsz Count+1,1
goto DelayLoop
return
end
Lo routine per il delay l'ho copiata paro paro :)
Se hai tempo... :p
ops, non mi ha preso l'impaginazione... beh, fai conto che ci sia... :)
Marco.exe
09-05-2002, 19:24
gpc hai mai provato ad usare una tabella?
Originariamente inviato da Marco.exe
[B]gpc hai mai provato ad usare una tabella?
Tabella? Cosa essere "tabella"? :)
Marco.exe
09-05-2002, 19:37
ummm....è difficile da spiegare...:D
allora provo con un esempio:
TABLE MOVF MESI,W
ADDWF PCLATH,F
RETLW H'1F'
RETLW H'3C'
allora il valore del registro mesi viene sommato al valore del PC. facciamo finta che ci sia il valore 2 nel registro mesi, il valore del PC all'istruzione ADDWF PCLATH,F viene sommato 2, perciò salterà all'istruzione RETLW H'3C'. eseguita l'istruzione esce dalla tabella con il valore 3C scritto nel W.
teoricamente dovrebbe essere giusto, ma non mi va :D
Non ho capito niente... :D
Meta' di quei comandi non li ho mai visti...!!! guarda che io ho letto un corsettino base accelerato sui PIC e non sono nemmeno riuscito a far andare quel programma che ti ho postato (che sul simulatore pero' va... :confused: ) !!
Cmq, ci penso... pero' spiegami bene cosa fanno quei comandi che hai scritto... (TABLE, ADDWF, PCLATH, RETLW)... cioe' tutti! :D
Marco.exe
09-05-2002, 19:54
Originariamente inviato da Marco.exe
[B]ummm....è difficile da spiegare...:D
allora provo con un esempio:
TABLE MOVF MESI,W
ADDWF PCLATH,F
RETLW H'1F'
RETLW H'3C'
allora il valore del registro mesi viene sommato al valore del PC. facciamo finta che ci sia il valore 2 nel registro mesi, il valore del PC all'istruzione ADDWF PCLATH,F viene sommato 2, perciò salterà all'istruzione RETLW H'3C'. eseguita l'istruzione esce dalla tabella con il valore 3C scritto nel W.
teoricamente dovrebbe essere giusto, ma non mi va :D
allora TABLE è una flag (che viene chiamata da GOTO TABLE)
MOVF MESI,W muove il valore del registro dei mesi in W
ADDWF PCLATH,F somma il contenuto del W al registro PCLATH, il risultato rimane nel registro PCLATH. PCLATH è un registro che serve per andare a modificare il Program Counter (PC).
TABLE MOVF MESI,W 1
ADDWF PCLATH,F 2
RETLW H'1F' 3
RETLW H'3C' 4
quei numeri a fianco fai finta che siano i valori che assume il PC. alla seconda istruzione vale 2, se gli sommo 2 fa 4, perciò salta all'ultima istruzione e la esegue.
RETLW muovi literal (valore 3C) nel W ed esci dalla TABELLA.
la TABELLA è come se fosse un subroutine
Ok, ho capito.
Solo che non conosco la funzione del program counter... che cosa fa? Indica praticamente quale linea di istruzione eseguire? Per quello dici che se vale 4 salta all'ultima istruzione?
Se e' cosi', direi che va bene, non vedo errori... almeno ad una prima occhiata... Ma hai messo il "return" alla fine della TABLE?
Marco.exe
09-05-2002, 20:18
l'istruzione fa già da return da sola.
il fatto è che non funziona, uffa.
tu hai fatto altri programmi?
Originariamente inviato da Marco.exe
[B]l'istruzione fa già da return da sola.
il fatto è che non funziona, uffa.
tu hai fatto altri programmi?
Eh no, non sono riuscito a far andare nemmeno il primo! :)
No, poi non ho avuto tempo... conta che ho trovato il manuale quando ho iniziato questa discussione... ;)
Cmq, allora non so proprio come mai... hai provato un emulatore?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.