avatar_sonmoikan

5X7 Dotmatrix Saat Projesi

Başlatan sonmoikan, 10 Kasım 2015, 11:23:04

rhoca68

sonmoikan hocam bu verdiğin devreyi yaptım. yalınız bu devrede tüm rakam haneleri dolu hiçbir rakam simulasyondaki gibi gözükmüyor. bütün kareler dolu  876 nın 25 nolu pininden 595 in 14 nolu pinine bağlı data ucu diğer devrede 876 nın 28 nolu pininde bağlı. diğer hexi atıp data ucunu değiştirip aynı devrede çalıştırınca gayet güzel çalışıyor.hocam devre aynı hex değiştirip data ucunu değiştirince normal. 3 defa denedim sonuç aynı. bana aşağıdaki sizin devrenin sadece saat ve derece olacak şekilde hexini düzenleyipvermenizi istirham ediyorum. teşekkür ederim

rhoca68

#61
Hocalarım bu saatin sadece saat ve derece olacak şekilde hexini düzenlemek için diğer tarih ay gün yıl verilerini sildim.yalnız sadece saat çalışıyor başlangıçta derece gösteriyor diğer anımasyonlara geçince derece göstermiyor. nasıl bir yol izlemeliyim. hex ten anlamıyorum.bana yardımcı olcak kardeşlerimden ricam sadece saat ve derece olacak şekilde bir hex düzenlemeniz.yardımcı olacak hocalarıma şimdiden teşekkür ederim.

rhoca68

#62
hocam bu saat devresini sadece saat ve derce gösterebilmem için aşagıdaki kodları  inceleyip bana bir yol gösterirseniz memnun olurum.

@ DEVICE PIC16F876A                   ;işlemci PIC16F876A
@ DEVICE PIC16F876A, WDT_OFF          ;Watch Dog Timer Kapalı
@ DEVICE PIC16F876A, PWRT_ON          ;Power on timer açık
@ DEVICE PIC16F876A, PROTECT_OFF      ;Kod Protek kapalı
@ DEVICE pic16F876A, XT_OSC
define OSC 4
ADCON1 = 7
TRISA=$07 : TRISB=$00 : TRISC=$00
PORTA=$00 : PORTB=$00 : PORTC=$00   
    DTA var PORTB.7  ;74HC595 DATA
    VER var PORTB.5  ;74HC595 CLOCK
    CLK var PORTB.6  ;74HC595 RESET
   
    'Tarih için
    AY      var     byte
    YIL     var     byte
    SN      VAR     BYTE
    DAK     VAR     BYTE
    SAAT    VAR     BYTE
    GUN     VAR     BYTE
    SAYID   VAR     BYTE
    HAFTA   VAR     BYTE
    GUNSAY  var     byte
   
    'DS1302 pinleri için
    RTC_RST  var     PORTB.0
    RTC_CLK  var     PORTB.1
    RTC_DTA  var     PORTB.2
   
    'DS18B20 ISI için
    SYMBOL      ISIPIN=PORTB.3 'One-wire Data-Pin "DQ" PortB.5 da 
    ;MESGUL      VAR BIT       'DS18B20 Meşgul durumu için -Bit
    HAM         VAR WORD       'Sensör HAM okuma değeri
    ISARET      VAR BYTE       'ISI değeri için  +/-
    ;ISARET_BITI VAR HAM.Bit11  '+/- sıcaklık İşaret biti, 1=olursa eksi sıcaklık
    ;EKSI_ISI    CON 1          'Sıfır altında isaret biti=1  oluyor kontrol için
    FLOAT       VAR WORD       'Ara Isi Degeri
    ISI         VAR WORD       'Hesaplanmış ISI değeri
    ;    ISI2        VAR WORD       'Hesaplanmış Onda ISI değeri
   
    MEMSA    VAR   BYTE
    ONLAR    VAR   BYTE
    BIRLER   VAR   BYTE
   
    ;Butonlar
    SYMBOL SET=PORTA.0
    SYMBOL ART=PORTA.1
    SYMBOL AZL=PORTA.2
    SYMBOL LED=PORTA.3
   
    KARAKTER var byte  ;KEREKTERLERIN BELIRLENMESI ICIN
    INDEX    var byte  ;KEREKTER INDEXLEMESI ICIN
    INDEX2   var BYTE  ;KAREKTERLERİN ATAMASI ICIN
    YAZI     VAR BYTE  ;KELİMELER ICIN
   
    MEM   var byte[48] ;GECICI DIZI
    DIZI  var byte[24] ;GOSTERILECEK DIZI
    SATIR var byte     ;SATIR BİLGİSİ İÇİN
    YERI  VAR BYTE     ;TABLO İNDEXİ İÇİN
    VERI  var byte     ;TABLO VERİSİ İÇİN
    TEMP  var byte     ;KAREKTER BAŞLANGIÇ ADRES BİLGİSİ
   
    HIZ VAR BYTE       ;TARAMA HIZI İÇİN
    HIZ = 10           ;Gerçek devrede titreme olur ise değeri değiştirin

    ANIME VAR BYTE     ;ANİMASYON SAYACI İÇİN
    SINYAL VAR BYTE    ;FLASH GÖSTERİMLER İÇİN
   
    ;GENEL DEĞİŞKENLER
    SAY1 var byte
    SAY2 var byte
   
    A VAR BYTE
    B VAR BYTE
    C var byte
    D VAR BYTE
    E VAr byte
    F VAR BYTE
    G var byte
    H VAR BYTE
    I var BYTE
    J VAR BYTE
    K var byte
    L var byte
    M var byte
    N VAR byte
    P var byte
   
    LED=1
    GOSUB SENSOR_OKU   ;SENSORU OKU
    GOSUB ZAMAN_OKU    ;RTC YI OKU
    LED=0
   
    gosub TEMIZLE
    GOSUB HAFIZA_SIL
    INDEX2=0
;*******************************GIRIS EKRANI************************************ 
    karakter="S"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    karakter="T"
    GOSUB EKRAN_BELIRLE
    karakter=" "
    GOSUB EKRAN_BELIRLE
           
    GOSUB SOLDAN_GEL
   
    FOR P=0 TO 15     ;EKRANDA BELLİ BIR SURE GOSTER
        GOSUB EKRAN     
    NEXT P
   
    GOSUB TEMIZLE
    FOR C=0 to 50               
       gosub Tara
    next C
   
'*******************************************************************************
;                              ANA DONGU
'*******************************************************************************
BASLA:

    gosub TEMIZLE
    GOSUB HAFIZA_SIL
   
    LED=1
    GOSUB SENSOR_OKU      ;SENSORU OKU
    GOSUB ZAMAN_OKU       ;RTC YI OKU
    LED=0
   
    GOSUB SAAT_AL_G       ;SAATİ GÖSTER
    GOSUB ISI_AL_G        ;SICAKLIĞI GÖSTER
    GOSUB HAFTA_GUN_AL_G  ;HAFTANIN GÜNÜNÜ GÖSTER
    GOSUB TARIH_AL_G      ;GÜN VE AYI GÖSTER
    ;GOSUB YIL_AL_G       ;YILI GÖSTER
   
    ANIME=ANIME+1
    IF ANIME>9 THEN ANIME=0
   
GOSUB BASLA
;*******************************************************************************
;                            ANA DONGU SONU                         
;*******************************************************************************
;-----------------SAAT GOSTER---------------------------------------------------
SAAT_AL_G:
    GOSUB SAAT_AL                  ;GOSTERILECEK KAREKTERLERI BELIRLE 
    gosub  GEL                     ;EKRANA GELIS ANIMASYONU   
    ;GOSUB  ZAMAN_OKU              ;TIME SENSOR OKU
    FOR P=0 TO 100                 ;EKRANDA KALMA SÜRESİ
        IF SET=0 THEN AYAR         ;SET TUSUNA BASILMIS ISE AYAR A GIT
       
        IF SINYAL>5 THEN SINYAL=0  ;SAATTE IKEN : FLASH YAP
        IF SINYAL<2 THEN
            MEM[11]=$36            ;SADECE ORTA BITLER
            MEM[12]=$36
            ELSE
            MEM[11]=$00
            MEM[12]=$00
        ENDIF
       
        GOSUB EKRAN                ;SON DURUMU GOSTER
       
        SINYAL=SINYAL+1
    NEXT P
   
    GOSUB GIT                      ;EKRANDAN GIDIS ANIMASYONU

RETURN
;-----------------ISIYI GOSTER--------------------------------------------------
ISI_AL_G:
    GOSUB ISI_AL     
    GOSUB GEL   
    FOR P=0 TO 15
        IF SET=0 THEN AYAR
        GOSUB EKRAN     
    NEXT P   
    GOSUB GIT   
RETURN       
;----------------TARIH GOSTER---------------------------------------------------
TARIH_AL_G:
    gosub TARIH_AL   
    gosub  GEL   
    FOR P=0 TO 15 
        IF SET=0 THEN AYAR
        GOSUB EKRAN
    NEXT P
   
    GOSUB GIT   
RETURN
;----------------YIL GOSTER-----------------------------------------------------
YIL_AL_G:
    gosub YIL_AL     
    gosub  GEL
   
    FOR P=0 TO 10
        IF SET=0 THEN AYAR
        GOSUB EKRAN
    NEXT P           
   
    GOSUB GIT   
RETURN
;----------------GUN GOSTER-----------------------------------------------------
HAFTA_GUN_AL_G:
    gosub HAFTA_GUN_AL   
    gosub GEL   
    FOR P=0 TO 10
        IF SET=0 THEN AYAR
        GOSUB EKRAN
    NEXT P
   
    GOSUB GIT
RETURN
;-------------------------------------------------------------------------------
GEL:
    SELECT CASE ANIME
        CASE 0
            GOSUB USTTEN_EKLENEREK_GEL
        CASE 1
            GOSUB ALTTAN_EKLENEREK_GEL
        CASE 2
            GOSUB TEK_TEK_GEL
        CASE 3
            GOSUB KELIME_GEL
        CASE 4
            GOSUB LAZER_GEL
        CASE 5
            GOSUB SOLDAN_GEL
        CASE 6
            GOSUB USTTEN_GEL
        CASE 7
            GOSUB ALTTAN_GEL
        CASE 8
            GOSUB DISDAN_ICE_GEL
        CASE 9
            GOSUB ICDEN_DISA_GEL
    END SELECT

RETURN

;-------------------------------------------------------------------------------
GIT:
    SELECT CASE ANIME
        CASE 0
            GOSUB ASAGIYA_TEK_SIL
        CASE 1
            GOSUB YUKARI_TEK_SIL
        CASE 2
            GOSUB YUKARI_ASAGI_SIL
        CASE 3
            GOSUB KELIME_SIL
        CASE 4
            GOSUB SAGDAN_SIL
        CASE 5
            GOSUB SOLDAN_SIL
        CASE 6
            GOSUB ASAGIYA_SIL
        CASE 7
            GOSUB YUKARIYA_SIL
        CASE 8
            GOSUB ICDEN_DISA_SIL
        CASE 9
            GOSUB DISDAN_ICE_SIL
    END SELECT

RETURN
;-------------------------------------------------------------------------------
SAAT_AL: ;SAAT VE DAKIKA DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0
   
    karakter= SAAT DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= SAAT DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= ":"
    GOSUB EKRAN_BELIRLE
    karakter= DAK DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= DAK DIG 0
    GOSUB EKRAN_BELIRLE     

return
;-------------------------------------------------------------------------------
ISI_AL: ;ISI DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0
    karakter=ISARET
    GOSUB EKRAN_BELIRLE
    karakter= ISI DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= ISI DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= "*"
    GOSUB EKRAN_BELIRLE
    karakter= "C"
    GOSUB EKRAN_BELIRLE         
return
;-------------------------------------------------------------------------------
TARIH_AL: ;TARIH DEGERLERINI AKTAR

    gosub hafiza_sil
    INDEX2=0

    karakter= GUN DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= GUN DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= "-"
    GOSUB EKRAN_BELIRLE
    karakter= AY DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= AY DIG 0
    GOSUB EKRAN_BELIRLE

return
;-------------------------------------------------------------------------------
YIL_AL: ;YIL DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0   
    karakter= 2
    GOSUB EKRAN_BELIRLE
    karakter= 0
    GOSUB EKRAN_BELIRLE
    karakter= YIL DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= YIL DIG 0
    GOSUB EKRAN_BELIRLE       
return
;-------------------------------------------------------------------------------
HAFTA_GUN_AL: ;GUN BILGISININ TURKCE KARSILIGINI BELIRLE
    gosub hafiza_sil
    INDEX2=0   
    SELECT CASE HAFTA
        CASE 1
            karakter="P"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="Z"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
        CASE 2
            karakter="P"
            GOSUB EKRAN_BELIRLE
            karakter="Z"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="T"
            GOSUB EKRAN_BELIRLE
        CASE 3
            karakter="S"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="L"
            GOSUB EKRAN_BELIRLE
            karakter="I"
            GOSUB EKRAN_BELIRLE
            karakter=" "
            GOSUB EKRAN_BELIRLE
        CASE 4
            karakter="c"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
            karakter="s"
            GOSUB EKRAN_BELIRLE
            karakter="B"
            GOSUB EKRAN_BELIRLE
        CASE 5
            karakter="P"
            GOSUB EKRAN_BELIRLE
            karakter="E"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
            karakter="s"
            GOSUB EKRAN_BELIRLE
            karakter="B"
            GOSUB EKRAN_BELIRLE
        CASE 6
            karakter="C"
            GOSUB EKRAN_BELIRLE
            karakter="U"
            GOSUB EKRAN_BELIRLE
            karakter="M"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter=" "
            GOSUB EKRAN_BELIRLE
        CASE 7
            karakter="C"
            GOSUB EKRAN_BELIRLE
            karakter="U"
            GOSUB EKRAN_BELIRLE
            karakter="M"
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="T"
            GOSUB EKRAN_BELIRLE
        CASE ELSE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE                                                 
    END SELECT         
return
;-------------------------------------------------------------------------------
SAAT_AYAR_EKRAN:   ;SAAT AYAR

    INDEX2=0
    ;AYARDA SAAT FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=SAAT DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=SAAT DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="S"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
       
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1     
    gosub tara ;Verileri goster

RETURN
;-------------------------------------------------------------------------------
SAAT_AYAR_EKRAN2:   ;DAKIKA AYAR

    INDEX2=0
    ;AYARDA DAKIKA FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=DAK DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=DAK DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="D"
    GOSUB EKRAN_BELIRLE
    karakter="K"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
TARIH_AYAR_GOSTER1:

    INDEX2=0
    ;AYARDA GUN FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=GUN DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=GUN DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="G"
    GOSUB EKRAN_BELIRLE
    karakter="N"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
TARIH_AYAR_GOSTER2:

    INDEX2=0
    ;AYARDA AY FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=AY DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=AY DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    karakter="Y"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1   
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
TARIH_AYAR_GOSTER3:

    INDEX2=0
    ;AYARDA YIL FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=YIL DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=YIL DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="Y"
    GOSUB EKRAN_BELIRLE
    karakter="L"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster

RETURN

;-------------------------------------------------------------------------------
HAFTA_GUN_AYAR: ;GUN AKTAR

    INDEX2=0 
   
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        GOSUB HAFTA_GUN_AL
        ELSE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
    ENDIF 
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
AYAR:

GOSUB AYAR_GEL
WHILE SET=0:WEND
HOUR:
       IF SET=0 THEN MINBIR
       IF ART=0 THEN SAAT=SAAT+1
       IF SAAT=24 THEN SAAT=0       
       IF AZL=0 THEN SAAT=SAAT-1
       IF SAAT=255 THEN SAAT=23
       
       WHILE ART=0:WEND
       WHILE AZL=0:WEND
       GOSUB SAAT_AYAR_EKRAN
       GOTO  HOUR
MINBIR:
       GOSUB SAAT_AYAR_EKRAN2
       WHILE SET=0:WEND
MINUTE:       
        IF SET=0 THEN TAR
        IF ART=0 THEN DAK=DAK+1
        IF DAK=60 THEN DAK=0
        IF AZL=0 THEN DAK=DAK-1
        IF DAK=255 THEN DAK=59 
       
        WHILE ART=0:WEND
        WHILE AZL=0:WEND           
        GOSUB SAAT_AYAR_EKRAN2
        GOTO  MINUTE 
       
TAR:   
        gosub TARIH_AYAR_GOSTER1
        WHILE SET=0:WEND

DAY: 
       IF SET=0 THEN TAR1
       IF ART=0 THEN GUN=GUN+1
       IF GUN=32 THEN GUN=1       
       IF AZL=0 THEN GUN=GUN-1
       IF GUN=0 THEN GUN=31
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB TARIH_AYAR_GOSTER1
       GOTO  DAY
TAR1:
        GOSUB TARIH_AYAR_GOSTER2
        WHILE SET=0:WEND
MOUNT: 
       IF SET=0 THEN TAR2
       IF ART=0 THEN AY=AY+1
       IF AY=13 THEN AY=1       
       IF AZL=0 THEN AY=AY-1
       IF AY=0 THEN AY=12
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB TARIH_AYAR_GOSTER2
       GOTO  MOUNT
TAR2:
        GOSUB TARIH_AYAR_GOSTER3
        WHILE SET=0:WEND
YEAR: 
       IF SET=0 THEN HAF2
       IF ART=0 THEN YIL=YIL+1
       IF YIL=56 THEN YIL=0       
       IF AZL=0 THEN YIL=YIL-1
       IF YIL=255 THEN YIL=55
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB TARIH_AYAR_GOSTER3
       GOTO  YEAR
HAF2:
        GOSUB HAFTA_GUN_AYAR
        WHILE SET=0:WEND
HAF_GUN: 
       IF SET=0 THEN KAYIT
       IF ART=0 THEN HAFTA=HAFTA+1
       IF HAFTA=8 THEN HAFTA=1       
       IF AZL=0 THEN HAFTA=HAFTA-1
       IF HAFTA=0 THEN HAFTA=7
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB HAFTA_GUN_AYAR
       GOTO  HAF_GUN             
RETURN
;-------------------------------------------------------------------------------
KAYIT:

    LED=1
    GOSUB ZAMAN_YAZ
    PAUSE 10
    WHILE SET=0:WEND
    LED=0
    GOSUB AYARLANDI_GEL           
GOTO BASLA   
;-------------------------------------------------------------------------------
AYAR_GEL:  'karekterleri direk yaz

    GOSUB TEMIZLE  ;icerigi temizle           
    INDEX2=0
    for YAZI=0 to 4
        lookup2 YAZI,["AYAR "],karakter         
        GOSUB EKRAN_BELIRLE         
    next YAZI
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
    gosub tara ;Verileri goster
    for C=0 to 100 ;EKRANDA BEKELT               
        gosub Tara
    next C
     
RETURN
;-------------------------------------------------------------------------------
AYARLANDI_GEL:

    GOSUB TEMIZLE     
       
    INDEX2=0
    for YAZI=0 to 4
        lookup2 YAZI,["TAMAM"],karakter       
        GOSUB EKRAN_BELIRLE         
    next YAZI
    for say1=0 to 23
        Dizi[say1]=Mem[say1]
    next say1
    gosub tara
    for C=0 to 100             
        gosub Tara
    next C   
RETURN
;-------------------------------------------------------------------------------
;                              ANIMASYONLAR
;-------------------------------------------------------------------------------
LAZER_GEL:    'lazer sol
    GOSUB TEMIZLE
   
    J=24
    for E=0 to 23
        for say1=J to 0 step-1 
            dizi[say1]=Mem[J]
        next say1
        for M=0 to 3             
            gosub tara
        next M
        J=J-1
        if J=0 then J=24
    next E

return

;-------------------------------------------------------------------------------
SOLDAN_GEL: ;metni soldan saga kaydır

    GOSUB TEMIZLE
   
    say2=24   
   
    for P=0 to 23
        for say1=0 to 23
            dizi[say1]=Mem[SAY2+say1]
        next say1 
        for C=0 to 2  ;KAYMA HIZI
            Gosub Tara
        NEXT C
        SAY2=SAY2-1
        if SAY2=0 then SAY2=24
    next P

return
;-------------------------------------------------------------------------------
USTTEN_GEL: ;YUKARIDAN GEL

    gosub TEMIZLE
   
    for P=6 to 0 step-1
        for L=0 to 23     
            dizi[L]=mem[L]>>P
        next L
        for M=0 to 2
            gosub tara                 
        next M 
    next P 
RETURN
;-------------------------------------------------------------------------------
ALTTAN_GEL: 'aşağıdan ortalayarak gel dur

    gosub TEMIZLE
   
    for P=7 to 0 step-1 
        for L=0 to 24
            dizi[L]=mem[L]<<P
        next L
        for M=0 to 2
            gosub tara                 
        next M
    next P
 
RETURN

;-------------------------------------------------------------------------------
ICDEN_DISA_GEL: ;DISDAN ICE GEL
    gosub TEMIZLE   
    J=12
    E=12                       
    for L=0 to 11                     
        dizi[J]=mem[J]
        dizi[E]=mem[E]
        for M=0 to 2
            gosub tara                 
        next M
        J=J-1
        E=E+1
    next L
RETURN
;-------------------------------------------------------------------------------
DISDAN_ICE_GEL: ;İCDEN DISA GEL

    gosub TEMIZLE
   
    J=23
    E=0                       
    for L=12 to 0 STEP-1                     
        dizi[J]=mem[J]
        dizi[E]=mem[E]
        for M=0 to 2
            gosub tara                 
        next M
        J=J-1
        E=E+1
    next L
RETURN
;-------------------------------------------------------------------------------
KELIME_GEL: 'KELIME KELIME GEL

     gosub TEMIZLE
     
        for P=7 to 0 step-1
            for L=0 to 12   
                dizi[L]=mem[L]>>P ; ilk hece yukardan in
            next L
            for L=12 to 23
                dizi[L]=mem[L]<<P ; ilk hece yukardan in
            next L
            for M=0 to 3
                gosub tara                 
            next M
        next P
    GOSUB EKRAN_BEKLET   
RETURN
;-------------------------------------------------------------------------------
TEK_TEK_GEL: ' tek tek gel sağdan-sola

    GOSUB TEMIZLE
     
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1     
            for L=d to a
                dizi[L]=mem[L]
            next L
            for c=0 to 1   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        for P=3 to 0 step-1       
            for L=d to a
               dizi[L]=mem[L]
            next L               
            for c=0 to 1   
                GOSUB TARA
            next c
        next P
        if a=24 then
           a=3:d=0
        endif
    next H

RETURN

;-------------------------------------------------------------------------------
USTTEN_EKLENEREK_GEL:       'tek tek üstten gel yan yana dizil

    gosub TEMIZLE
   
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1   
            for L=d to a
                dizi[L]=mem[L]>>P
            next L
            for c=0 to 2   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        if a=24 then
           a=3:d=0
        endif
    next H
   
    GOSUB EKRAN_BEKLET
RETURN
;-------------------------------------------------------------------------------
ALTTAN_EKLENEREK_GEL:       'tek tek ALTTAN gel yan yana dizil

    gosub TEMIZLE
   
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1   
            for L=d to a
                dizi[L]=mem[L]<<P
            next L
            for c=0 to 2   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        if a=24 then
           a=3:d=0
        endif
    next H
   
    GOSUB EKRAN_BEKLET
RETURN
;******************************SILME ANIMASYONLARI*****************************

KELIME_SIL: ;KELIME KELIME SIL

    for P=0 to 7 
        for L=0 to 12
        dizi[L]=mem[L]>>P
        next L
        for L=12 to 23
        dizi[L]=mem[L]<<P
        next L
        for M=0 to 1
        gosub tara                 
        next M
    next P
   
    GOSUB EKRAN_BEKLET
RETURN
;-------------------------------------------------------------------------------
SOLDAN_SIL:

    for L=0 to 23  ;soldan saga dogru sil
        DIZI[L]=0
        for M=0 to 1
            gosub tara                 
        next M
    next L
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
SAGDAN_SIL:

    for L=23 to 0 STEP -1  ;soldan saga dogru sil
        DIZI[L]=0
        for M=0 to 1
            gosub tara                 
        next M
    next L 
    GOSUB EKRAN_BEKLET
RETURN
;-------------------------------------------------------------------------------

ASAGIYA_SIL: ;ASAGIYA DOGRU SIL

    for P=0 to 10     
        for L=0 to 23
            dizi[L]=mem[L]<<P
        next L       
        for C=0 to 1 ;EKRANDA BEKELT               
            gosub Tara
        next C
    next P
   
RETURN
;-------------------------------------------------------------------------------
ASAGIYA_TEK_SIL: ;TEKTEK ASAGIYA DOGRU SIL

    a=4:d=0 
    for H=0 to 4 ;MATRİX SAYISI
        for P=0 to 7   
           
            for L=d to a
                dizi[L]=mem[L]<<P
            next L
                                 
            for M=0 to 1
                gosub tara                 
            next M
           
        next P
        a=a+5
        d=d+5
        if a=20 then
           a=4:d=0
        endif
    next H
RETURN
;-------------------------------------------------------------------------------
YUKARI_ASAGI_SIL:  'TEKER TEKER yukarı asagi SIL
     
    a=4:d=0
    B=5:I=9
   
    for E=0 to 3           
        for C=0 to 7     
            for L=d to a  'ilk karakter yukarı
            dizi[L]=mem[L]>>C
            next L
            for M=0 to 1 'sabit durma suresi               
                gosub tara
            next M
        next C   
       
        a=a+10   
        d=d+10
       
        for C=0 to 7
            for L=B to I 'ikinci karakter aşağı
                dizi[L]=mem[L]<<C
            next L
            for M=0 to 1                 
                gosub tara
            next M
        next C
       
        B=B+10
        I=I+10
       
        if B=24 then
           a=4:d=0:B=5:I=9
        endif
       
    next E
RETURN
;-------------------------------------------------------------------------------
YUKARI_TEK_SIL:  'TEKER TEKER yukarı asagi SIL
     
    a=4:d=0 
    for H=0 to 4 ;MATRİX SAYISI
        for P=0 to 7   
           
            for L=d to a
                dizi[L]=mem[L]>>P
            next L
                                 
            for M=0 to 1
                gosub tara                 
            next M
           
        next P
        a=a+5
        d=d+5
        if a=20 then
           a=4:d=0
        endif
    next H

RETURN
;-------------------------------------------------------------------------------
YUKARIYA_SIL: ;YUKARIYA DOGRU SIL

    for P=0 to 8     
        for L=0 to 23
            dizi[L]=mem[L]>>P
        next L       
        for C=0 to 1 ;EKRANDA BEKELT               
            gosub Tara
        next C 
    next P 
RETURN
;-------------------------------------------------------------------------------
ICDEN_DISA_SIL:

    J=12
    E=12
                         
    for L=0 to 12                               
        dizi[J]=$00
        dizi[E]=$00                             
            for M=0 to 1
                gosub tara                 
            next M               
        J=J+1
        E=E-1
    next L             
RETURN
;-------------------------------------------------------------------------------
DISDAN_ICE_SIL:

    J=24
    E=0
                         
    for L=0 to 12                                 
        dizi[J]=$00
        dizi[E]=$00                             
            for M=0 to 1
                gosub tara                 
            next M               
        J=J-1
        E=E+1
    next L             

RETURN

;-------------------------------------------------------------------------------
TEMIZLE:

   for say1=0 to 23  ;24 ADET DİZİNİ 0 LA
       dizi[say1]=$00
   next say1
   
return

;-------------------------------------------------------------------------------
HAFIZA_SIL:

     for N =0 to 47  ;48 ADET GECİCİ DİZİNİ 0 LA
         mem[N]=0
     next N
RETURN
;-------------------------------------------------------------------------------
;                           KAREKTER BELIRLEME
;-------------------------------------------------------------------------------
EKRAN_BELIRLE:

      GOSUB ARA     ;KAREKTER BASLANGIC YERINI BELIRLE
      TEMP=YERI     ;BASLANGIC YERINI SABIT TUT
     
      FOR F=0 to 4  ;4X7 ICIN KAREKTER UZUNLUĞU KADAR DONGU KUR
        YERI=TEMP+F ;KAREKTERIN BİR SONRAKI BITI İÇİN
        GOSUB tablo ;KAREKTERIN BIT LERINI BELIRLE
        GOSUB ATA   ;GECICI DIZI DEGISKENİNE AKTAR
      next F
RETURN
;-------------------------------------------------------------------------------
ATA:             
    mem[INDEX2]=veri   ;GECICI DIZI DEGISKENİNE AKTAR
    INDEX2=INDEX2+1    ;GECICI DIZI INDEXINI 1 ARTIR                           
return
;-------------------------------------------------------------------------------
EKRAN:

    for say1=0 to 23         ;SATIR SAYISI KADAR DON   
        Dizi[say1]=Mem[say1] ;GECICI DIZIYI KULLANILACAK DIZINE AKTAR
    next say1
           
    for C=0 to 10            ;C KADAR EKRANDA BEKELT         
        gosub Tara
    next C

RETURN
;-------------------------------------------------------------------------------
EKRAN_BEKLET:
    for C=0 to 50           ;EKRANDA BEKELT EXTRA             
         gosub Tara
    next C
RETURN
;-------------------------------------------------------------------------------**
ARA:
    select case karakter
                case 0:YERI=0:return
                case 1:YERI=5:return
                case 2:YERI=10:return
                case 3:YERI=15:return
                case 4:YERI=20:return
                case 5:YERI=25:return
                case 6:YERI=30:return
                case 7:YERI=35:return
                case 8:YERI=40:return
                case 9:YERI=45:return
               
                case "+":YERI=50:return
                case "-":YERI=55:return
                case ".":YERI=60:return
                case ":":YERI=65:return
                case "*":YERI=70:return
                case " ":YERI=75:return
               
                case "A":YERI=80:return
                case "B":YERI=85:return
                case "C":YERI=90:return
                case "c":YERI=95:return
                case "D":YERI=100:return
                case "E":YERI=105:returN
                case "G":YERI=110:return
                case "I":YERI=115:return
                case "i":YERI=120:return
                case "K":YERI=125:return
                case "L":YERI=130:return
                case "M":YERI=135:return
                case "N":YERI=140:return
                case "P":YERI=145:return
                case "R":YERI=150:return
                case "S":YERI=155:return
                case "s":YERI=160:return
                case "T":YERI=165:return
                case "U":YERI=170:return
                case "Y":YERI=175:return
                case "Z":YERI=180:return
    end select
return
;-------------------------------------------------------------------------------   
TABLO:

lookup YERI,[$3E,$41,$41,$3E,$00_   ;0
             ,$00,$42,$7F,$40,$00_   ;1
             ,$72,$49,$49,$46,$00_   ;2
             ,$22,$49,$49,$36,$00_   ;3
             ,$1F,$10,$7C,$10,$00_   ;4
             ,$27,$45,$45,$39,$00_   ;5
             ,$3E,$49,$49,$32,$00_   ;6
             ,$01,$79,$05,$03,$00_   ;7
             ,$36,$49,$49,$36,$00_   ;8
             ,$26,$49,$49,$3E,$00_   ;9
             ,$00,$08,$1C,$08,$00_   ;+
             ,$00,$08,$08,$08,$00_   ;-
             ,$00,$60,$60,$00,$00_   ;.
             ,$00,$36,$36,$00,$00_   ;:
             ,$06,$09,$09,$06,$00_   ;DERECE
             ,$00,$00,$00,$00,$00_   ;BOSLUK
             ,$7E,$09,$09,$7E,$00_   ;A
             ,$7F,$49,$49,$36,$00_   ;B
             ,$3E,$41,$41,$22,$00_   ;C
             ,$1E,$21,$61,$12,$00_   ;Ç
             ,$7F,$41,$41,$3E,$00_   ;D
             ,$7F,$49,$49,$41,$00_   ;E
             ,$3E,$41,$49,$39,$00_   ;G
             ,$00,$41,$7F,$41,$00_   ;I
             ,$00,$44,$7D,$44,$00_   ;i
             ,$7F,$08,$14,$63,$00_   ;K
             ,$7F,$40,$40,$40,$00_   ;L
             ,$7F,$02,$02,$7F,$00_   ;M
             ,$7F,$04,$08,$7F,$00_   ;N
             ,$7F,$09,$09,$06,$00_   ;P
             ,$7F,$09,$09,$76,$00_   ;R
             ,$46,$49,$49,$31,$00_   ;S
             ,$22,$65,$25,$19,$00_   ;ş
             ,$00,$01,$7F,$01,$00_   ;T
             ,$3F,$40,$40,$3F,$00_   ;U
             ,$00,$03,$7C,$03,$00_   ;Y
             ,$71,$49,$45,$43,$00],VERI ;Z
return


ete

Aşağıdaki satırları bul ve kaldır yada sil. Sonra derle ve dene bakalım.
    GOSUB HAFTA_GUN_AL_G  ;HAFTANIN GÜNÜNÜ GÖSTER
    GOSUB TARIH_AL_G      ;GÜN VE AYI GÖSTER
    ;GOSUB YIL_AL_G       ;YILI GÖSTER
   


Ete

rhoca68

hocam dediğiniz gibi o kodları kaldırdım ayarlarda yine terih ay gun yıl çıkıyor.

ete

onlarıda kaldır diyeceğim ama bilmem kaldırabilirmisin.
Kaldıramazsan da bırak dursun birkere ayar yapılıyor zaten.
Yok illaki onlarda kalksın diyorsan programın sahibine müracaat edeceksin.
Ete

rhoca68

hocam birkaçgündür deniyorom ayarlardan sildim bu sefer dereceyi ilk başta gösterip tek anımasyonla sürekli saat gösteriyor aşagıdaki şekilde yaptım ayarları tam yapamaddım

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : abdullahyon@hotmail.com                           *
'*  Notice  : Copyright (c) 2013 Tüm Hakları Yazara Aittir      *
'*          : All Rights Reserved                               *
'*  Date    : 10.11.2015                                        *
'*  Version : 1.0                                               *
'*  Notes   : Sonmoikan                                         *
'*          :                                                   *
'****************************************************************
@ DEVICE PIC16F876A                   ;işlemci PIC16F876A
@ DEVICE PIC16F876A, WDT_OFF          ;Watch Dog Timer Kapalı
@ DEVICE PIC16F876A, PWRT_ON          ;Power on timer açık
@ DEVICE PIC16F876A, PROTECT_OFF      ;Kod Protek kapalı
@ DEVICE pic16F876A, XT_OSC
define OSC 4
ADCON1 = 7

TRISA=$07 : TRISB=$00 : TRISC=$00
PORTA=$00 : PORTB=$00 : PORTC=$00
   
    DTA var PORTB.7  ;74HC595 DATA
    VER var PORTB.5  ;74HC595 CLOCK
    CLK var PORTB.6  ;74HC595 RESET
   
    'Tarih için
    AY      var     byte
    YIL     var     byte
    SN      VAR     BYTE
    DAK     VAR     BYTE
    SAAT    VAR     BYTE
    GUN     VAR     BYTE
    SAYID   VAR     BYTE
    HAFTA   VAR     BYTE
    GUNSAY  var     byte
   
    'DS1302 pinleri için
    RTC_RST  var     PORTB.0
    RTC_CLK  var     PORTB.1
    RTC_DTA  var     PORTB.2
   
    'DS18B20 ISI için
    SYMBOL      ISIPIN=PORTB.3 'One-wire Data-Pin "DQ" PortB.5 da 
    ;MESGUL      VAR BIT       'DS18B20 Meşgul durumu için -Bit
    HAM         VAR WORD       'Sensör HAM okuma değeri
    ISARET      VAR BYTE       'ISI değeri için  +/-
    ;ISARET_BITI VAR HAM.Bit11  '+/- sıcaklık İşaret biti, 1=olursa eksi sıcaklık
    ;EKSI_ISI    CON 1          'Sıfır altında isaret biti=1  oluyor kontrol için
    FLOAT       VAR WORD       'Ara Isi Degeri
    ISI         VAR WORD       'Hesaplanmış ISI değeri
    ;    ISI2        VAR WORD       'Hesaplanmış Onda ISI değeri
   
    MEMSA    VAR   BYTE
    ONLAR    VAR   BYTE
    BIRLER   VAR   BYTE
   
    ;Butonlar
    SYMBOL SET=PORTA.0
    SYMBOL ART=PORTA.1
    SYMBOL AZL=PORTA.2
    SYMBOL LED=PORTA.3
   
    KARAKTER var byte  ;KEREKTERLERIN BELIRLENMESI ICIN
    INDEX    var byte  ;KEREKTER INDEXLEMESI ICIN
    INDEX2   var BYTE  ;KAREKTERLERİN ATAMASI ICIN
    YAZI     VAR BYTE  ;KELİMELER ICIN
   
    MEM   var byte[48] ;GECICI DIZI
    DIZI  var byte[24] ;GOSTERILECEK DIZI
    SATIR var byte     ;SATIR BİLGİSİ İÇİN
    YERI  VAR BYTE     ;TABLO İNDEXİ İÇİN
    VERI  var byte     ;TABLO VERİSİ İÇİN
    TEMP  var byte     ;KAREKTER BAŞLANGIÇ ADRES BİLGİSİ
   
    HIZ VAR BYTE       ;TARAMA HIZI İÇİN
    HIZ = 10           ;Gerçek devrede titreme olur ise değeri değiştirin

    ANIME VAR BYTE     ;ANİMASYON SAYACI İÇİN
    SINYAL VAR BYTE    ;FLASH GÖSTERİMLER İÇİN
   
    ;GENEL DEĞİŞKENLER
    SAY1 var byte
    SAY2 var byte
   
    A VAR BYTE
    B VAR BYTE
    C var byte
    D VAR BYTE
    E VAr byte
    F VAR BYTE
    G var byte
    H VAR BYTE
    I var BYTE
    J VAR BYTE
    K var byte
    L var byte
    M var byte
    N VAR byte
    P var byte
   
    LED=1
    GOSUB SENSOR_OKU   ;SENSORU OKU
    GOSUB ZAMAN_OKU    ;RTC YI OKU
    LED=0
   
    gosub TEMIZLE
    GOSUB HAFIZA_SIL
    INDEX2=0

'*******************************************************************************
;                              ANA DONGU
'*******************************************************************************
BASLA:

    gosub TEMIZLE
    GOSUB HAFIZA_SIL
   
    LED=1
    GOSUB SENSOR_OKU      ;SENSORU OKU
    GOSUB ZAMAN_OKU       ;RTC YI OKU
    LED=0
   
    GOSUB SAAT_AL_G       ;SAATİ GÖSTER
    GOSUB ISI_AL_G        ;SICAKLIĞI GÖSTER
   
    ANIME=ANIME+1
    IF ANIME>9 THEN ANIME=0
   
GOSUB BASLA
;*******************************************************************************
;                            ANA DONGU SONU                         
;*******************************************************************************


;-----------------SAAT GOSTER---------------------------------------------------
SAAT_AL_G:

    GOSUB SAAT_AL                  ;GOSTERILECEK KAREKTERLERI BELIRLE
   
    gosub  GEL                     ;EKRANA GELIS ANIMASYONU
   
    ;GOSUB  ZAMAN_OKU              ;TIME SENSOR OKU
    FOR P=0 TO 100                 ;EKRANDA KALMA SÜRESİ
        IF SET=0 THEN AYAR         ;SET TUSUNA BASILMIS ISE AYAR A GIT
       
        IF SINYAL>5 THEN SINYAL=0  ;SAATTE IKEN : FLASH YAP
        IF SINYAL<2 THEN
            MEM[11]=$36            ;SADECE ORTA BITLER
            MEM[12]=$36
            ELSE
            MEM[11]=$00
            MEM[12]=$00
        ENDIF
       
        GOSUB EKRAN                ;SON DURUMU GOSTER
       
        SINYAL=SINYAL+1
    NEXT P
   
    GOSUB GIT                      ;EKRANDAN GIDIS ANIMASYONU

RETURN

;-----------------ISIYI GOSTER--------------------------------------------------
ISI_AL_G:

    GOSUB ISI_AL
   
    GOSUB GEL
   
    FOR P=0 TO 15
        IF SET=0 THEN AYAR
        GOSUB EKRAN     
    NEXT P
   
    GOSUB GIT
   
RETURN
;-------------------------------------------------------------------------------
GEL:

    SELECT CASE ANIME
        CASE 0
            GOSUB USTTEN_EKLENEREK_GEL
        CASE 1
            GOSUB ALTTAN_EKLENEREK_GEL
        CASE 2
            GOSUB TEK_TEK_GEL
        CASE 3
            GOSUB KELIME_GEL
        CASE 4
            GOSUB LAZER_GEL
        CASE 5
            GOSUB SOLDAN_GEL
        CASE 6
            GOSUB USTTEN_GEL
        CASE 7
            GOSUB ALTTAN_GEL
        CASE 8
            GOSUB DISDAN_ICE_GEL
        CASE 9
            GOSUB ICDEN_DISA_GEL
    END SELECT

RETURN

;-------------------------------------------------------------------------------
GIT:

    SELECT CASE ANIME
        CASE 0
            GOSUB ASAGIYA_TEK_SIL
        CASE 1
            GOSUB YUKARI_TEK_SIL
        CASE 2
            GOSUB YUKARI_ASAGI_SIL
        CASE 3
            GOSUB KELIME_SIL
        CASE 4
            GOSUB SAGDAN_SIL
        CASE 5
            GOSUB SOLDAN_SIL
        CASE 6
            GOSUB ASAGIYA_SIL
        CASE 7
            GOSUB YUKARIYA_SIL
        CASE 8
            GOSUB ICDEN_DISA_SIL
        CASE 9
            GOSUB DISDAN_ICE_SIL
    END SELECT

RETURN

;-------------------------------------------------------------------------------
SAAT_AL: ;SAAT VE DAKIKA DEGERLERINI AKTAR

    gosub hafiza_sil
    INDEX2=0
   
    karakter= SAAT DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= SAAT DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= ":"
    GOSUB EKRAN_BELIRLE
    karakter= DAK DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= DAK DIG 0
    GOSUB EKRAN_BELIRLE     

return

;-------------------------------------------------------------------------------
ISI_AL: ;ISI DEGERLERINI AKTAR

    gosub hafiza_sil
    INDEX2=0

    karakter=ISARET
    GOSUB EKRAN_BELIRLE
    karakter= ISI DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= ISI DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= "*"
    GOSUB EKRAN_BELIRLE
    karakter= "C"
    GOSUB EKRAN_BELIRLE   
       

return

;-------------------------------------------------------------------------------
SAAT_AYAR_EKRAN:   ;SAAT AYAR

    INDEX2=0
    ;AYARDA SAAT FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=SAAT DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=SAAT DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="S"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
   
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster

RETURN

;-------------------------------------------------------------------------------
SAAT_AYAR_EKRAN2:   ;DAKIKA AYAR

    INDEX2=0
    ;AYARDA DAKIKA FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=DAK DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=DAK DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="D"
    GOSUB EKRAN_BELIRLE
    karakter="K"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster

RETURN

;-------------------------------------------------------------------------------
AYAR:

GOSUB AYAR_GEL
WHILE SET=0:WEND
HOUR:
       IF SET=0 THEN MINBIR
       IF ART=0 THEN SAAT=SAAT+1
       IF SAAT=24 THEN SAAT=0       
       IF AZL=0 THEN SAAT=SAAT-1
       IF SAAT=255 THEN SAAT=23
       
       WHILE ART=0:WEND
       WHILE AZL=0:WEND
       GOSUB SAAT_AYAR_EKRAN
       GOTO  HOUR
MINBIR:
       GOSUB SAAT_AYAR_EKRAN2
       WHILE SET=0:WEND
MINUTE:       
        IF SET=0 THEN KAYIT
        IF ART=0 THEN DAK=DAK+1
        IF DAK=60 THEN DAK=0
        IF AZL=0 THEN DAK=DAK-1
        IF DAK=255 THEN DAK=59 
       
        WHILE ART=0:WEND
        WHILE AZL=0:WEND
        GOSUB SAAT_AYAR_EKRAN2
        GOTO  MINUTE
End
;-------------------------------------------------------------------------------
KAYIT:

    LED=1
    GOSUB ZAMAN_YAZ
    PAUSE 10
    WHILE SET=0:WEND
    LED=0
    GOSUB AYARLANDI_GEL 
           
GOTO BASLA   

;-------------------------------------------------------------------------------
AYAR_GEL:  'karekterleri direk yaz

    GOSUB TEMIZLE  ;icerigi temizle           
    INDEX2=0
    for YAZI=0 to 4
        lookup2 YAZI,["AYAR "],karakter         
        GOSUB EKRAN_BELIRLE         
    next YAZI
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
    gosub tara ;Verileri goster
    for C=0 to 100 ;EKRANDA BEKELT               
        gosub Tara
    next C
       
RETURN

;-------------------------------------------------------------------------------
AYARLANDI_GEL:

    GOSUB TEMIZLE     
       
    INDEX2=0
    for YAZI=0 to 4
        lookup2 YAZI,["TAMAM"],karakter       
        GOSUB EKRAN_BELIRLE         
    next YAZI
    for say1=0 to 23
        Dizi[say1]=Mem[say1]
    next say1
    gosub tara
    for C=0 to 100             
        gosub Tara
    next C   

RETURN

;-------------------------------------------------------------------------------
;                              ANIMASYONLAR
;-------------------------------------------------------------------------------

LAZER_GEL:    'lazer sol

    GOSUB TEMIZLE
   
    J=24
    for E=0 to 23
        for say1=J to 0 step-1 
            dizi[say1]=Mem[J]
        next say1
        for M=0 to 3             
            gosub tara
        next M
        J=J-1
        if J=0 then J=24
    next E

return

;-------------------------------------------------------------------------------
SOLDAN_GEL: ;metni soldan saga kaydır

    GOSUB TEMIZLE
   
    say2=24   
   
    for P=0 to 23
        for say1=0 to 23
            dizi[say1]=Mem[SAY2+say1]
        next say1 
        for C=0 to 2  ;KAYMA HIZI
            Gosub Tara
        NEXT C
        SAY2=SAY2-1
        if SAY2=0 then SAY2=24
    next P

return

;-------------------------------------------------------------------------------
USTTEN_GEL: ;YUKARIDAN GEL

    gosub TEMIZLE
   
    for P=6 to 0 step-1
        for L=0 to 23     
            dizi[L]=mem[L]>>P
        next L
        for M=0 to 2
            gosub tara                 
        next M 
    next P 

RETURN

;-------------------------------------------------------------------------------
ALTTAN_GEL: 'aşağıdan ortalayarak gel dur

    gosub TEMIZLE
   
    for P=7 to 0 step-1 
        for L=0 to 24
            dizi[L]=mem[L]<<P
        next L
        for M=0 to 2
            gosub tara                 
        next M
    next P
 
RETURN

;-------------------------------------------------------------------------------
ICDEN_DISA_GEL: ;DISDAN ICE GEL

    gosub TEMIZLE
   
    J=12
    E=12                       
    for L=0 to 11                     
        dizi[J]=mem[J]
        dizi[E]=mem[E]
        for M=0 to 2
            gosub tara                 
        next M
        J=J-1
        E=E+1
    next L

RETURN

;-------------------------------------------------------------------------------
DISDAN_ICE_GEL: ;İCDEN DISA GEL

    gosub TEMIZLE
   
    J=23
    E=0                       
    for L=12 to 0 STEP-1                     
        dizi[J]=mem[J]
        dizi[E]=mem[E]
        for M=0 to 2
            gosub tara                 
        next M
        J=J-1
        E=E+1
    next L

RETURN

;-------------------------------------------------------------------------------
KELIME_GEL: 'KELIME KELIME GEL

     gosub TEMIZLE
     
        for P=7 to 0 step-1
            for L=0 to 12   
                dizi[L]=mem[L]>>P ; ilk hece yukardan in
            next L
            for L=12 to 23
                dizi[L]=mem[L]<<P ; ilk hece yukardan in
            next L
            for M=0 to 3
                gosub tara                 
            next M
        next P
    GOSUB EKRAN_BEKLET
   
RETURN

;-------------------------------------------------------------------------------
TEK_TEK_GEL: ' tek tek gel sağdan-sola

    GOSUB TEMIZLE
     
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1     
            for L=d to a
                dizi[L]=mem[L]
            next L
            for c=0 to 1   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        for P=3 to 0 step-1       
            for L=d to a
               dizi[L]=mem[L]
            next L               
            for c=0 to 1   
                GOSUB TARA
            next c
        next P
        if a=24 then
           a=3:d=0
        endif
    next H

RETURN

;-------------------------------------------------------------------------------
USTTEN_EKLENEREK_GEL:       'tek tek üstten gel yan yana dizil

    gosub TEMIZLE
   
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1   
            for L=d to a
                dizi[L]=mem[L]>>P
            next L
            for c=0 to 2   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        if a=24 then
           a=3:d=0
        endif
    next H
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
ALTTAN_EKLENEREK_GEL:       'tek tek ALTTAN gel yan yana dizil

    gosub TEMIZLE
   
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1   
            for L=d to a
                dizi[L]=mem[L]<<P
            next L
            for c=0 to 2   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        if a=24 then
           a=3:d=0
        endif
    next H
   
    GOSUB EKRAN_BEKLET

RETURN

;******************************SILME ANIMASYONLARI*****************************

KELIME_SIL: ;KELIME KELIME SIL

    for P=0 to 7 
        for L=0 to 12
        dizi[L]=mem[L]>>P
        next L
        for L=12 to 23
        dizi[L]=mem[L]<<P
        next L
        for M=0 to 1
        gosub tara                 
        next M
    next P
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
SOLDAN_SIL:

    for L=0 to 23  ;soldan saga dogru sil
        DIZI[L]=0
        for M=0 to 1
            gosub tara                 
        next M
    next L
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
SAGDAN_SIL:

    for L=23 to 0 STEP -1  ;soldan saga dogru sil
        DIZI[L]=0
        for M=0 to 1
            gosub tara                 
        next M
    next L
   
    GOSUB EKRAN_BEKLET

RETURN
;-------------------------------------------------------------------------------

ASAGIYA_SIL: ;ASAGIYA DOGRU SIL

    for P=0 to 10     
        for L=0 to 23
            dizi[L]=mem[L]<<P
        next L       
        for C=0 to 1 ;EKRANDA BEKELT               
            gosub Tara
        next C
    next P
   
RETURN

;-------------------------------------------------------------------------------
ASAGIYA_TEK_SIL: ;TEKTEK ASAGIYA DOGRU SIL

    a=4:d=0 
    for H=0 to 4 ;MATRİX SAYISI
        for P=0 to 7   
           
            for L=d to a
                dizi[L]=mem[L]<<P
            next L
                                 
            for M=0 to 1
                gosub tara                 
            next M
           
        next P
        a=a+5
        d=d+5
        if a=20 then
           a=4:d=0
        endif
    next H


RETURN

;-------------------------------------------------------------------------------
YUKARI_ASAGI_SIL:  'TEKER TEKER yukarı asagi SIL
     
    a=4:d=0
    B=5:I=9
   
    for E=0 to 3           
        for C=0 to 7     
            for L=d to a  'ilk karakter yukarı
            dizi[L]=mem[L]>>C
            next L
            for M=0 to 1 'sabit durma suresi               
                gosub tara
            next M
        next C   
       
        a=a+10   
        d=d+10
       
        for C=0 to 7
            for L=B to I 'ikinci karakter aşağı
                dizi[L]=mem[L]<<C
            next L
            for M=0 to 1                 
                gosub tara
            next M
        next C
       
        B=B+10
        I=I+10
       
        if B=24 then
           a=4:d=0:B=5:I=9
        endif
       
    next E

RETURN

;-------------------------------------------------------------------------------
YUKARI_TEK_SIL:  'TEKER TEKER yukarı asagi SIL
     
    a=4:d=0 
    for H=0 to 4 ;MATRİX SAYISI
        for P=0 to 7   
           
            for L=d to a
                dizi[L]=mem[L]>>P
            next L
                                 
            for M=0 to 1
                gosub tara                 
            next M
           
        next P
        a=a+5
        d=d+5
        if a=20 then
           a=4:d=0
        endif
    next H

RETURN

;-------------------------------------------------------------------------------
YUKARIYA_SIL: ;YUKARIYA DOGRU SIL

    for P=0 to 8     
        for L=0 to 23
            dizi[L]=mem[L]>>P
        next L       
        for C=0 to 1 ;EKRANDA BEKELT               
            gosub Tara
        next C 
    next P
   
RETURN

;-------------------------------------------------------------------------------
ICDEN_DISA_SIL:

    J=12
    E=12
                         
    for L=0 to 12                               
        dizi[J]=$00
        dizi[E]=$00                             
            for M=0 to 1
                gosub tara                 
            next M               
        J=J+1
        E=E-1
    next L             

RETURN

;-------------------------------------------------------------------------------
DISDAN_ICE_SIL:

    J=24
    E=0
                         
    for L=0 to 12                                 
        dizi[J]=$00
        dizi[E]=$00                             
            for M=0 to 1
                gosub tara                 
            next M               
        J=J-1
        E=E+1
    next L             

RETURN

;-------------------------------------------------------------------------------
TEMIZLE:

   for say1=0 to 23  ;24 ADET DİZİNİ 0 LA
       dizi[say1]=$00
   next say1
   
return

;-------------------------------------------------------------------------------
HAFIZA_SIL:

     for N =0 to 47  ;48 ADET GECİCİ DİZİNİ 0 LA
         mem[N]=0
     next N

RETURN


;-------------------------------------------------------------------------------
;                           KAREKTER BELIRLEME
;-------------------------------------------------------------------------------
EKRAN_BELIRLE:

      GOSUB ARA     ;KAREKTER BASLANGIC YERINI BELIRLE
      TEMP=YERI     ;BASLANGIC YERINI SABIT TUT
     
      FOR F=0 to 4  ;4X7 ICIN KAREKTER UZUNLUĞU KADAR DONGU KUR
        YERI=TEMP+F ;KAREKTERIN BİR SONRAKI BITI İÇİN
        GOSUB tablo ;KAREKTERIN BIT LERINI BELIRLE
        GOSUB ATA   ;GECICI DIZI DEGISKENİNE AKTAR
      next F

RETURN

;-------------------------------------------------------------------------------
ATA:
             
    mem[INDEX2]=veri   ;GECICI DIZI DEGISKENİNE AKTAR
    INDEX2=INDEX2+1    ;GECICI DIZI INDEXINI 1 ARTIR
                           
return

;-------------------------------------------------------------------------------
EKRAN:

    for say1=0 to 23         ;SATIR SAYISI KADAR DON   
        Dizi[say1]=Mem[say1] ;GECICI DIZIYI KULLANILACAK DIZINE AKTAR
    next say1
           
    for C=0 to 10            ;C KADAR EKRANDA BEKELT         
        gosub Tara
    next C

RETURN

;-------------------------------------------------------------------------------
EKRAN_BEKLET:
    for C=0 to 50           ;EKRANDA BEKELT EXTRA             
         gosub Tara
    next C
RETURN

;-------------------------------------------------------------------------------**
ARA:
    select case karakter
                case 0:YERI=0:return
                case 1:YERI=5:return
                case 2:YERI=10:return
                case 3:YERI=15:return
                case 4:YERI=20:return
                case 5:YERI=25:return
                case 6:YERI=30:return
                case 7:YERI=35:return
                case 8:YERI=40:return
                case 9:YERI=45:return
               
                case "+":YERI=50:return
                case "-":YERI=55:return
                case ".":YERI=60:return
                case ":":YERI=65:return
                case "*":YERI=70:return
                case " ":YERI=75:return
               
                case "A":YERI=80:return
                case "B":YERI=85:return
                case "C":YERI=90:return
                case "c":YERI=95:return
                case "D":YERI=100:return
                case "E":YERI=105:returN
                case "G":YERI=110:return
                case "I":YERI=115:return
                case "i":YERI=120:return
                case "K":YERI=125:return
                case "L":YERI=130:return
                case "M":YERI=135:return
                case "N":YERI=140:return
                case "P":YERI=145:return
                case "R":YERI=150:return
                case "S":YERI=155:return
                case "s":YERI=160:return
                case "T":YERI=165:return
                case "U":YERI=170:return
                case "Y":YERI=175:return
                case "Z":YERI=180:return
    end select
return

;-------------------------------------------------------------------------------   
TABLO:

lookup YERI,[_
              $3E,$41,$41,$3E,$00_   ;0
             ,$00,$42,$7F,$40,$00_   ;1
             ,$72,$49,$49,$46,$00_   ;2
             ,$22,$49,$49,$36,$00_   ;3
             ,$1F,$10,$7C,$10,$00_   ;4
             ,$27,$45,$45,$39,$00_   ;5
             ,$3E,$49,$49,$32,$00_   ;6
             ,$01,$79,$05,$03,$00_   ;7
             ,$36,$49,$49,$36,$00_   ;8
             ,$26,$49,$49,$3E,$00_   ;9
             ,$00,$08,$1C,$08,$00_   ;+
             ,$00,$08,$08,$08,$00_   ;-
             ,$00,$60,$60,$00,$00_   ;.
             ,$00,$36,$36,$00,$00_   ;:
             ,$06,$09,$09,$06,$00_   ;DERECE
             ,$00,$00,$00,$00,$00_   ;BOSLUK
             ,$7E,$09,$09,$7E,$00_   ;A
             ,$7F,$49,$49,$36,$00_   ;B
             ,$3E,$41,$41,$22,$00_   ;C
             ,$1E,$21,$61,$12,$00_   ;Ç
             ,$7F,$41,$41,$3E,$00_   ;D
             ,$7F,$49,$49,$41,$00_   ;E
             ,$3E,$41,$49,$39,$00_   ;G
             ,$00,$41,$7F,$41,$00_   ;I
             ,$00,$44,$7D,$44,$00_   ;i
             ,$7F,$08,$14,$63,$00_   ;K
             ,$7F,$40,$40,$40,$00_   ;L
             ,$7F,$02,$02,$7F,$00_   ;M
             ,$7F,$04,$08,$7F,$00_   ;N
             ,$7F,$09,$09,$06,$00_   ;P
             ,$7F,$09,$09,$76,$00_   ;R
             ,$46,$49,$49,$31,$00_   ;S
             ,$22,$65,$25,$19,$00_   ;ş
             ,$00,$01,$7F,$01,$00_   ;T
             ,$3F,$40,$40,$3F,$00_   ;U
             ,$00,$03,$7C,$03,$00_   ;Y
             ,$71,$49,$45,$43,$00],VERI ;Z
return

;-------------------------------------------------------------------------------
BEKLE:         ;TARAMA HIZI (Gerçek devrede titreme olur ise değeri değiştirin)
for K=0 to 4
    pauseus HIZ
next K

return

;-------------------------------------------------------------------------------
TARA:

    for G=0 to 23     ;SUTUN SAYISI KADAR DON                                                           
        SATIR=dizi[G] ;1.SATIR VERİSİNİ DIZI DEGISKENİNİN İNDEKSİNDEN AL                                               
        dta=SATIR.0   ;SIRAYLA VERİYİ DTA YA ESITLE (1 VEYA 0)
        PULSOUT CLK,1 ;SIRAYLA 0-23 ADET VERIYİ 74HC595 LERE GIR                                                                                                                           
    next G
    pulsout VER,1     ;1.SATIRIN 24 ADET VERISINI 74HC595 LERDEN CIKART
   
    PORTC=%00000001   ;port D yi kaydır
    gosub BEKLE       ;hız icin bekle   
    PORTC=%00000000   ;port D yi eski haline getir
                                                                             
    for G=0 to 23     
        SATIR=dizi[G]
        Dta=SATIR.1           
        PULSOUT CLK,1                   
    next G
    pulsout VER,1    ;2. SATIR
    PORTC=%00000010   
    gosub BEKLE   
    PORTC=%00000000
                       
    for G=0 to 23       
        SATIR=dizi[G]
        Dta=SATIR.2         
        PULSOUT CLK,1                     
    next  G
    pulsout VER,1    ;3. SATIR
    PORTC=%00000100
    gosub BEKLE     
    PORTC=%00000000           
                   
    for G=0 to 23       
        SATIR=dizi[G]
        Dta=SATIR.3           
        PULSOUT CLK,1                     
    next G
    pulsout VER,1    ;4. SATIR
    PORTC=%00001000
    gosub BEKLE   
    PORTC=%00000000       
             
    for G=0 to 23     
        SATIR=dizi[G]
        Dta=SATIR.4       
        PULSOUT CLK,1               
    next G
    pulsout VER,1    ;5. SATIR
    PORTC=%00010000   
    gosub BEKLE
    PORTC=%00000000   
   
    for G=0 to 23   
        SATIR=dizi[G]
        Dta=SATIR.5       
        PULSOUT CLK,1               
    next G
    pulsout VER,1    ;6. SATIR
    PORTC=%00100000   
    gosub BEKLE
    PORTC=%00000000
   
    for G=0 to 23   
        SATIR=dizi[G]
        Dta=SATIR.6       
        PULSOUT CLK,1               
    next G
    pulsout VER,1    ;7. SATIR
    PORTC=%01000000   
    gosub BEKLE
    PORTC=%00000000         
                                   
return

'--------------DS1302 yi oku----------------------------------------------------
ZAMAN_OKU:
    high RTC_RST:OUTPUT RTC_DTA
shiftout RTC_DTA, RTC_CLK, 0, [$BF]
PAUSEUS 10
   INPUT RTC_DTA
SHIFTIN RTC_DTA, RTC_CLK, 1, [SN, DAK, SAAT,GUN , AY, HAFTA, YIL, MEMSA]  'OKU
PAUSEUS 10
         MEMSA=SN:   GOSUB CEVIR:SN=SAYID
         MEMSA=DAK:  GOSUB CEVIR:DAK=SAYID
         MEMSA=SAAT: GOSUB CEVIR:SAAT=SAYID
         MEMSA=GUN:  GOSUB CEVIR:GUN=SAYID
         MEMSA=AY:   GOSUB CEVIR:AY=SAYID
         MEMSA=YIL:  GOSUB CEVIR:YIL=SAYID
         MEMSA=HAFTA:GOSUB CEVIR:HAFTA=SAYID
     low RTC_RST
  return
 
'--------------DS1302 ye kaydet------------------------------------------------- 
ZAMAN_YAZ:
         MEMSA=sn:    gosub TERSCEVIR:sn=SAYID
         MEMSA=DAK:   gosub TERSCEVIR:DAK=SAYID
         MEMSA=SAAT:  gosub TERSCEVIR:SAAT=SAYID
         MEMSA=GUN:   gosub TERSCEVIR:GUN=SAYID
         MEMSA=AY:    gosub TERSCEVIR:AY=SAYID
         MEMSA=YIL:   gosub TERSCEVIR:YIL=SAYID
         MEMSA=HAFTA: GOSUB TERSCEVIR:HAFTA=SAYID
    high RTC_RST
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$8E, 0]    'WRT Protek açıldı
     low RTC_RST
PAUSEUS 10
    high RTC_RST         
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$BE, SN, DAK, SAAT,GUN , AY, HAFTA, YIL, 128]'YAZ
     low RTC_RST
PAUSEUS 10
return

'--------------DS1302 için Cevirme---------------------------------------------- 
CEVIR:
         ONLAR=MEMSA & %01110000
         ONLAR=ONLAR>>4
         BIRLER=MEMSA & %00001111
         SAYID=ONLAR*10+BIRLER
return
'--------------DS1302 için Ters Cevirme-----------------------------------------
TERSCEVIR:
         ONLAR=MEMSA DIG 1
         ONLAR=ONLAR<<4
         BIRLER=MEMSA DIG 0
         SAYID=ONLAR+BIRLER
return

'---------------ISI DS18B20 yi oku----------------------------------------------
SENSOR_OKU:
OWOUT   isipin, 1, [$CC, $44]  ' ISI değerini 1 byte oku
pause 100
;SENSOR_BEKLE:
;OWIN    isipin, 4, [MESGUL] ' Busy değerini 4 byte oku
;    IF MESGUL = 0 THEN
;        PAUSE 100
;        GOTO SENSOR_BEKLE ' hala meşgulmü? , evet ise goto Bekle..!
;    ENDIF
OWOUT   isipin, 1, [$CC, $BE]' memory bir byte oku
OWIN    isipin, 2, [HAM.Lowbyte, HAM.Highbyte]'İki byte oku ve okumayı bitir.

'-----Isı degeri HAM a Aktarıldı ve hesaplamaları yapılıyor-----
    ISARET  = "+" ;+
    ;IF ISARET_BITI = EKSI_ISI THEN
    IF HAM.Bit11=1 THEN
        ISARET   = "-"
        ham=~ham+2   
        '- değer için ~(NOT Bit leri Ters Çevir) Sayı=%01 ise, NOT %01 = %10 olur
    endif
   
float = (HAM*10)/16
ISI   = FLOAT/10    'ISI Tam sayı kısmı
;ISI2  = FLOAT//100  'ISI Ondalık Sayı kısmı

RETURN

;-------------------------------------------------------------------------------
                                   END
;-------------------------------------------------------------------------------

ete

Program yazmaktan daha zor olan şey nedir biliyormusunuz? ben söyleyeyim. Yazılmış heleki başkasının yazmış olduğu programda değişiklik yapmak. Bunu defalarca dile getirdim. Program yazılırken bir mantık bir algoritma oluşturulur ona görede yazılır. Aradan zaman geçince bu algoritmanın püf noktalarını hatta tüm algoritmayı unutursun. Programı sen yazmış bile olsan bakarsın ve hemen şu lafı dersin kendine "bunu benmi yazmışım hayret". İşte böyle bir durum var iken bakın basit bir saat sistemi için bana gelen isteklere;
- Yalnızca saat göstersin
- yalnızca saat ve sıcaklık göstersin başka bir şey göstermesin
- Saat 12 saat modunda çalışsın sıcaklık göstersin başka bir şey göstermesin
- yalnızca saat 12 saat modunda çalışsın
dahasıda varda artık onları sıralamayayım.
Gerçekten bıktım bu işlerden bu özel isteklerden yapmayın bunu ve istemeyin özel şeyler. Yapabiliyorsanız kendiniz yapın.
Çünki bir programda değişiklik yapmak için ders çalışır gibi oturup çalışmak ve bütün programın mantığına yeniden hakim olmak gerekiyor. Olmazssanız kestirmeden gidersiniz ve ortaya bir sürü yanlışlık çıkar burası çok hemde pek çok kesin.
Kimse program tadilatının kolay olduğunu düşünmesin. Tekrar söylüyorum program tadilatı en zor iştir. Bu nedenle bu andan itibaren bu tür istekleri cevaplamayacağım artık. Üstelik kızacağımda ne yapayım başka çare kalmadı.
Sonmoikan bu programı yazan kişi. Kendisi istenilen şeyi yapacak olsa bir cevap verirdi her halde. Yada internete girmiyor bu sıralar. Bir kaç gün bekleyeceğim cevap yine gelmez ise konu kilitlenecek.

Ete



sonmoikan

#68
Herkese Selamlar. 1 aydır forma giremedim. Kusuruma bakmayın.

rhoca68 Arkadaşım sana verdiğim 4. sayfadaki kodlarda hiçbir sıkıntı yok. Neyi nasıl neleri değiştirdin bilemiyorum bir yerlerde stuck taşması meydana geliyor ve takılıyor. Sana gönderdiğim kodu tekrar dikkatli bir şekilde düzenleyerek dene.
ABDULLAH

rhoca68

sonmoikan hocam hoşgeldin.ben ilk sayfadaki devrenizi yaptım bir aydır çalışıyor.devrede sıkıntı yok.ben sadece saat ve derece olsun istemiştim.siz izinde iken ete hocam sağolsun kodlarda değişikliğin nasıl yapılacağını tarif etti.bende o şekilde yaptım. saat yine çalışıyor tam istediğim gibi sadece saat ve derece olarak. yalnız ayarlar kısmında tarih ay gün yıl var onu halledemedim.oda sorun değil.bu şekilde kullanacağım. eğer ayarlar kısmını vaktin varda nasıl bir kod yazacağımı bildidrirsen memnun olurum.teşekkür eder sağlıklı günler dilerim.

sonmoikan


AYAR:
GOSUB AYAR_GEL
WHILE SET=0:WEND
HOUR:
       IF SET=0 THEN MINBIR      ;Saat ayarda iken set tuğuna basarsan dakika ayarına gider
       IF ART=0 THEN SAAT=SAAT+1
       IF SAAT=24 THEN SAAT=0       
       IF AZL=0 THEN SAAT=SAAT-1
       IF SAAT=255 THEN SAAT=23
       
       WHILE ART=0:WEND
       WHILE AZL=0:WEND
       GOSUB SAAT_AYAR_EKRAN
       GOTO  HOUR
MINBIR:
       GOSUB SAAT_AYAR_EKRAN2
       WHILE SET=0:WEND
MINUTE:       
        IF SET=0 THEN KAYIT           ;Dakika ayarda iken set tuşuna basarsan ayar işlemi biter ve kayıt işlemine gider.
        IF ART=0 THEN DAK=DAK+1
        IF DAK=60 THEN DAK=0
        IF AZL=0 THEN DAK=DAK-1
        IF DAK=255 THEN DAK=59 
       
        WHILE ART=0:WEND
        WHILE AZL=0:WEND
        GOSUB SAAT_AYAR_EKRAN2
        GOTO  MINUTE
End


Yukarıdaki kodda açıklama yazılan kısımları incele. Ayarların hangi aşamada sonlandırılmasını istiyorsan ilgili şarta IF SET=0 THEN KAYIT demen yeterli.
ABDULLAH

rhoca68

sonmoikan Hocam sizin verdiğiniz kodu aynen yaptım.saat ve ayar düzgün çalıştı.fakat bir dk sonra tek anımasyon halinde sadece saat ve derece gösteriyor diğer anımasyonları göstermiyor. nerede hatam var aydınlatırsanız memnun olurum .

sonmoikan

Şimdi benim 4. sayfada gönderdiğim kodu derleyip test ediyorum sorun olmuyor.
Ama senin yukarıda verdiğin kodu derliyorum birkaç gösterimden sonra stack taşması meydana geliyor.
Yani bir şeyleri değiştirmişsin. Nereleri değiştirdiğin hakkında bilgi verirsen yardımcı olmaya çalışırım.
ABDULLAH

rhoca68

#73
sayın hocam nacizane birşeyler yapmaya çalışıyorum. ben kod yazma konusunda hiçbirşey bilmiyorum. yalnız başlangıçta saat ekranının gelmesini ve ay gün yıl bilgilerinin gelmesini istemadiğimden o bölümleri çıkartıp derledim aşagıya hem orijinalini hemde değiştirdiğim şeklini koydum bir bakıp yanlışımı bildirirseniz sevinirim.Selamlarımla
orijinali  [code]'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : abdullahyon@hotmail.com                           *
'*  Notice  : Copyright (c) 2013 Tüm Hakları Yazara Aittir      *
'*          : All Rights Reserved                               *
'*  Date    : 10.11.2015                                        *
'*  Version : 1.0                                               *
'*  Notes   : Sonmoikan                                         *
'*          :                                                   *
'****************************************************************
@ DEVICE PIC16F876A                   ;işlemci PIC16F876A
@ DEVICE PIC16F876A, WDT_OFF          ;Watch Dog Timer Kapalı
@ DEVICE PIC16F876A, PWRT_ON          ;Power on timer açık
@ DEVICE PIC16F876A, PROTECT_OFF      ;Kod Protek kapalı
@ DEVICE pic16F876A, XT_OSC
define OSC 4
ADCON1 = 7
TRISA=$07 : TRISB=$00 : TRISC=$00
PORTA=$00 : PORTB=$00 : PORTC=$00   
    DTA var PORTB.7  ;74HC595 DATA
    VER var PORTB.5  ;74HC595 CLOCK
    CLK var PORTB.6  ;74HC595 RESET
   
    'Tarih için
    AY      var     byte
    YIL     var     byte
    SN      VAR     BYTE
    DAK     VAR     BYTE
    SAAT    VAR     BYTE
    GUN     VAR     BYTE
    SAYID   VAR     BYTE
    HAFTA   VAR     BYTE
    GUNSAY  var     byte 
    RTC_RST  var     PORTB.0
    RTC_CLK  var     PORTB.1
    RTC_DTA  var     PORTB.2
    SYMBOL      ISIPIN=PORTB.3 'One-wire Data-Pin "DQ" PortB.5 da 
    ;MESGUL      VAR BIT       'DS18B20 Meşgul durumu için -Bit
    HAM         VAR WORD       'Sensör HAM okuma değeri
    ISARET      VAR BYTE       'ISI değeri için  +/-
    ;ISARET_BITI VAR HAM.Bit11  '+/- sıcaklık İşaret biti, 1=olursa eksi sıcaklık
    ;EKSI_ISI    CON 1          'Sıfır altında isaret biti=1  oluyor kontrol için
    FLOAT       VAR WORD       'Ara Isi Degeri
    ISI         VAR WORD       'Hesaplanmış ISI değeri
    ;    ISI2        VAR WORD       'Hesaplanmış Onda ISI değeri
   
    MEMSA    VAR   BYTE
    ONLAR    VAR   BYTE
    BIRLER   VAR   BYTE   
    ;Butonlar
    SYMBOL SET=PORTA.0
    SYMBOL ART=PORTA.1
    SYMBOL AZL=PORTA.2
    SYMBOL LED=PORTA.3   
    KARAKTER var byte  ;KEREKTERLERIN BELIRLENMESI ICIN
    INDEX    var byte  ;KEREKTER INDEXLEMESI ICIN
    INDEX2   var BYTE  ;KAREKTERLERİN ATAMASI ICIN
    YAZI     VAR BYTE  ;KELİMELER ICIN   
    MEM   var byte[48] ;GECICI DIZI
    DIZI  var byte[24] ;GOSTERILECEK DIZI
    SATIR var byte     ;SATIR BİLGİSİ İÇİN
    YERI  VAR BYTE     ;TABLO İNDEXİ İÇİN
    VERI  var byte     ;TABLO VERİSİ İÇİN
    TEMP  var byte     ;KAREKTER BAŞLANGIÇ ADRES BİLGİSİ   
    HIZ VAR BYTE       ;TARAMA HIZI İÇİN
    HIZ = 10           ;Gerçek devrede titreme olur ise değeri değiştirin
    ANIME VAR BYTE     ;ANİMASYON SAYACI İÇİN
    SINYAL VAR BYTE    ;FLASH GÖSTERİMLER İÇİN

    SAY1 var byte
    SAY2 var byte
   
    A VAR BYTE
    B VAR BYTE
    C var byte
    D VAR BYTE
    E VAr byte
    F VAR BYTE
    G var byte
    H VAR BYTE
    I var BYTE
    J VAR BYTE
    K var byte
    L var byte
    M var byte
    N VAR byte
    P var byte
   
    LED=1
    GOSUB SENSOR_OKU   ;SENSORU OKU
    GOSUB ZAMAN_OKU    ;RTC YI OKU
    LED=0   
    gosub TEMIZLE
    GOSUB HAFIZA_SIL
    INDEX2=0
;*******************************GIRIS EKRANI************************************ 
    karakter="S"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    karakter="T"
    GOSUB EKRAN_BELIRLE
    karakter=" "
    GOSUB EKRAN_BELIRLE
           
    GOSUB SOLDAN_GEL
   
    FOR P=0 TO 15     ;EKRANDA BELLİ BIR SURE GOSTER
        GOSUB EKRAN     
    NEXT P
   
    GOSUB TEMIZLE
    FOR C=0 to 50               
       gosub Tara
    next C
;                              ANA DONGU
'*******************************************************************************
BASLA:
    gosub TEMIZLE
    GOSUB HAFIZA_SIL
    LED=1
    GOSUB SENSOR_OKU      ;SENSORU OKU
    GOSUB ZAMAN_OKU       ;RTC YI OKU
    LED=0   
    GOSUB SAAT_AL_G       ;SAATİ GÖSTER
    GOSUB ISI_AL_G        ;SICAKLIĞI GÖSTER
    GOSUB HAFTA_GUN_AL_G  ;HAFTANIN GÜNÜNÜ GÖSTER
    GOSUB TARIH_AL_G      ;GÜN VE AYI GÖSTER
    ;GOSUB YIL_AL_G       ;YILI GÖSTER   
    ANIME=ANIME+1
    IF ANIME>9 THEN ANIME=0
   
GOSUB BASLA

;-----------------SAAT GOSTER---------------------------------------------------
SAAT_AL_G:

    GOSUB SAAT_AL                  ;GOSTERILECEK KAREKTERLERI BELIRLE
   
    gosub  GEL                     ;EKRANA GELIS ANIMASYONU
   
    ;GOSUB  ZAMAN_OKU              ;TIME SENSOR OKU
    FOR P=0 TO 100                 ;EKRANDA KALMA SÜRESİ
        IF SET=0 THEN AYAR         ;SET TUSUNA BASILMIS ISE AYAR A GIT
       
        IF SINYAL>5 THEN SINYAL=0  ;SAATTE IKEN : FLASH YAP
        IF SINYAL<2 THEN
            MEM[11]=$36            ;SADECE ORTA BITLER
            MEM[12]=$36
            ELSE
            MEM[11]=$00
            MEM[12]=$00
        ENDIF       
        GOSUB EKRAN                ;SON DURUMU GOSTER       
        SINYAL=SINYAL+1
    NEXT P   
    GOSUB GIT                      ;EKRANDAN GIDIS ANIMASYONU
RETURN

ISI_AL_G:
    GOSUB ISI_AL   
    GOSUB GEL   
    FOR P=0 TO 15
        IF SET=0 THEN AYAR
        GOSUB EKRAN     
    NEXT P
   
    GOSUB GIT
   
RETURN

TARIH_AL_G:
    gosub TARIH_AL   
    gosub  GEL
    FOR P=0 TO 15 
        IF SET=0 THEN AYAR
        GOSUB EKRAN
    NEXT P 
    GOSUB GIT 
RETURN

YIL_AL_G:
    gosub YIL_AL   
    gosub  GEL   
    FOR P=0 TO 10
        IF SET=0 THEN AYAR
        GOSUB EKRAN
    NEXT P             
    GOSUB GIT   
RETURN

HAFTA_GUN_AL_G:
    gosub HAFTA_GUN_AL   
    gosub GEL 
    FOR P=0 TO 10
        IF SET=0 THEN AYAR
        GOSUB EKRAN
    NEXT P
    GOSUB GIT
RETURN

GEL:
    SELECT CASE ANIME
        CASE 0
            GOSUB USTTEN_EKLENEREK_GEL
        CASE 1
            GOSUB ALTTAN_EKLENEREK_GEL
        CASE 2
            GOSUB TEK_TEK_GEL
        CASE 3
            GOSUB KELIME_GEL
        CASE 4
            GOSUB LAZER_GEL
        CASE 5
            GOSUB SOLDAN_GEL
        CASE 6
            GOSUB USTTEN_GEL
        CASE 7
            GOSUB ALTTAN_GEL
        CASE 8
            GOSUB DISDAN_ICE_GEL
        CASE 9
            GOSUB ICDEN_DISA_GEL
    END SELECT
RETURN

GIT:
    SELECT CASE ANIME
        CASE 0
            GOSUB ASAGIYA_TEK_SIL
        CASE 1
            GOSUB YUKARI_TEK_SIL
        CASE 2
            GOSUB YUKARI_ASAGI_SIL
        CASE 3
            GOSUB KELIME_SIL
        CASE 4
            GOSUB SAGDAN_SIL
        CASE 5
            GOSUB SOLDAN_SIL
        CASE 6
            GOSUB ASAGIYA_SIL
        CASE 7
            GOSUB YUKARIYA_SIL
        CASE 8
            GOSUB ICDEN_DISA_SIL
        CASE 9
            GOSUB DISDAN_ICE_SIL
    END SELECT
RETURN

SAAT_AL: ;SAAT VE DAKIKA DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0
    karakter= SAAT DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= SAAT DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= ":"
    GOSUB EKRAN_BELIRLE
    karakter= DAK DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= DAK DIG 0
    GOSUB EKRAN_BELIRLE     
return

ISI_AL: ;ISI DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0
    karakter=ISARET
    GOSUB EKRAN_BELIRLE
    karakter= ISI DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= ISI DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= "*"
    GOSUB EKRAN_BELIRLE
    karakter= "C"
    GOSUB EKRAN_BELIRLE   
return

TARIH_AL: ;TARIH DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0
    karakter= GUN DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= GUN DIG 0
    GOSUB EKRAN_BELIRLE
    karakter= "-"
    GOSUB EKRAN_BELIRLE
    karakter= AY DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= AY DIG 0
    GOSUB EKRAN_BELIRLE
return

YIL_AL: ;YIL DEGERLERINI AKTAR
    gosub hafiza_sil
    INDEX2=0
    karakter= 2
    GOSUB EKRAN_BELIRLE
    karakter= 0
    GOSUB EKRAN_BELIRLE
    karakter= YIL DIG 1
    GOSUB EKRAN_BELIRLE
    karakter= YIL DIG 0
    GOSUB EKRAN_BELIRLE       
return

HAFTA_GUN_AL: ;GUN BILGISININ TURKCE KARSILIGINI BELIRLE
    gosub hafiza_sil
    INDEX2=0   
    SELECT CASE HAFTA
        CASE 1
            karakter="P"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="Z"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
        CASE 2
            karakter="P"
            GOSUB EKRAN_BELIRLE
            karakter="Z"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="T"
            GOSUB EKRAN_BELIRLE
        CASE 3
            karakter="S"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="L"
            GOSUB EKRAN_BELIRLE
            karakter="I"
            GOSUB EKRAN_BELIRLE
            karakter=" "
            GOSUB EKRAN_BELIRLE
        CASE 4
            karakter="c"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
            karakter="s"
            GOSUB EKRAN_BELIRLE
            karakter="B"
            GOSUB EKRAN_BELIRLE
        CASE 5
            karakter="P"
            GOSUB EKRAN_BELIRLE
            karakter="E"
            GOSUB EKRAN_BELIRLE
            karakter="R"
            GOSUB EKRAN_BELIRLE
            karakter="s"
            GOSUB EKRAN_BELIRLE
            karakter="B"
            GOSUB EKRAN_BELIRLE
        CASE 6
            karakter="C"
            GOSUB EKRAN_BELIRLE
            karakter="U"
            GOSUB EKRAN_BELIRLE
            karakter="M"
            GOSUB EKRAN_BELIRLE
            karakter="A"
            GOSUB EKRAN_BELIRLE
            karakter=" "
            GOSUB EKRAN_BELIRLE
        CASE 7
            karakter="C"
            GOSUB EKRAN_BELIRLE
            karakter="U"
            GOSUB EKRAN_BELIRLE
            karakter="M"
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="T"
            GOSUB EKRAN_BELIRLE
        CASE ELSE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE
            karakter="."
            GOSUB EKRAN_BELIRLE                                                 
    END SELECT         

return

;-------------------------------------------------------------------------------
SAAT_AYAR_EKRAN:   ;SAAT AYAR

    INDEX2=0
    ;AYARDA SAAT FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=SAAT DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=SAAT DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="S"
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
    SINYAL=SINYAL+1
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
SAAT_AYAR_EKRAN2:   ;DAKIKA AYAR
    INDEX2=0
    ;AYARDA DAKIKA FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=DAK DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=DAK DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="D"
    GOSUB EKRAN_BELIRLE
    karakter="K"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
TARIH_AYAR_GOSTER1:
    INDEX2=0
    ;AYARDA GUN FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=GUN DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=GUN DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="G"
    GOSUB EKRAN_BELIRLE
    karakter="N"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
    SINYAL=SINYAL+1
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
TARIH_AYAR_GOSTER2:

    INDEX2=0
    ;AYARDA AY FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=AY DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=AY DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="A"
    GOSUB EKRAN_BELIRLE
    karakter="Y"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
TARIH_AYAR_GOSTER3:
    INDEX2=0
    ;AYARDA YIL FLASH YAP
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        karakter=YIL DIG 1
        GOSUB EKRAN_BELIRLE
        karakter=YIL DIG 0
        GOSUB EKRAN_BELIRLE
        ELSE
        karakter=" "
        GOSUB EKRAN_BELIRLE
        karakter=" "
        GOSUB EKRAN_BELIRLE
    ENDIF
   
    karakter=" "
    GOSUB EKRAN_BELIRLE
    karakter="Y"
    GOSUB EKRAN_BELIRLE
    karakter="L"
    GOSUB EKRAN_BELIRLE
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster
RETURN
;-------------------------------------------------------------------------------
HAFTA_GUN_AYAR: ;GUN AKTAR
    INDEX2=0 
    IF SINYAL>40 THEN SINYAL=0
    IF SINYAL<20 THEN
        GOSUB HAFTA_GUN_AL
        ELSE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
        karakter=" " : GOSUB EKRAN_BELIRLE
    ENDIF 
   
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
   
    SINYAL=SINYAL+1
   
    gosub tara ;Verileri goster

RETURN

;-------------------------------------------------------------------------------
AYAR:

GOSUB AYAR_GEL
WHILE SET=0:WEND
HOUR:
       IF SET=0 THEN MINBIR
       IF ART=0 THEN SAAT=SAAT+1
       IF SAAT=24 THEN SAAT=0       
       IF AZL=0 THEN SAAT=SAAT-1
       IF SAAT=255 THEN SAAT=23
       
       WHILE ART=0:WEND
       WHILE AZL=0:WEND
       GOSUB SAAT_AYAR_EKRAN
       GOTO  HOUR
MINBIR:
       GOSUB SAAT_AYAR_EKRAN2
       WHILE SET=0:WEND
MINUTE:       
        IF SET=0 THEN TAR
        IF ART=0 THEN DAK=DAK+1
        IF DAK=60 THEN DAK=0
        IF AZL=0 THEN DAK=DAK-1
        IF DAK=255 THEN DAK=59 
       
        WHILE ART=0:WEND
        WHILE AZL=0:WEND           
        GOSUB SAAT_AYAR_EKRAN2
        GOTO  MINUTE 
       
TAR:   
        gosub TARIH_AYAR_GOSTER1
        WHILE SET=0:WEND

DAY: 
       IF SET=0 THEN TAR1
       IF ART=0 THEN GUN=GUN+1
       IF GUN=32 THEN GUN=1       
       IF AZL=0 THEN GUN=GUN-1
       IF GUN=0 THEN GUN=31
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB TARIH_AYAR_GOSTER1
       GOTO  DAY
TAR1:
        GOSUB TARIH_AYAR_GOSTER2
        WHILE SET=0:WEND
MOUNT: 
       IF SET=0 THEN TAR2
       IF ART=0 THEN AY=AY+1
       IF AY=13 THEN AY=1       
       IF AZL=0 THEN AY=AY-1
       IF AY=0 THEN AY=12
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB TARIH_AYAR_GOSTER2
       GOTO  MOUNT
TAR2:
        GOSUB TARIH_AYAR_GOSTER3
        WHILE SET=0:WEND
YEAR: 
       IF SET=0 THEN HAF2
       IF ART=0 THEN YIL=YIL+1
       IF YIL=56 THEN YIL=0       
       IF AZL=0 THEN YIL=YIL-1
       IF YIL=255 THEN YIL=55
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB TARIH_AYAR_GOSTER3
       GOTO  YEAR
HAF2:
        GOSUB HAFTA_GUN_AYAR
        WHILE SET=0:WEND
HAF_GUN: 
       IF SET=0 THEN KAYIT
       IF ART=0 THEN HAFTA=HAFTA+1
       IF HAFTA=8 THEN HAFTA=1       
       IF AZL=0 THEN HAFTA=HAFTA-1
       IF HAFTA=0 THEN HAFTA=7
       WHILE ART=0:WEND
       WHILE AZL=0:WEND 
       GOSUB HAFTA_GUN_AYAR
       GOTO  HAF_GUN             

RETURN
;-------------------------------------------------------------------------------
KAYIT:

    LED=1
    GOSUB ZAMAN_YAZ
    PAUSE 10
    WHILE SET=0:WEND
    LED=0
    GOSUB AYARLANDI_GEL 
           
GOTO BASLA   

;-------------------------------------------------------------------------------
AYAR_GEL:  'karekterleri direk yaz

    GOSUB TEMIZLE  ;icerigi temizle           
    INDEX2=0
    for YAZI=0 to 4
        lookup2 YAZI,["AYAR "],karakter         
        GOSUB EKRAN_BELIRLE         
    next YAZI
    for say1=0 to 23 ;SATIR sayısı kadar don
        Dizi[say1]=Mem[say1] ;MEM in degiskenlerini DIZI ye aktar
    next say1
    gosub tara ;Verileri goster
    for C=0 to 100 ;EKRANDA BEKELT               
        gosub Tara
    next C
       
RETURN

;-------------------------------------------------------------------------------
AYARLANDI_GEL:

    GOSUB TEMIZLE     
       
    INDEX2=0
    for YAZI=0 to 4
        lookup2 YAZI,["TAMAM"],karakter       
        GOSUB EKRAN_BELIRLE         
    next YAZI
    for say1=0 to 23
        Dizi[say1]=Mem[say1]
    next say1
    gosub tara
    for C=0 to 100             
        gosub Tara
    next C   

RETURN

;-------------------------------------------------------------------------------
;                              ANIMASYONLAR
;-------------------------------------------------------------------------------

LAZER_GEL:    'lazer sol

    GOSUB TEMIZLE
   
    J=24
    for E=0 to 23
        for say1=J to 0 step-1 
            dizi[say1]=Mem[J]
        next say1
        for M=0 to 3             
            gosub tara
        next M
        J=J-1
        if J=0 then J=24
    next E

return

;-------------------------------------------------------------------------------
SOLDAN_GEL: ;metni soldan saga kaydır

    GOSUB TEMIZLE
   
    say2=24   
   
    for P=0 to 23
        for say1=0 to 23
            dizi[say1]=Mem[SAY2+say1]
        next say1 
        for C=0 to 2  ;KAYMA HIZI
            Gosub Tara
        NEXT C
        SAY2=SAY2-1
        if SAY2=0 then SAY2=24
    next P

return

;-------------------------------------------------------------------------------
USTTEN_GEL: ;YUKARIDAN GEL

    gosub TEMIZLE
   
    for P=6 to 0 step-1
        for L=0 to 23     
            dizi[L]=mem[L]>>P
        next L
        for M=0 to 2
            gosub tara                 
        next M 
    next P 

RETURN

;-------------------------------------------------------------------------------
ALTTAN_GEL: 'aşağıdan ortalayarak gel dur

    gosub TEMIZLE
   
    for P=7 to 0 step-1 
        for L=0 to 24
            dizi[L]=mem[L]<<P
        next L
        for M=0 to 2
            gosub tara                 
        next M
    next P
 
RETURN

;-------------------------------------------------------------------------------
ICDEN_DISA_GEL: ;DISDAN ICE GEL

    gosub TEMIZLE
   
    J=12
    E=12                       
    for L=0 to 11                     
        dizi[J]=mem[J]
        dizi[E]=mem[E]
        for M=0 to 2
            gosub tara                 
        next M
        J=J-1
        E=E+1
    next L

RETURN

;-------------------------------------------------------------------------------
DISDAN_ICE_GEL: ;İCDEN DISA GEL

    gosub TEMIZLE
   
    J=23
    E=0                       
    for L=12 to 0 STEP-1                     
        dizi[J]=mem[J]
        dizi[E]=mem[E]
        for M=0 to 2
            gosub tara                 
        next M
        J=J-1
        E=E+1
    next L

RETURN

;-------------------------------------------------------------------------------
KELIME_GEL: 'KELIME KELIME GEL

     gosub TEMIZLE
     
        for P=7 to 0 step-1
            for L=0 to 12   
                dizi[L]=mem[L]>>P ; ilk hece yukardan in
            next L
            for L=12 to 23
                dizi[L]=mem[L]<<P ; ilk hece yukardan in
            next L
            for M=0 to 3
                gosub tara                 
            next M
        next P
    GOSUB EKRAN_BEKLET
   
RETURN

;-------------------------------------------------------------------------------
TEK_TEK_GEL: ' tek tek gel sağdan-sola

    GOSUB TEMIZLE
     
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1     
            for L=d to a
                dizi[L]=mem[L]
            next L
            for c=0 to 1   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        for P=3 to 0 step-1       
            for L=d to a
               dizi[L]=mem[L]
            next L               
            for c=0 to 1   
                GOSUB TARA
            next c
        next P
        if a=24 then
           a=3:d=0
        endif
    next H

RETURN

;-------------------------------------------------------------------------------
USTTEN_EKLENEREK_GEL:       'tek tek üstten gel yan yana dizil

    gosub TEMIZLE
   
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1   
            for L=d to a
                dizi[L]=mem[L]>>P
            next L
            for c=0 to 2   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        if a=24 then
           a=3:d=0
        endif
    next H
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
ALTTAN_EKLENEREK_GEL:       'tek tek ALTTAN gel yan yana dizil

    gosub TEMIZLE
   
    a=3:d=0
    for H=0 to 4
        for P=3 to 0 step-1   
            for L=d to a
                dizi[L]=mem[L]<<P
            next L
            for c=0 to 2   
                GOSUB TARA
            next c
        next P
        a=a+5
        d=d+5
        if a=24 then
           a=3:d=0
        endif
    next H
   
    GOSUB EKRAN_BEKLET

RETURN

;******************************SILME ANIMASYONLARI*****************************

KELIME_SIL: ;KELIME KELIME SIL

    for P=0 to 7 
        for L=0 to 12
        dizi[L]=mem[L]>>P
        next L
        for L=12 to 23
        dizi[L]=mem[L]<<P
        next L
        for M=0 to 1
        gosub tara                 
        next M
    next P
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
SOLDAN_SIL:

    for L=0 to 23  ;soldan saga dogru sil
        DIZI[L]=0
        for M=0 to 1
            gosub tara                 
        next M
    next L
   
    GOSUB EKRAN_BEKLET

RETURN

;-------------------------------------------------------------------------------
SAGDAN_SIL:

    for L=23 to 0 STEP -1  ;soldan saga dogru sil
        DIZI[L]=0
        for M=0 to 1
            gosub tara                 
        next M
    next L
   
    GOSUB EKRAN_BEKLET

RETURN
;-------------------------------------------------------------------------------

ASAGIYA_SIL: ;ASAGIYA DOGRU SIL

    for P=0 to 10     
        for L=0 to 23
            dizi[L]=mem[L]<<P
        next L       
        for C=0 to 1 ;EKRANDA BEKELT               
            gosub Tara
        next C
    next P
   
RETURN

;-------------------------------------------------------------------------------
ASAGIYA_TEK_SIL: ;TEKTEK ASAGIYA DOGRU SIL

    a=4:d=0 
    for H=0 to 4 ;MATRİX SAYISI
        for P=0 to 7   
           
            for L=d to a
                dizi[L]=mem[L]<<P
            next L
                                 
            for M=0 to 1
                gosub tara                 
            next M
           
        next P
        a=a+5
        d=d+5
        if a=20 then
           a=4:d=0
        endif
    next H


RETURN

;-------------------------------------------------------------------------------
YUKARI_ASAGI_SIL:  'TEKER TEKER yukarı asagi SIL
     
    a=4:d=0
    B=5:I=9
   
    for E=0 to 3           
        for C=0 to 7     
            for L=d to a  'ilk karakter yukarı
            dizi[L]=mem[L]>>C
            next L
            for M=0 to 1 'sabit durma suresi               
                gosub tara
            next M
        next C   
       
        a=a+10   
        d=d+10
       
        for C=0 to 7
            for L=B to I 'ikinci karakter aşağı
                dizi[L]=mem[L]<<C
            next L
            for M=0 to 1                 
                gosub tara
            next M
        next C
       
        B=B+10
        I=I+10
       
        if B=24 then
           a=4:d=0:B=5:I=9
        endif
       
    next E

RETURN

;-------------------------------------------------------------------------------
YUKARI_TEK_SIL:  'TEKER TEKER yukarı asagi SIL
     
    a=4:d=0 
    for H=0 to 4 ;MATRİX SAYISI
        for P=0 to 7   
           
            for L=d to a
                dizi[L]=mem[L]>>P
            next L
                                 
            for M=0 to 1
                gosub tara                 
            next M
           
        next P
        a=a+5
        d=d+5
        if a=20 then
           a=4:d=0
        endif
    next H

RETURN

;-------------------------------------------------------------------------------
YUKARIYA_SIL: ;YUKARIYA DOGRU SIL

    for P=0 to 8     
        for L=0 to 23
            dizi[L]=mem[L]>>P
        next L       
        for C=0 to 1 ;EKRANDA BEKELT               
            gosub Tara
        next C 
    next P
   
RETURN

;-------------------------------------------------------------------------------
ICDEN_DISA_SIL:

    J=12
    E=12
                         
    for L=0 to 12                               
        dizi[J]=$00
        dizi[E]=$00                             
            for M=0 to 1
                gosub tara                 
            next M               
        J=J+1
        E=E-1
    next L             

RETURN

;-------------------------------------------------------------------------------
DISDAN_ICE_SIL:

    J=24
    E=0
                         
    for L=0 to 12                                 
        dizi[J]=$00
        dizi[E]=$00                             
            for M=0 to 1
                gosub tara                 
            next M               
        J=J-1
        E=E+1
    next L             

RETURN

;-------------------------------------------------------------------------------
TEMIZLE:

   for say1=0 to 23  ;24 ADET DİZİNİ 0 LA
       dizi[say1]=$00
   next say1
   
return

;-------------------------------------------------------------------------------
HAFIZA_SIL:

     for N =0 to 47  ;48 ADET GECİCİ DİZİNİ 0 LA
         mem[N]=0
     next N

RETURN


;-------------------------------------------------------------------------------
;                           KAREKTER BELIRLEME
;-------------------------------------------------------------------------------
EKRAN_BELIRLE:

      GOSUB ARA     ;KAREKTER BASLANGIC YERINI BELIRLE
      TEMP=YERI     ;BASLANGIC YERINI SABIT TUT
     
      FOR F=0 to 4  ;4X7 ICIN KAREKTER UZUNLUĞU KADAR DONGU KUR
        YERI=TEMP+F ;KAREKTERIN BİR SONRAKI BITI İÇİN
        GOSUB tablo ;KAREKTERIN BIT LERINI BELIRLE
        GOSUB ATA   ;GECICI DIZI DEGISKENİNE AKTAR
      next F

RETURN

;-------------------------------------------------------------------------------
ATA:
             
    mem[INDEX2]=veri   ;GECICI DIZI DEGISKENİNE AKTAR
    INDEX2=INDEX2+1    ;GECICI DIZI INDEXINI 1 ARTIR
                           
return

;-------------------------------------------------------------------------------
EKRAN:

    for say1=0 to 23         ;SATIR SAYISI KADAR DON   
        Dizi[say1]=Mem[say1] ;GECICI DIZIYI KULLANILACAK DIZINE AKTAR
    next say1
           
    for C=0 to 10            ;C KADAR EKRANDA BEKELT         
        gosub Tara
    next C

RETURN

;-------------------------------------------------------------------------------
EKRAN_BEKLET:
    for C=0 to 50           ;EKRANDA BEKELT EXTRA             
         gosub Tara
    next C
RETURN

;-------------------------------------------------------------------------------**
ARA:
    select case karakter
                case 0:YERI=0:return
                case 1:YERI=5:return
                case 2:YERI=10:return
                case 3:YERI=15:return
                case 4:YERI=20:return
                case 5:YERI=25:return
                case 6:YERI=30:return
                case 7:YERI=35:return
                case 8:YERI=40:return
                case 9:YERI=45:return
               
                case "+":YERI=50:return
                case "-":YERI=55:return
                case ".":YERI=60:return
                case ":":YERI=65:return
                case "*":YERI=70:return
                case " ":YERI=75:return
               
                case "A":YERI=80:return
                case "B":YERI=85:return
                case "C":YERI=90:return
                case "c":YERI=95:return
                case "D":YERI=100:return
                case "E":YERI=105:returN
                case "G":YERI=110:return
                case "I":YERI=115:return
                case "i":YERI=120:return
                case "K":YERI=125:return
                case "L":YERI=130:return
                case "M":YERI=135:return
                case "N":YERI=140:return
                case "P":YERI=145:return
                case "R":YERI=150:return
                case "S":YERI=155:return
                case "s":YERI=160:return
                case "T":YERI=165:return
                case "U":YERI=170:return
                case "Y":YERI=175:return
                case "Z":YERI=180:return
    end select
return

;-------------------------------------------------------------------------------   
TABLO:

lookup YERI,[_
              $3E,$41,$41,$3E,$00_   ;0
             ,$00,$42,$7F,$40,$00_   ;1
             ,$72,$49,$49,$46,$00_   ;2
             ,$22,$49,$49,$36,$00_   ;3
             ,$1F,$10,$7C,$10,$00_   ;4
             ,$27,$45,$45,$39,$00_   ;5
             ,$3E,$49,$49,$32,$00_   ;6
             ,$01,$79,$05,$03,$00_   ;7
             ,$36

saylan

#74
selamün aleyküm çok güzel ve açık bir proje olmuş teşekkürler

Powered by EzPortal