Hola a todos, estamos por hacer un juego de paintball y queremos simular una de las misiones del counter strike que es desactivar la bomba, yo me estoy encargando de "armar la bomba", y no parecia complicado, de hecho, hice el programa y lo simule en proteus sin ningun problema, hasta que lo lleve a la practica y me paso esto:
1 - El display visualiza cuando quiere, por ahi lo enciendo al circuito y me muetsra la linea de arriba con puros cuadros todos en blanco, y a veces me muestra el texto correcto, probe con otro display nuevo y pasa exactamente lo mismo, el display es un Casil CCM-1620CSL-V2, tienen idea de que puede ser?
2 - Cuando logro que se vea el texto en el display, no me toma ninguna de las dos entradas, utilice pulsadores normal abierto y no hay caso con que me muestre la secuencia o mensaje de desactivado.
Asi esta en el protoboard:
Este es el codigo en Pic Simulator IDE (PSI)
Define CONF_WORD = 0x3f72
Define CLOCK_FREQUENCY = 4
TRISA = %00000010 'todos los pines como salidas
TRISB = %00000000 'todos los pines como salidas
TRISC = %00100000 'todos los pines como salidas
ADCON1 = 0x0e
Define LCD_BITS = 8
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTC
Define LCD_RSBIT = 0
Define LCD_RWREG = PORTC
Define LCD_RWBIT = 1
Define LCD_EREG = PORTC
Define LCD_EBIT = 2
Define LCD_READ_BUSY_FLAG = 1
Lcdinit
Dim an0 As Word
Dim an1 As Word
Dim m As Word
Dim seg As Word
Dim cen As Word
Dim alarma As Word
m = 1
seg = 59
cen = 100
alarma = 0
WaitMs 50
arranque:
Lcdout "* * C.O.A.T. * *"
Lcdcmdout LcdLine2Home
WaitMs 200
Lcdout "Inicializando..."
WaitMs 500
Lcdcmdout LcdLine1Clear
Lcdcmdout LcdLine2Clear
Lcdcmdout LcdLine1Home
Lcdout "Comience"
Lcdcmdout LcdLine2Home
Lcdout "secuencia"
secuencia:
If PORTC.5 = 1 Then alarma = 1
If alarma = 1 Then PORTA.0 = 1
WaitMs 2000
PORTA.0 = 0
If alarma = 1 Then Goto casihora
Goto secuencia
casihora:
Lcdcmdout LcdLine1Clear
Lcdcmdout LcdLine1Home
Lcdout "Detonacion en"
hora:
WaitMs 2
If m = 0 Then Goto final1
Goto time
final1:
If seg = m Then Goto final2
Goto time
final2:
If cen = 1 Then PORTA.0 = 1
If cen = 1 Then Goto termina
time:
Lcdcmdout LcdLine2Clear
Lcdcmdout LcdLine2Home
Lcdout "T - " #m
Lcdout ":", #seg
Lcdout ".", #cen
cen = cen - 1
If cen = 0 Then seg = seg - 1
If cen = 0 Then cen = 100
If seg = 60 Then m = m - 1
If seg = 60 Then seg = 59
If seg = 65535 Then seg = 60
If m = 65535 Then m = 0
If PORTA.1 = 1 Then Goto defuse
Goto hora
defuse:
Lcdcmdout LcdLine1Clear
Lcdcmdout LcdLine2Clear
Lcdcmdout LcdLine1Home
Lcdout "Bomba"
Lcdcmdout LcdLine2Home
Lcdout "Desactivada"
WaitMs 2000
Lcdcmdout LcdLine1Clear
Lcdcmdout LcdLine2Clear
Lcdcmdout LcdLine1Home
Lcdout "Puntaje final:"
Lcdcmdout LcdLine2Home
Lcdout #m
Lcdout "00"
WaitMs 2000
Goto defuse
termina:
Lcdcmdout LcdLine1Clear
Lcdcmdout LcdLine2Clear
Lcdcmdout LcdLine1Home
Lcdout "**[[ BOOOM ]]**"
Lcdcmdout LcdLine2Home
Lcdout " Game Over "
fin:
End
Si alguien lo quiere ensamblar en el protoboard dejo aca el codigo y el archivo para proteus (ignoren la parte del 4017 que es parte del kit de desactivacion jejeje)
Y si me pueden dar una mano con las fallas de 10
Muchas gracias a todos!
Saludos