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

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.
 
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.
 

Adjuntos

  • proteus.JPG
    proteus.JPG
    91.4 KB · Visitas: 14
Última edición:
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.
 
Atrás
Arriba