duda con teclado 4x4

#1
Hola
Estoy haciendo practicas con un teclado para capturar una cifra y grabarla en la eeprom, para eso cuento con un comando usado en proton que es el inkey, pero a la hora de llevarlo a la practica tengo una duda, en el programa de teoria uso un solo puerto b , pero en la practica por diseño de uso de otros puertos, utilizo tanto el puerto los puertos b y c, al hacer las declaraciones no se como decir que utilizo esos dos puertos, ya que tendria que poner keypad_port portb ademas de keypad_port portc y duplicarlas no seria correcto.
alguna solucion?.
aqui os dejo el programa utilizado.

Código:
[LEFT]Device = 18F452[/LEFT]
 
XTAL 
[LEFT]= 20[/LEFT]
 
[LEFT]ALL_DIGITAL[/LEFT]
 
 
[LEFT]=true[/LEFT]
 
[LEFT]KEYPAD_PORT [/LEFT]
 
 
[LEFT]PORTB[/LEFT]
 
[LEFT]PORTB_PULLUPS [/LEFT]
 
 
[LEFT]true[/LEFT]
 
[LEFT]LCD_DTPIN [/LEFT]
 
 
[LEFT]PORTD.4[/LEFT]
 
[LEFT]LCD_RSPIN [/LEFT]
 
 
[LEFT]PORTD.3[/LEFT]
 
[LEFT]LCD_ENPIN [/LEFT]
 
 
[LEFT]PORTD.2[/LEFT]
 
[LEFT]Print Cls [/LEFT]
 
[LEFT]Dim x As Byte[/LEFT]
 
[LEFT]Dim mynumber As Word[/LEFT]
 
[LEFT]start:[/LEFT]
 
[LEFT]Print Cls

mynumber=0
[LEFT]loop:
x=InKey
x= [/LEFT]
[/LEFT]

 
 
 
 
 
 
 
 
 
 
 
[LEFT]LookUp x, [1,2,3,255,4,5,6,255,7,8,9,255,"*",0,"#",255,255][/LEFT]
 
[LEFT]If [/LEFT]
 
 
[LEFT]x="*" Then GoTo Exit_loop[/LEFT]
 
[LEFT]If [/LEFT]
 
 
[LEFT]x <> 255 Then[/LEFT]
 
[LEFT]DelayMS 500 [/LEFT]
 
[LEFT]mynumber=mynumber *10 + x[/LEFT]
 
[LEFT]Print Cls[/LEFT]
 
 
 
 
 
 
[LEFT], At 1,1, Dec mynumber[/LEFT]
 
[LEFT]EndIf [/LEFT]
 
[LEFT]GoTo loop[/LEFT]
 
[LEFT]Exit_loop:[/LEFT]
 
[LEFT]Print Cls[/LEFT]
 
[LEFT]Print At 1,1,"Has pulsado:"

Print At [/LEFT]

 
 
 
 
 
 
 
 
 
 
 
[LEFT]2,1,Dec mynumber[/LEFT]
 
[LEFT]DelayMS [/LEFT]
 
 
[LEFT]5000
GoTo start[/LEFT]
perdonad pero al enviar el mensaje ha "trozeado" el programa​

Código:
[LEFT]Device = 18F452
XTAL = 20
ALL_DIGITAL=true
KEYPAD_PORT PORTB
PORTB_PULLUPS true
LCD_DTPIN PORTD.4
LCD_RSPIN PORTD.3
LCD_ENPIN PORTD.2
Print Cls
Dim x As Byte
Dim mynumber As Word
start:
Print Cls
mynumber=0
loop:
x=InKey
x= LookUp x, [1,2,3,255,4,5,6,255,7,8,9,255,"*",0,"#",255,255]
If x="*" Then GoTo Exit_loop
If x <> 255 Then
DelayMS 500
mynumber=mynumber *10 + x
Print Cls, At 1,1, Dec mynumber
EndIf
GoTo loop
Exit_loop:
Print Cls
Print At 1,1,"You Entered:"
Print At 2,1,Dec mynumber
DelayMS 5000
GoTo start[/LEFT]
 
Última edición por un moderador:
Arriba