Keypad Sorunu

karaca20

Üye
Katılım
8 May 2009
Mesajlar
14
Puanları
1
hocam keypad de girilen sayı yı ilgili döngüye gönderip lcd de yazdırmaya çalışıyorum yardımcı olabilirmisiniz programda bu:


Device=16F876A
@ CONFIG_REQ
@ __config CP_ALL & CPD_ON & WDT_OFF & XT_OSC & PWRTE_OFF & BODEN_OFF & LVP_OFF & DEBUG_OFF
XTAL=4
all_digital = true

''''''''''''''''''''''''''''''''''''keyped tanımlamalar
Dim KOD As Byte
Dim VAR1 As Byte
dim SAY1 as byte
dim SAY2 as byte
dim TOPlam as byte
Dim DUR As 200
Declare LCD_DTPIN PORTC.4 'DATA girişi PORTC'nin 4. ucundan başlayacak
Declare LCD_ENPIN PORTC.3
Declare LCD_RSPIN PORTC.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 4 'LCD 4 satırdan oluşuyor
Declare KEYPAD_PORT PORTB 'KEYPAD'in bağlandığı port
PORTB_PULLUPS = 1 'PORTB'nin pull-upları aktif
REMINDERS = OFF
ALL_DIGITAL = True 'bütün çıkışlar dijital

SIFIRLA:
PORTA=0
PORTB=0
PORTC=0
SAY1=0
SAY2=0
TOPlam=0
PORTC=0
cls

BASLA:
Print At 1,1, " KOD GIRINIZ: "
DelayMS 100

KODGIR:
PORTB=0
PORTC=0
KOD=0 'kod'u sıfırla
VAR1 = InKey 'VAR1 değişkenini Inkey'e at
If VAR1=16 Then GoTo KODGIR 'Keypad'de herhangi bir tuşa basılmadığı zaman 0'a basılmış gibi algılıyor ve bu VAR1'de 16'ya karşılık geliyor.VAR1=16 olursa işlem yapmadan KODGIR'e gönderilir.

KOD = LookUp VAR1,[1,2,3,255,4,5,6,255,7,8,9,255,10,0,11] 'keypad'de basılan numarayı kod değişkenine at

if KOD=11 then SIFIRLA

Print At 2,1,dec2 KOD 'KOD'u decimal olarak ekranda göster
delayms 300
SAY1=KOD


TEKRAR:
PORTB=0 'portd'yi sıfırla
PORTC=0 'porte'yi sıfırla
KOD=0 'kod'u sıfırla
VAR1 = InKey 'VAR1 değişkenini Inkey'e at
If VAR1=16 Then GoTo TEKRAR 'Keypad'de herhangi bir tuşa basılmadığı zaman 0'a basılmış gibi algılıyor ve bu VAR1'de 16'ya karşılık geliyor.VAR1=16 olursa işlem yapmadan KODGIR'e gönderilir.

KOD = LookUp VAR1,[1,2,3,255,4,5,6,255,7,8,9,255,10,0,11] 'keypad'de basılan numarayı kod değişkenine at

if KOD=11 then SIFIRLA

SAY2=KOD

if KOD=10 then ''onay verildimi (*) basıldımı
goto devam
else
TOPlam=say1*10
TOPlam=toplam+say2
Print At 2,1,dec2 TOPlam 'KOD'u decimal olarak ekranda göster
endif


goto TEKRAR



devam:

Print At 2,17, "program basla: "
DelayMS 100


if TOPlam=01 then
goto pro11
else
goto TEKRAR
endif

if TOPlam=11 then
goto pro11
else
goto TEKRAR
endif

pro11:
repeat
high B
VAR1 = InKey
KOD = LookUp VAR1,[1,2,3,255,4,5,6,255,7,8,9,255,10,0,11]
until KOD=11
goto TEKRAR


pro1:
repeat
high C
VAR1 = InKey
KOD = LookUp VAR1,[1,2,3,255,4,5,6,255,7,8,9,255,10,0,11]
until KOD=11
goto TEKRAR




end
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''rgb program bölümü


şimdiden teşekkürler
 

Forum istatistikleri

Konular
128,781
Mesajlar
920,444
Kullanıcılar
450,871
Son üye
goggles57

Yeni konular

Çevrimiçi üyeler

Geri
Üst