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
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