Çalışmaz. Çünkü senin devrendeki tuş takımı BCD encoder olarak çalışıyor. Yani bastığın tuşun binary değerini porta aktarıyor. Kodlarda değişiklik yapman gerek.
itled hex
Untitled.bas
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 13.03.2006 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
CMCON=7
TRISA=$1F
TRISB=$00
PORTA=00
PORTB=00
ALARM VAR PORTB.0
KAPI VAR PORTB.1
SIFRE VAR WORD
SIFRE1 VAR WORD
SIFRE2 VAR WORD
SIFRE3 VAR WORD
SURE VAR WORD
KUL VAR BYTE
ADR VAR BYTE
FLAGS=0
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_LINES 2
DEFINE LCD_COMMANBUS 2000
DEFINE LCD_DATAUS 50
PAUSE 100
ENBAS:
READ 02,SIFRE.BYTE0
READ 03,SIFRE.BYTE1
IF SIFRE=>65000 THEN
SIFRE=11111
ADR=02
DEG:
WRITE ADR,SIFRE.BYTE0
ADR=ADR+1
WRITE ADR,SIFRE.BYTE1
ADR=ADR+1
IF ADR=>20 THEN ENBAS1
GOTO DEG
ENDIF
ENBAS1:
SIFRE=00
LCDOUT $FE,1,"SIFRE GIRINIZ"
ENBAS2:
LCDOUT $FE,$C0,"SIFRE=",#SIFRE," ONAY"
ENBAS3:
IF PORTA>00 THEN ENBAS3
ENBAS4:
IF PORTA=00 THEN ENBAS4
IF PORTA=11 THEN BASLA
IF PORTA=12 THEN SIFRE=00 : GOTO ENBAS2
IF SIFRE=>6500 THEN SIFRE=00 : GOTO ENBAS2
SIFRE=SIFRE*10
IF PORTA=10 THEN ENBAS2
SIFRE=SIFRE+PORTA
GOTO ENBAS2
BASLA:
LCDOUT $FE,1,"KULLANICI NO:"
LCDOUT $FE,$C0,"YAZIMIZ"
BASLA1:
IF PORTA>00 THEN BASLA1
BASLA2:
IF PORTA=00 THEN BASLA2
KUL=PORTA
ADR=PORTA*2
READ ADR,SIFRE1.BYTE0
ADR=ADR+1
READ ADR,SIFRE1.BYTE1
IF SIFRE=SIFRE1 THEN
LCDOUT $FE,1,"KAPI AC-KAPA=> 1"
LCDOUT $FE,$C0,"SIFRE DEGIS => 2"
GOTO KOMUT
ENDIF
ALARM=1
GOTO ENBAS
KOMUT:
IF PORTA>00 THEN KOMUT
KOMUT1:
IF PORTA=00 THEN KOMUT1
IF PORTA=01 THEN
ALARM=0
TOGGLE KAPI
GOTO ENBAS
ENDIF
IF PORTA=02 THEN SIFRED
GOTO KOMUT
SIFRED:
ALARM=0
SIFRE=00
SIFRED1:
LCDOUT $FE,1,"YENI SIFRE GIR"
SIFRED2:
LCDOUT $FE,$C0,"SIFRE=",#SIFRE," ONAY"
SIFRED3:
IF PORTA>00 THEN SIFRED3
SIFRED4:
IF PORTA=00 THEN SIFRED4
IF PORTA=11 THEN SIFK
IF PORTA=12 THEN SIFRE3=00 : GOTO SIFRED2
IF PORTA=>11 THEN SIFRED3
IF SIFRE=>6500 THEN SIFRE=00 : GOTO SIFRED2
SIFRE=SIFRE*10
IF PORTA=10 THEN SIFRED2
SIFRE=SIFRE+PORTA
GOTO SIFRED2
SIFK:
ADR=KUL*2
WRITE ADR,SIFRE.BYTE0
ADR=ADR+1
WRITE ADR,SIFRE.BYTE1
GOTO ENBAS
Kod bu şekilde kod konusunda yardımcı olacak veya hazır keypad bağlanabilen kodu bulunan var mı pic e göre