Giriş Home Yukarı Up

Cayk
 

Giriş Home
Yukarı Up

Cayk (Köpek Bulucu)

Cayk Devresi

Av köpekleri için tasarlanmış bu devre küçük bir kutuya konarak, köpeğin tasmasına bağlanır. Köpek hareket halinde iken 10 saniyede bir, durduğu zaman ise sürekli ses çıkartarak köpeğin yerinin bulunmasını sağlar. Melodisi ve meledinin kaç kere tekrarlanacağı belirleyen iki adet ayar butonu ve bir adet açma kapama butonu ile kumanda edilir. İsteğe bağlı olarak manyetik olarak kutunun dışından açma kapama özelliği devreye alınabilir.

Hex Dosyası,    Isis Devre Şeması Dosyası,  Kaynak Dosyalar Hepsi.zip

;16 kasim 2005 tarihinde serdar atakan abiye yaptigim kopek 
; bulucunun programidir
;16f628a
;RA0 ses çıkışında buzzer var 
;RA1 melodi butonu
;RA2 TEKRAR BUTONU
;RB0 TILT INTE INTERRUPTU

define	NO_CLRWDT

@	__config _CP_ON  & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _BOREN_OFF & _INTOSC_OSC_NOCLKOUT
@ messg "Config word yazıldı"

ses     var     PORTA.0
tekrarb  var     PORTA.1
melodib  var     PORTA.2

melodi  var byte
tekrar  var     byte
RBIE    var     INTCON.3
RBIF    var     INTCON.0
T0IF    var     INTCON.2
INTF    var     INTCON.1
T0IE    var     INTCON.5
INTE    VAR     INTCON.4
GIE     VAR     INTCON.7

tick    var     byte
sn10    var     byte
flag    var     byte 
patana	var	byte
patanb	var 	byte
saniyedebir     var     flag.0
hareket         var     flag.1

i var   byte

	INTCON=0
	CMCON=7
	VRCON=$80
	PCON.3=1  ;1=4mhz internal osc select
			  ;0=32khz internal osc select

        On Interrupt Goto myint ' Define interrupt handler
        OPTION_REG = %11000111        ' Enable PORTB pullups
        INTCON = %10110000      ' Enable INTE interrupt
                                ' Enable T0IE interrupt

        TRISB=%00001101
        TRISA=%00000110
	
init:
	disable interrupt
        sn10=0
        tick=0
        flag=0
	melodi=5
	gosub muzik
	gosub muzik
        
	DATA 0,0,0
	data @5,1
	data @6,1
	data @7,0
	data @8,0



	read 7,patana
	read 8,patanb
	
	pause 1000
	read 5,melodi
	read 6,tekrar
	enable interrupt

loop:
    if tekrarb == 0 then goto tekrarl
loop1:
    if melodib==0 then goto melodil
loop2:
    disable interrupt
    while saniyedebir==1
        saniyedebir=0
        if hareket==1 then
            ses=0
            hareket=0
            sn10=sn10+1
            if sn10 >= 5 then
                sn10=0
                gosub muzik
            endif
        else
            for i=1 to tekrar
                gosub muzik
                pause   50
            next i
        endif
    wend
    enable interrupt
    Goto loop               ' Do it forever


muzik:
                select case melodi
                case 1
                		sound	ses,[124,20]
                case 2
                		sound	ses,[125,20]
                case 3
                		sound	ses,[126,20]
                case 4
                		sound	ses,[124,20,125,20,126,20] 
                case 5                      
                		sound	ses,[123,20]
                end select
	      ses=0

    return
tekrarl:
    pause   300
    IF tekrarb==0 then goto tekrarl
    tekrar=tekrar+1
    if tekrar=4 then
         tekrar=1
    endif
    write 6,tekrar
    goto    loop1
melodil:
    pause   300
    IF melodib==0 then goto melodil
    melodi=melodi+1
    if melodi=6 then
         melodi=1
    endif
    write 5,melodi
    goto    loop2
' Interrupt handler
        Disable interrupt                 ' No interrupts past this point
myint:  
        if T0IF==1 then
                T0IF=0
                tick=tick+1
                if tick >= 30 then
                        tick=0
                        saniyedebir=1
                endif
        endif
        if INTF==1 then
                INTF=0
                hareket=1
        endif
        Resume                  ' Return to main program
        Enable interrupt

	asm
	org 0x2110
	de "Mustafa PATAN 05054075509 IZMIT KASIM 2005"
	de "Serdar ATAKAN'a yaptigim KOPEK BULUCU devresi"
	de "V2.000"


	endasm

Giriş Home ] Yukarı Up ]

Bu web sitesi ile ilgili soru veya görüşlerinizi mustafapatan@gmail.comadresine gönderin.
Telif Hakkı © 2006 MUSTAFA PATAN Cep:05054075509 IZMIT
Son değiştirilme tarihi: 28/08/06