arkadaşlar 1-2 gündür vakit buldukça üzerine yoğunlaştığım sipir sayıcıyı sonuçlandırdım...çok güzel bir pcb tasarımı ve işlevsel bir mantıkla kod hazırladım...geliştirilebilmesi için açık kodlarını da veriyorum...ben motor olarak elimde olan çanak motorlarını kullandığım için motor çıkışını direkt hıgh yaparak motoru kontrol ediyorum...tabi bu motorlardan bulmak mesele olduğu için normal motor kullanacak arkadaşlar da devir ayarını yapabilmek için motoru süren transistörü cpp1'e bağladım...dişli motor kullanmayan arkadaşlar hpwm ile motorun devirini ayarlayacaklar gerçi pek bir verim elde edilemez...ben disli mekanizması olan bir motor tavsiye ederim....ozaman kodu hiç değiştirmeden kullanabilirsiniz...
ayrıca açık kodlardan başka uyuglamalarda da faydalanabilirsiniz yanlız çok karmasık...çözebilene ne mutlu...
açık kodlar:
Device=16F877
Config XT_OSC, WDT_OFF, PWRTE_OFF, BODEN_OFF, LVP_OFF, WRTE_OFF, DEBUG_OFF, CP_ALL
XTAL = 4
ADCON1=7
LCD_DTPIN = PORTA.0
LCD_RSPIN = PORTE.0
LCD_ENPIN = PORTE.2
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
ALL_DIGITAL=On
KEYPAD_PORT=PORTB
PORTB_PULLUPS On
Symbol REED PORTC.3
Symbol START_LED PORTD.7
Symbol STOP_LED PORTD.6
Symbol PIN1 PORTD.0
Symbol PIN2 PORTD.1
Symbol RELAY PORTE.1
Symbol LCD_LED PORTC.1
Symbol MOTOR PORTC.2
Dim DEG_1 As Word
Dim DEG_2 As Word
Dim DEG_3 As Word
Dim DEG_4 As Word
Dim BIRLER As Word
Dim ONLAR As Word
Dim YUZLER As Word
Dim BINLER As Word
Dim SIPIR_1 As Word
Dim SIPIR_2 As Word
Dim SIPIR_3 As Word
Dim SIPIR_4 As Word
Dim SAYI As Word
Dim SIPIR_TUR As Word
Dim DORTLU As Byte
Dim TUS As Byte
Dim TUS_B As Byte
Cls
TUS=0
TUS_B=0
DORTLU=0
DEG_1=0
DEG_2=0
DEG_3=0
DEG_4=0
BIRLER=0
ONLAR=0
YUZLER=0
BINLER=0
SIPIR_TUR=0
SIPIR_1=0
SIPIR_2=0
SIPIR_3=0
SIPIR_4=0
SAYI=0
ACILIS:
Cls
High LCD_LED
Call SOUND_1
Print At 1,3,"SiPiR SAYICI"
Print At 2,3,"MUSTAFA_CMBZ"
Call SOUND_1
DelayMS 3000
Cls
GoTo TUR_GIRIS
TUR_GIRIS:
Call TUS_AL
If DORTLU=4 Then Cls :Call SOUND_2 : GoTo ONAYLA_BEKLE
Print At 1,1,"SiPiR SAYISI GIR"
Print At 2,1,"TUR=",DEC1 DEG_1,DEC1 DEG_2,DEC1 DEG_3,DEC1 DEG_4
GoTo TUR_GIRIS
ONAYLA_BEKLE:
Print At 1,1,"S.S.S ONAYLA [#]"
Print At 2,1,"TUR=",DEC1 DEG_1,DEC1 DEG_2,DEC1 DEG_3,DEC1 DEG_4
Call MENU_KEY_AL
If TUS_B=35 Then Cls : TUS_B=0 : Call SOUND_2 : GoTo ONAY_ALINDI
If TUS_B=0 Then Cls : TUS_B=0 : Call SOUND_2 : GoTo TEMIZLE
GoTo ONAYLA_BEKLE
ONAY_ALINDI:
SIPIR_1 = DEG_1*1000
SIPIR_2 = DEG_2*100
SIPIR_3 = DEG_3*10
SIPIR_4 = DEG_4
SIPIR_TUR=SIPIR_1+SIPIR_2+SIPIR_3+SIPIR_4
Call SARIM_EKRAN_ATA
Call EKRAN_SAY : Low STOP_LED : High START_LED : High RELAY : High MOTOR
GoTo SARIM_BASLA
SARIM_BASLA:
If REED=0 Then SIPIR_TUR=SIPIR_TUR-1 : Call SARIM_EKRAN_ATA : Call EKRAN_SAY
If SIPIR_TUR=0 Then Call SOUND_2 : GoTo SARIM_SONLANDIR
DelayMS 150
GoTo SARIM_BASLA
SARIM_SONLANDIR:
Low RELAY
Low START_LED
High STOP_LED
Call MENU_KEY_AL
If TUS_B=35 Then Cls : TUS_B=0 : Call SOUND_2 : GoTo TEKRAR_ACILIS
Print At 1,1,"SARIM TAMAMLANDI"
Sound2 PIN1 , PIN2 , [3500 \ 300 \ 10 , 2500 \ 1000 \ 20 ]
Low STOP_LED
DelayMS 250
GoTo SARIM_SONLANDIR
TUS_AL:
DelayMS 200
TUS = InKey
TUS=LookUpL TUS,[1,4,7,"*",2,5,8,0,3,6,9,"#"]
If TUS<>16 Then Call HESAPLA : GoSub EL_CEK
Return
EL_CEK:
TUS = InKey
TUS=LookUpL TUS,[1,4,7,"*",2,5,8,0,3,6,9,"#"]
If TUS<>16 Then EL_CEK
Return
HESAPLA:
DelayMS 100
SAYI=SAYI*10+TUS
DEG_1=SAYI Dig 3
DEG_2=SAYI Dig 2
DEG_3=SAYI Dig 1
DEG_4=SAYI Dig 0
DelayMS 100
DORTLU=DORTLU+1
Return
EKRAN_SAY:
DelayMS 50
Print At 1,1,"SAYILIYOR..."
Print At 2,1,"TUR:",DEC1 BINLER,DEC1 YUZLER,DEC1 ONLAR,DEC1 BIRLER,
Print At 2,10,$03E
Return
SARIM_EKRAN_ATA:
DelayMS 10
BIRLER=SIPIR_TUR Dig 0
ONLAR =SIPIR_TUR Dig 1
YUZLER=SIPIR_TUR Dig 2
BINLER=SIPIR_TUR Dig 3
Return
MENU_KEY_AL:
TUS_B = InKey
TUS_B=LookUpL TUS_B,[1,4,7,"*",2,5,8,0,3,6,9,"#"]
Return
TEMIZLE:
Cls
Low MOTOR
Low RELAY
Print At 1,2," SARIM IPTAL"
Print At 2,2," EDILDI"
Call SOUND_1
DelayMS 200
Call SOUND_1
DelayMS 2000
TUS=0
TUS_B=0
DORTLU=0
DEG_1=0
DEG_2=0
DEG_3=0
DEG_4=0
BIRLER=0
ONLAR=0
YUZLER=0
BINLER=0
SIPIR_TUR=0
SIPIR_1=0
SIPIR_2=0
SIPIR_3=0
SIPIR_4=0
SAYI=0
Low PIN1
Low PIN2
GoTo ACILIS
TEKRAR_ACILIS:
Print At 1,2,"YENiDEN "
Print At 2,2,"BASLATILIYOR"
DelayMS 500
Print At 2,2,"BASLATILIYOR."
DelayMS 500
Print At 2,2,"BASLATILIYOR.."
DelayMS 500
Print At 2,2,"BASLATILIYOR..."
Low MOTOR
Low RELAY
Call SOUND_1
DelayMS 200
Call SOUND_1
TUS=0
TUS_B=0
DORTLU=0
DEG_1=0
DEG_2=0
DEG_3=0
DEG_4=0
BIRLER=0
ONLAR=0
YUZLER=0
BINLER=0
SIPIR_TUR=0
SIPIR_1=0
SIPIR_2=0
SIPIR_3=0
SIPIR_4=0
SAYI=0
Low PIN1
Low PIN2 :DelayMS 200
Cls
GoTo ACILIS
SOUND_2:
Sound2 PIN1 , PIN2 , [4000 \ 1000 \ 10 , 2000 \ 1000 \ 20 ]
Low PIN1: Low PIN2
Return
SOUND_1:
Sound2 PIN1 , PIN2 , [3500 \ 300 \ 10 , 2500 \ 1000 \ 20 ]
Low PIN1: Low PIN2
Return
End
görünüş:
şema:
devrenin çalışır videosu :
http://www.facebook.com/home.php#/video/video.php?v=99738583663&ref=mfedit: video'yu youtube yükleyemedim bende face'e attım....
bütün dosyalar....
http://www.savefile.com/files/2147301