PDA

View Full Version : 18F2520 - keypad



mpardinho
- 27th June 2008, 16:03
PORTC instable

Can i help me?

if i write ..
KeyUp:
PORTA = 0
TRISA = %00000000 ^ %00011111

PORTC = 0
TRISC = %10001111

HSEROUT[HEX PORTA, "-", HEX PORTC, 13]


porta = 0
portc instable

i use cap 0,1 vss/vd






Include "modedefs.bas"

asm
;__CONFIG _CONFIG1H, _OSC_HSPLL_1H
__CONFIG _CONFIG1H, _OSC_INTIO7_1H & _IESO_OFF_1H
__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H
;__CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
__CONFIG _CONFIG3H, _PBADEN_OFF_3H
__CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
__CONFIG _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
__CONFIG _CONFIG5H, _CPB_ON_5H
endasm

@ errorlevel -202

'-------------------------------------------------------------------------------
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 9600
DEFINE HSER_CLROERR 1

'-------------------------------------------------------------------------------
I Var WORD
J Var BYTE
K Var BYTE

Lin var byte
Col var byte


'-------------------------------------------------------------------------------
Boot:

DEFINE OSC 32

OSCCON = %11110000 ' 8 Mhz, internal osc
OSCTUNE = %11000000 ' 4x PLL enabled

ADCON0 = 0
ADCON1 = 15
CMCON = 7
INTCON2.7 = 0

LATA = 0
LATB = 0
LATC = 0

PORTA = 0
TRISA = %00000000

PORTB = 0
TRISB = %11111111

PORTC = 0
TRISC = %10001111

Led = 1
pause 2000

hSEROUT ["-"]
PAUSE 1
hSEROUT ["Start", 13, 10]
pause 1

Led = 0
'-------------------------------------------------------------------------------
Main
Gosub KeyUp
Goto Main

KeyUp:
PORTA = 0
TRISA = %00000000 ^ %00011111

PORTC = 0
TRISC = %10001111

'HSEROUT[HEX PORTA, "-", HEX PORTC, 13]

pause 1
IF (PORTC & %00001111) != 15 THEN KeyUp

PAUSE 50

Letra_Down:
FOR Lin = 0 TO 4
PORTA = 0
TRISA = (DCD Lin) ^ %11111111

col = PORTC & %00001111
IF (col != 15) THEN Key
NEXT lin
GOTO Letra_Down

Key:
Col = (NCD (col ^ %00001111))

while (PORTC & %00001111) != 15
wend

hserout[dec lin, "-", dec Col, 13]
RETURN

'-------------------------------------------------------------------------------
End