Autor Tema: LCD y Pulso para Mensaje  (Leído 5325 veces)

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

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Re: LCD y Pulso para Mensaje
« Respuesta #15 en: 06 de Mayo de 2006, 01:19:52 »
hola:
bueno que alguien me explique o me dice sobre este ej. este lo copie de aki mismo y lo estoy revisando para verificar
las fusiones que usaron y para poder hacer el mio... aprender...

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 PORTA' " Setea el port LCD Register Select
DEFINE LCD_RSBIT 1' " 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
n5 var byte
eprom1 var byte
i var byte
R VAR BYTE
n var byte
j var byte
M var byte
FILA_0 VAR BYTE
FILA_1 VAR BYTE
FILA_2 VAR BYTE
FILA_3 VAR BYTE
 
n1 = "5" '" asigno valor a las variables
n2 = "5" '" el valor es equivalente en asccII
n3 = "5"
n4 = "5"
n5 = "5"

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
write 4, n5
LCDOUT $FE,1," CLAVE GRAVADA "
GoSub tiempo_05
GoSub tiempo_05
GoSub tiempo_05
GOTO publicidad

publicidad: '" CICLO INICAL DEL LCD MUESTRA
GoSub tiempo_05 '" MENSAJE DE BIENVENIDA
LCDOUT $FE,1," ACCESO à NANDO"
GoSub tiempo_06 '" aqui hay que poner una rutina
OPTION_REG = 0
TRISB = %11111110 '"Activamos Pull-up
IF portb= $7e then goto clave
LCDOUT $FE,$C0,"   Electronica "
GoSub tiempo_06 '" 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:
COLUMNA_0:
R = 0
TRISB = %11111110
portb.0= 0
GoTo PREGUNTA

COLUMNA_1:
R = R + 1

TRISB = %11111101
portb.1 = 0
GoTo PREGUNTA
COLUMNA_2:
R = R + 1
TRISB = %11111011
portb.2 = 0
GoTo PREGUNTA
COLUMNA_3:
R = R + 1
TRISB = %11110111
portb.3 = 0
GoTo PREGUNTA
GoTo teclado

suelta:
if (portb&%11110000)=$f0 then visualiza
GoTo suelta

visualiza:
lookup j, ["741C8520963=/*-+"], tecla
Return

clave:
LCDOUT $FE,1," Digite su Clave"
GoSub tiempo_05
GoSub tiempo_05
GoSub teclado
SWAP tecla, n1
i = 0
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n2
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n3
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n4
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n5
GoSub lcd_sal
GoSub tiempo_05

read 0, eprom1
If eprom1 = n1 Then miro_dos

incorrecto:
LCDOUT $FE,1,"Clave Incorrecta"
GoSub tiempo_05
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 miro_cinco
GoTo incorrecto

miro_cinco:
read 4, eprom1
If eprom1 = n5 Then menu

menu:
LCDOUT $FE,1," Selecione "
GoSub tiempo_05
GoSub tiempo_05
LCDOUT $FE,1,"1_Abrir Puerta"
GoSub tiempo_05
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 "
GoSub tiempo_05
GoSub tiempo_05
GoTo menu

abrir:
high porta.3
LCDOUT $FE,1," Bienvenido "
GoSub tiempo_05
GoSub tiempo_05
GoSub tiempo_05
GoSub tiempo_05
GoSub tiempo_05
GoSub tiempo_05
low porta.3
GoTo publicidad

nueva_clave
LCDOUT $FE,1," Digite su Nueva"
LCDOUT $FE,$C0,"Clave:"
GoSub tiempo_06
i = 2
GoSub teclado
SWAP tecla, n1
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n2
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n3
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n4
GoSub lcd_sal
GoSub tiempo_05
GoSub teclado
SWAP tecla, n5
GoSub lcd_sal
GoSub tiempo_05

GoTo gravar_clave

tiempo_05:
pause 100
Return
tiempo_06:
pause 500
return
lcd_sal:
LCDOUT $FE,$C5+i,"X"
i = i + 1
Return

PREGUNTA:
M = 4 * R
FILA_0=($E0 +(portb&%00001111))
FILA_1=($D0 +(portb&%00001111))
FILA_2=($B0 +(portb&%00001111))
FILA_3=($70 +(portb&%00001111))
If portb = FILA_0 Then j = M
M = M + 1
If portb = FILA_1 Then j = M
M = M + 1
If portb = FILA_2 Then j = M
M = M + 1
If portb = FILA_3 Then j = M
if (portb&%11110000)<>$f0 then suelta
If R = 0 Then COLUMNA_1
If R = 1 Then COLUMNA_2
If R = 2 Then COLUMNA_3
GoTo teclado

el ej funciona bien pero lo que quiero saber como ago para que cuando le quite la alimentacion la clave que cambien atrabes del teclado no se pierda, para que cuando le conecte la alimentacion otrabes trabajar con la ultima clave que guarde...
agradeceria la ayuda ya que estoy desarrollando un proyecto y esta es la etapa final que son las claves de acceso..
bye... :-/ :-/
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: LCD y Pulso para Mensaje
« Respuesta #16 en: 06 de Mayo de 2006, 01:56:08 »
Hola:

BLACKPIC, mira esto:

WRITe 0, n1
WRITe 1, n2
WRITe 2, n3
WRITe 3, n4
write 4, n5


ese codigo almacena la clave en la eeprom del microcontrolador, por lo que el programa una ves que se haya quitado la alimentacion y luego la reconectes si estara con la clave anterior.

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Re: LCD y Pulso para Mensaje
« Respuesta #17 en: 06 de Mayo de 2006, 02:06:28 »
si amgio pero como veras al principio tiene estas sintaxis pero no me funciona como quiero
cuando le denonecto la alimentacion y despues cuando buelbo y la conecto siempre tengo que marcar la clave inicial que es "55555"

bye... :-/ :-/
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: LCD y Pulso para Mensaje
« Respuesta #18 en: 06 de Mayo de 2006, 02:11:44 »
Hola:

BLACKPIC, estas probando el codigo en un circuito armado o en proteus?
« Última modificación: 06 de Mayo de 2006, 02:19:13 por LordLafebre »

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Re: LCD y Pulso para Mensaje
« Respuesta #19 en: 06 de Mayo de 2006, 02:25:16 »
hola:
en un circuito armado en un board

bye... :-/ :-/
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: LCD y Pulso para Mensaje
« Respuesta #20 en: 06 de Mayo de 2006, 02:30:07 »
Hola:

Pues el codigo parece bueno, pero con todo prueba a quitar los comentarios de estas dos lineas:

'If eprom1 = 255 Then gravar_clave
'GoTo publicidad

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Re: LCD y Pulso para Mensaje
« Respuesta #21 en: 06 de Mayo de 2006, 10:32:35 »
hola:
amigo lordlafebre ya esta todo resuelto a hora seguire trabajando en lo mio..

bye... :-/ :-/
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: LCD y Pulso para Mensaje
« Respuesta #22 en: 06 de Mayo de 2006, 10:36:13 »
Hola:

Como lo resolviste?

Acaso lo hiciste quitando los comentarios de las líneas que te dije?

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Re: LCD y Pulso para Mensaje
« Respuesta #23 en: 06 de Mayo de 2006, 10:54:17 »
HOLA:
 lo resorvi de esta manera

If eprom1 = 255 Then gravar_clave
GoTo publicidad

solo fue quitarle los comentario de las 2 lineas que me dijiste y resuerto.

bye... :-/ :-/
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...