# Microcontrolador PIC 16F84 ----Ayuda y demás------



## koloss (Abr 19, 2006)

Buenas. Ante todo felicidades por esta web. Soy nuevo (principiante que sabes poquito) en todo esto referente a la electrónica. Me interesa mucho todo este tema. Me a costado muchísimo encontrar unos foros como estos. Bueno a lo que íbamos (joer como empiezo).

Tengo pensado programar un PIC 16F84. Ya tengo todo pensado para comprarme [el microcontrolador (obvio), el programador para este tipo de microcontrolador, unos LEDs y un conjunto de diodos (emisor, receptor)]. Lo que quiero aprender es a hacer programas, por ejemplo hacer que se encendieran y apagaran los LEDs con un cierto ritmo. 

Tenia pensado en programarlo en hexadecimal, pero si hay algún lenguaje más fácil, les agradecería que me lo explican.

Me gustaría que diérais webs donde se pudiera aprender a programar este micro, o que alguien que sepa y/o allá echo programas para este micro me ayudaran.

Muchas gracias y Saludos.


----------



## roberto moreno (Abr 20, 2006)

Pues si estás empezando te mando un pequeño programa para que experimentes, está hecho en ensamblador y prende consecutivamente un led para que de la sensación de movimiento:


```
;Fusibles:WDT off, CP  off,  MCLR off, OSC IntRC
;Programa para mostrar el corrimiento de una luz sobre el puerto
;Basicamente lo que hace es cargar valores en el puerto que son 
;desplegados mediante LED's, completar el ciclo y reiniciarlo, 
;se ocupa una rutina de retardo para que sea 
;posible la visualización en el circuito.

	LIST p=12c508, r=HEX ;Usaremos el PIC12C508
	INCLUDE <p12C508.inc>;Incluimos la libreria del PIC12C508


	__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC ;Aquí se configuran los fusibles


; VARIABLES
w			EQU 0
f			EQU 1
OUT1		EQU	0	;GP0
OUT2		EQU	1	;GP1
OUT3		EQU	2	;GP2
OUT4		EQU	4	;GP4
OUT5		EQU	5	;GP5, no se ocupa GP3 por que es exclusivamente entrada

AUX1	EQU	0x0C	;variable auxiliar
AUX2	EQU	0x0D	;variable auxiliar

	ORG 0x000

	clrwdt

	movlw b'11000000'
	option


	movlw b'00001000';Configura todo el puerto como salidas excepto GP3 por que es exclusivamente entrada
	tris GPIO

	bcf GPIO,OUT1 ;Borra todas las salidas
	bcf GPIO,OUT2
	bcf GPIO,OUT3
	bcf GPIO,OUT4
	bcf GPIO,OUT5	

start
	
		bsf  GPIO,OUT1	;Enciende el primer LED
		call retardo	;Espera un tiempo
		bcf  GPIO,OUT1	;Apaga el primer LED
		call retardo	;Espera un tiempo

		bsf  GPIO,OUT2	;Enciende el segundo LED
		call retardo    ;Espera un tiempo
		bcf  GPIO,OUT2	;Apaga el segundo LED
		call retardo	;Espera un tiempo

		bsf  GPIO,OUT3	;Enciende el tercer LED
		call retardo	;Espera un tiempo
		bcf  GPIO,OUT3	;Apaga el tercer LED
		call retardo	;Espera un tiempo	

		bsf  GPIO,OUT4	;Enciende el cuarto LED
		call retardo	;Espera un tiempo
		bcf  GPIO,OUT4	;Apaga el cuarto LED
		call retardo	;Espera un tiempo

		bsf  GPIO,OUT5	;Enciende el quinto LED
		call retardo	;Espera un tiempo
		bcf  GPIO,OUT5	;Apaga el quinto LED
		call retardo	;Espera un tiempo
	
		goto  start		;Reinicia el ciclo


retardo	movlw 0xFF		;Esta es la rutina de retardo
		movwf	AUX1
		movwf	AUX2
dec1	decfsz	AUX1,f
		goto	dec1
		decfsz	AUX2,f
		goto	dec1
		retlw	0
	
end
```


----------



## Proton (Abr 22, 2006)

Hola:

No me parece buena idea la de empezar a programar PICs, con el 12C508A. Ya sabras que es OTP, o sea que solo se puede programar una sola vez, y si el programa no está correctamente realizado, como suele ocurrir al principio, el PIC ya no vale para nada.

Creo que es mejor empezar a programar con el 16F84 ó 16F628, de los que hay mucha información por la red. Estos si se pueden reprogramar infinidad de veces y despues cuando estes mas suelto pasar a programar otros modelos de PICs, como  el 12C508.

Tambien deberias, antes de grabar fisicamente el PIC, simularlo con algún programa de simulación, que soporte microcontroladores PIC, como por ejemplo " Proteus ", Ahorras mucho tiempo viendo si el programa funciona bien antes de hacerlo fisicamente. El Proteus lo encuentras el las alforjas de cierta mulita que hay circulando por ahí.

Y por ultimo Microchip, suele ser generoso y si no se abusa de su generosidad, envia algunas muestras de sus productos.

Saludos.


----------



## koloss (Abr 23, 2006)

Ok gracias lo tendre en cuenta. Ya e mirado mejor las instrucciones de este y si tiene de memoria una EPROM.

Muchas gracias. Saludos.


----------



## alarren (Abr 29, 2006)

buscate el mplab (creo que gratuito) y podras programar en ensamblador y ademas podras simular el programa.

link que acabo de pillar que te pone las instrucciones e información del 16f84.

http://sputnik.epsj23.net/~eserra/elect/pics/pic16f84.html




Estos pic's basicos se programan muy bien es su lenguaje ensamblador. Si terminas trabajndo con los nuevos pic's ya deberas empezar a trabajar con lenguaje c y sus respectivas librerias propias.

suerte


----------



## adris (May 2, 2006)

hola!!! dependiendo en que te parezca mas facil la programacion pero puedes programar en C que es un lenguaje mas facil que en asembler,  te envio un manual de ccs para programar en pic-C aqui puedes programr cualquier tipo de pic de microchip. y te puedes bajar el CCS.
Espero te sirva mi ayuda suerte!!!! lo siento el manual pesa mucho y ni siquiera te lo puedo enviar comprimido pero lo puedes bajar tambien.


----------



## gabo013 (Oct 3, 2008)

mira, te doy mi consejo, yo no hace mucho empeze en esto y la verdad que es parte de mi pasion. Hace poco me cruce con un buen profesor que me aconsejo un programon!
Éste es el llamado NIPLE y es un programa en el cual vos programas tu pic atraves de un diagrama de flujo, es decir a traves de cuadros, glovos, etc etc. La cuestion  es que es muy facil de usar, ya que con unos conocimientos basicos podes hacer magia con ese programa
Podes bajartelo de la pagina www.niplesoft.net y descargar la version demo que te sirve muy bien, lo probas y despues me decis que te parece. Tambien ahi te podes descargar el manual en el cual te enseña como usarlo, es decir, yo hoy estoy programando pics y aprendi con ese manual
Te lo aconsejo porque es muy completo y facil de usar.
Espero qe mi información te sirva. 
Un abrazo fuerte
atte Gabo


----------



## Guest (Oct 4, 2008)

gabo013 dijo:
			
		

> mira, te doy mi consejo, yo no hace mucho empeze en esto y la verdad que es parte de mi pasion. Hace poco me cruce con un buen profesor que me aconsejo un programon!
> Éste es el llamado NIPLE y es un programa en el cual vos programas tu pic atraves de un diagrama de flujo, es decir a traves de cuadros, glovos, etc etc. La cuestion  es que es muy facil de usar, ya que con unos conocimientos basicos podes hacer magia con ese programa
> Podes bajartelo de la pagina www.niplesoft.net y descargar la version demo que te sirve muy bien, lo probas y despues me decis que te parece. Tambien ahi te podes descargar el manual en el cual te enseña como usarlo, es decir, yo hoy estoy programando pics y aprendi con ese manual
> Te lo aconsejo porque es muy completo y facil de usar.
> ...





> Niple v5.2 soporta los modelos de PIC:
> • 12F629/ 675
> • 16F84 / 16F84A
> • 16F630 / 16F676
> ...



Mil y una gracias.


----------



## MANUEL0808 (Ago 11, 2011)

pregunta: soy nuevo en esto de los pic no obstante he investigado muchisimo y ya tengo la idea general de como programar bastante completa, ahora si alguien con muy buena voluntad de ayudarme me diera ejemplos mucho mas graficos de inicio a fin de un proyecto simple como el de encender y apagar led con pic 12f508 (los mas que este pic soporte) se los agradeceria y sirve de que le paso mis "tips" a los tipos nuevos en este tema como yo. digo nunca esta de mas una ayudita aunque sea la menos


----------



## Meta (Ago 12, 2011)

Para este tipos de cosas, mejor lee este libro www.pic16f84a.org


----------

