Protonda Bilardo Skorbordu

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

Efecan

hobi devreleri ile uğrasanlar olursa proton dılınde yazılmıs ısısde cızılmıs bilarda skorbord devresini gönderebilirim gayet guzel ve basarılı calısma oldu..

Efecan

#31
Device 16F877A
XTAL 4
TRISC=0
TRISD=0
TRISB=%00111111
PORTC=0
PORTD=0
PORTA=0
TRISA=0
ADCON1=7
Symbol YUKARI=PORTB.0
Symbol ASAGI=PORTB.1
Symbol ARTTIR=PORTB.3
Symbol EKSILT=PORTB.4

Dim SAYI As Byte               'MAKSIMUM 255'E KADAR
Dim BIRLER As Byte             '1.DIJIT
Dim ONLAR As Byte              '2.DIJIT
Dim SAYA As Byte
Dim BIR As Byte
Dim OL As Byte
Dim SAYI2 As Byte
Dim SAYI3 As Float
Dim SAYB As Byte
Dim SAYC As Float

Declare LCD_LINES 4
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTD.4
Declare LCD_ENPIN PORTB.7
Declare LCD_RSPIN PORTB.6

SAYI=0
SAYI2=0
SAYI3=0
SAYA=0
SAYB=0
SAYC=0
PORTB=0
DelayMS 200

BASLA:
Print At 1,11, "|"
Print At 2,11, "|"
Print At 3,11, "|"
Print At 4,11, "|"
Print At 1,1,"PLAYER A"
Print At 1,12,"PLAYER B"
Print At 2,1, "Say="
Print At 3,1, "Ist="
Print At 4,1, "Ort="
Print At 2,12, "Say="
Print At 3,12, "Ist="
Print At 4,12, "Ort="



If YUKARI=0 Then              'YUKARI BUTONA BASILINCA 0 OLUR 
SAYI=SAYI+1                   'SAYI 1 ARTTIR VE SONUCU SAYA YAZ
DelayMS 200                     '200ms bekle
If SAYI=100 Then SAYI=99      'sayı 99 kadar sayar çünkü 2 dijit var
EndIf                         'ıf ısleminin sonu


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

If PORTB.2=0 Then
SAYI2=SAYI2+1
DelayMS 200
SAYI3=SAYI/SAYI2
DelayMS 200
Print At 1,1,"PLAYER A" 
Print At 2,6, Dec SAYI
Print At 3,6, Dec SAYI2 
Print At 4,5, Dec SAYI3
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


If ARTTIR=0 Then                           
SAYA=SAYA+1                   
DelayMS 200                     
If SAYA=100 Then SAYA=99      
EndIf         

If PORTB.5=0 Then
SAYB=SAYB+1
DelayMS 200
SAYC=SAYA/SAYB
DelayMS 200
Print At 1,12,"PLAYER B"
Print At 2,17, Dec SAYA
Print At 3,17, Dec SAYB
Print At 4,16, Dec SAYC 
EndIf

If EKSILT=0 Then
SAYA=SAYA-1
DelayMS 200
If SAYA=255 Then SAYA=0
EndIf

BIR=SAYA Dig 0            'BIRLER HANESI SAYISININ 0.DIGITI
OL=SAYA 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 PORTC.7                  'BIRLER HANESI 4511(LE)SINI LOW YAPTIK YENI SAYI ÇIKISTA DEMEKTIR
DelayMS 1
High PORTC.7
DelayMS 1

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

If PORTE.0=0 Then
Cls
SAYI=SAYI*0
SAYI2=SAYI2*0
SAYI3=SAYI3*0
Print At 1,1,"PLAYER A" 
Print At 2,6, Dec SAYI
Print At 3,6, Dec SAYI2 
Print At 4,5, Dec SAYI3
SAYA=SAYA*0
SAYB=SAYB*0
SAYC=SAYC*0
Print At 1,12,"PLAYER B"
Print At 2,17, Dec SAYA
Print At 3,17, Dec SAYB
Print At 4,16, Dec SAYC
DelayMS 100
EndIf


GoTo BASLA
End


mesaj birleştirme:: 17 Mart 2014, 18:14:57