desktop

Sustituir PIC16F84 por PIC16A628A

de seguro no te comente pero el L293D no lo tengo conectado ya estoy conectado a la salida del puerto los 6 leds y sucede lo que yo te cuento pasa muchisimo tiempo para percibir un cambio en las salidas y si he ido activando las resistencias una a una y no cambio se espera un monton para ver un cambio eso es lo que hice y te comento que pasa algo de 5 minutos para poder ver el cambio es decir que se prenda un led y se encienda otro diferente
 
ahh bien ,, entonces algo pasa carga este nuevo programa para ver si el problema esta en la tabla
vas a tener que ver cambios cada 50 milesimas si ves que te cuesta distinguir en donde dice .50 ponele
.255

Código:
  LIST   P=16f628A
       INCLUDE<P16f628A.INC>
       
                 
        __CONFIG _CP_OFF & _WDT_OFF & _BOREN_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _XT_OSC   

       CBLOCK 0x20
Velocidad
       ENDC
       #DEFINE EntradaSentido   PORTA,4

       ORG 0

    
Inicio
       bsf    STATUS,RP0

       
       movlw   b'00011111'
       movwf   TRISA
       clrf   TRISB
       bcf    STATUS,RP0
       movlw  0X07
       movwf  CMCON
Principal
       movf   PORTA,W
       andlw   b'00001111'
       btfss   STATUS,Z
       goto   ParaMotor
       movlw   .50
       movwf   Velocidad
       btfsc   EntradaSentido
       goto   A_Izquierda
       call   GiroDerecha
       goto   Fin
A_Izquierda

       call   GiroIzquierda
       goto   Fin
ParaMotor

       clrf   PORTB
Fin   goto   Principal
SeleccionaVelocidad
       addwf   PCL,F
       DT      0,d'75',d'70',d'65',d'60',d'55',d'50',d'45',d'40'
       DT      ,d'35',d'30',d'25',d'20',d'15',d'10',d'5'

GiroIzquierda

       movlw   b'00110101'
       call   ActivaSalida
       movlw   b'00110110'
       call   ActivaSalida
       movlw   b'00111010'
       call   ActivaSalida
       movlw   b'00111001'
       call   ActivaSalida
       return

GiroDerecha
          movlw   b'00111001'
          call   ActivaSalida
          movlw   b'00111010'
          call   ActivaSalida
          movlw   b'00110110'
          call   ActivaSalida
          movlw   b'00110101'
          call   ActivaSalida
          return

          CBLOCK
          Contador
          ENDC
         
ActivaSalida

          movwf   PORTB
          movf   Velocidad,W
          movwf   Contador
Retardo

          call   Retardo_1ms
          decfsz   Contador,F
          goto   Retardo
          return
       
Retardo_1ms

        movlw  .145
       movwf 0x39
a nop
   nop
   nop
   nop

      DECFSZ 0x39
              GOTO  a

          END
 
hola amigo gracias por la respuesta disculpa por la tardanza pero he estado a full con mis deberes y la verdad me esta preocupando mucho esto pense implementarlo para un proyectito de la u y se me acorta cada vez mas el tiempo pero bueno he probado el programita que me das mira si pongo todas las entradas a cero se me encienden todas las entradas si alguna de las entradas la paso a 1 logico se me apagan todas la entradas y por las dudas lo estoy probando directamente a las salidas del micro ademas hice el cambio de tiempo que me mencionas y me da el mismo resultado....mira quiero agradecer la gran paciencia que me haz tenido y valoro mucho el acolite con los que no sabemos mucho eres un tipazo muchas gracias por todo y ojala no te canses de hecharme una mano con esto
 
a me olivide de mencinarte que al poner a cero y se me prenden todas las entradas pero no hay ningun cambio en las salidas del micro es decir se mantiene simpre en el estado que se iniciaron
 
con respecto a los cambios en las salidas estuve pensando y no vas a ver ninguno
ya que a la velocidad que van ni te vas a dar cuenta cuando se apagan ,,, ni en las aslida del pic ni en el buffer lo que podes hacer para sacarte la duda es meter un retardo falso para solo ver,que andan
pero para usar con los pap no te va a servir,, aca te dejo el programa con el retardo falso para que puedas ver si anda bien el programa,,, si te funciona bien avisame y te dejo terminado el programa listo para usar


LIST P=16f628A
INCLUDE<P16f628A.INC>


__CONFIG _CP_OFF & _WDT_OFF & _BOREN_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _XT_OSC

CBLOCK 0x20
Velocidad
ENDC
#DEFINE EntradaSentido PORTA,4

ORG 0


Inicio
bsf STATUS,RP0


movlw b'00011111'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
movlw 0X07
movwf CMCON
Principal
movf PORTA,W
andlw b'00001111'
btfsc STATUS,Z
goto ParaMotor
call SeleccionaVelocidad
movwf Velocidad
btfsc EntradaSentido
goto A_Izquierda
call GiroDerecha
goto Fin
A_Izquierda

call GiroIzquierda
goto Fin
ParaMotor

clrf PORTB
Fin goto Principal
SeleccionaVelocidad
addwf PCL,F
DT 0,d'75',d'70',d'65',d'60',d'55',d'50',d'45',d'40'
DT ,d'35',d'30',d'25',d'20',d'15',d'10',d'5'

GiroIzquierda

movlw b'00110101'
call ActivaSalida
movlw b'00110110'
call ActivaSalida
movlw b'00111010'
call ActivaSalida
movlw b'00111001'
call ActivaSalida
goto Fin

GiroDerecha
movlw b'00111001'
call ActivaSalida
movlw b'00111010'
call ActivaSalida
movlw b'00110110'
call ActivaSalida
movlw b'00110101'
call ActivaSalida
return

ActivaSalida
CBLOCK
Contador
ENDC



movwf PORTB
movf Velocidad,W
movwf Contador
Retardo

call Retardo_1ms
decfsz Contador,F
goto Retardo
return

Retardo_1ms ;retardo de prueba
movlw .200
movwf 0x38
movlw .200
movwf 0x39
a nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
DECFSZ 0x39
GOTO a


DECFSZ 0x38
GOTO a

return

END
 
hola amigo dusculpa el tiempo gracias por el acolite la verdad te cuento que ahorita le probe al micro y se mira muy bien como van cambiando los leds de las entradas y se aprecia a buen tiempo pero queria preguntarte si la lo puedo conectar con el L293D....mi preguntita es seria posible darle menos intervalo de tiempo al cambio entre salidas para tener un poco mas de velocidad con mi motor a pasos muchas gracias por todo
 
pero si hombre ese que te deje ultimo era para que pudieras ver como funciona, por que si nonunca te ibas a dar cuaenta de los intervalos ya que a esa velocidad el ojo humano no lo puede ver ,,,ahora si ya te sacaste la duda te paso el programa final pero acoerdate que ya no vas a poder ver los cambios por que va a ir a mucha velocidad ,,ok?
bueno una vez que pongas el nuevo programa la velocidad se la vas dando con las distintas combinaciones de
resistencias ya que van formando distintos numeros binarios qyue interactuan con la tabla ,,saludos

LIST P=16f628A
INCLUDE<P16f628A.INC>


__CONFIG _CP_OFF & _WDT_OFF & _BOREN_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _XT_OSC

CBLOCK 0x20
Velocidad
ENDC
#DEFINE EntradaSentido PORTA,4

ORG 0


Inicio
bsf STATUS,RP0


movlw b'00011111'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
movlw 0X07
movwf CMCON
Principal
movf PORTA,W
andlw b'00001111'
btfsc STATUS,Z
goto ParaMotor
call SeleccionaVelocidad
movwf Velocidad
btfsc EntradaSentido
goto A_Izquierda
call GiroDerecha
goto Fin
A_Izquierda

call GiroIzquierda
goto Fin
ParaMotor

clrf PORTB
Fin goto Principal
SeleccionaVelocidad
addwf PCL,F
DT 0,d'75',d'70',d'65',d'60',d'55',d'50',d'45',d'40'
DT ,d'35',d'30',d'25',d'20',d'15',d'10',d'5'

GiroIzquierda

movlw b'00110101'
call ActivaSalida
movlw b'00110110'
call ActivaSalida
movlw b'00111010'
call ActivaSalida
movlw b'00111001'
call ActivaSalida
goto Fin

GiroDerecha
movlw b'00111001'
call ActivaSalida
movlw b'00111010'
call ActivaSalida
movlw b'00110110'
call ActivaSalida
movlw b'00110101'
call ActivaSalida
return

ActivaSalida
CBLOCK
Contador
ENDC



movwf PORTB
movf Velocidad,W
movwf Contador
Retardo

call Retardo_1ms
decfsz Contador,F
goto Retardo
return


Retardo_1ms

movlw .145
movwf 0x39
a nop
nop
nop
nop

DECFSZ 0x39
GOTO a
return
END
 
chuta loco lo prove al micro y quedo excelente me responde a las distinas combinaciones que le doy con el dip switch ya te lo dije antes eres un genio la verdad gracias por el acolite espero no te hayas cansado de acolitarme y espero no haber sido demasiado canson te lo agradezco muchote voy a deber mi pase de nivel gracias
 
chuta loco no sabes cuanto y cada vez me va gustando mas este mundo de los microcontroladores espero algun ratito ser un capo como tu pero para eso me toca estudiar un monton le voy a probar con el L293D y posteo todos mis resultados y ojala unas fottitos
 
hola amigo disculpa por querer abusar de tu gran colaboracion pero me pasaron un librito del 16f628A y me llamo la atensión un proyecto que menciona ahi es con un lcd es un frecunecimetro segun dice ahi te lee los pulsos que te genera un 555 pero hojeandolo un poco me parece que esta incompleto esta hecho en pic basic pro te posteo el codigo para que lo veas y me de tu opinion y si puedes me expliques un poquito si no es mucha molestia ya que me haz ayudado mucho y no quiero ser abusivo

cmcon=7
ledred var portb.2
ledver var portb.1
puls var word

prog:

count portb.0,1000,puls
lcdout $fe,1
lcdout $fe,$82,"frecuencia"
lcdout $fe,$c5,dec puls, "hz"

if puls>120 then alarmah
if puls<100 then alarmal
low ledred:low ledver

goto prog

alarmah: high ledred
low ledver
goto prog

alarmal: high ledver
low ledver
goto prog


digo que esta incompleto como segun me haz ensenado en el otro lenguaje hay que iniciar al micro y otras cositas mas en este no por eso preguntaba y de no ser asi y esta completo puedo hacer este codiguito para probar con este lcd a por sierto que es un 2x16 y ver como funciona.....muchas gracias por tu tiempo si te molestas en responder
 
hola ,esta incompleto,noto que faltan las equivalecias y otras cositas ,,de todos modos ,,no programo en pic basic,, solo en essambler ,, si encontras algo en ese lenguaje ,,no hay problema en ayudarte,,,saludos
 
lo sospeche se me hacia raro el codigo....muchas gracias por la ayudita en mi libro hay algo sobre LCD lo voy a leer y cualquier cosita te molestare si no lo entiendo
 
hola amigo disculpa que te moleste ahora si paso de abusivo tengo que tratar de hacer ese frecuencimetro para que me lea o los cuente a los pulsos de un tren de pulsos que genere con un 555 el micro en el LCD me tiene que mostrar la frecuencia a la que van esos pulsos y cuando yo varie tambien varie el mensaje en el LCD puedes hecharme una mano en eso se que es abusar pero si puedes hecharme una mano te lo agradeceria mucho la verdad eres al unico que se le puede molestar y eres acolite ojala te puedas dar un tiempito para acolitar un poco si no tranquilo tu ya haz hecho la bola de cosas por ayudarme....disculpame si soy descarado pero la verdad que la necesidad es apremiante muchas gracias de antemano
 
tiene que ser en lcd? no puede ser por display ? detodos modos vas a tener que tener pasiencia por que
no tengo mucho tiempo, y un programita de esos lo necesita,,
sino anda armandolo y lo vamos revisando,,
si tenes pasiencia lo voy haciendo de apoco ,pero no te prometo ningun plazo ok?

saludos
 
hola que tal voy a sustituir un pic16f84a por un pic16f628a es un programa de logica simple en donde solo utilizo retardos mi pregunta es como utilizar el oscilador interno en el pic16f628a y solo retiro el externo del pic16f84a.
 
uitlizas algo parecido a:

__CONFIG _CP_OFF & _WDT_ON & _BOREN_OFF & _PWRTE_OFF & _MCLRE_OFF & _LVP_OFF & _INTOSC_OSC_NOCLKOUT

en la hoja de datos viene mas información
 
hola amigos aqui volviendo a los tiempos para poder seguir aprendiendo si hay como...les comento que mi proyecto ya lo presente pero toda la información la tengo super desordenada demen un poco de tiempo les incluyo todo lo que tengo si es posible hasta unos videos de lo que he logrado consegui hacer un pequenito carrito sigue lineas
 
Atrás
Arriba