Autor Tema: PROGRAMITA PARA PIC 16F884 EN PBP  (Leído 13902 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
PROGRAMITA PARA PIC 16F884 EN PBP
« en: 21 de Septiembre de 2005, 16:15:00 »
QUIERO SABER SI ALGUIEN  ME PUEDE SUMISTRA EL CODIGO DE UNA CERRADURA ELECTRONICA QUE GRAVE UNA CLAVE DE 4 DIGITOS EN LA EPROM DEL PIC , TAMBIEN QUE LA CLAVE SE PUEDA CAMBIAR ,  
EL PROGRMA MANEJA UN TECLAFlashDO MATRIXIAL 4*4
1  LCD DE 16 CARACTERES Y DOS LINEAS.


ESTARE AGRADECIDO POR  CUALQUIER AYUDA.

FlashSIN EMBARGO MAS ABAJO ENCONTRARAN EL CODIGO DE MI PROGRAMA TOTALMENTE COMPLETO Y FUNCIONALFlash
No hay cosas imposibles  si no hombres incapaces

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #1 en: 21 de Septiembre de 2005, 23:13:00 »
Hola:

Que pena pero no quiero molestar ni mucho menos parecer grocero con lo que voy a decir....

Si esperas que te den haciendo las cosas pues creo que te va a tocar esperar sentado, por que mejor no empiezas con algun codigo base y de alli partimos...
y si las cosas no mismo se dan "INTENTANDOLO" pues alli con gusto te paso un codigo... Sonrisa Gigante

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #2 en: 29 de Septiembre de 2005, 16:21:00 »
QUE PENA .. TIENES TODA la razon

miren este es el codigo pero quiero reducirlo un poco mas para que me quepa en la memoria de un Flash16f84A Flashy  asi poder hacerle unas mejoras..

bueno este es el codigo

DEFINE LCD_DREG PORTB       " Setea el puertos de datos del LCD por el puerto B
DEFINE LCD_DBIT 0           " Setea el bit de comienzo de datos (0 o 4) si el bus es de 4-bit
DEFINE LCD_RSREG PORTB      " Setea el port LCD Register Select
DEFINE LCD_RSBIT 4          " Setea el bit LCD Register Select
DEFINE LCD_EREG PORTA       " Setea el port LCD Enable
DEFINE LCD_EBIT 0           " Setea el bit LCD Enable
DEFINE LCD_BITS 4           " Setea el tamaño del bus LCD (4 o 8 bits)
DEFINE LCD_LINES 2          " Setea el numero de lineas en el LCD
         
 
    a       var word        " definicion de variables
    tecla   var word
    n1      var byte
    n2      var byte
    n3      var byte
    n4      var byte
    eprom1  var byte
       
     
    n1="1"                  " asigno valor a las variables
    n2="5"                  " el valor es equivalente en asccII
    n3="9"
    n4="7"
 
           
    eprom1="0"
   
    PAUSE  100                                " inicio el programa
    read  0,eprom1
    if eprom1 = 255 then gravar_clave
    goto publicidad
   
    gravar_clave
    WRITe 0, n1
    WRITe 1, n2
    WRITe 2, n3
    WRITe 3, n4
 
    LCDOUT $FE,1," CLAVE GRAVADA "
    PAUSE 1500
    GOTO publicidad
   
    publicidad:                              " CICLO INICAL DEL LCD MUESTRA
    pause 500                                " MENSAJE DE BIENVENIDA
    LCDOUT $FE,1," EDGAR SANTIAGO "            
    pause 500                                " aqui hay que poner una rutina
    OPTION_REG=0
    TRISB = %11111110                             "Activamos Pull-up      
    IF portb= $7e  then goto clave
    LCDOUT $FE,$C0,"   Electronica "        
    pause 500                                " LEE EL TECLADO A VER SI ES "*"
                                            " SI NO ES CONTINUA MOSTRANDO MENSAJE
    OPTION_REG=0
    TRISB = %11111110                              "Activamos Pull-up
    if portb=$7e then goto clave
    LCDOUT $FE,1,"            "
    goto publicidad
   
   
    teclado:
   
    TRISB = %11111110
    low portb.0
    if portb = $EE  then uno
    if portb = $DE  then cuatro
    if portb = $BE  then ciete
    if portb = $7E  then asterisco
       
    TRISB = %11111101
    low portb.1
    if portb = $ED  then dos
    if portb = $DD  then cinco
    if portb = $BD  then ocho
    if portb = $7D  then cero
       
    TRISB = %11111011
    low portb.2
    if portb = $EB  then tres
    if portb = $DB  then seis
    if portb = $BB  then nueve
    if portb = $7B  then numeral
   
    goto teclado
   
    asterisco
    tecla="*"
    return
   
    ciete:
    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," Digite su Clave"
    pause 1000
    gosub teclado
    SWAP  tecla, n1
    LCDOUT $FE,$C5,"X"
    pause 500
    gosub teclado
    SWAP  tecla, n2
    LCDOUT $FE,$C6,"X"
    pause 500
    gosub teclado
    SWAP  tecla, n3
    LCDOUT $FE,$C7,"X"
    pause 500
    gosub teclado
    SWAP  tecla, n4
    LCDOUT $FE,$C8,"X"
    pause 500
     
    READ 0,EPROM1
    IF eprom1 = n1 then miro_dos
   
    incorrecto:
    LCDOUT $FE,1,"Clave Incorrecta"
    pause 500
    goto publicidad
 
    miro_dos
    READ 1, eprom1
    IF eprom1 = n2 then miro_tres
    goto incorrecto
 
    miro_tres
    READ 2, eprom1
    IF eprom1 = n3 then miro_cuatro
    goto incorrecto
 
    miro_cuatro
    READ 3, eprom1
    IF eprom1 = n4 then goto menu
    goto incorrecto
   
   
   
  menu
  LCDOUT $FE,1,"   Selecione "
  pause 1000
  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,"TECLA INCORRECTA "
  LCDOUT $FE,1,"TECLA INCORRECTA "
  pause 700
  goto menu
 
  abrir:
  high porta.3
  LCDOUT $FE,1,"   Bienvenido  "
  pause 3000
  low porta.3
  goto publicidad
 
  nueva_clave
    LCDOUT $FE,1," Digite su Nueva"
    LCDOUT $FE,$C0,"Clave:"
    pause 500
    gosub teclado
    SWAP  tecla, n1
    LCDOUT $FE,$C7,"X"
    pause 500
    gosub teclado
    SWAP  tecla, n2
    LCDOUT $FE,$C8,"X"
    pause 500
    gosub teclado
    SWAP  tecla, n3
    LCDOUT $FE,$C9,"X"
    pause 500
    gosub teclado
    SWAP  tecla, n4
    LCDOUT $FE,$C9+1,"X"
    pause 500
    goto gravar_clave
Flash

BUENO ESPERO SUGERENCIAS....
No hay cosas imposibles  si no hombres incapaces

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #3 en: 29 de Septiembre de 2005, 20:32:00 »
Hola:

Esta haciendo este programa lo que deveria o tiene algun error...? ocupa mas memoria de la que soporta el micro?

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #4 en: 30 de Septiembre de 2005, 12:07:00 »
no el programa funciona perfectamente,

es que quiero agrgarle otras cositas como por ejemplo clave de 5 digitos y otrso mensajes. pero creo que la rutina para leer el teclado me esta generando mucho codigo es por eso que quiero me den sugerencias  de como minimizar este codigo
aclaro el teclado es matricial 4  x 4

Flash agradezco opiniones...:Flash
No hay cosas imposibles  si no hombres incapaces

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #5 en: 30 de Septiembre de 2005, 12:31:00 »
Hola:
Perdon pero te importaria mucho poner el esquema de tu circuito aqui...! Veo que el teclado y el LCD los conectas al puerrto B... y no se como es que no te da problemas ya que para las dos cosas necesitarias como minimo 14 pines ya que estas trabajando a 4 bits el lcd....! y el teclado utiliza 8 pines...! El codigo es totalmente hecho por ti o lo sacaste de algun libro...?

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #6 en: 02 de Octubre de 2005, 13:42:00 »
Hola,

Que pic utilizaste para hacer las pruebas?.

morfeus

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #7 en: 06 de Octubre de 2005, 18:19:00 »
Escrito originalmente por morfeus
Hola,

Que pic utilizaste para hacer las pruebas?.

morfeus


Chicautilizo el pic 16f84A pero quiero ver si puedo reducir a un mas el codigo para
agregarle aun mas funcionalidad al proyecto. pues por estos lados se me ha echo imposible conseguirme un pic 16f628 y asi poder jugar con esos 2k de memoria

jajajajajaja....aajajajaja..

Flash
No hay cosas imposibles  si no hombres incapaces

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #8 en: 06 de Octubre de 2005, 18:26:00 »
Escrito originalmente por LordLafebre
Hola:
Perdon pero te importaria mucho poner el esquema de tu circuito aqui...! Veo que el teclado y el LCD los conectas al puerrto B... y no se como es que no te da problemas ya que para las dos cosas necesitarias como minimo 14 pines ya que estas trabajando a 4 bits el lcd....! y el teclado utiliza 8 pines...! El codigo es totalmente hecho por ti o lo sacaste de algun libro...?


hoy no tengo tiempo de subir el esquema porque estoy en un ciber cafe pero tan pronto pueda lo subo el, EL PROYECTO ES TOTALMENTE FUNCIOBNALS SI YA LO COMPILASTE TE PUEDES DAR CUENTA QUE NO TIENE ERRORES Y ES TOTALMENTE HECHO POR MI , SOY TECNICO EN ELECTRONICA, ASI QUE SI ME PUEDES AYUDAR  FERFECTO.

ADEMAS COMO TE PUEDES DAR CUENTA ME QUEDAN PUERTOS PARA TRABAJAR
SIN PROBLEMA.

EL TRUCO ES TRABAJAR CON ENABLE DEL LCD PUES CUANDO TU EJECUTAS UNA ORDEN  PARA CONTROLAR EL LCD EL PBP LO QUE HACE  ES ACTIVARLO Y CUANDO TERMINA DE EJECUTAR EL COMANDO LO DESACTIVA Y PUEDES SEGUIR TRABAJANDO CON LOS MISMOS PUERTOS SIN AFECTAR LAS SEÑALES QUE LE LLEGAN AL LCD.

ESPERO ME ENTIENDAS SUERTE Y PULSO....

FlashESPERO ME AYUDES A REDUCIR EL CODIGO Y A HACERLO AUN MAS FUNCIONAL  PORQUE LO QUIERO CON UNA CLAVE DE 6 NUMEROS PARA QUE SEA INVIOLABLE.RollEyes

No hay cosas imposibles  si no hombres incapaces

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #9 en: 06 de Octubre de 2005, 19:40:00 »
Hola batman123,

Pues animate a subir el esquema y entre todos de seguro podemos ayudarte a disminuir el código del programa.

saludos

morfeus

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #10 en: 06 de Octubre de 2005, 23:05:00 »
Hola:

Bueno si utilizas el enable entonces bien...

Para la rutina del teclado ensaya esta de la pagina de Bruce Reynolds y cuentame como te va...! OK?

Por lo del pic tambien puedes conseguirte un 16F627 ó 16F648....!

http://www.rentron.com/serkey16.htm

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #11 en: 08 de Octubre de 2005, 17:59:00 »
creo que esa rutina la del  link

solo sirve para leer una tecla pero el preblema es para saber cual
toca crear una tabla para comparar el valor que es leido y luejo saber que tecla se oprimio practicamente lo que yo hago.

Fumadoro me corrigen si me equivoco.Flash
No hay cosas imposibles  si no hombres incapaces

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #12 en: 08 de Octubre de 2005, 18:56:00 »
Hola batman123,

Creo que es como tu dices, habria que hacer los ensayos.


morfeus

Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #13 en: 11 de Octubre de 2005, 17:27:00 »
Escrito originalmente por morfeus
Hola batman123,

Creo que es como tu dices, habria que hacer los ensayos.


morfeus


BUENO COMO NO VEO SUGERENCIAS ME TOCO HACER EL CODIGO PARA UN 16F628
AHORA EL CODIGO ME QUEDARA UN POCO MAS ROBUSTO Y MAS FUNCIONAL TODAVIA PORQUE ME SOBRAN  5 PUERTOS DE LOS CUALES UTILIZARE..
1. PARA  SENSOR DEL RELE
1. PARA EL RELE DE LA CERRADURA
1. PARA ACTIVAR UNA ALARMA CUANDO SE INTRODUSCA 3 VESES LA CONTRASEÑA MALFlash
Y QUEDAN TODAVIA 2 PUERTOS NO SE QUE HACER CON ELLOS...Sonrisa Gigante
No hay cosas imposibles  si no hombres incapaces

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: PROGRAMITA PARA PIC 16F884 EN PBP
« Respuesta #14 en: 11 de Octubre de 2005, 22:37:00 »
Hola:

batman123 intentaste con el codigo del link que te puse....?

Con respecto al 16F628 tienes que configurar lo fusibles para que tengas acceso a todos los pines, y si mal no recuerdo uno es solo de entrada y otro es colector abierto....  ya lo hiciste...? sino lo tienes te puedo pasar el codigo para los FUSES...!