# Programa en basic no me funciona en la realidad, si en simulacion.



## marcelo2112 (Ago 31, 2010)

Hola, soy muy nuevo en esto de programacion.
Estoy usando el pic 16f628a y microcode studio para hacer el programa, el cual en proteus me funciona pero programe el pic y en la placa no lo hace bien. A ver que estoy haciendo mal:


AllDigital
TRISA = %11111111  'todos los pines como entradas 
TRISB = %00000000  'todos los pines como salidas

inicio:


IF porta.6 = 0 THEN GOTO parar
IF porta.6 = 1 THEN GOTO sistema


sistema:

IF PORTA.7 = 1 THEN  GOTO swicheo
IF PORTA.7 = 0 THEN  GOTO swicheo2

swicheo

If PORTA.0 = 1 Then Goto forma1
If PORTA.1 = 1 Then Goto forma2
If PORTA.2 = 1 Then Goto forma3
If PORTA.3 = 1 Then Goto forma4
IF PORTA.4 = 1 THEN GOTO forma5

swicheo2

If PORTa.0 = 1 Then Goto forma6
If PORTa.1 = 1 Then Goto forma7
If PORTa.2 = 1 Then Goto forma8
If PORTa.3 = 1 Then Goto forma9
IF porta.4 = 1 THEN GOTO forma10

Mediante una llave selectora rotativa tengo que seleccionar la forma de encender y apagar las salidas, pero por alguna razon la unica que me funciona es la ultima de swicheo, forma5 o forma10 segun esten el pulsador de porta7.
Espero lo podamos solucionar. Saludos y gracias.


----------



## Eduardo (Ago 31, 2010)

marcelo2112 dijo:


> Estoy usando el pic 16f628a y microcode studio para hacer el programa, el cual en proteus me funciona pero programe el pic y en la placa no lo hace bien. A ver que estoy haciendo mal:


Mostrar solo el programa.

Hace falta ver también lo que hiciste en Proteus.


----------



## ByAxel (Ago 31, 2010)

Configura los FUSES de este PIC puesto que son importantes, en especial lo del oscillador (interno, externo y MCLR); para eso pregunta por acá Curso programacion de pic en bsic pro, aunque creo que estás usando el Proton Basic, pero te puede ser de ayuda.

Saludos.


----------



## marcelo2112 (Sep 1, 2010)

Solo me funciona la portaA 4. En los demas no pasa nada. Ojo, en la simulacion si funciona, en el montaje no lo hace.
Los pulsadores funcionan correctamente.
Estoy usando esto al principio del programa:

@ device intrc_osc_NOCLKOUT 
@ device pic16f628,wdt_off,pwrt_off,mclr_off,protect_off,bod_off
AllDigital
TRISA = %11111111 'todos los pines como entradas 
TRISB = %00000000 'todos los pines como salidas

Me faltara alguna configuracion??
Verifique la llegada de los 5v a cada pin del pic a medida que voy rotando la llave y esta OK.
Aca dejo una toma de isis para ver el circuito. Gracias

Ahora lo unico que deje es:

@ device intrc_osc_NOCLKOUT 
@ device pic16f628,wdt_off,pwrt_off,mclr_off,protect_off,bo d_off

AllDigital
TRISA = %11111111 'todos los pines como entradas 
TRISB = %00000000 'todos los pines como salidas
portb = %00000000

inicio:

If PORTA.0 = 1 Then Goto forma1
If PORTA.1 = 1 Then Goto forma2
If PORTA.2 = 1 Then Goto forma3
If PORTA.3 = 1 Then Goto forma4
IF PORTA.4 = 1 THEN GOTO forma5

Y solo me funciona el porta.4

Justo los puertos que no me funcionan son los que tienen comparadores, yo creia que los desactivaba con alldigital pero por algo no me funcionan.
Hay otra menera??uso el picbasic pro para programar.


----------



## ByAxel (Sep 2, 2010)

Ya estoy confundido, según se la instrucción "AllDigital" solo se aplica al Proton IDE y no al PicBasicPro; bien si no te funciona, quita el "AllDigital" y pon "*CMCON = 7*" que es lo mismo, solo que lo haces directamente para deshabilitar los comparadores (Revisa el datasheet). 

Saludos.


----------



## sammaael (Sep 2, 2010)

estas usando el oscilador interno?????? que hay de mclr??


----------



## marcelo2112 (Sep 2, 2010)

Gracias, finalmente puse CMCON  = %00001111 y por fin funciono.


----------

