viernes, 8 de enero de 2010

Cerradura LCD + Teclado 3x4 con 16f628a

Bueno aquí les dejo un video de una cerradura electrónica hecha con el pic 16f628a. Más tarde pondre el esquema y el codigo en pbp



Este es el esquema en Proteus:



En vez de poner un relé he puesto un led pero a efectos es lo mismo poniendo un transistor podremos controlar cargas mayores.

Despues de una pequeña revisión, me he dado cuenta que si se pone RS en el A4 no funciona la simulación, pero solo en la simulación. de todas maneras he cambiado la foto del esquema y el código. Aunque el problema estaba solo ahí. También os dejo los archivos en Proteus y los de PBP en la sección de descargas

Y este es el codigo en PBP:

;Cerradura Electronica Electronica con teclado 3x4,Lcd 16x2,
;y clave de 4 digitos que queda grabada aun cuando el Pic
;deje de tener corriente.
;utiza el micro 16f628a prescidiendo del cristal de cuarzo
;externo y usando el reloj interno
@ DEVICE PIC16F628A, WDT_OFF
@ DEVICE PIC16F628A, PWRT_ON
@ DEVICE PIC16F628A, BOD_ON
@ DEVICE PIC16F628A, PROTECT_OFF
@ DEVICE PIC16F628A, CPD_OFF
@ DEVICE PIC16F628A, MCLR_OFF
@ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
@ DEVICE PIC16F628A, LVP_OFF

DEFINE LCD_DREG PORTA ;port de Data LCD
DEFINE LCD_DBIT 0 ;datos LCD comenzando en BIT 0 o 4 "estos deven estar consecutivos"
DEFINE LCD_EREG PORTB ;cambiamos Enable del portb.3
DEFINE LCD_EBIT 7 ;al portb.7
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 7

;definicion de variables
a var word
tecla var word
n1 var byte
n2 var byte
n3 var byte
n4 var byte
eprom1 var byte
;definiendo puertos
LA var portb.0 ;Linea A
LB var portb.1 ;Linea B
LC var portb.2 ;Linea C
LD var portb.3 ;Linea D
Funo var portb.4 ;Columna 1
Fdos var portb.5 ;Columna 2
Ftres var portb.6 ;Columna 3
rele var porta.6 ;Rele

n1="1" ;asigno valor a las variables
n2="1" ;el valor es equivalente en asccII
n3="1" ;esta sera la combinación predefinida
n4="1" ;recuerda cambiarla!!


eprom1="0"

PAUSE 100 ; Inicio del programa
read 0,eprom1
if eprom1 = 255 then gravar_clave
goto bienvenida

gravar_clave:
WRITe 0, n1
WRITe 1, n2
WRITe 2, n3
WRITe 3, n4

LCDOUT $FE,1, $FE,2, " CLAVE GRABADA "
PAUSE 1500
GOTO bienvenida

Bienvenida:
pause 500 ; Mensaje de Bienvenida
LCDOUT $FE,1, $FE,2, " Infotronikblog "
LCDOUT $FE,$C0," Presenta: "

inicio:
pause 500
LOW LA
LOW LB
HIGH LC
LOW lD ;Activamos la linea del asterisco
IF fUNO = 0 then goto clave
pause 500 ;LEE EL TECLADO A VER SI ES "*"
; SI NO ES CONTINUA MOSTRANDO MENSAJE
goto inicio


teclado: ;Etiqueta para el teclado


low la
if funo = 0 then uno
if fdos = 0 then dos
if ftres = 0 then tres

high la
low lb
if funo = 0 then cuatro
if fdos = 0 then cinco
if ftres = 0 then seis


high lb
low lc
if funo = 0 then siete
if fdos = 0 then ocho
if ftres = 0 then nueve

high lc
low ld
if funo = 0 then asterisco
if fdos = 0 then cero
if ftres = 0 then numeral
high ld
pause 10
goto teclado

asterisco:
tecla="*"
return

siete:
tecla="7"
return

cuatro:
tecla="4"
return

uno:
tecla="1"
return

dos:
tecla="2"
return

cinco:
tecla="5"
return

ocho:
tecla="8"
return

cero:
tecla="0"
return

tres:
tecla="3"
return

seis:
tecla="6"
return

nueve:
tecla="9"
return

numeral:
tecla="#"
return

clave:
LCDOUT $FE,1, $FE,2, "Escribe la Clave"
pause 1000
gosub teclado
SWAP tecla, n1
LCDOUT $FE,$C5, "*"
pause 500
gosub teclado
SWAP tecla, n2
LCDOUT $FE,$C6, "*"
pause 500
gosub teclado
SWAP tecla, n3
LCDOUT $FE,$C7, "*"
pause 500
gosub teclado
SWAP tecla, n4
LCDOUT $FE,$C8, "*"
pause 500

READ 0,EPROM1
IF eprom1 = n1 then miro_dos

Error:
LCDOUT $FE,1, $FE,2, "Clave Incorrecta"
pause 500
goto bienvenida

miro_dos:
READ 1, eprom1
IF eprom1 = n2 then miro_tres
goto error

miro_tres:
READ 2, eprom1
IF eprom1 = n3 then miro_cuatro
goto error

miro_cuatro:
READ 3, eprom1
IF eprom1 = n4 then goto menu
goto error



menu:
LCDOUT $FE,1, " Elige una "
LCDOUT $FE,$C0," Opcion: "

pause 1500
LCDOUT $FE,1,"1 Abrir Puerta"
pause 300
LCDOUT $FE,$C0,"2 Cambiar Clave"
gosub teclado
IF tecla = "1" THEN goto abrir
if tecla = "2" then goto nueva_clave
if tecla != "1" and tecla!= "2" then LCDOUT $FE,1, $FE,2, "TECLA INCORRECTA" ;Si pulsamos una
LCDOUT $FE,1, $FE,2, "TECLA INCORRECTA " ;que no es ni 1 ni 2 muestra tecla incorrecta
pause 700
goto menu

abrir:
high rele
LCDOUT $FE,1, $FE,2, " Bienvenido "
pause 3000
low rele
goto bienvenida

nueva_clave:
LCDOUT $FE,1, $FE,2, "Escribe tu nueva"
LCDOUT $FE,$C0,"Clave:"
pause 500
gosub teclado
SWAP tecla, n1
LCDOUT $FE,$C8,"*"
pause 500
gosub teclado
SWAP tecla, n2
LCDOUT $FE,$C9,"*"
pause 500
gosub teclado
SWAP tecla, n3
LCDOUT $FE,$C9+1,"*"
pause 500
gosub teclado
SWAP tecla, n4
LCDOUT $FE,$C9+2,"*"
pause 500
goto gravar_clave


;---------------------------------FIN DEL CODIGO----------------------------------

Descargar archivos: Cerradura LCD con Teclado 3x4 para 16f628a






*NOTA: En la simulación la clave esta cambiada a 2580 *

82 comentarios :

  1. k te pasaba con los dedicos carlitos???

    ResponderEliminar
  2. muy interesante el video pero...
    y el codigo fuente?
    se te agradeceria mas si lo compartieras con nosotros

    ResponderEliminar
  3. Hola podrias compartir el codigo .C y el esquema porfa??? Estoy montando una alarma y vendria de perlas poder incorporar tu sistema en ella =))))

    ResponderEliminar
  4. Bueno ya esta terminado el Post, si teneis alguna duda preguntadmelo!!!
    El codigo solo lo tengo en pbp, como mucho el ASM que genera al compilar el *.HEX

    ResponderEliminar
  5. alguien tiene el programa en asm ??? gracias
    ruben
    rudafi@yahoo.com.ar

    ResponderEliminar
  6. oye hago lo mismo y no me corre en el proteus

    ResponderEliminar
  7. Has puesto el cristal del pic a 4mhz? configurando en las propiedades del micro (a mi me paso al principio de empezar con proteus) si no asi a voz de pronto y con la información que me dasen poco más te puedo ayudar. ¿¿¿Cual es el error o el fallo???

    ResponderEliminar
  8. no me corre el progrma
    no funca no sale nada
    solo la patillla verde jaja

    ResponderEliminar
  9. Prueba a cambiar los puertos del LCD.
    A mi proteus no me dejaba ponerlo en el puerto A tenia que cambiarlo al B asi que si quieres que funcione en proteus tendrias que cambiar un poco el programa.

    ResponderEliminar
  10. veo en el codigo que algunas etiquetas no estan con los : dos puntos sin embargo el codigo corre bien aunque en proteus no funciona

    ResponderEliminar
  11. Si algun : de las etiquetas se habia quedado en el camino.. probad a cambiar el RS y el E al puerto B

    ResponderEliminar
  12. oye carnal no puedo compilar el pbp me aparece este eroor demo command limit of 31 exceeded, time to purchase? ojala me pudieras ayudar

    ResponderEliminar
  13. Estas usando una demo de PBP. Necesitas la versión integra. Aiinnnssss a ver si usamos los traductores!!! Un saludo!!

    ResponderEliminar
  14. que muchacho.. haces en el proteus y tampoco te corre?¿ jejeje, uuum algo anda mal en esta pag. thanks de tods forms!!

    ResponderEliminar
  15. Ya esta todo rervisado y tambien incluyo los archivos en Isis y PBP, espero que ahora si os funcione!!

    ResponderEliminar
  16. oye disculpa tengo un problema trato de compilar el archivo y me marca error en
    @DEVICE PIC16F628A, WDT_OFF
    @ DEVICE PIC16F628A, PWRT_ON
    @ DEVICE PIC16F628A, BOD_ON
    @ DEVICE PIC16F628A, PROTECT_OFF
    @ DEVICE PIC16F628A, CPD_OFF
    @ DEVICE PIC16F628A, MCLR_OFF
    @ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F628A, LVP_OFF
    estoy usando microcode studio, creo q es una parte de picbasic pro, ya que no lo encontre para descargar, como se debe de indicar la configuracion en este programa?

    ResponderEliminar
  17. Prueba a desactivar el MPASM. Si utilizas el ic-prog, borra esas lineas y configuralo directamente en el ic-prog. Si no funciona necesito más datos sobre el compilador que estas usando. Un Saludo

    ResponderEliminar
  18. me sale error en la direccion h0000! al programarlo con el ic-prog 1.06C y compilarlo con el microcode studio plus...me parece q es un error de que el pic solo puede almacenar 2kb y el archivo hexadecimal pesa 7kb...me dirias con q lo programaste y compilaste talvez es algun error mio.Felicitaciones por el proyecto es muy bueno y en proteus funciona perfecto exepto por la linea HIGH LC de la etiqueta inicio que creo q deberia ser LOW LC para q al pulsar cualquier tecla esta este activada.Saludos

    ResponderEliminar
  19. Je como dije era un problema de memoria porque lo habia modificado ahora funciona de 10 ya lo tengo en placa muchas gracias por la idea

    ResponderEliminar
  20. ahora tengo otro problema cuando lo vengo a montar...el LCD me muestra solo cuadros negros en la primera linea, esta todo bien conectado lo unico q hice para facilitarme la plaqueta fue cambiar los bus de datos, el enable y el rs...RS=RA3 ,EN=RA2 y Bus de datos = RB0->RB3...ya probe con conectar las patitas 15 y 16 pero solo modifique el backlight vee lo tengo a masa no se si conectarlo al positivo...que puede ser que tenga mal?

    ResponderEliminar
  21. Buenas, siento tardar en reponder, pero he empezado a trabajar y me estoy haciendo al horario!! Has cambiado las lineas de RS y EN donde pone "DEFINE LCD_DREG PORTA" por "DEFINE LCD_DREG PORTB" y "DEFINE LCD_DBIT 0" Aunque si lo pones en el puerto B creo que seria mejor ponerlo en los 4 ultimos, es decir del Portb.7 al Portb.3. Si tienes dudas sobre el patillaje del LCD lo mejor seria que miraras el DATA!!. Si no recuerdo mal en el mio el blacklight es el ultimo y solo es el positivo del blacklight y el siguiente ya es el D7 y la masa es comun con a masa del LCD. Si me mandas el programa y tengo tiempo puedo hecharle un vistazo.
    Lo de la direccion h0000 normalmente es porque no se ha grabado el PIC normalmente porque el programador esta roto o porque lo que esta roto es el pic. tengo por ahi un programa para verificar el programador JDM, lo busco y lo publico ;)
    Un Saludo!!

    ResponderEliminar
  22. Gracias por la respuesta...pude solucionar todos los problemas lo q le pasaba al lcd es que tenia q pasar las salidas del puerto A de analogicas a digitales con el comando cmcon = 7 y ahora funciona perfecto aunque estoy viendo de migrar a otro pic mas potente como el 16f877 para aprovechar al maximo la pantalla y tener mediciones...muchas gracias por la idea..vos ya lo conectaste a tu vehiculo como hiciste para decirle que no t corte el rele mientras que esta el motor ensendido?? y que se apague todo el sistema cuando no esta la llave??

    ResponderEliminar
  23. La verdad no lo tengo aun enchufado al coche... lo tengo en la guantera del reposabrazos, y he pasado los cables y todo, pero me faltaba el rele y siempre se me olvida comprarlo y creo que son baratos, pero no me acuerdo.. asi que no te puedo decir como lo tengo. Pero si lo que tengo pensado,
    mi idea es poner el rele puenteando alguno de los cables (tampoco lo tengo visto) que correspondan solo al pulsador de la llave, es decir, cuando arrancas y la llave ya se queda en su posicion de encendido. Pero no se que cables serian exactamente. Además quiero ponerle tambien un pequeño pulsador puenteando al rele escondido por el salpicadero, bajo el... para que si pasara algo, pulsando el boton y dandole, deberia arrancar sin problemas.
    Tengo por aquí un 16f876, pero no se que hacer con el, tambien estoy indeciso por pillarme una placa andruino... pero el señor crisis me dice que me espere. Asi que las ideas son bienvenidas!!!

    ResponderEliminar
  24. buen aporte hermano PBp es lo mejor

    ResponderEliminar
  25. que buen aporte pero no se por que en mi simulacion se pasan a mostrar la clave y no se espera a que yo presione algo en el teclado como le hago

    ResponderEliminar
  26. Funciona muy bien ya lo monte el circuito en un proto, amigo gracias por tu aporte ,, tengo una inquietud como le hago para que mi sistema funcione solo un cierto tipo, ósea llega a la casa presiono un pulsador y prendo el sistema por unos 30seg hasta digitar la clave y ahí permanesca apagado …??

    ResponderEliminar
  27. Está muy bueno tu aporte te agradezco, pero un favor, puedes subir los archivos a otra pagina porque megaupload ya no existe.

    ResponderEliminar
  28. podrían poner el código y la simulación ya corregidos porfavor

    ResponderEliminar
  29. Ya he repuesto los archivos del programa y la simulación. Siento haber tardado tanto!!

    ResponderEliminar
  30. Buen trabajo amigo pero al realizar todas las acciones y acceder al codigo hex al simulador (proteus)pide la clave, segun el codigo fuente deberia ser "1111" o estos equivocado; cual es la clave para ser mas exactos muchas gracias saludos desde Cusco Peru

    ResponderEliminar
  31. YO LO ENCONTRE ES 2580 ALLI LO TIENES EL ARCHIVO HEX SE GUARDO CON ESA CLAVE EN EL MIO FUNCIONO ASI

    ResponderEliminar
  32. No sabia que se quedaba grabada si la cambiabas, pensaba que se mantendria en "1111". Gracias por la colaboración Anónimo.

    ResponderEliminar
  33. oye amigo el archivo .asm no compila marca herrores y muchos

    ResponderEliminar
  34. no sabes si esta bien tu archivo

    ResponderEliminar
  35. Acabo de descargar y probar los archivos y funciona perfectamente, revisa si pusiste bien el pic a la hora de compilar. Un saludo

    ResponderEliminar
    Respuestas
    1. hay alguna manera de contactarme por chat con vos? necesito una ayuda...

      Eliminar
  36. lo descargue para ver que tal iba la simulacion, pero marca varios errores sobre un archivo .asm asi que mejor me base, en tu programa para hacer el mio, buena logica! gracias!
    me funciono bastante bien
    ademas al final solucione lo errores que tenia son malos registros por parte de proteus, se puede copiar el programa y hacerlo nuevamente y corre bien!

    ResponderEliminar
  37. Hola, Antes que nada muy buen proyecto, llevo tiempo buscando la informacion necesaria para hacer esto y veo que tu proyecto es muy bueno, soy muy novato en este tema todavia pero voy a probar que tal sale esto, los materiales que necesito donde los veo?? en el proteus?? saludos

    ResponderEliminar
  38. no me corre en proteus y tampoco en microcode studio

    ResponderEliminar
  39. como puedo modificar la programacion con que programa>???

    ResponderEliminar
  40. En la simulacion (osea en el video) cuanto le pusiste de voltaje al pic y a la pantalla LCD ???

    ResponderEliminar
  41. hola amigo gracias por el aporte..como no tenia el 16f628a use el 16f873a cambie algunas cosas y me salio muy bien,, te agradesco si quieren todo listo para probar hablenme a mi correo sfvsredlion@hotmail.es

    ResponderEliminar
  42. no le falta ALIMENTACION al microcontrolador?

    ResponderEliminar
    Respuestas
    1. Proteus da por hecho que el microcontrolador se alimenta a 5V y no hace falta alimentación. Pero en el circuito que montes si la necesitara. Es cosa de Proteus.

      Eliminar
  43. no me funciona la clave 2580 ni 1111 ni 1234 alguien me puede ayudar

    ResponderEliminar
    Respuestas
    1. ¿El problema lo tienes en la simulación o en el circuito que has montado?

      Eliminar
    2. Peyutron....se que ya es muy viejo el post, pero es que he montado todo y por cierto le he dedicado mucho tiempo corrigiendo los errores de compilacion que me daba, ahora ya pude hacerlo y me funciona todo bien en el proteus, pero en la proto ninguna clave me funciona...Gracias.

      Eliminar
    3. Peyutron....se que ya es muy viejo el post, pero es que he montado todo y por cierto le he dedicado mucho tiempo corrigiendo los errores de compilacion que me daba, ahora ya pude hacerlo y me funciona todo bien en el proteus, pero en la proto ninguna clave me funciona...Gracias.

      Eliminar
    4. Buenas 2A, ¿con que programa estas grabando el PIC? creo recordar que en el ICprog hay apartado llamado Address EEPROM Data, ahí una vez que se ha grabado la clave si le das a leer el PIC aparece la clave, en WinPIC800 ahora mismo no recuerdo cual era el apartado donde estaba, pero creo recordar que también lo tenía. Seria cuestión que volvieras a poner el PIC en el programador y leerlo a ver si se ha grabado la clave. Que PIC utilizas? Saludos!!!

      Eliminar
    5. Buen dia, muchisimas gracias por tu oportuna respuesta, estoy utilizando el pic16f628a y Winpic800. Puedo leer el pic pero no encuentro el apartado que dices. Muchisimas gracias por tu colaboracion

      Eliminar
    6. No hay problema para eso estamos ;) pues con el winpic800 ni idea ahora mismo, viendo fotos es como la segunda pestaña donde pone EEPROM, el problema es que me pase a Linux y no puedo instalar el winpic para decirte donde esta exactamente, ¿puedes hacer una captura de pantalla y enviarmela a peyutron@gmail.com? a ver si le sacamos punta ;) saludos!!!

      Eliminar
    7. O.k gracias de nuevo, te envie un correo con los pantallazos de las lecturas del prog que tengo ya quemado en el pic

      Eliminar
  44. hola men muy buen trabajo me gusto pero, unfavor me puedes pasar la dirección del programa que utilizaste para generar el pbp, quiero descargarlo y generarlo ahí, muchas gracias

    ResponderEliminar
    Respuestas
    1. hola amigo crees q puedas ayudarme a compilarlo, no se con q programa lo hicites amigo, justamente quiero q me ayudes en eso, mi correo loco_radical_147@hotmail.com

      Eliminar
    2. Buenas Luis, pues para compilarlo utilice Pic Basic Pro no recuerdo la versión,la 2.4 creo. pero además tambien utilice Microcode Studio. Ambos podras encontrarlos en paginas como taringa si lo quieres para uso personal. Con esto podras crear archivos PBP y general el .HEX.
      Microcode no es realmente necesario, pero simplifica mucho. Espero haberte ayudado!!!

      Eliminar
  45. Buen aporte!!
    Te dire RA4 es un pin de colector abierto, es decir, necesita energia externa. Conectale desde Vcc con una resistencia 4.7K al pin.

    ResponderEliminar
  46. esta cerradura una vez que ingresas 3 veces mal el codigo no suena una alarma?

    ResponderEliminar
    Respuestas
    1. No, esa función no la tiene, es una cerradura básica.

      Eliminar
  47. Peyutron Nocturno muy buenas.. te podrias poner en contacto conmigo alvaro-cortes@hotmail.es me serviria de mucho. Gracias..

    ResponderEliminar
    Respuestas
    1. Buenas Alvaro, lamento decirte que no suelo contestar por privado, si tienes alguna duda puedes exponerla por aquí, así si la resolvemos puede servir de ayuda para otros. Un saludo y gracias!!!

      Eliminar
  48. Hola amigo si no es molestia me puedes ayudar con el hexadecimal o el código y la simulación desde ya gracias y un excelente aporte guillermo_jonatha@hotmail.com

    ResponderEliminar
  49. @DEVICE PIC16F628A, WDT_OFF
    @ DEVICE PIC16F628A, PWRT_ON
    @ DEVICE PIC16F628A, BOD_ON
    @ DEVICE PIC16F628A, PROTECT_OFF
    @ DEVICE PIC16F628A, CPD_OFF
    @ DEVICE PIC16F628A, MCLR_OFF
    @ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F628A, LVP_OFF

    Hola amigo tengo que hacer lo mismo pero con 3 digitos para q se active yo utilizo el microocode pero le paso y me dice q hay errores por lo del principio ayudame porfavor es para mi deber :(

    ResponderEliminar
  50. @ DEVICE PIC16F628A, WDT_OFF
    @ DEVICE PIC16F628A, PWRT_ON
    @ DEVICE PIC16F628A, BOD_ON
    @ DEVICE PIC16F628A, PROTECT_OFF
    @ DEVICE PIC16F628A, CPD_OFF
    @ DEVICE PIC16F628A, MCLR_OFF
    @ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F628A, LVP_OFF


    que significa porque le borro y me comila pero no me sirve le pong y me da error al compilar

    ResponderEliminar
    Respuestas
    1. Esto son los llamados Fuses, con esto haces que cuando vayas a programar el pic ya estén listos. Por ejemplo:

      @ DEVICE PIC16F628A, WDT_OFF ; este fuse le indica al microcontrolador que el Wachdog (perro guardián) esta apagado.

      @ DEVICE PIC16F628A, PWRT_ON, Esto hace que PWRT este encendido, con esto, nuestro microcontrolador permanece apagado durante un tiempo hasta que se estabilice la tensión de alimentación
      @ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT , Este le dice al microcontrolador que utilice el reloj interno.
      si necesitas más información sobre los fuses, busca "configurar Fuses 16F628".
      Realmente no se cual sera el problema que te da, pero revisa la configuración de microcode, y asegúrate que estas programando el 16f628a. Un saludo

      Eliminar
  51. Ya pude resolver amigo pero ahora hay otro problema ... le arme en el protoboard y solo se me queda la pantalla en blanco osea me aparece las barras en el lcd y nada mas como resuelvo eso amigo??

    ResponderEliminar
    Respuestas
    1. Revisa bien el cableado y comprueba que esta todo correcto, y si esta todo bien prueba poniendo "CMCON=7" sin las comillas después de los "DEFINE", esto apagara los comparadores analógicos, pruébalo a ver que tal.
      Espero haberte ayudado, si no dímelo y seguiremos buscando soluciones.
      Un saludo

      Eliminar
  52. hola amigo ya salio pero la clave se pone sola como arreglo eso

    ResponderEliminar
  53. READ 0,EPROM1
    IF eprom1 = n1 then miro_dos

    Error:
    LCDOUT $FE,1, $FE,2, "Clave Incorrecta"
    pause 500
    goto bienvenida

    miro_dos:
    READ 1, eprom1
    IF eprom1 = n2 then miro_tres
    goto error

    miro_tres:
    READ 2, eprom1
    IF eprom1 = n3 then miro_cuatro
    goto error

    miro_cuatro:
    READ 3, eprom1
    IF eprom1 = n4 then goto menu
    goto error
    eso no entiendo

    ResponderEliminar
    Respuestas
    1. Buenas Paul, para tu primera pregunta te diré que tienes mal las lineas del teclado, posiblemente sea que en vez de a +5v este conectada la parte de las resistencias a GND. Lo que hace es que estén todas las teclas activadas.
      La parte de miro_uno, miro_dos... compara la clave que tu has introducido con la clave que hay en la memoria eprom.
      Cuando estas son las mismas, te deja seguir con el programa, si no, te da error y una vez que el cuarto digito es igual, pasa al menu donde te deja abrir o cambiar clave

      Eliminar
  54. hola me llamo cesar y realize el circuito del teclado pero lo que pasa es que almomento de programar el pic con el ic prog me sale el error 0000h ¡ y aun asi igual me funciona pero la contraseña se coloca sola eso no entiendo y no se que aser alguien que me pueda ayudar en esta falla y con el ic prog en modo osc cual tengo que poner para programar el pic de antemano muchas gracias

    ResponderEliminar
  55. no me arranca se queda diciendo infotronicblog que hago?????? saludos

    ResponderEliminar
  56. Hola, por favo explica la siguiente subrutina:
    eprom1="0"
    pause 100 ; inicio del programa
    read 0, eprom1 ; Graba por primera vez la clave inicial 2 2 2 2
    if eprom1=255 then grabar_clave
    goto Bienvenida

    Por que se supone que inicialmente read 0 vale 255? Si tu estás indicando que eprom1="0". Saludos.

    ResponderEliminar
  57. Hola quetal le quiero hacer una pregunta es sobre las primeras lineas de de código
    @ DEVICE PIC16F628A, WDT_OFF
    @ DEVICE PIC16F628A, PWRT_ON
    @ DEVICE PIC16F628A, BOD_ON
    @ DEVICE PIC16F628A, PROTECT_OFF
    @ DEVICE PIC16F628A, CPD_OFF
    @ DEVICE PIC16F628A, MCLR_OFF
    @ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F628A, LVP_OFF
    tengo el problema que al momento de mandar a coplilar en MicroCode Studio-PICBASIC PRO , no me reconoce me salen como lineas de error, este es el error que me sale:
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm77:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm77:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm83:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm83:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm89:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm89:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm95:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm95:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm101:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm101:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm107:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm107:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm113:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm113:illegal opcode(16F628A). (DIVICE)
    Wrning[207] c:\users\personal\destop\lcd\pbp\inftr ~ 1.asm119:Found label after column 1. (DIVICE)
    Error[122] c: \users \personal\destop\lcd\pbp\inftr ~ 1.asm119:illegal opcode(16F628A). (DIVICE)
    Pero en el momento que borro las primeras lineas el copilador me reconoce el programa, pero en el momento que quiero que simular en el proteus me sale solo la pantalla verde y nada mas, si me prodrias de cir si tengo que instalar algún librería para que me reconosca esas líneas ocomo lo puedo resolver te agradecería un monton (un por si acaso este es mi correo patricioquingac@hotmail.com para ver si me pudes ayudar porfavor ya que es para un deber)

    ResponderEliminar
  58. Buenas
    La Patilla 8 (RB2) a que nivel tiene que estar al iniciarse el Pic porque en proteus me cuesta mucho pulsar las teclas tengo que estan pulsando mucho tiempo para que me indique desde la LCD Escribe la Clave y pulso 2580 pero para poner el 2 me aburro de esperar.
    En espera de una respuesta y Solucion y Muchas Gracias.
    Un Saldudo

    ResponderEliminar
    Respuestas
    1. has probado hacerlo en Arduino? me parece a mi que es algo mas sencillo

      Eliminar
    2. Buenas TheChapifresHD, siento no poder ayudarte con tu consulta, hace mucho tiempo de esta entrada del blog, prueba con los comentarios anteriores a ver si es alguien hubiera tenido un problema similar.
      Como dice el amigo alexander rios, y siempre dependiendo de para el uso que le vayas a dar, te recomiendo Arduino, es mucho más sencillo en todos los aspectos.
      Lamento de verdad no poder solucionar tu duda, saludos TheChapifresHD

      Eliminar
  59. no me funciona ninguna clave en el proteus quien me puede ayudar no quiero armarlo en proto hasta no tener la clave por que no tendria sentido

    ResponderEliminar
  60. hola soy plinio fernandes no encuentro la clave de acceso en proteus no me funciona nunguna y no quiero armarlo en protoborar hasta no tener el acceso no puedo ver el video no me aparese alguien me puede ayudar

    ResponderEliminar
  61. hola me ayudas con esto cuando compilo me sale error, pero si le quito compila bien pero la simulacion ya no funciona porfa ayudame

    @ DEVICE PIC16F628A, WDT_OFF
    @ DEVICE PIC16F628A, PWRT_ON
    @ DEVICE PIC16F628A, BOD_ON
    @ DEVICE PIC16F628A, PROTECT_OFF
    @ DEVICE PIC16F628A, CPD_OFF
    @ DEVICE PIC16F628A, MCLR_OFF
    @ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F628A, LVP_OFF

    ResponderEliminar