Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Protonda Bilardo Skorbordu

Başlatan Efecan, 27 Şubat 2014, 11:15:06

Efecan

merhabalar benım projem bilardo skorbordu proteusda tasarımı nı yaptım protonda yazılımı kaldı 2x16 lcd si kullanıyorum 1. satır A oyuncusu 2. satır B oyuncusu her iki oyuncunun 3 bölümü var bırıncısı aldıgı her sayı ıkıncısı son aldıgı sayıya yenı sayımı eklenımı ucuncusu ıstıka sayısı a oyucusunun bu uc bolumunu lcd nın 1. satırına protonda nasıl yazabılırım.

muhittin_kaplan


t2


Maxim

efecan, şimdi senin bilardo ekran kodunu bizmi yazalım istiyorsun? :)
burada işler öyle yürümüyor yanlız

senin yazman ve takıldığın yerleri sorman gerekiyor, yoksa çok beklersin.
yada hazır bir kod bulman lazım ki o da işini tam görmeyecektir zaten.

Efecan

sizden kod yazmanızı bekledıgım yok benım proton hakkında pek bılgım yok yardımcı olmanızı beklıyorum ben lcdnın 1. satırına 3 tane degıskenlı sayı yerlestırmem lazım 1. si tmm ama ıkıncısı ve ucuncusu nasıl olabılıyor onu soruyorum sana kalkta bana burda programı yaz demıyorum yazsan bıle benim o program işime yaramaz senın lcd ye bagladıgın pın kullandıgın buton onu bagladıgın pın benımkıyle bır mı cok deneme yanılma yontemını kullandım olmadı sıze soruyorum ıste

Efecan

hocam elımde sımdı 2x16 lcd sı var bunun 1. satırında a oyuncusunun 3 degıskenlı bırbırınde bagımsız sayıları olacak sadece 1 satırında bunu protonda nasıl kodlayabılırım onu soruyorum ben tere bestıgımda sadece 1 sayıyı tanımlayabılıyorum dıger ıkısı nasıl olacak nasıl bı kod kullanmam gerekıyor onu bılmıyorum

Maxim

ekrana yazı yazınca işin çözülecekse yazalım o zaman
gerçi hemen yukarda T2 bir örnek yazmış

3 tane değişkenmi var?

Dim A As Byte
Dim B As Byte
Dim C As Byte

'hepsini 1. satıramı koyalım? o zaman şöyle diyebiliriz
'yanlız birkaç karakter fazla gelecek 2x16 ekran için

Print At 1,1,"A:",Dec A,"  "," ","B:",Dec B,"  "," ","C:",Dec C,"  "


ferit06

"sizden kod yazmanızı bekledıgım yok benım proton hakkında pek bılgım yok yardımcı olmanızı bekliyorum" diyorsunuz. Eğer Protonu öğrenmek istiyorsanız;

Proton derleyiciyi açın, menü çubuğunda : Help/Documents/1- Proton Complier Manual  buradan yararlamaya çalışın istediğiniz herşeyi bulabileceksiniz.

İngilizce problem ise Tarzancadan biraz daha iyi Google Translate var.  Birşeyler yapın sonra yardım  da edilir.

Efecan

Device 16F877A
XTAL 4
TRISC=0
TRISD=0
TRISA=%00111111
PORTC=0
PORTD=0

Symbol YUKARI=PORTB.0
Symbol ASAGI=PORTB.1
Symbol ARTTIR=PORTB.3
Symbol EKSILT=PORTB.4
Symbol YUKLE=PORTB.5
Dim SAYI As Byte               'MAKSIMUM 255'E KADAR
Dim BIRLER As Byte             '1.DIJIT
Dim ONLAR As Byte              '2.DIJIT
Dim SAY As Byte
Dim BIR As Byte
Dim OL As Byte
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTD.4
Declare LCD_ENPIN PORTB.7
Declare LCD_RSPIN PORTB.6

SAYI=0
SAY=0
PORTB=0
DelayMS 200

BASLA:
 
If YUKARI=0 Then                            'YUKARI BUTONA BASILINCA 0 OLUR
SAYI=SAYI+1                                   'SAYI 1 ARTTIR VE SONUCU SAYA YAZ
DelayMS 150                                   '150ms bekle
If SAYI=100 Then SAYI=99             'sayı 99 kadar sayar çünkü 2 dijit var
EndIf                                              'ıf ısleminin sonu
If PORTB.2=0 Then
Cls
Print At 1,1,"Player A=", Dec SAYI

EndIf

If ASAGI=0 Then
SAYI=SAYI-1
DelayMS 150
If SAYI=255 Then SAYI=0
EndIf

BIRLER=SAYI Dig 0            'BIRLER HANESI SAYISININ 0.DIGITI
ONLAR=SAYI Dig 1             'ONLAR HANESI SAYISININ 1.DIGITI

PORTC=240 | BIRLER           'PORTB NİN UST 4 BITI DAIMA HIGH OLMALI ONIN IÇIN 240 KULLANIYOZ
Low PORTC.5                  'BIRLER HANESI 4511(LE)SINI LOW YAPTIK YENI SAYI ÇIKISTA DEMEKTIR
DelayMS 1
High PORTC.5
DelayMS 1

PORTC=240 | ONLAR
Low PORTC.4
DelayMS 1
High PORTC.4
DelayMS 2

GoTo BASLA

BASLAA:

If ARTTIR=0 Then                           
SAY=SAY+1                   
DelayMS 150                     
If SAY=100 Then SAY=99     
EndIf         
If PORTB.5=0 Then
Cls
Print At 2,1,"PLAYER B=", Dec SAY

EndIf

If EKSILT=0 Then
SAY=SAY-1
DelayMS 150
If SAY=255 Then SAY=0
EndIf

BIR=SAY Dig 0            'BIRLER HANESI SAYISININ 0.DIGITI
OL=SAY Dig 1             'ONLAR HANESI SAYISININ 1.DIGITI

PORTD=240 | BIR           'PORTD NİN UST 4 BITI DAIMA HIGH OLMALI ONIN IÇIN 240 KULLANIYOZ
Low PORTD.3                  'BIRLER HANESI 4511(LE)SINI LOW YAPTIK YENI SAYI ÇIKISTA DEMEKTIR
DelayMS 1
High PORTD.3
DelayMS 1

PORTD=240 | OL
Low PORTD.2
DelayMS 1
High PORTD.2
DelayMS 2


GoTo BASLAA
End




Efecan

hocam sımdı tasarım ve yazabıldıgım program bu portb.2 benım butonum sız u degısken tanıumlamıssınız benım bı tane butonumla bu us sayı bırbırınden bagımsız degısecek ama

Maxim

Alıntı yapılan: Efecan - 28 Şubat 2014, 11:23:08
hocam sımdı tasarım ve yazabıldıgım program bu portb.2 benım butonum sız u degısken tanıumlamıssınız benım bı tane butonumla bu us sayı bırbırınden bagımsız degısecek ama

birşey anlaşılmıyor yazılandan

Efecan

hocam demek ıstedıgım su sız programda u tane degısken tanımlamıssınız bunu ayrı ayrı lcd ye okutmussunuz bennım anladıgım bu yanlıs olabılır ben tasarımı yaptım resmı attım PORTB.2 pini ni takip edın 1. oyuncunun enter butonuna gıdıyor ben o tusa bastıgım zaman lcd nın 1. satırında örneğin PLAYER A:6  10   3    yazacak buradakı 6 oynadıgı oyundakı aldıgı sayı 10 oynadıgı oyundakı aldıgı sayıyı daha oncekı sayı ıle bırlesımı 3 ise ıstıka sayıyı yanı oynadıgı oyun sayısı ben bunu saddece PORTB.2 butonu ıle yapıcam bu sayılar bırbırınden bagımsız olarak bu buton ıle degısecek yani

yuppi

Print At 2,1,"PLYR B=", Dec1 SAY,"|"
print at 2,10,dec1 SAY1,"|"
PRINT AT 2,13,DEC1 SAYI2
YADA
PRINT AT 2,1,"PLYR B=",DEC1 SAY,"|",DEC1 SAY1,"|",DEC1 SAY2
gibi
ama lcd çıkış işini bi alt program gibi düşün lcd çıkış istediğin yerde gosubla git returnla dön.

Efecan

Hocam sizin kodu anladım ama yanlıs anlamadıysam sizde 3 degısken var say1 say2 say3 diye ben bi ğeişken kullandı sadece sayı dıye bunlara 1 2 3 yazmam degıskenı degıstırmıyor mu

Efecan

dediğiniz gibi yapıyorum hata veriyor hocam olmuyor