Newsgroup: it.hobby.elettronica.digitale
Titolo: Prime esperienze con PIC16F88

Salve,
mi sto facendo le mie prime esperienze con il 16F88,
potreste dirmi dove sto sbagliando?
Vorrei semplicemente che RA0 generasse un'intermittenza da 1Hz.
Ovvero 1 secondo RA0 = 0V, 1 secondo RA0 = 1V e via dicendo.
Purtroppo RA0 rimane a 0.5V per tutto il tempo :(
Se ho capito bene il PIC16F88 non richiede circuiteria esterna a parte 
l'alimentazione poiché ha l'oscillatore interno (che se ho ben capito è 
a 8MHz).
Grazie,
   Luca
P.S.: Il loop da 1 secondo è creato con pikloops, il resto l'ho scritto io.
___________________________
	LIST P=16F88, R=DEC
	include "P16F88.INC"  ; Include header file
	__config  _INTRC_IO & _WDT_OFF
CounterA	equ	0x20
CounterB	equ	0x21
CounterC	equ	0x22
	ORG    0x000	; Program starts at 0x000
	banksel PORTA	; Seleziona banco per PORTA
	clrf PORTA	; Azzero tutti i suoi latch
	banksel ANSEL	; Seleziona banco per ANSEL
	movlw 0x00	; Non mi servono ingressi analogici
	movwf ANSEL
	movlw 0xFE	; Dico che la porta A ha come output solo RA0, gli altri 
sono di input
	movwf TRISA
	banksel PORTA	; Seleziona banco per PORTA
mioloop
	bcf	PORTA, 0
	call delay_1_sec
	bsf	PORTA, 0
	call delay_1_sec
	goto mioloop
 
; Delay code generated by PiKloops (Thu 2007-Dec-13 15:11:12)
; Time Delay = 0.99999900s  with  Osc = 8.00000000MHz
delay_1_sec
	movlw 	D'11'
	movwf 	CounterC
	movlw 	D'48'
	movwf 	CounterB
	movlw 	D'83'
	movwf 	CounterA
delay_1_sec_loop
	decfsz 	CounterA,1
	goto 	delay_1_sec_loop
	decfsz 	CounterB,1
	goto 	delay_1_sec_loop
	decfsz 	CounterC,1
	goto 	delay_1_sec_loop
	return
	END

Risolto impostando la stringa di config cosě:
__config  _INTRC_IO & _WDT_OFF & _MCLR_OFF
e selezionando 8MHz cosě:
	banksel OSCCON
	bsf	OSCCON, 4
	bsf	OSCCON, 5
	bsf	OSCCON, 6
ad inizio programma.
Il problema ora č un'altro.
Tutto funziona se uso un 7805 con relativi condensatori e una pila da 
9V... ha invece un comportamento anomali quando anziché la pila da 9V ci 
collego un alimentatore da 12V. Qualcuno puň spiegarmi come mai? Ho 
anche provato a cambiare i condensatori sia con condensatori piů grossi 
che piů piccoli ma senza grossi risultati :(
Grazie,
   Luca


Dopo il 7805 cosa ci colleghi come carico?
il 7805 č davvero un 7805 (TO220 - 1A) o un 78L05 (TO-92  - 100mA)
I comportamenti anomali cosa sarebbero?
Ciao
-- 
____________________
      CG Engineering
 Lab. Ricerca & Sviluppo
********************
Skype : cg_ingegnering
MSN : 
cgaudiola...@interfree.it
ICQ UIN# : 104528066 

 
Č un 7805, non un 78L05.
Per comportamenti anomali intendo che o non si accende proprio nulla 
(cioč il led non si accende mai), oppure lampeggia con una frequenza 
causale e instabile, oppure si resetta spesso e volentieri.
Sembra che ci sia un disturbo che si presenta quando ci attacco 
l'alimentatore da 12V e scompare quando ci attacco la batteria da 9V... 
solo che non so come eliminarlo. :(
Questo č il circuito di alimentazione:
IN---------[7805]----------------> a VDD
      |       |      |     |
     ===      |     ===   ===
     === A    |     === B === C
      |       |      |     |
      --------|-------------------> a VSS
             GND
Il primo condensatore [A] (partendo da sinistra) 100uF elettrolitico.
Il secondo condensatore [B] 10uF elettrolitico.
Il terzo condensatore [C] 100nF ceramico.
MCLR lo voglio usare come RA5 quindi non č collegato a VDD e nel 
programma ho scritto _MCLR_OFF quindi non penso sia quello il problema.
Il PIC non ha oscillatore esterno, solo interno.
Grazie,
   Luca

   Luca
Ciao
Stefano
-- 
Stefano Martini
Varese (VA) -- Italy
Web: 
http://www.lemming.it
Memento audere semper! (G. d'Annunzio)


Ciao, grazie ma ho Linux quindi non posso vedere il tuo circuito... 
comunque immagino tu mi suggerisca di mettere una resistenza da 10k fra 
RA0 e VDD... ho già provato anche questo... senza successo purtroppo. :(
Ho provato con ben due alimentatori (uno fatto in casa da 5V e uno 
acquistato da 12V poi regolato con un 7805) e in entrambi i casi il 
problema persiste. Il circuito sembra funzionare correttamente (per lo 
meno su basetta sperimentale) solo quando alimentato a batteria. :(
Che sia un problema di instabilità del PIC?
Grazie,
   Luca

 Che sia un problema di instabilità del PIC?
Mi pare un po strano....  Hai provato (come test) a cambiare la porta 
del PIC (non so, per esempio una delle porte B)? Così verifichiamo se è 
un problema di porta o di alimentazione.


 Ciao, grazie ma ho Linux quindi non posso vedere il tuo circuito...
Mi permetto di farmi un po' di pubblicità.
Sotto Linux, Fidocad gira decentemente con Wine (avevo provato anni
fa). Per chi ha solo bisogno di vedere il circuito, ho pero' scritto
un'applet che non necessita di avere installato altro che un browser
con una versione di Java recente (almeno 1.5):
http://davbucci.chez-alice.fr/index.php?argument=elettronica/fidoreadj/fidoreadj.inc
Basta copiare il codice Fidocad e poi premere "Disegna il
circuito" (si puo' selezionare la versione in italiano della pagina
nel menu sulla sinistra). Il tutto dovrebbe essere abbastanza
multipiattaforma.

 un problema di porta o di alimentazione.
Hmmm no, non ho provato, magari più tardi ci provo... ma dubito sia un 
problema della porta per il semplice motivo che il PIC si comporta come 
se si resettasse.
Cmq ora non posso, ma poi faccio anche questo tentativo.
Grazie,
   Luca

 multipiattaforma.
Grazie, molto utile la tua applet. Avevo provato anche questo comunque.
Grazie,
   Luca