# En ISIS ares si me funciona pero en el proto NO¡¡¡¡



## TiTaNB009 (Jun 9, 2011)

*Ps tengo un porblema, y es que cree un programa que enciende y apaga un led mediante botones y lo hice en mikrobasic pro, y lo corri y nada sin error, luego lo lleve a ISIS ares igual jalo bien... pero ahora en el protoboar no me funca..por queee ayuda porfavorr * 

*El pic que utilizo es: pic16f84a*


----------



## arrivaellobo (Jun 9, 2011)

Lo primero que debes hacer es mostrarnos el esquema y el código, ya que si no no se me ocurre cómo podemos intentar solucionarlo.
Un saludo


----------



## capitanp (Jun 9, 2011)

no che no recibo nada....


----------



## TiTaNB009 (Jun 10, 2011)

ok.. aqui tienen el programa y el cto en ares. Estoy empezando a aprender sobre pics y creo el mas censillo es basic asi que es el lenguaje que utilizo por ahora, y el programa que utilizo para programar es mikroBasic Pro.

Imagen del cto http://www.subirimagenes.com/imagen-pic16f84a-6515905.html

Y este es programa:


```
program control_de_velocidad
main:

TRISA = %11100 'Pines de salida: 18 y 17, las demas son entradas…
TRISB = %00001111 'PuertoB tiene 4 pines como entradas y 4 como salidas
'PORTB = 0 'Apago los LEDs conectados al puertoB
'PORTA = 0     'Apago los LEDs conectados al puertoA

WHILE TRUE ' Comienzo un bucle infinito, Pulsador 5

IF PORTA.3 = 1 THEN PORTA.0 = 1          ' -VEL 5-

PORTB.7 = 0
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 0
porta.4 = 0
portb.1 = 0
portb.2 = 0
portb.3 = 0
END IF

IF PORTA.4 = 1 THEN PORTB.7 = 1          ' -VEL 4-
```


Y este es la imagen del pickit2 clone:
http://www.subirimagenes.com/imagen-pickit2c-6515953.html


----------



## lubeck (Jun 10, 2011)

Creo que te falta el  cristal, el 16f84a no tiene oscilador interno... y probablemente el pullup al mcrl con resistencia de 4k7 y quizas no estas definiendo bien los fuses


----------



## ars (Jun 10, 2011)

Disculpa, le agregaste un oscilador al pic(pines 16 y 15) para que tenga una base de tiempo?


----------



## TiTaNB009 (Jun 10, 2011)

*ps no, por que ps no ocupo el oscilador, es decir si quiesiera que se prendieran en cierto tiempo los leds ps ahi si necesito un oscilador.... En ares si lo simula, sin el oscilador.*


----------



## lubeck (Jun 10, 2011)

> En ares si lo simula, sin el oscilador.



en el ares no creo que lo este simulando... es un programa para hacer PCB...

en el ISIS si lo creo... pero si le das click en propiedades del micro te fijas que dice algo como oscilador 1MHz, ahi lo esta simulando con un cristal de 1MHz aunque no lo pongas....

debes poner un cristal, generalmente es de 4MHz y dos capacitores ceramicos de 22pf... y como te comento pon una resistencia de 4k7 con una patita al positivo y otra al pin 4 MCLR....

Aaaaaahhh y busco en el internet que significa "ps" y me pone "partido socialista"

a que te refieres con eso????


----------



## johncaro12 (Jun 10, 2011)

ps = pos = pues ??? jeje

A lo mejor puede ser lo del cristal, tambien puede ser que no hayas puesto alimentacion al pic en el protoboard, recuerda que el proteus obvia el tema de la alimentacion, pero fisicamente es necesario ponerla.

Saludos


----------



## ars (Jun 10, 2011)

UN oscilador es obligatorio ponerlo, el pic realizar las instrucciones e x cantidad de ciclos de reloj si no tiene la base de tiempo no va a hacer nada. Hay algunos pic que tienen oscilador interno y debes configurarlo, pero este no es el caso.


----------



## BKAR (Jun 10, 2011)

hola el 16f84 funciona rango de 3.3 vol a mm no me acuerdo ..
yo siempre le ponía a 5vol...

y si usualmente trabaja con cristal de 4MGhz es indispensable para su funcionamiento , ya que no tiene oscilador interno..

otra configurado como entrada se comporta como un TTL..osea lo toma como (1)al aire... aunque el isis también toma en cuenta eso... fíjate si eso influye,
MCLR...poner resistencia 4.7k  a VDD


----------



## TiTaNB009 (Jun 10, 2011)

*ok.. gracias por sus comentarios voy a checarlo y luego comento que paso......*


----------



## TiTaNB009 (Jun 13, 2011)

*que tal, pues le compre un cristal y le puse los capacitores 22p y puse el MCLR a + y no enciende nada....changoss¡¡¡ mañana vuelvo a checar si hay algo mal conectadoo*


----------



## johncaro12 (Jun 13, 2011)

sube fotos esquemas algo...


----------



## BKAR (Jun 13, 2011)

johncaro12 dijo:


> sube fotos esquemas algo...



si loko sube el esquema con el que tas construyendo tu proyecto para así poder ayudarte mejor,
una imagen vale mas que mil palabras


----------



## TiTaNB009 (Jun 14, 2011)

*Que tal, pues estas las tome rapido desde mi cel.... no tiene muy buena calidad pero ahi estan:

http://www.subirimagenes.com/fotos-13062011-6533475.html


mmm me da error al subir las demas imagenes en un rato mas subo otras imagenes....*


----------



## lubeck (Jun 14, 2011)

Ok... si ya pusiste el cristal y el mclr esta hacia los 5v lo siguiente que yo creo esta mal es el codigo...

no he usado microbasic pero imagino que es igual o muy similar a todos lo basic...


```
program control_de_velocidad
main:

TRISA = %11100 'Pines de salida: 18 y 17, las demas son entradas…
TRISB = %00001111 'PuertoB tiene 4 pines como entradas y 4 como salidas
'PORTB = 0 'Apago los LEDs conectados al puertoB
'PORTA = 0     'Apago los LEDs conectados al puertoA

WHILE TRUE ' Comienzo un bucle infinito, Pulsador 5  ...[B] aqui empiezas el while pero nunca pones un EndWhile o similar...[/B]

IF PORTA.3 = 1 THEN PORTA.0 = 1          ' -VEL 5-

PORTB.7 = 0
PORTB.6 = 0
PORTB.5 = 0
PORTB.4 = 0
porta.4 = 0
portb.1 = 0
portb.2 = 0
portb.3 = 0
END IF

IF PORTA.4 = 1 THEN PORTB.7 = 1          ' -VEL 4-

[B]aqui nunca mandas al label main: para que se repita el programa infinitamente...[/B]
```

si corrijes eso y sigue sin funcionar reviza los fuses o configuracion a la hora de grabar el micro... que sotware del grabador usas???


----------



## cosmefulanito04 (Jun 14, 2011)

Duda, ¿el MCLR no deberia llevar una red R-C para el 1er reset? o ¿por lo menos un pulsador para hacerlo manualmente?.

Subi un esquematico, ademas del proto, asi se ve mejor lo que hiciste.


----------



## lubeck (Jun 14, 2011)

> ¿el MCLR no deberia llevar una red R-C para el 1er reset? o ¿por lo menos un pulsador para hacerlo manualmente?.



mmm.. si...si lo desea resetear... pero debería encender sin el pulsador... si *no* lo pone hacia los 5v creo que se esta autoreseteando infinitamente y nunca entra... por decirlo asi...

asi que para echarlo a andar con la resistencia de 4k7 a 5v esta bien...


----------



## cosmefulanito04 (Jun 14, 2011)

El tema es que si no tiene el 1er reset, ¿de donde empieza a leer el codigo? de cualquier direccion, siempre deberias tener un reset al principio que ponga en orden todos los registros.


----------



## lubeck (Jun 14, 2011)

> ¿de donde empieza a leer el codigo?



mmm. en basic no se requiere de nada de eso...

con poner...

```
program control_de_velocidad

TRISA = %11100 'Pines de salida: 18 y 17, las demas son entradas…
TRISB = %00001111 'PuertoB tiene 4 pines como entradas y 4 como salidas
PORTB = 0 'Apago los LEDs conectados al puertoB
PORTA = 0     'Apago los LEDs conectados al puertoA

main:

IF PORTA.3 = 1 THEN PORTA.0 = 1          ' -VEL 5-


IF PORTA.4 = 1 THEN PORTB.7 = 1          ' -VEL 4-
goto main
```

deberia funcionar...


----------



## TiTaNB009 (Jun 14, 2011)

lubeck dijo:


> mmm.. si...si lo desea resetear... pero debería encender sin el pulsador... si *no* lo pone hacia los 5v creo que se esta autoreseteando infinitamente y nunca entra... por decirlo asi...
> 
> asi que para echarlo a andar con la resistencia de 4k7 a 5v esta bien...




*ok.. llegando le pongo una resistencia de 4.7k y con respecto al programa que uso es el mikroBasic Pro for PIC, pero si es bastante similar al basic en cuanto al lenguaje, tambien creo que es el programa, y quiero pasarlo a basic, que programa me recomiendan?? para de una vez que lo vuelva a hacer tenga un .hex hecho pero desde basic, y asi solo lo grabo en micro despues de que lo vuelva a checar con el que tiene grabado.*


----------



## lubeck (Jun 14, 2011)

yo uso el microcode studio y picbasicpro... ese esta bacan y he visto mas soporte... 

con respecto al programa compila el ultimo que puse y si gustas dime que errores te marca...


----------



## cosmefulanito04 (Jun 14, 2011)

Independientemente del codigo que uses, al uC le tenes que hablar en assembler, ya sea en C o en basic, el propio compilador debera traducir ese codigo en assembler.

Ahora viendolo del lado de assembler, si no hay un reset al comienzo, ¿el puntero del codigo a donde apunta? y ¿el stack?

Simplemente agregando una red R-C, garantizas ese 1er reset que le dara comienzo a tu programa:



Este circuito es valido en caso de que el reset sea mediante un 0 logico (/Reset), de lo contrario, habra que cambiar el orden capacitor-resistencia.


----------



## lubeck (Jun 14, 2011)

> Este circuito es valido en caso de que el reset sea mediante un 0 logico (/Reset), de lo contrario, habra que cambiar el orden capacitor-resistencia.



segun entiendo es un 16f84a este se restea poniendolo a tierra o sea es -MCLR


----------



## TiTaNB009 (Jun 15, 2011)

lubeck dijo:


> segun entiendo es un 16f84a este se restea poniendolo a tierra o sea es -MCLR



*
Que tal solo para informarrles que  le puse la R4.7k en pin 4 a 5v del pic16f84a y sigue si funcionar.. en un momento volvere a desmontar y a armar mas estetico....*


----------



## lubeck (Jun 15, 2011)

> Que tal solo para informarrles que le puse la R4.7k en pin 4 a 5v del pic16f84a y sigue si funcionar..



MMM.. eso de la resistencia es solo parte del posible error.... y no tan importante...

debes fijarte en....
1.-cristal...
2.- resistencia 4k7 a positivo..
3.-programa....
4.-fuses... 
5.-y Conexiones...

si gustas sube aqui el archivo en proteus y el codigo... y le doy una revizada...

y contesta ¿cual es el nombre del software del grabador?


----------



## cosmefulanito04 (Jun 15, 2011)

Viendo las hojas de datos del 16f84, al parecer tiene una etapa de reseteo automatico una vez encendido el uC (otros uC NO lo tienen y se debe usar el circuito externo que publique antes):



Sin embargo, en las propias hojas de datos dicen que tal vez sea necesario agregar ese reset externo para darle un poco mas de tiempo a que el cristal se estabilice (pag. 26):



Con lo cual, te aconsejo que le metas un capacitor de 10uf y una resistencia de 10k para darle un tao de 10mSeg y que en 50mSeg ya te recontra aseguras de que el uC se reseteo sin problemas.

Por otro lado, tambien es importante lo que dijo lubeck, verifica bien la conexion del cristal, eso es fundamental, sino el uC *NO AVANZA*.


----------



## TiTaNB009 (Jun 15, 2011)

lubeck dijo:


> MMM.. eso de la resistencia es solo parte del posible error.... y no tan importante...
> 
> debes fijarte en....
> 1.-cristal...
> ...




*Te refieres al Pickit2 v2.61*


----------



## lubeck (Jun 15, 2011)

> Pickit2 v2.61



sip a ese... deja descargarlo y ver como se le modifican los fuses en es bicho!

Mmm.. descarge el pickit y creo que es necesario el hardware para funcionar...

bueno ... busque como se definen los fuse en mikrobasic y tampoco encontre nada...


pero en fin...

busca algo   en el pickit que diga algo como oscilador osc y que tenga las opciones LP XT HS y RC...

si tu estas poniendo un oscilador de 4MHz tienes que marcar la casilla u opcion que diga XT... 
significa que utilizas el oscilador de cristal 


( si pones LP es Low power crystal, HS es High Speed Cristal, y RC es si utilizas un oscilador con resistencia y capacitor....)

-busca y deshabilita una opcion que diga WDT este sirve para que si se pasma el micro se resetee solo a determinado tiempo... y por el momento no lo deseas...

-busca y deshabilita la opcion PWRT que es lo que te menciona Cosmefulanito04, tampoco lo ocupas...

-busca y deshabilita algo que diga CP que es para proteger el codigo contra piratas por el momento no lo ocupas... 

y listo son los fuses que ocupa el 16f84a.... 

intentare buscar como se programan desde el codigo en mikrobasic...

debe ser algo similar a esto:

device 16f84a,Osc_XT,pwrt_off,cp_off,wdt_off (esto no es lo real es solo ilustrativo, osea que no tengo Ni PI de como sea) y esa linea se acomoda al principio de tu codigo...


----------



## lubeck (Jun 16, 2011)

mira un ejemplo de como se configuran los fuses en el programador winpic800 o en el mikroprog suite...


----------



## TiTaNB009 (Jun 16, 2011)

lubeck dijo:


> mira un ejemplo de como se configuran los fuses en el programador winpic800 o en el mikroprog suite...






*
que tal lubeck, ok voy hacerlo en cuanto pueda ya que toda la mañana he tenido mucho trabajo... y apenas y he visto tus imagenes pero creo que ya configure los efuses.. pero aun asi te confirmo despues..*


----------



## TiTaNB009 (Jun 18, 2011)

TiTaNB009 dijo:


> *
> que tal lubeck, ok voy hacerlo en cuanto pueda ya que toda la mañana he tenido mucho trabajo... y apenas y he visto tus imagenes pero creo que ya configure los efuses.. pero aun asi te confirmo despues..*




*Si ya vi las imagenes y se a lo que te refieres pero el pickit2 programmer no trae las opciones que winpic800, este se hace por medio del archio .hex que se supone ya debe estar configurado en el programa, y si recuerdo haberlo hecho ya que cuando hice el programa me pidio el tipo de integrado y despues me dio la opcion de configurarle los efuses*


----------



## R-Mario (Jun 18, 2011)

Jejeje no me lo tomen a mal por no aportar pero es que este cuate le hace falta leer mucho y despues preguntar poco, jeje me hizo reir mucho el hecho de que no haya puesto es cristal y la alimentacion ahora si me hiceron reir jejejeje se agradece


----------



## antiworldx (Jun 19, 2011)

Dseda86 dijo:


> Jejeje no me lo tomen a mal por no aportar pero es que este cuate le hace falta leer mucho y despues preguntar poco, jeje me hizo reir mucho el hecho de que no haya puesto es cristal y la alimentacion ahora si me hiceron reir jejejeje se agradece



XD así son de chistosos... yo tenia un compañero de salon así, y mejor le corria cuando se acercaba con el proto en la mano...


----------



## R-Mario (Jun 19, 2011)

antiworldx dijo:


> XD así son de chistosos... yo tenia un compañero de salon así, y mejor le corria cuando se acercaba con el proto en la mano...



Eso eso eso eso, dice el chavo, yo tambien tengo un compañero igualito, en pleno quinto grado de la universidad, aun colocaba las dos patas de los leds sobre una misma tira horizontal del proto y luego queria que prendiera, jajaja ya luego de tanto zape que le di se le quito lo de hacer eso, pero aun sigue quemando capacitores, leds, y diodos

:lol


----------



## lubeck (Jun 19, 2011)

Dseda86...

me viene de lujo tu participación en el tema....

tengo estas dos simulaciones una en multisim y otra en proteus....

multisim....




proteus...





me podrias decir cual de las dos es correcta y porque??? observa los leds...


----------



## antiworldx (Jun 19, 2011)

Chafeus chafeus chafeus chafeus chafeus chafeus... y siempre seguire diciendo... CHAFEUS!!!


----------



## R-Mario (Jun 19, 2011)

Lo que mi compañero antiworldx quiso decir es: "Deja de simular y llevalo a la vida real" y veras si funciona o no


----------



## soerok (Jun 19, 2011)

Yo utilizo ese soft de programación (PICkit 2 v2.6), yo programo en ensamblador, la cuestión es que este soft no trae las opciones de los fuses, los fuses los tienes que definir desde el programa, si no los defines nunca funcionara, en ensamblador los fuses se definen como: __config _cp_off & _wdt_off & _pwrte_on & _xt_osc, en basic no se como sera, pero los tienes que poner, en ensamblador tambien tengo que agregar la librería de programación del pic que estes utilizando, en basic no se, el programador que tienes es el PICKit2 o un clon?,

Otra cosa, en la vida real siempre tienes que poner un cristal al PIC, en el ISIS funciona porque el software da por hecho que el pic tiene un cristal, las opciones del cristal las ves haciendo clic derecho en el pic y seleccionando propiedades, ahi escoges la frecuencia del cristal que uses, que normalmente son 4 MHz, si no pones el cristal en la vida real nunca funcionara, también, en el pin MCLR le debes poner obligatoriamente una resistencia a positivo, si no nunca arrancara, el soft también da por hecho que el pin MCLR esta conectado a positivo por eso funciona en ISIS.


----------



## johncaro12 (Jun 19, 2011)

Dseda86 dijo:


> Lo que mi compañero antiworldx quiso decir es: "Deja de simular y llevalo a la vida real" y veras si funciona o no



Y lo que mi compañero Lubek creo que quiere decir es: "Deja de reirte, y si tanto sabes mejor aporta"


----------



## TiTaNB009 (Jun 19, 2011)

soerok dijo:


> Yo utilizo ese soft de programación (PICkit 2 v2.6), yo programo en ensamblador, la cuestión es que este soft no trae las opciones de los fuses, los fuses los tienes que definir desde el programa, si no los defines nunca funcionara, en ensamblador los fuses se definen como: __config _cp_off & _wdt_off & _pwrte_on & _xt_osc, en basic no se como sera, pero los tienes que poner, en ensamblador tambien tengo que agregar la librería de programación del pic que estes utilizando, en basic no se, el programador que tienes es el PICKit2 o un clon?,
> 
> Otra cosa, en la vida real siempre tienes que poner un cristal al PIC, en el ISIS funciona porque el software da por hecho que el pic tiene un cristal, las opciones del cristal las ves haciendo clic derecho en el pic y seleccionando propiedades, ahi escoges la frecuencia del cristal que uses, que normalmente son 4 MHz, si no pones el cristal en la vida real nunca funcionara, también, en el pin MCLR le debes poner obligatoriamente una resistencia a positivo, si no nunca arrancara, el soft también da por hecho que el pin MCLR esta conectado a positivo por eso funciona en ISIS.



*De acuerdo, es lo que me han dicho.. ahora estoy checando el programa que hice..*

*y la vdd es que los que dicen que saben y se mofan en realidad, son nada mas que un chiste cuando se les cuestiona, ahora si solo comentan para burlarse es simplemente un desperdicio se su propio tiempo.. de esas personas esta lleno el mundo la difenrencia es ser unico.

Humildad
*


----------



## lubeck (Jun 20, 2011)

> "Deja de simular y llevalo a la vida real" y veras si funciona o no



En realidad no!!!... mi estimado Dseda86... es una cuestión elemental...  la tecnología LS tiene una resistencia Pullup en la entrada, lo demás deducelo...

Que bueno que no hacen un examen de registro tan complejo, sinooooo.. muchos quedaríamos fuera..


----------



## antiworldx (Jun 20, 2011)

No es burla, es un hecho muy real que en realidad solo se pierde el tiempo con proteuss. Si lo hubieran implementado directamente desde la primera vez, todo este royo se hubiera ahorrado, y eso si fue perder el tiempo.


----------



## lubeck (Jun 20, 2011)

> es un hecho muy real que en realidad solo se pierde el tiempo con proteuss. Si lo hubieran implementado directamente desde la primera vez, todo este royo se hubiera ahorrado, y eso si fue perder el tiempo.



Yo opino que a veces si y a veces no.... como por ejemplo el circuito que puse....

ese lo arme en la realidad primero.... como un oscilador para probar un osciloscopio, yo dije ese esta sencillito... y cual en la realidad no me funciono 

lo arme en multisim y dije asu..... aca si funciona... lo arme en proteus y dije asu aca lo hace como en la realidad, lo puse en livewire y ahi fue donde cai en la cuenta que si ponia un LS no funcionaba y si lo ponia HC si funcionaba.... hice un poco de investigacion y descubri la razon....

el que esta mal es multisim... según yo...


----------



## R-Mario (Jun 20, 2011)

Huyyyuyuyuyy ya no vuelvo a soltar un chiste porque luego luego se ponen punketos y se enojan, respecto a lo que dices lubeck es cierto si embargo ta puedo asegurar que eso solo lo hubiera descubierto este chavo si lo hubiera armado fisicamente y despues hubiera leido las hojas de datos, despues de todo hechando a perder se aprende o no!!!! y respecto a lo que dijo johncaro12 pues te digo que yo creo que es necesario leer antes de preguntar si no como pretendes dialogar "o a caso pretendes creer todo lo que te digan los demas" humm no creoo verdad,  y no fue mofa ni nada por estilo, nuevamente preguntate esto, "para que preguntar en un foro de electronica cual es la funcion de una resistencia" si en wiki esta la respuesta, por otro lado quizas yo te podria decir que es para almacenar cargas y pregunto me vas a creer verdad que no!! lo mismo paso con el pic, casi estoy seguro que simplemente bajo el codigo lo compilo y luego zass se lo metio al micro, armo pero nunca leyo como funciona el micro en cuestion, en fin esa es mi humilde opinion y si no te gusta pues afortunadamente vivimos en un mundo de libre albedrio. o al menos eso dicen


----------



## TiTaNB009 (Jun 22, 2011)

lubeck dijo:


> mmm. en basic no se requiere de nada de eso...
> 
> con poner...
> 
> ...




*Que tal lubeck, bueno hoy tube mas tiempo, ahora volvi a realizar el cto en el proto ya sin menos arañerios y realice un programa de hecho viene de ejemplo en un manualito que me consegui de la web, seguramente lo has visto se llama basic para ucontroladores, es caso es que instale el microcode Studio y el pic basic Pro, que tu me dijiste y realice el primer ejemplo que viene ahi, y si jalo a la primera solo le cabie una salida para que coincidiera con el cto que tengo en el proto... ahora voy a pasar el codigo que tenia en mikrobasic a basic ...no hay mucha diferiencia y en unas hras subo los resultados...*


----------



## lubeck (Jun 22, 2011)

> caso es que instale el microcode Studio y el pic basic Pro



como te digo no he usado mikrobasic quizas sea lo mismo pero yo me acomode mejor con picbasic... 

que bueno que te empezó a funcionar, es de lo mas dificil... de ahi en delante es ir viendo comando por comando e ir descubreindo las diferencias y bondades de cada micro (pic)...


----------



## TiTaNB009 (Jun 22, 2011)

*justamente ya estaba pasando los comandos al lenguajes del basic pro, pero ahora no me detecta el pickit 2 clone ....jajajaja si no es una es otra, voy a comprar un cable usb creo que eso por que medio empate unos que tenia...ya que me habia emocionadooo*


----------



## TiTaNB009 (Jun 23, 2011)

lubeck dijo:


> como te digo no he usado mikrobasic quizas sea lo mismo pero yo me acomode mejor con picbasic...
> 
> que bueno que te empezó a funcionar, es de lo mas dificil... de ahi en delante es ir viendo comando por comando e ir descubreindo las diferencias y bondades de cada micro (pic)...




*asi eso fue lo que paso, ahora ya que termino el partido de Mexico vamos a la final porcierto y ya termine el cable usb y ahora solo voy a pasar la idea que tenia en mikrobasic al basic y listo luego les muestro el trabajo terminado.... Y muchas gracias a lubeck y los demas que me ayudaron, a los ..ches criticones que no apoyaron en nada..*


----------



## antiworldx (Jun 23, 2011)

Na na... yo si apoye diciendo que tu problema era el chafeuss... Fue critica constructiva.


----------

