Satır Taramalı Kayan Yazı

Başlatan meyer, 18 Aralık 2011, 15:01:38

ete

Mucit,
İyi bir kayan yazı sistemi iyi bir uygulama şeması ister. Bu uyguladığın şema iyi değil. Neden not kullandın anlamadım. Bilgiyi terleyerek not dan kurtulabilirdin. Biliyorsun ne kadar az malzeme kullanırsan o kadar iyi olur.

Programa gelince kısmen benim yazdığım kısmenda bir başka arkadaşın yazmış olduğu bu kodlarda bir kayan yazı sistemi için mükemmel değil. Sende aksi gibi onu örnek almışsın. Bu programdan örnek alınacak algoritma lar var elbette.
Her şeyden önce kaydırma tipi olarak satır kaydırma modelini seçmen gerekiyor. En iyisi o ve daha iyiside yok maalesef.
Sütunkaydırma en kolayı ancak pratikte en zor çalışan model. Bu nedenle bilgiyi , kaç sütunluk devre yapacak isen o kadar sütun boyunca satırdan vermeli,  taramayı ise sütundan yapmalısın.  Mademki bir proje yapmak için yola çıktın işin başında iken sistemini değiştirmeni öneriyorum. Kayan yazılardan nefret ettiğimi sürekli yineliyorum. Ancak yeni ve değişik bir şey olursa bakma ihtiyacını yada ilgilenme ihtiyacını duyuyorum. Yoksa en basit sistemi bile anlayabilmek için önce şemayı anlamak sonrada programı inceleyip kimin ne yaptığını anlamak gerekiyor. Seninde tespit ettiğin gibi yaptığın bağlantıdan bir şey anlamak mümkün değil. İsisde matrixlerin bağlantılarında sorun yok aslında. Piyasadan alacaklarında aynı özellikleri taşıyorlar. Bu matirksler bir taraftan ortak katod diğer taraftanm ortak anot dur.  Sen devrende ortak anot tarafını tarama ucu olarak kullanmışsın. Katod dan sütun bilgisi vermişsin. Matriksi ter çevirsen ortak katod tarama ucu , diğer taraftan da satır bilgisi verilirdi.

Ete



Mucit23

#91
Aslında hocam Ben şemayı yazılımda min değişiklik yapacak şekilde düzenliyorum. Deneme yanılma yöntemi yani. Anlamsız işler çıkıyor.
Hocam tek bir matrix kullanacağım. Bu yüzden en az malzeme ile işi bitirmek istiyorum. İlk önce şema kurmaktan başlıyayım
Aşağıdaki gibi bir şema kurdum

image host
Yukarıdaki şemada Satırlarda Ledlerin anodu sütünlarda ise ledlerin katodu var yani ortak katot olacak şekilde yaptım. satırlara 1 sütünlara 0 verilirse ledler yanıyor.

Eğer sıfırdan program yazmam gerekiyorsa biraz desteğinize ihitiyacım var. Beni sadece yönlendirin. Ne yapmam gerektiğini söyleyin yeter. Daha önce hiç kayan yazı için yazılım yazmadım.
Yukarıdaki şemada uygunmudur. Yazılıma ilk olarak nereden başlamalıyım.

Bu arada hocam farkında olmadan konuyu kirletiyorum. Yeni bir başlık açmaya gerek varmıdır ?
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ELZEMEFE

#92
arkadaşlar bekleyin beni yaa ... şimdş bunu da  kaçırırsam daha  da  öğrenemicem yaa.. hemen başlamayalım .. bi kaç kişi önce en iyi donanımı tartışalım  ve ona göre bi donanım  çıksın işi bilen
arkadaşların fikirleri  önemli kayan yazı  konsunda tecrübeleri var ona göre bişey tasarlayalım
adım adım gitsinki hem bişeyler anlaşılsın hemde  ortaya kaliteli bişey  çıksın.. haksızmıyım ...

ilk fikirler mesela TPIC595  kullanmak
                           satır taramalı olması
                           18f serisi BİR  PIC kullanmak
                           türkçe karakterler  olması
                           harici eprom kullanmak
gibi fikirler  öenmli bence 

Mucit23

#93
En iyi donanım demiyelimde en işlevsel donanım dersek daha iyi olur. Ete hocamız demiş zaten. Bilgi satırdan verilip sütünların taranması en sağlıklı çalışanı. Satır bilgisi kaydırılması gerekiyor. Yazılımsal olarak sistemi oturttuktan sonra   donanımıda satır ve sütün sayısına göre değiştirrisiniz. Donanımın gücü satır ve sütün sayısına göre ayarlanmalı.  Örneğin Bazı büyük kayan yazılarda tek pixel de 3 bazen 4 led kullanabiliyorlar. Sonuçta yazılım aynı değilmi sadece donanımın gücü değişiyor.

Hocam bundan önceki yazılımlarda satır kaydırmalı değilmiydi. Eğer öyleyse yazılımda pekde bi değişiklik olmayacak. Biraz yapısı değişecek herhalde.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Mucit23

hocam galiba işi çözdüm :) Kafaya koymuştum yazıyı bugün kaydıracam diye. Bu gün geç oldu. simülasyonda çalıştırdım. işin mantığını yavaş yavaş anlıyorum. Özellikle yazılımdaki püf noktaları iyice kavradım sayılır. Yazıyı kaydırabildim.Fakat bazı problemler vardı.

Birincisi harfler ters çıkıyordu. Yani ayna görünümü değilde tepe takla olmuş şekilde çıkıyordu. Bende bunu çözmek için harf tablosundan okunan veriyi REV işlemine tabi tutarak bitlerin yerini değiştirdim. Bu şekilde bunuda çözmüş oldum.

Diğer bir sorun ise yazının kayma şeklinin soldan sağa doğru olmalıydıki zaten tarama sırasını değiştirerek onu çözdüm.

Birbaşka sorun ise harflerin bu sefer alt satıra dayalı olarak çıkmasıydı.  Bende okuduğum veriyi 1 adet sağa kaydırarak onuda çözdüm.

Şimdi yazı normal şekilde sağdan sola doğru kayıyor. Fakat isiste yazı doğru düzgün çıkmıyor. Sanırım Tek display olduğu için gözler yazıyı takip etmekte zorlanıyor. Gerçekte devreyi kurarsam dahada netleşir galiba.

Yukarıda verdiği şemaya göre yazılımı bu şekilde düzenledim.
DEFINE OSC 4
@ DEVICE pic16F876
@ DEVICE pic16F876, WDT_ON
@ DEVICE pic16F876, PWRT_ON
@ DEVICE pic16F876, PROTECT_OFF
@ DEVICE pic16F876, XT_OSC

ADCON1=7
;___________________________PROGRAMDA KULLANILAN DEĞİŞKEN TANIMLAMALARI________________
                                                                                       ;
SUTUN        VAR BYTE[7]                                                               ;
VERI         VAR BYTE
YRDPORT      VAR BYTE
BUFFER       VAR BYTE
GONDER       VAR BYTE                                                                  ;
KARAKTER     VAR BYTE                                                                   ;
SAYICI       VAR BYTE                                                                   ;
SIRA_NO      VAR BYTE                                                                   ;
SUTUN_SAYISI VAR BYTE                                                                   ;
SUTUN_SAYAC  VAR BYTE                                                                 ;
OFSET        VAR BYTE                                                                   ;
LINE         VAR BYTE
X            VAR BYTE                                                                ;
J            var byte                                                                   ;
I            var byte
s1           var byte
s2           var byte
s3           var byte


A VAR BYTE                                                   ;
       '"*****************************************************************************************************************************"
;DATA @0,"ETE PICMAN KAYAN YAZI PROGRAMI DENEME YAZISIDIR. TOPLAM KAREKTER ADEDI 127 ADET OLABILIR. MATRIKS SAYISI ARTIRILABILMEKTEDIR",5

DATA @0,"KAYAN YAZI DEVRESiDiR YAZILIM FERHAT YOL",5
;______________________________________________________________________________________;

;______________TIMER INTERRUPT IÇİN OPTION VE INTCON REGISTERLERI KURULUYOR____________
                                                                                       ;
'           OPTION_REG = $15 ;Option registeri kur                                                          ;
'           INTCON = $a0     ;TMR0 interrupt aktif                                                          ;
'           ON INTERRUPT GOTO TMR_INT                                                  ;
;______________________________________________________________________________________;

;_________________________PORT AYAR VE DEĞİŞKEN İLK DEĞER ATAMALARI____________________                     
  TRISA=0              ;porta çıkış olarak ayarlanıyor
  TRISB=0              ;portb çıkış olarak ayarlanıyor
  TRISC=0
  PORTC=0
  PORTB=0              ;portb yi sıfırla
  PORTA=0              ;porta yı sıfırla
  J=0                  ;j değişkenini sıfırla
  I=0                  ;ı değişkenini sıfırla
  SUTUN_SAYISI=0       ; sutun sayısı değişkenini sıfırla       
  SUTUN_SAYAC=0        ;sutun sayac değişkenini sıfırla

MAIN:                    ;program başlangıcı
    GOSUB SUTUN_TEMIZLE  ;sutun değişkenlerini temizleme alt programına git
BASLA:                   ;ana döngü etiketi             
    GOSUB TARA           ;sutun tarama alt programına git
    gosub VERI_GOSTER
GOTO BASLA              ;tarama işleminin sürekliliği için başla etiketine git

;_______________________SUTUN TEMİZLEME ALT NPROGRAMI___________________________
SUTUN_TEMIZLE:
  FOR I = 0 TO 7         ;8 sutun için döngü
    SUTUN[I]=0           ;her döngüde i degisken degerine göre bir sutun temizlenir
  NEXT I                 ; döngü başına git
  RETURN                 ;sutun temizleme alt programından çık
;_______________________________________________________________________________

;_________________________SUTUN TARAMA ALT PROGRAMI_____________________________
TARA:
  X=128     
  FOR I = 0 TO 7       ;sutun taraması için döngü
     PORTB=SUTUN[I]
     PORTC=255-X
     X=X/2
     PAUSE 10
   NEXT I                 ;döngü başına git
   PORTC=0
   PORTB=0                ;PORTB yi sıfırla
   I=0                    ;i degişkenini sıfırla
RETURN

;_______________________________________________________________________________

;_______________________________TMR0 INTERRUPT ALT PROGRAMI_____________________
'DISABLE                 ;bütün kesmeleri geçersiz yap
' TMR_INT:
'  SAYICI=SAYICI+1       ;sayıcı değişkenini bir artır
'  IF SAYICI <= 11 THEN  INT_CIK  ;sayıcı 30 mu? değilse ınt_cık etiketine git
'  SAYICI=0              ; evet sayıcıyı sıfırla
'  GOSUB VERI_GOSTER     ;veri göster alt programına git
'  INT_CIK:              ; sayıcı 30 a eşit değilse program buraya yönlenir
'  INTCON.2=0            ;
'  RESUME                ;timer interrupt alt programından çık
'ENABLE
'return
;_______________________________________________________________________________
   
VERI_GOSTER:;___________________________________________________________________
  GOSUB KARAKTER_AL                           ;TABLODAN KARAKTER AL                                                                         ;
  GOSUB SENTEZ                                ;SENTEZ ALT PROGRAMINA GIT                      ;
  IF ( SUTUN_SAYAC = SUTUN_SAYISI ) THEN      ;sutun sayac , sutun sayısı na eşitmi
      GOSUB KAYDIR                            ; evet , kaydır alt programına git                           ;
      SUTUN[0]=0                              ;sutun0 ı sıfırla                                                  ;                                                                              ;
      SUTUN_SAYAC=0                           ;sutun sayac değişkenini sıfırla                                                 ;
      LINE=0                                                                                     ;
      J=J+1                                                                                      ;
   ENDIF
'  pause 200                                                                                      ;
RETURN;______________________________________________________________________________________;     
 
KARAKTER_AL:;_______________J DEGİSKEN DEGERİNE GÖRE KARAKTER ALINIYOR________________________
    READ J,KARAKTER                                                        ;
RETURN;______________________________________________________________________________________; 

SENTEZ:;_________________________________ALINAN KARAKTER BİLGİSİ KARŞILAŞTIRILIYOR____________
  IF KARAKTER=5 THEN SON_KARAKTER
 
  SELECT CASE KARAKTER
    CASE 65: SIRA_NO=4     ;A
    CASE 66: SIRA_NO=9     ;B
    CASE 67: SIRA_NO=14    ;C
    CASE 68: SIRA_NO=19    ;D
    CASE 69: SIRA_NO=24    ;E
    CASE 70: SIRA_NO=29    ;F
    CASE 71: SIRA_NO=34    ;G
    CASE 72: SIRA_NO=39    ;H
    CASE 73: SIRA_NO=42    ;I
    CASE 74: SIRA_NO=47    ;J
    CASE 75: SIRA_NO=52    ;K
    CASE 76: SIRA_NO=57    ;L
    CASE 77: SIRA_NO=62    ;M
    CASE 78: SIRA_NO=67    ;N
    CASE 79: SIRA_NO=72    ;O
    CASE 80: SIRA_NO=77    ;P
    CASE 81: SIRA_NO=82    ;Q
    CASE 82: SIRA_NO=87    ;R
    CASE 83: SIRA_NO=92    ;S 
    CASE 84: SIRA_NO=97    ;T 
    CASE 85: SIRA_NO=102   ;U 
    CASE 86: SIRA_NO=107   ;V
    CASE 87: SIRA_NO=112   ;W
    CASE 88: SIRA_NO=117   ;X
    CASE 89: SIRA_NO=122   ;Y
    CASE 90: SIRA_NO=127   ;Z
    CASE 32: SIRA_NO=132 ;BOSLUK   
    CASE 48: SIRA_NO=137 ;0 
    CASE 49: SIRA_NO=140 ;1
    CASE 50: SIRA_NO=145 ;2
    CASE 51: SIRA_NO=150 ;3
    CASE 52: SIRA_NO=155 ;4
    CASE 53: SIRA_NO=160 ;5
    CASE 54: SIRA_NO=165 ;6 
    CASE 55: SIRA_NO=170 ;7
    CASE 56: SIRA_NO=175 ;8 
    CASE 57: SIRA_NO=180 ;9
    CASE 46: SIRA_NO=185 ;.
    CASE 199:SIRA_NO=190 ;Ç
    case 208:sira_no=195 ;Ğ
    case 221:sira_no=198 ;İ
    case 214:sira_no=203 ;Ö
    case 220:sira_no=208 ;Ü
    case 222:sira_no=213 ;Ş

  end select   
  IF ((KARAKTER=49) OR (KARAKTER=73) OR (karakter=221)) THEN
    SUTUN_SAYISI=3
   ELSE
    SUTUN_SAYISI=5
  ENDIF
  SUTUN_SAYAC=SUTUN_SAYAC+1     
  GOSUB ORT_ISLM
RETURN

SON_KARAKTER:
     VERI=0 : SUTUN_SAYISI=0 :  LINE=0 : SUTUN_SAYAC=0 : KARAKTER=0 : SUTUN_SAYISI=0 : J=0
RETURN
     ;__________________________________SENTEZ ALT PROGRAM SONU_______________________ 
 
ORT_ISLM:
  OFSET= SIRA_NO-LINE
  GOSUB TABLO
  VERI=VERI REV 8
  VERI=VERI>>1
  GOSUB KAYDIR
  LINE=LINE+1
RETURN

KAYDIR:
;s1=7:s2=6 
;         for s3= 0 to 6         ;7 DEFA DÖNGÜ KURULDU.
;          sutun[s1] = sutun[s2]
;          s1=s1-1 : s2=s2-1
;         next
         SUTUN[7]=SUTUN[6]
         SUTUN[6]=SUTUN[5]
         SUTUN[5]=SUTUN[4]
         SUTUN[4]=SUTUN[3]
         SUTUN[3]=SUTUN[2]
         SUTUN[2]=SUTUN[1]
         SUTUN[1]=SUTUN[0]
         sutun[0]=veri
         PAUSEUS 1000 
RETURN

;SUTUN7=SUTUN6
;SUTUN6=SUTUN5
;SUTUN5=SUTUN4
;SUTUN4=SUTUN3
;SUTUN3=SUTUN2
;SUTUN2=SUTUN1
;SUTUN1=SUTUN0
;SUTUN0=veri
TABLO:
   LOOKUP OFSET,[_
   $3F,$48,$48,$48,$3F,_      ;A   0-4
   $36,$49,$49,$49,$7F,_      ;B   4-9
   $22,$41,$41,$41,$3E,_      ;C   9-14
   $3E,$41,$41,$41,$7F,_      ;D   14-19
   $41,$49,$49,$49,$7F,_      ;E   19-24
   $40,$48,$48,$48,$7F,_      ;F   24-29
   $2E,$49,$49,$41,$3E,_      ;G   29-34
   $7F,$08,$08,$08,$7F,_      ;H   34-39
   $41,$7F,$41,_              ;I   39-42
   $40,$7E,$41,$01,$02,_      ;J   42-47
   $41,$22,$14,$08,$7F,_      ;K   47-52
   $01,$01,$01,$01,$7F,_      ;L   52-57
   $7F,$20,$10,$20,$7F,_      ;M   57-62
   $7F,$04,$08,$10,$7F,_      ;N   62-67
   $3E,$41,$41,$41,$3E,_      ;O   67-72
   $30,$48,$48,$48,$7F,_      ;P   72-77
   $3D,$42,$45,$41,$3E,_      ;Q   77-82
   $31,$4A,$4C,$48,$7F,_      ;R   82-87
   $26,$49,$49,$49,$32,_      ;S   87-92
   $40,$40,$7F,$40,$40,_      ;T   92-97
   $7E,$01,$01,$01,$7E,_      ;U   97-102
   $7C,$02,$01,$02,$7C,_      ;V   102-107
   $7E,$01,$0E,$01,$7E,_      ;W   107-112
   $63,$14,$08,$14,$63,_      ;X   112-117
   $70,$08,$07,$08,$70,_      ;Y   117-122
   $61,$51,$49,$45,$43,_      ;Z   122-127
   $00,$00,$00,$00,$00,_      ;bosluk   127-132
   $3E,$51,$49,$45,$3E,_      ;0   132-137
   $01,$7F,$21,_              ;1   137-140
   $31,$49,$45,$43,$21,_      ;2   140-145   
   $46,$69,$51,$41,$42,_      ;3   145-150
   $04,$7F,$24,$14,$0C,_      ;4   150-155
   $4E,$51,$51,$51,$72,_      ;5   155-160
   $06,$49,$49,$29,$1E,_      ;6   160-165
   $60,$50,$48,$47,$40,_      ;7   165-170
   $36,$49,$49,$49,$36,_      ;8   170-175
   $3C,$4A,$49,$49,$30,_      ;9   175-180
   $00,$00,$00,$00,$01,_      ;.   
   $24,$42,$43,$42,$3c,_      ;Ç   185-190
   $16,$65,$61,$61,$1e,_      ;Ğ   190-195
   $21,$7f,$21,_              ;İ   195-198
   $1e,$61,$21,$61,$1e,_      ;Ö   198-203
   $1e,$41,$01,$41,$1e,_      ;Ü   203-208
   $26,$49,$4b,$49,$32],VERI  ;Ş   208-213
RETURN
   
END   


Kayan yazı devrelerini ilk defa bu kadar iyi anladım özelikle bu algooritma ve çalışma yapısı çok aklıma yattı. Yine ilham perilerimi ateşledi :D
Bunun dışında Sizin gözünüze takılan bişeyler var mı?
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ELZEMEFE

arkadaşlar  hız kesildi bende şu an tasarım aşamasındayım... önce sabit  yazıyı göstermeyi düşünüyorum

meyer

#96
 İyi günler arkadaşlar..
-Programda en son bahsettiğim sorunu biraz düzeltebildim..Öncelikle sorunumuz neydi onu bir hatırlayalım..Sorunumuz ;
Yazdığımız yazının harflerini  harici eepromdan parça parça okuyup ekranda kaydırma yapıyorduk.1.bölümü okuyup kaydırdıktan sonra 2.bölüme geçmeden önce ekradaki bütün ledler yanmakta ve yazıda kesilme olmaktaydı..Yazımızı kaydırken her bölüm arasındaki geçişler bizim için sorun teşkil etmekteydi arkadaşlar..Sorunumuz da buydu..
Bu sorunu bir nebze olsun çözdüm sayılır..1-2 sorunu halen var,onları da düzeltmeye çalışıyorum arkadaşlar...En kısa zamanda onlarıda düzeltebilmeyi umuyorum...
-Devrenin isis devre şemasını,.pbp kodunu ve .hex kodunu da ekte yolluyorum arkadaşlar..
İyi günler dilerim...


'****************************************************************
'*  Name    : MATRIX_PANO_SAAT_ISI_TARIH_GUN_KAYAN_YAZI.BAS     *
'*  Author  : [HAKAN_ÖZKAN]                                     *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 13.01.2012                                        *
'*  Version : 3.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
DEFINE I2C_SLOW 1
'****************************************************************
asm
    __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    __CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_20_2L & _PWRT_OFF_2L
    __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
    __CONFIG _CONFIG3H, _CCP2MX_ON_3H
    __CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
    __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
    __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H
endasm
'********************************************************
INTCON2.7=0   ' PORTB Pull-up Enable bit
INTCON.7 =1   ' GIE : Global Interrupt Enable
INTCON.6 =1   ' PEIE: Peripheral Interrupt Enable
PIE1.5   =1   ' RCIE: USART Receive Interrupt Enable
ADCON0   =0
ADCON1   =7
'****************************************************************
On Interrupt GoTo KESME
'****************************************************************
DEFINE HSERIAL_BAUD  2400
DEFINE HSERIAL_RCSTA %10010000
DEFINE HSERIAL_TXSTA %00100000
DEFINE HSERIAL_CLEAR = On
'****************************************************************
TRISA=255 : TRISB=0 : TRISD=0 : TRISE=0  : TRISC=%10110111   
PORTA=0   : PORTB=0 : PORTD=0 : PORTE=0  : PORTC=0           
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTC.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5                'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'24LC256**********************************************************
SCL      VAR     PORTB.3                ' Clock pin 
SDA      VAR     PORTB.4                ' Data pin                 
'24LC256_DEGISKENLERI*********************************************
adress   VAR     WORD                   ' Adres
B1       VAR     BYTE                   ' Data1
B2       VAR     Byte                   ' Data2
'****************************************************************
NEGAT_ISI CON 1                         ' Negatif_Cold = 1
'****************************************************************
TUS         VAR BYTE
T           VAR Byte
HAM         VAR WORD
ISI         var WORD
rtcsec      VAR BYTE
rtcmin      VAR BYTE
rtchour     VAR BYTE
rtcyear     VAR BYTE
rtcmonth    VAR BYTE
rtcday      VAR BYTE
rtcdate     VAR BYTE
TEMP        VAR BYTE
VERI        VAR BYTE
SAYI        VAR BYTE 
SIGN        VAR BYTE
FLOAT       var BYTE
mem         var byte
BIRLER      VAR BYTE
ONLAR       VAR BYTE
SIGN_BITI VAR HAM.Bit11   '   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
'****************************************************************
SUTUN     var Byte[680]   ' 1497 adet byte tipinde değişken tanımlanabilir.
YEDEK     VAR BYTE[680]
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var WORD
X         var byte
W         var Byte
M         var WORD
G         VAR WORD
o         VAR WORD
'''''''''''''''''''
yazi_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR WORD
B         VAR BYTE
C         VAR BYTE
E         var byte
bilgi     var byte[90]
L         VAR BYTE
F         VAR BYTE
P         VAR BYTE
j         var byte
h         VAR BYTE
d         var bit
K         VAR BIT
u         var bit
V         VAR BIT
n         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
HSEROUT ["KLAVYEDEN GiRiLEN HARFLERiN MATRiX DiSPLAYDE GOSTERiLMESi",13,10]
HSEROUT ["*********************************************************",10]
HSEROUT ["**************************",13,10]
'****************************************************************
GOSUB TEMIZLE : I=0 : D=D+1
'**********Harici_eeprom_temizleme*******************************
'FOR G=0 TO 1000
' BILGI=$FF
'  I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
'  adress=adress+1
' PAUSE 5
'NEXT
'****************************************************************
BASLA:
    IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 : GOTO BASLA
    IF A=0 THEN GOTO BASLA
IF V=1 AND A<84 THEN GOTO KONTROL2
IF V=1 AND A>84 THEN GOTO KONTROL3
GOTO BASLA
'****************************************************************
BASLA1: 
GOTO AA       
''''''''''''''''''''
EE:
M=0 : D=D+1
    IF PORTC.0=1 THEN I=0 : a=0 : adress=0 : GOSUB TEMIZLE : GOTO BASLA
FOR I=0 TO (A*8)-1
    SUTUN[I]=YEDEK[I]
NEXT
''''''''''''''''''''
AA:
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next
M=M+1
IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
    IF M<(A*8) THEN GOSUB sola_kay1 : GOTO AA
    if M<(A*8) then M=0
GOSUB TEMIZLE : I=0
GOTO SAAT_GOSTER
'****************************************************************
BASLA3:
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next
M=M+1
IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
    IF M<(J*8) THEN GOSUB sola_kay3 : GOTO BASLA3
    if M<(J*8) then M=0
GOSUB TEMIZLE : I=0
GOTO SAAT_GOSTER
'****************************************************************
BASLA2:
Y=0 : G=0
    IF n>1 THEN o=589 ': h=83
if p=0 then A=0 : ADRESS=0 : Y=0 : GOTO BASLA3
    if n=1 then adress=72 : o=577 ': h=83
    if n=2 then adress=144
    if n=3 then adress=216
    if n=4 then adress=288
    if n=5 then adress=360
    if n=6 then adress=432
    if n=7 then adress=504
    if n=8 then adress=576
    if n=9 then adress=648
GOTO AA1       
''''''''''''''''''''
EE1:
    IF PORTC.0=1 THEN I=0 : a=0 : adress=0 : GOSUB TEMIZLE : GOTO BASLA
''''''''''''''''''''
AA1:
G=G+1
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next
M=M+1
''''''''''''''
'IF G//8=0 and G<(J*8) THEN
if G//7=0 then
    I2CRead SDA,SCL,$A0,adress,[bilgi[Y]] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1 : Y=Y+1
ENDIF
''''''''''''''
IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
    IF M<o THEN GOSUB sola_kay2 : GOTO AA1   
    if M=o then M=0
'''''
IF N=1 THEN
  FOR X=0 TO 1
    I2CRead SDA,SCL,$A0,adress,[bilgi[Y]] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1 : Y=Y+1
  NEXT
ENDIF
'''''   
GOSUB TEMIZLE
K=0 : I=0
'''''''''''''''''''''''''
p=p-1
Y=0
  FOR X=0 TO 83
    BILGI=BILGI[Y]
     Y=Y+1
        gosub YERAL1
            for Z=0 TO 7
                GOSUB DATA_AL1
                    SUTUN[I]=VERI   
                I=I+1
            yeri=yeri+1
        NEXT   
    next
n=n+1
goto BASLA2
'****************************************************************
TEMIZLE:
FOR I=0 TO 95
SUTUN[I]=$FF
NEXT
GOSUB GOSTER
RETURN
'****************************************************************
KONTROL3:
IF K=1 THEN RETURN
P=B
'P=P+1        ' BU KISMI YENİDEN DUZENLE
F=F+1 : D=D+1 : n=1
HIGH PORTE.1
'IF F=1 THEN adress=0 
adress=0
    IF BILGI=8 THEN GOTO GOSTER3
    FOR X=0 TO 83
''
    I2CRead SDA,SCL,$A0,adress,[bilgi] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1
''
gosub YERAL1
    for Z=0 TO 7
        GOSUB DATA_AL1
            SUTUN[I]=VERI   
            I=I+1
        yeri=yeri+1
    NEXT   
next     
K=K+1
LOW PORTE.1 : low porte.2       
GOTO GOSTER3
'****************************************************************
GOSTER3:
    IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
''''
    FOR Z=0 TO 2
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 1
      Next
    NEXT
GOTO BASLA2     
'****************************************************************
KONTROL2:
IF K=1 THEN RETURN
HIGH PORTE.1
adress=0
    IF BILGI=8 THEN GOTO GOSTER2
    FOR X=0 TO (A-1)
''
    I2CRead SDA,SCL,$A0,adress,[bilgi] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1
''
gosub YERAL1
    for Z=0 TO 7
        GOSUB DATA_AL1
            SUTUN[I]=VERI   
            I=I+1
        yeri=yeri+1
    NEXT   
next
    FOR I=0 TO ((A*8)-1)
        YEDEK[I]=SUTUN[I]
    NEXT 
K=K+1
LOW PORTE.1 : low porte.2       
GOTO GOSTER2
'****************************************************************
GOSTER2:
    IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
''''
    FOR Z=0 TO 2
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 1
      Next
    NEXT
GOTO BASLA1     
'****************************************************************
sola_kay3: 
For I=0 To (J*8)-2
    sutun[i]= sutun[i+1]
   If i=(J*8)-1 Then sutun[(J*8)-1]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
sola_kay2: 
For I=0 To 688
    sutun[i]= sutun[i+1]
   If i=689 Then sutun[689]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
sola_kay1:
For I=0 To (A*8)-2
    sutun[i]= sutun[i+1]
   If i=((A*8)-1) Then sutun[(A*8)-1]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
sola_kay:
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
saga_kay:
For I=94 to 0 step -1
    sutun[i]= sutun[i-1]
   If i=0 Then sutun[0]=sutun[95]
Next i
pauseus 10000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
     IF PORTC.0=1 THEN I=0 : a=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
asagi_kay:
for I=0 to 95
   ARA=SUTUN[I]
   z=ARA.7
FOR X=7 to 1 STEP -1
   ARA.0[x]=ARA.0[X-1]
NEXT
   ara.0=Z
   sutun[I]=ARA
next
pauseus 3500
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
     IF PORTC.0=1 THEN I=0 : a=0 : GOSUB TEMIZLE : GOTO BASLA
Return
'****************************************************************
yukari_kay:
FOR I=0 to 95
   ARA=SUTUN[I]
   z=ARA.0
FOR X=0 to 6
   ARA.0[X]=ARA.0[X+1]
NEXT
   ARA.7=Z
   SUTUN[I]=ARA
NEXT
pauseus 5000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
     IF PORTC.0=1 THEN I=0 : a=0 : M=0 :  GOSUB TEMIZLE : GOTO BASLA
Return
'****************************************************************
GECIKME:
FOR VERI=0 TO 1200
PAUSEUS 1000
NEXT
RETURN
'****************************************************************
GECIKME1:
FOR VERI=0 TO 300
PAUSEUS 1000
NEXT
RETURN
'****************************************************************   
kontrol:
if rtchour=24  then rtchour=0    : rtcdate=rtcdate+1 : rtcday=rtcday+1
if rtcmin=60   then rtcmin=0
  if rtchour=255 then rtchour=23 : rtcdate=rtcdate-1 : rtcday=rtcday-1
if rtcmin=255  then rtcmin=59
gosub zaman_yaz
gosub gecikme
gosub zaman_oku
return
'****************************************************************
SAAT_GOSTER1:
gosub temizle
'''''''''''''''''''''
bb:
FOR W=0 TO 5
GOSUB ZAMAN_OKU
'''''''''''''''''''''
if portc.0=1         then u=u+1             :gosub kontrol 
if u=0 and portc.1=1 then rtchour=rtchour+1 :gosub kontrol   
if u=0 and portc.2=1 then rtchour=rtchour-1 :gosub kontrol
if u=1 and portc.1=1 then rtcmin=rtcmin+1   :gosub kontrol
if u=1 and portc.2=1 then rtcmin=rtcmin-1   :gosub kontrol
'''''''''''''''''''''
temp=" "
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
        SUTUN[I+80]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
NEXT W
    IF PORTC.4=1 THEN gosub gecikme :GOSUB TEMIZLE :m=0: GOTO EE
goto bb
'****************************************************************
SAAT_GOSTER:
E=0
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=115 THEN C=0:gosub cc: I=0 :GOTO ISI_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
        SUTUN[I+80]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
goto SAAT_GOSTER
'********************************************************
ISI_GOSTER:
gosub SENSOROKU
FF:
''''''
'FOR W=0 TO 14
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
C=C+1
    iF C=100 THEN C=0: gosub cc : I=0 :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI       
        SUTUN[I+64]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
'NEXT
'goto ISI_GOSTER
GOTO FF
'****************************************************************
TARIH_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub cc:gosub gecikme1: I=0 :GOTO GUN_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
        SUTUN[I+80]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="/"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="/"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER: 
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
iF C=100  and F=0 THEN C=0: gosub cc:gosub gecikme1:GOSUB TEMIZLE:GOTO ee
iF C=100  and F=1 THEN C=0: gosub cc:gosub gecikme1:GOSUB TEMIZLE:F=0:M=0:K=0:GOTO kontrol3
GOSUB ZAMAN_OKU
gosub dd
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
GOTO GUN_GOSTER
'****************************************************************
cc:
E=E+1
If E<80                  Then gosub saga_kay    : GOTO goster1 
If E>80    and E<160     Then gosub sola_kay    : GOTO goster1
If E>160   and E<169     Then gosub asagi_kay   : GOTO goster1
if E>169   and E<178     then gosub yukari_kay  : GOTO goster1 
If E>178   then E=0
return
'****************************************************************
GOSTER1:
gosub zaman_oku
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 3
      Next
goto cc
'****************************************************************
GOSTER:
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 3
      Next
RETURN
'****************************************************************
dd:
yazi_reg=0 : i=0
For W=0 To 11
    gosub yazi1 : yazi_reg=yazi_reg+1
        gosub YERAL1
    for z=0 to 7
        GOSUB DATA_AL1
            SUTUN[I]=VERI
                I=I+1
            yeri=yeri+1
        next
    next
     gosub goster
return
'****************************************************************
yazi1:
if rtcday=1 then LookUp yazi_reg,["   PAZAR    "],bilgi
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],bilgi
if rtcday=3 then LookUp yazi_reg,["    SALI    "],bilgi
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],bilgi
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],bilgi
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],bilgi
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],bilgi
Return
'****************************************************************     
YERAL:
select case temp
    case 0   : yeri=0   : return
    case 1   : yeri=8   : return
    case 2   : yeri=16  : return
    case 3   : yeri=24  : return
    case 4   : yeri=32  : return
    case 5   : yeri=40  : return
    case 6   : yeri=48  : return
    case 7   : yeri=56  : return
    case 8   : yeri=64  : return
    case 9   : yeri=72  : return
    case 223 : yeri=80  : return
    case "C" : yeri=88  : return
    case ":" : yeri=96  : return
    case "/" : yeri=104 : return
    case " " : yeri=112 : return
end select
return
'****************************************************************
data_al:
    lookup yeri,[$FF,$C1,$80,$A6,$B2,$80,$C1,$FF,_     '0
                 $FF,$BF,$BD,$80,$80,$BF,$BF,$FF,_     '1
                 $FF,$9D,$8C,$A6,$B2,$98,$9D,$FF,_     '2
                 $FF,$DD,$9C,$B6,$B6,$80,$C9,$FF,_     '3
                 $FF,$E7,$E3,$E9,$80,$80,$E7,$FF,_     '4
                 $FF,$D8,$98,$BA,$BA,$82,$C6,$FF,_     '5
                 $FF,$C3,$81,$B4,$B6,$86,$CF,$FF,_     '6
                 $FF,$FC,$FC,$8E,$86,$F0,$F8,$FF,_     '7
                 $FF,$C9,$80,$B6,$B6,$80,$C9,$FF,_     '8
                 $FF,$F9,$B0,$B6,$96,$C0,$E1,$FF,_     '9
                 $FF,$FF,$F9,$F0,$F6,$F0,$F9,$FF,_     'Derece
                 $FF,$C1,$80,$BE,$BE,$BE,$DD,$FF,_     'C
                 $FF,$FF,$FF,$99,$99,$FF,$FF,$FF,_     ':
                 $FF,$9F,$CF,$E7,$F3,$F9,$FC,$FF,_     '/
                 $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF],VERI 'Boşluk
RETURN
'****************************************************************
data_al_ters:
    lookup yeri,[$00,$3E,$71,$59,$4D,$47,$3E,$00,_     '0
                 $00,$40,$42,$7F,$7F,$40,$40,$00,_     '1
                 $00,$62,$73,$59,$4D,$67,$62,$00,_     '2
                 $00,$22,$63,$49,$49,$7F,$36,$00,_     '3
                 $00,$18,$1C,$16,$7F,$7F,$18,$00,_     '4
                 $00,$27,$67,$45,$45,$7D,$39,$00,_     '5
                 $00,$3C,$7E,$4B,$49,$79,$30,$00,_     '6
                 $00,$03,$03,$71,$79,$0F,$07,$00,_     '7
                 $00,$36,$7F,$49,$49,$7F,$36,$00,_     '8
                 $00,$06,$4F,$49,$69,$3F,$1E,$00,_     '9
                 $00,$00,$06,$0F,$09,$0F,$06,$00,_     'Derece
                 $00,$3E,$7F,$41,$41,$63,$22,$00,_     'C
                 $00,$00,$00,$36,$36,$00,$00,$00,_     ':
                 $00,$60,$30,$18,$0C,$06,$03,$00,_     '/
                 $00,$00,$00,$00,$00,$00,$00,$00],VERI 'Boşluk
RETURN
'****************************************************************
YERAL1:
select case bilgi
    case "A" : yeri=0   : return
    case "B" : yeri=8   : return
    case "C" : yeri=16  : return
    case "D" : yeri=24  : return
    case "E" : yeri=32  : return
    case "F" : yeri=40  : return
    case "G" : yeri=48  : return
    case "H" : yeri=56  : return
    case "I" : yeri=64  : return
    case "i" : yeri=72  : return
    case "J" : yeri=80  : return
    case "K" : yeri=88  : return
    case "L" : yeri=96  : return
    case "M" : yeri=104 : return
    case "N" : yeri=112 : return
    case "O" : yeri=120 : return
    case "P" : yeri=128 : return
    case "R" : yeri=136 : return
    case "S" : yeri=144 : return
    case "T" : yeri=152 : return
    case "U" : yeri=160 : return
    case "V" : yeri=168 : return
    case "Y" : yeri=176 : return
    case "Z" : yeri=184 : return
    CASE "." : YERI=192 : RETURN
    case "W" : yeri=200 : return
    case "Q" : yeri=208 : return
    case "/" : yeri=216 : return 
    case ":" : yeri=224 : return
    case "-" : yeri=232 : return 
    case " " : yeri=240 : return     
end select
return
'****************************************************************
data_al1:
    LookUp yeri,[$FF,$81,$F6,$F6,$F6,$F6,$81,$FF,_     ;  A
                 $FF,$80,$B6,$B6,$B6,$B6,$C9,$FF,_     ;  B
                 $FF,$C1,$BE,$BE,$BE,$BE,$DD,$FF,_     ;  C
                 $FF,$80,$BE,$BE,$BE,$BE,$C1,$FF,_     ;  D
                 $FF,$80,$B6,$B6,$B6,$B6,$BE,$FF,_     ;  E
                 $FF,$80,$F6,$F6,$F6,$F6,$FE,$FF,_     ;  F
                 $FF,$80,$BE,$B6,$B6,$B6,$86,$FF,_     ;  G
                 $FF,$80,$F7,$F7,$F7,$F7,$80,$FF,_     ;  H
                 $FF,$BE,$BE,$80,$80,$BE,$BE,$FF,_     ;  I
                 $FF,$BF,$BB,$82,$82,$BB,$BF,$FF,_     ;  i
                 $FF,$CE,$BE,$80,$80,$FE,$FF,$FF,_     ;  J
                 $FF,$80,$F7,$EB,$DD,$BE,$FF,$FF,_     ;  K
                 $FF,$80,$BF,$BF,$BF,$BF,$BF,$FF,_     ;  L
                 $FF,$80,$FB,$F7,$F7,$FB,$80,$FF,_     ;  M
                 $FF,$80,$FB,$F7,$EF,$DF,$80,$FF,_     ;  N
                 $FF,$C1,$BE,$BE,$BE,$BE,$C1,$FF,_     ;  O
                 $FF,$80,$F6,$F6,$F6,$F6,$F9,$FF,_     ;  P
                 $FF,$80,$F6,$F6,$E6,$D6,$B9,$FF,_     ;  R
                 $FF,$D9,$B6,$B6,$B6,$B6,$CD,$FF,_     ;  S
                 $FF,$FE,$FE,$80,$80,$FE,$FE,$FF,_     ;  T
                 $FF,$C0,$BF,$BF,$BF,$BF,$C0,$FF,_     ;  U
                 $FF,$E0,$DF,$BF,$BF,$DF,$E0,$FF,_     ;  V
                 $FF,$FC,$FB,$87,$87,$FB,$FC,$FF,_     ;  Y                     
                 $FF,$9E,$AE,$B6,$BA,$BC,$BE,$FF,_     ;  Z
                 $FF,$FF,$FF,$9F,$9F,$FF,$FF,$FF,_     ;  .
                 $FF,$80,$DF,$EF,$EF,$DF,$80,$FF,_     ;  W
                 $FF,$C1,$BE,$BE,$AE,$9E,$81,$FF,_     ;  Q
                 $FF,$9F,$CF,$E7,$F3,$F9,$FC,$FF,_     ;  /
                 $FF,$FF,$FF,$99,$99,$FF,$FF,$FF,_     ;  :
                 $FF,$E7,$E7,$E7,$E7,$E7,$E7,$FF,_     ;  _
                 $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF],veri ;  BOŞLUK
Return
'****************************************************************
'***Sensör_Oku***************************************************
SENSOROKU:
           OWOUT   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
'           OWIN    Comm_Pin, 4, [TEMP]    ' Busy değerini oku
'           IF      TEMP = 0 THEN Bekle  ' hala meşgulmü? , evet ise goto Bekle..!
           OWOUT   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
           OWIN    Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
           GOSUB   Hesapla
           RETURN
'****************************************************************           
SENSORYAZ:
          OWOUT   COMM_Pin, 1, [$CC, $4E, $00,$00,$31]
          return           
'****************************************************************             
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    Sign  = "+"
    IF SIGN_BITI = NEGAT_ISI THEN
       Sign   = "-" 
       ham=($ffff-ham)+1
    endif
    ISI = Ham*10/16
GEC:
    FLOAT = (ISI //10)
    ISI=ISI/10
    RETURN                     
'****************************************************************
'****************************************************************
'***********Zaman Oku***********
ZAMAN_OKU:
         High RTC_RST
         SHiftOut RTC_DTA, RTC_SCLK, 0, [$BF]
         SHiftIn RTC_DTA, RTC_SCLK, 1, [rtcsec, rtcmin, rtchour,rtcdate , rtcmonth,rtcday,rtcyear, MEM]
         Low RTC_RST
         MEM=rtcsec  : GoSub CEVIR:rtcsec=SAYI 
         MEM=rtcmin  : GoSub CEVIR:rtcmin=SAYI
         MEM=rtchour : GoSub CEVIR:rtchour=SAYI
         MEM=rtcdate : GoSub CEVIR:rtcdate=SAYI
         MEM=rtcmonth: GoSub CEVIR:rtcmonth=SAYI
         MEM=rtcyear : GoSub CEVIR:rtcyear=SAYI
         MEM=rtcday  : GoSub CEVIR: rtcday=SAYI       
         Return
'***********Zaman Yaz***********
ZAMAN_YAZ:
    MEM=rtcsec   : GoSub TERSCEVIR :rtcsec=SAYI
    MEM=rtcmin   : GoSub TERSCEVIR :rtcmin=SAYI
    MEM=rtchour  : GoSub TERSCEVIR :rtchour=SAYI
    MEM=rtcdate  : GoSub TERSCEVIR :rtcdate=SAYI
    MEM=rtcmonth : GoSub TERSCEVIR :rtcmonth=SAYI
    MEM=rtcyear  : GoSub TERSCEVIR :rtcyear=SAYI
    MEM=rtcday   : GoSub TERSCEVIR :rtcday=SAYI
       
    High  RTC_RST
    SHiftOut RTC_DTA, RTC_SCLK, 0, [$8E, 0]
    Low RTC_RST:pause 1
    High RTC_RST         
    SHiftOut  RTC_DTA, RTC_SCLK, 0, [$BE, rtcsec, rtcmin, rtchour,rtcdate , rtcmonth, rtcday, rtcyear, 0]  'YAZ
    Low RTC_RST
    pause 10
Return
'***********Çevir***********               
CEVIR:
    ONLAR=MEM & %01110000
    ONLAR=ONLAR>>4
    BIRLER=MEM & %00001111
    SAYI=ONLAR*10+BIRLER
RETURN 
'***********Ters Çevir***********
TERSCEVIR:               
    ONLAR=MEM DIG 1
    ONLAR=ONLAR<<4
    BIRLER=MEM DIG 0
    SAYI=ONLAR+BIRLER
RETURN
'**************************************************************** 
Disable
KESME:
A=A+1 : K=0 : V=0
'''''
    IF A=1 THEN
        HSERIN [WAIT("SIFRE"),BILGI]
            I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
            adress=adress+1
            PAUSE 5
    ELSE
        HSERIN [BILGI]
            I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
            adress=adress+1
            PAUSE 5 
ENDIF
'''''
'IF adress>680  then high porte.2 ' Uyarı ledini yak
        IF adress<15                THEN L=4
        IF adress<15 AND adress<30  THEN L=3
        IF adress>30 AND adress<60  THEN L=2
        if adress>60 AND adress<100 THEN L=1
'''''
HSEROUT [BILGI,10]
    IF bilgi=13 THEN V=1 : p=A/84 : B=P :  J=A//84 : J=J+12      ' enter
'''''
IF bilgi=8  then                                                 ' backspace
    high porte.0
        FOR W=0 TO 1
            adress=adress-1
                bilgi=$ff
                    I2CWrite SDA,SCL,$A0,adress,[bilgi]
                PAUSE 10
            NEXT
        low porte.0
     A=A-2   
ENDIF
'''''   
PIR1.5=0                        ' RCIF : USART Receive Interrupt Flag bit
  Resume
ENABLE
Return   
'****************************************************************
end




ELZEMEFE

ete hocam ps/2 kılavye kodu vardı onu inceliyorum ..bende daha  önce yapmıştım .. bir düzenleme yapıp bu devreye ekleyelim ...  bende kendi kayan yazı çabalarım devam etmekte ...

ELZEMEFE

meyer hocam gelişme var mı _?

meyer

 @Elzemefe Hocam,
İşlerimin yoğunluğundan dolayı devrenin kodların da pek bir değişiklik yapamadım..Fırsat buldukça devre ile ilgilenmeye çalışıyorum..Onda da harici eepromdan karakter okurken ekranda gösterme sırasındaki olaylarla ilgileniyorum..
Sizin devreye eklemek istediğiniz özellik veya devrenin üzerinde değişiklik  yapalım derseniz o konuda da yardımcı olmaya çalışırım...
İyi günler dilerim...

ELZEMEFE

Hocam türkçe karakterleri ekleyelim ....
ps/2 ekleyelim
ama siz şu an ki çalışmanızı bitirin .. ben ps/2 okuyup eprom a yazdırıyorum şimdilik.. sizi bitirince birleştiririz..

meyer

 Tamamdır Hocam..Bende en kısa sürede programın sorununu çözmeye çalışacağım..Sorunu çözdükten sonra gerisi çorap söküğü gibi gelecektir zaten...

meyer

#102
 İyi günler arkadaşlar,
-Sonunda programda bahsettiğim sorunu çözebildim.
-Klavyeden girdiğimiz yazımız 300-350 karakterden fazla ise arkadaşlar aşağıdaki kodda n ve adress değişkenlerini de arttırmamız gerekecek.Şimdilik bunun için kısa bir formül yazamadım ama en kısa sürede bunu da çözmeye çalışacağım...

BASLA2:
Y=0 : G=0
if p=0 then A=0 : ADRESS=0 : Y=0 : GOTO BASLA3
     IF n=1 then adress=72
     IF n=2 then adress=144
     IF n=3 then adress=216
     IF n=4 then adress=288
     IF n=5 then adress=360
     IF n=6 then adress=432
     IF n=7 then adress=504
     IF n=8 then adress=648
     IF n=9 then adress=720
     IF n=10 then adress=792
GOTO AA1     

-Devrenin şeması,.pbp kodu ve .hex koduda ekte arkadaşlar..
İyi günler...

'****************************************************************
'*  Name    : MATRIX_PANO_SAAT_ISI_TARIH_GUN_KAYAN_YAZI.BAS     *
'*  Author  : [HAKAN_ÖZKAN]                                     *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 13.01.2012                                        *
'*  Version : 3.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
DEFINE I2C_SLOW 1
'****************************************************************
asm
    __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    __CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_20_2L & _PWRT_OFF_2L
    __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
    __CONFIG _CONFIG3H, _CCP2MX_ON_3H
    __CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
    __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
    __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H
endasm
'********************************************************
INTCON2.7=0   ' PORTB Pull-up Enable bit
INTCON.7 =1   ' GIE : Global Interrupt Enable
INTCON.6 =1   ' PEIE: Peripheral Interrupt Enable
PIE1.5   =1   ' RCIE: USART Receive Interrupt Enable
ADCON0   =0
ADCON1   =7
'****************************************************************
On Interrupt GoTo KESME
'****************************************************************
DEFINE HSERIAL_BAUD  2400
DEFINE HSERIAL_RCSTA %10010000
DEFINE HSERIAL_TXSTA %00100000
DEFINE HSERIAL_CLEAR = On
'****************************************************************
TRISA=255 : TRISB=0 : TRISD=0 : TRISE=0  : TRISC=%10110111   
PORTA=0   : PORTB=0 : PORTD=0 : PORTE=0  : PORTC=0           
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTC.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5                'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'24LC256**********************************************************
SCL      VAR     PORTB.3                ' Clock pin 
SDA      VAR     PORTB.4                ' Data pin                 
'24LC256_DEGISKENLERI*********************************************
adress   VAR     WORD                   ' Adres
B1       VAR     BYTE                   ' Data1
B2       VAR     Byte                   ' Data2
'****************************************************************
NEGAT_ISI CON 1                         ' Negatif_Cold = 1
'****************************************************************
TUS         VAR BYTE
T           VAR Byte
HAM         VAR WORD
ISI         var WORD
rtcsec      VAR BYTE
rtcmin      VAR BYTE
rtchour     VAR BYTE
rtcyear     VAR BYTE
rtcmonth    VAR BYTE
rtcday      VAR BYTE
rtcdate     VAR BYTE
TEMP        VAR BYTE
VERI        VAR BYTE
SAYI        VAR BYTE 
SIGN        VAR BYTE
FLOAT       var BYTE
mem         var byte
BIRLER      VAR BYTE
ONLAR       VAR BYTE
SIGN_BITI VAR HAM.Bit11   '   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
'****************************************************************
SUTUN     var Byte[680]   ' 1497 adet byte tipinde değişken tanımlanabilir.
YEDEK     VAR BYTE[680]
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var WORD
X         var byte
W         var Byte
M         var WORD
G         VAR WORD
'''''''''''''''''''
yazi_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR WORD
B         VAR BYTE
C         VAR BYTE
E         var byte
bilgi     var byte[90]
L         VAR BYTE
F         VAR BYTE
P         VAR BYTE
j         var byte
h         VAR BYTE
n         var bYTE
d         var bit
K         VAR BIT
u         var bit
V         VAR BIT
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
HSEROUT ["KLAVYEDEN GiRiLEN HARFLERiN MATRiX DiSPLAYDE GOSTERiLMESi",13,10]
HSEROUT ["*********************************************************",10]
HSEROUT ["***************************",13,10]
'****************************************************************
GOSUB TEMIZLE : I=0 : D=D+1
'**********Harici_eeprom_temizleme*******************************
'FOR G=0 TO 1000
' BILGI=$FF
'  I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
'  adress=adress+1
' PAUSE 10
'NEXT
'****************************************************************
BASLA:
    IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 : GOTO BASLA
    IF A=0 THEN GOTO BASLA
IF V=1 AND A<84 THEN GOTO KONTROL2
IF V=1 AND A>84 THEN GOTO KONTROL3
GOTO BASLA
'****************************************************************
BASLA1: 
GOTO AA       
''''''''''''''''''''
EE:
M=0 : D=D+1
    IF PORTC.0=1 THEN I=0 : a=0 : adress=0 : GOSUB TEMIZLE : GOTO BASLA
FOR I=0 TO (A*8)-1
    SUTUN[I]=YEDEK[I]
NEXT
''''''''''''''''''''
AA:
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next
M=M+1
IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
    IF M<(A*8) THEN GOSUB sola_kay1 : GOTO AA
    if M<(A*8) then M=0
GOSUB TEMIZLE : I=0
GOTO SAAT_GOSTER
'****************************************************************
BASLA3:
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next
M=M+1
IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
    IF M<(J*8) THEN GOSUB sola_kay3 : GOTO BASLA3
    if M<(J*8) then M=0
GOSUB TEMIZLE : I=0
GOTO SAAT_GOSTER
'****************************************************************
BASLA2:
Y=0 : G=0
if p=0 then A=0 : ADRESS=0 : Y=0 : GOTO BASLA3
     IF n=1 then adress=72
     IF n=2 then adress=144
     IF n=3 then adress=216
     IF n=4 then adress=288
     IF n=5 then adress=360
     IF n=6 then adress=432
     IF n=7 then adress=504
     IF n=8 then adress=648
     IF n=9 then adress=720
     IF n=10 then adress=792
GOTO AA1       
''''''''''''''''''''
EE1:
    IF PORTC.0=1 THEN I=0 : a=0 : adress=0 : GOSUB TEMIZLE : GOTO BASLA
''''''''''''''''''''
AA1:
G=G+1
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next
M=M+1
''''''''''''''
'IF G//8=0 and G<(J*8) THEN
if G//7=0 then
    I2CRead SDA,SCL,$A0,adress,[bilgi[Y]] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1 : Y=Y+1
ENDIF
''''''''''''''
IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
    IF M<577 THEN GOSUB sola_kay2 : GOTO AA1   
    if M=577 then M=0
'''''
  FOR X=0 TO 1
    I2CRead SDA,SCL,$A0,adress,[bilgi[Y]] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1 : Y=Y+1
  NEXT
'''''   
'GOSUB TEMIZLE
K=0 : I=0 : Y=0
p=p-1 : n=n+1
'''''''''''''''''''''''''
  FOR X=0 TO 83
    BILGI=BILGI[Y]
     Y=Y+1
        gosub YERAL1
            for Z=0 TO 7
                GOSUB DATA_AL1
                    SUTUN[I]=VERI   
                I=I+1
            yeri=yeri+1
        NEXT   
    next
goto BASLA2
'****************************************************************
TEMIZLE:
FOR I=0 TO 95
SUTUN[I]=$FF
NEXT
GOSUB GOSTER
RETURN
'****************************************************************
KONTROL3:
IF K=1 THEN RETURN
P=B
F=F+1 : D=D+1 : n=n+1
HIGH PORTE.1
'IF F=1 THEN adress=0 
adress=0
    IF BILGI=8 THEN GOTO GOSTER3
    FOR X=0 TO 83
''
    I2CRead SDA,SCL,$A0,adress,[bilgi] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1
''
gosub YERAL1
    for Z=0 TO 7
        GOSUB DATA_AL1
            SUTUN[I]=VERI   
            I=I+1
        yeri=yeri+1
    NEXT   
next     
K=K+1
LOW PORTE.1 : low porte.2       
GOTO GOSTER3
'****************************************************************
GOSTER3:
    IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
''''
    FOR Z=0 TO 2
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 1
      Next
    NEXT
GOTO BASLA2     
'****************************************************************
KONTROL2:
IF K=1 THEN RETURN
HIGH PORTE.1
adress=0
    IF BILGI=8 THEN GOTO GOSTER2
    FOR X=0 TO (A-1)
''
    I2CRead SDA,SCL,$A0,adress,[bilgi] 'Her adresteki datayı oku B2 ye aktar
    ADRESS=ADRESS+1
''
gosub YERAL1
    for Z=0 TO 7
        GOSUB DATA_AL1
            SUTUN[I]=VERI   
            I=I+1
        yeri=yeri+1
    NEXT   
next
    FOR I=0 TO ((A*8)-1)
        YEDEK[I]=SUTUN[I]
    NEXT 
K=K+1
LOW PORTE.1 : low porte.2       
GOTO GOSTER2
'****************************************************************
GOSTER2:
    IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 : adress=0 :  GOTO BASLA
''''
    FOR Z=0 TO 2
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 1
      Next
    NEXT
GOTO BASLA1     
'****************************************************************
sola_kay3: 
For I=0 To (J*8)-2
    sutun[i]= sutun[i+1]
   If i=(J*8)-1 Then sutun[(J*8)-1]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
sola_kay2: 
For I=0 To 688
    sutun[i]= sutun[i+1]
   If i=689 Then sutun[689]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
sola_kay1:
For I=0 To (A*8)-2
    sutun[i]= sutun[i+1]
   If i=((A*8)-1) Then sutun[(A*8)-1]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
sola_kay:
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 1000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
    IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
saga_kay:
For I=94 to 0 step -1
    sutun[i]= sutun[i-1]
   If i=0 Then sutun[0]=sutun[95]
Next i
pauseus 10000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
     IF PORTC.0=1 THEN I=0 : a=0 : GOSUB TEMIZLE : GOTO BASLA
return
'****************************************************************
asagi_kay:
for I=0 to 95
   ARA=SUTUN[I]
   z=ARA.7
FOR X=7 to 1 STEP -1
   ARA.0[x]=ARA.0[X-1]
NEXT
   ara.0=Z
   sutun[I]=ARA
next
pauseus 3500
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
     IF PORTC.0=1 THEN I=0 : a=0 : GOSUB TEMIZLE : GOTO BASLA
Return
'****************************************************************
yukari_kay:
FOR I=0 to 95
   ARA=SUTUN[I]
   z=ARA.0
FOR X=0 to 6
   ARA.0[X]=ARA.0[X+1]
NEXT
   ARA.7=Z
   SUTUN[I]=ARA
NEXT
pauseus 5000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
     IF PORTC.0=1 THEN I=0 : a=0 : M=0 :  GOSUB TEMIZLE : GOTO BASLA
Return
'****************************************************************
GECIKME:
FOR VERI=0 TO 1200
PAUSEUS 1000
NEXT
RETURN
'****************************************************************
GECIKME1:
FOR VERI=0 TO 300
PAUSEUS 1000
NEXT
RETURN
'****************************************************************   
kontrol:
if rtchour=24  then rtchour=0    : rtcdate=rtcdate+1 : rtcday=rtcday+1
if rtcmin=60   then rtcmin=0
  if rtchour=255 then rtchour=23 : rtcdate=rtcdate-1 : rtcday=rtcday-1
if rtcmin=255  then rtcmin=59
gosub zaman_yaz
gosub gecikme
gosub zaman_oku
return
'****************************************************************
SAAT_GOSTER1:
gosub temizle
'''''''''''''''''''''
bb:
FOR W=0 TO 5
GOSUB ZAMAN_OKU
'''''''''''''''''''''
if portc.0=1         then u=u+1             :gosub kontrol 
if u=0 and portc.1=1 then rtchour=rtchour+1 :gosub kontrol   
if u=0 and portc.2=1 then rtchour=rtchour-1 :gosub kontrol
if u=1 and portc.1=1 then rtcmin=rtcmin+1   :gosub kontrol
if u=1 and portc.2=1 then rtcmin=rtcmin-1   :gosub kontrol
'''''''''''''''''''''
temp=" "
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
        SUTUN[I+80]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
NEXT W
    IF PORTC.4=1 THEN gosub gecikme :GOSUB TEMIZLE :m=0: GOTO EE
goto bb
'****************************************************************
SAAT_GOSTER:
E=0
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=115 THEN C=0:gosub cc: I=0 :GOTO ISI_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
        SUTUN[I+80]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtchour dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmin dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=":"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcsec dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
goto SAAT_GOSTER
'********************************************************
ISI_GOSTER:
gosub SENSOROKU
FF:
''''''
'FOR W=0 TO 14
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
C=C+1
    iF C=100 THEN C=0: gosub cc : I=0 :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI       
        SUTUN[I+64]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
'NEXT
'goto ISI_GOSTER
GOTO FF
'****************************************************************
TARIH_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub cc:gosub gecikme1: I=0 :GOTO GUN_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
        SUTUN[I+80]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="/"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="/"
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            IF D=1 THEN GOSUB DATA_AL
            IF D=0 THEN GOSUB DATA_AL_TERS
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER: 
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
iF C=100  and F=0 THEN C=0: gosub cc:gosub gecikme1:GOSUB TEMIZLE:GOTO ee
iF C=100  and F=1 THEN C=0: gosub cc:gosub gecikme1:GOSUB TEMIZLE:F=0:M=0:K=0:GOTO kontrol3
GOSUB ZAMAN_OKU
gosub dd
    IF PORTC.0=1 THEN I=0 : a=0 : M=0 : adress=0 :  GOSUB TEMIZLE : GOTO BASLA
GOTO GUN_GOSTER
'****************************************************************
cc:
E=E+1
If E<80                  Then gosub saga_kay    : GOTO goster1 
If E>80    and E<160     Then gosub sola_kay    : GOTO goster1
If E>160   and E<169     Then gosub asagi_kay   : GOTO goster1
if E>169   and E<178     then gosub yukari_kay  : GOTO goster1 
If E>178   then E=0
return
'****************************************************************
GOSTER1:
gosub zaman_oku
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 3
      Next
goto cc
'****************************************************************
GOSTER:
      X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause 3
      Next
RETURN
'****************************************************************
dd:
yazi_reg=0 : i=0
For W=0 To 11
    gosub yazi1 : yazi_reg=yazi_reg+1
        gosub YERAL1
    for z=0 to 7
        GOSUB DATA_AL1
            SUTUN[I]=VERI
                I=I+1
            yeri=yeri+1
        next
    next
     gosub goster
return
'****************************************************************
yazi1:
if rtcday=1 then LookUp yazi_reg,["   PAZAR    "],bilgi
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],bilgi
if rtcday=3 then LookUp yazi_reg,["    SALI    "],bilgi
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],bilgi
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],bilgi
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],bilgi
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],bilgi
Return
'****************************************************************     
YERAL:
select case temp
    case 0   : yeri=0   : return
    case 1   : yeri=8   : return
    case 2   : yeri=16  : return
    case 3   : yeri=24  : return
    case 4   : yeri=32  : return
    case 5   : yeri=40  : return
    case 6   : yeri=48  : return
    case 7   : yeri=56  : return
    case 8   : yeri=64  : return
    case 9   : yeri=72  : return
    case 223 : yeri=80  : return
    case "C" : yeri=88  : return
    case ":" : yeri=96  : return
    case "/" : yeri=104 : return
    case " " : yeri=112 : return
end select
return
'****************************************************************
data_al:
    lookup yeri,[$FF,$C1,$80,$A6,$B2,$80,$C1,$FF,_     '0
                 $FF,$BF,$BD,$80,$80,$BF,$BF,$FF,_     '1
                 $FF,$9D,$8C,$A6,$B2,$98,$9D,$FF,_     '2
                 $FF,$DD,$9C,$B6,$B6,$80,$C9,$FF,_     '3
                 $FF,$E7,$E3,$E9,$80,$80,$E7,$FF,_     '4
                 $FF,$D8,$98,$BA,$BA,$82,$C6,$FF,_     '5
                 $FF,$C3,$81,$B4,$B6,$86,$CF,$FF,_     '6
                 $FF,$FC,$FC,$8E,$86,$F0,$F8,$FF,_     '7
                 $FF,$C9,$80,$B6,$B6,$80,$C9,$FF,_     '8
                 $FF,$F9,$B0,$B6,$96,$C0,$E1,$FF,_     '9
                 $FF,$FF,$F9,$F0,$F6,$F0,$F9,$FF,_     'Derece
                 $FF,$C1,$80,$BE,$BE,$BE,$DD,$FF,_     'C
                 $FF,$FF,$FF,$99,$99,$FF,$FF,$FF,_     ':
                 $FF,$9F,$CF,$E7,$F3,$F9,$FC,$FF,_     '/
                 $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF],VERI 'Boşluk
RETURN
'****************************************************************
data_al_ters:
    lookup yeri,[$00,$3E,$71,$59,$4D,$47,$3E,$00,_     '0
                 $00,$40,$42,$7F,$7F,$40,$40,$00,_     '1
                 $00,$62,$73,$59,$4D,$67,$62,$00,_     '2
                 $00,$22,$63,$49,$49,$7F,$36,$00,_     '3
                 $00,$18,$1C,$16,$7F,$7F,$18,$00,_     '4
                 $00,$27,$67,$45,$45,$7D,$39,$00,_     '5
                 $00,$3C,$7E,$4B,$49,$79,$30,$00,_     '6
                 $00,$03,$03,$71,$79,$0F,$07,$00,_     '7
                 $00,$36,$7F,$49,$49,$7F,$36,$00,_     '8
                 $00,$06,$4F,$49,$69,$3F,$1E,$00,_     '9
                 $00,$00,$06,$0F,$09,$0F,$06,$00,_     'Derece
                 $00,$3E,$7F,$41,$41,$63,$22,$00,_     'C
                 $00,$00,$00,$36,$36,$00,$00,$00,_     ':
                 $00,$60,$30,$18,$0C,$06,$03,$00,_     '/
                 $00,$00,$00,$00,$00,$00,$00,$00],VERI 'Boşluk
RETURN
'****************************************************************
YERAL1:
select case bilgi
    case "A" : yeri=0   : return
    case "B" : yeri=8   : return
    case "C" : yeri=16  : return
    case "D" : yeri=24  : return
    case "E" : yeri=32  : return
    case "F" : yeri=40  : return
    case "G" : yeri=48  : return
    case "H" : yeri=56  : return
    case "I" : yeri=64  : return
    case "i" : yeri=72  : return
    case "J" : yeri=80  : return
    case "K" : yeri=88  : return
    case "L" : yeri=96  : return
    case "M" : yeri=104 : return
    case "N" : yeri=112 : return
    case "O" : yeri=120 : return
    case "P" : yeri=128 : return
    case "R" : yeri=136 : return
    case "S" : yeri=144 : return
    case "T" : yeri=152 : return
    case "U" : yeri=160 : return
    case "V" : yeri=168 : return
    case "Y" : yeri=176 : return
    case "Z" : yeri=184 : return
    CASE "." : YERI=192 : RETURN
    case "W" : yeri=200 : return
    case "Q" : yeri=208 : return
    case "/" : yeri=216 : return 
    case ":" : yeri=224 : return
    case "-" : yeri=232 : return 
    case " " : yeri=240 : return     
end select
return
'****************************************************************
data_al1:
    LookUp yeri,[$FF,$81,$F6,$F6,$F6,$F6,$81,$FF,_     ;  A
                 $FF,$80,$B6,$B6,$B6,$B6,$C9,$FF,_     ;  B
                 $FF,$C1,$BE,$BE,$BE,$BE,$DD,$FF,_     ;  C
                 $FF,$80,$BE,$BE,$BE,$BE,$C1,$FF,_     ;  D
                 $FF,$80,$B6,$B6,$B6,$B6,$BE,$FF,_     ;  E
                 $FF,$80,$F6,$F6,$F6,$F6,$FE,$FF,_     ;  F
                 $FF,$80,$BE,$B6,$B6,$B6,$86,$FF,_     ;  G
                 $FF,$80,$F7,$F7,$F7,$F7,$80,$FF,_     ;  H
                 $FF,$BE,$BE,$80,$80,$BE,$BE,$FF,_     ;  I
                 $FF,$BF,$BB,$82,$82,$BB,$BF,$FF,_     ;  i
                 $FF,$CE,$BE,$80,$80,$FE,$FF,$FF,_     ;  J
                 $FF,$80,$F7,$EB,$DD,$BE,$FF,$FF,_     ;  K
                 $FF,$80,$BF,$BF,$BF,$BF,$BF,$FF,_     ;  L
                 $FF,$80,$FB,$F7,$F7,$FB,$80,$FF,_     ;  M
                 $FF,$80,$FB,$F7,$EF,$DF,$80,$FF,_     ;  N
                 $FF,$C1,$BE,$BE,$BE,$BE,$C1,$FF,_     ;  O
                 $FF,$80,$F6,$F6,$F6,$F6,$F9,$FF,_     ;  P
                 $FF,$80,$F6,$F6,$E6,$D6,$B9,$FF,_     ;  R
                 $FF,$D9,$B6,$B6,$B6,$B6,$CD,$FF,_     ;  S
                 $FF,$FE,$FE,$80,$80,$FE,$FE,$FF,_     ;  T
                 $FF,$C0,$BF,$BF,$BF,$BF,$C0,$FF,_     ;  U
                 $FF,$E0,$DF,$BF,$BF,$DF,$E0,$FF,_     ;  V
                 $FF,$FC,$FB,$87,$87,$FB,$FC,$FF,_     ;  Y                     
                 $FF,$9E,$AE,$B6,$BA,$BC,$BE,$FF,_     ;  Z
                 $FF,$FF,$FF,$9F,$9F,$FF,$FF,$FF,_     ;  .
                 $FF,$80,$DF,$EF,$EF,$DF,$80,$FF,_     ;  W
                 $FF,$C1,$BE,$BE,$AE,$9E,$81,$FF,_     ;  Q
                 $FF,$9F,$CF,$E7,$F3,$F9,$FC,$FF,_     ;  /
                 $FF,$FF,$FF,$99,$99,$FF,$FF,$FF,_     ;  :
                 $FF,$E7,$E7,$E7,$E7,$E7,$E7,$FF,_     ;  _
                 $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF],veri ;  BOŞLUK
Return
'****************************************************************
'***Sensör_Oku***************************************************
SENSOROKU:
           OWOUT   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
'           OWIN    Comm_Pin, 4, [TEMP]    ' Busy değerini oku
'           IF      TEMP = 0 THEN Bekle  ' hala meşgulmü? , evet ise goto Bekle..!
           OWOUT   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
           OWIN    Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
           GOSUB   Hesapla
           RETURN
'****************************************************************           
SENSORYAZ:
          OWOUT   COMM_Pin, 1, [$CC, $4E, $00,$00,$31]
          return           
'****************************************************************             
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    Sign  = "+"
    IF SIGN_BITI = NEGAT_ISI THEN
       Sign   = "-" 
       ham=($ffff-ham)+1
    endif
    ISI = Ham*10/16
GEC:
    FLOAT = (ISI //10)
    ISI=ISI/10
    RETURN                     
'****************************************************************
'****************************************************************
'***********Zaman Oku***********
ZAMAN_OKU:
         High RTC_RST
         SHiftOut RTC_DTA, RTC_SCLK, 0, [$BF]
         SHiftIn RTC_DTA, RTC_SCLK, 1, [rtcsec, rtcmin, rtchour,rtcdate , rtcmonth,rtcday,rtcyear, MEM]
         Low RTC_RST
         MEM=rtcsec  : GoSub CEVIR:rtcsec=SAYI 
         MEM=rtcmin  : GoSub CEVIR:rtcmin=SAYI
         MEM=rtchour : GoSub CEVIR:rtchour=SAYI
         MEM=rtcdate : GoSub CEVIR:rtcdate=SAYI
         MEM=rtcmonth: GoSub CEVIR:rtcmonth=SAYI
         MEM=rtcyear : GoSub CEVIR:rtcyear=SAYI
         MEM=rtcday  : GoSub CEVIR: rtcday=SAYI       
         Return
'***********Zaman Yaz***********
ZAMAN_YAZ:
    MEM=rtcsec   : GoSub TERSCEVIR :rtcsec=SAYI
    MEM=rtcmin   : GoSub TERSCEVIR :rtcmin=SAYI
    MEM=rtchour  : GoSub TERSCEVIR :rtchour=SAYI
    MEM=rtcdate  : GoSub TERSCEVIR :rtcdate=SAYI
    MEM=rtcmonth : GoSub TERSCEVIR :rtcmonth=SAYI
    MEM=rtcyear  : GoSub TERSCEVIR :rtcyear=SAYI
    MEM=rtcday   : GoSub TERSCEVIR :rtcday=SAYI
       
    High  RTC_RST
    SHiftOut RTC_DTA, RTC_SCLK, 0, [$8E, 0]
    Low RTC_RST:pause 1
    High RTC_RST         
    SHiftOut  RTC_DTA, RTC_SCLK, 0, [$BE, rtcsec, rtcmin, rtchour,rtcdate , rtcmonth, rtcday, rtcyear, 0]  'YAZ
    Low RTC_RST
    pause 10
Return
'***********Çevir***********               
CEVIR:
    ONLAR=MEM & %01110000
    ONLAR=ONLAR>>4
    BIRLER=MEM & %00001111
    SAYI=ONLAR*10+BIRLER
RETURN 
'***********Ters Çevir***********
TERSCEVIR:               
    ONLAR=MEM DIG 1
    ONLAR=ONLAR<<4
    BIRLER=MEM DIG 0
    SAYI=ONLAR+BIRLER
RETURN
'**************************************************************** 
Disable
KESME:
A=A+1 : K=0 : V=0
'''''
    IF A=1 THEN
        HSERIN [WAIT("SIFRE"),BILGI]
            I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
            adress=adress+1
            PAUSE 5
    ELSE
        HSERIN [BILGI]
            I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
            adress=adress+1
            PAUSE 5 
ENDIF
'''''
'IF adress>680  then high porte.2 ' Uyarı ledini yak
        IF adress<15                THEN L=4
        IF adress<15 AND adress<30  THEN L=3
        IF adress>30 AND adress<60  THEN L=2
        if adress>60 AND adress<100 THEN L=1
'''''
HSEROUT [BILGI,10]
    IF bilgi=13 THEN V=1 : p=A/84 : B=P :  J=A//84 : J=J+(p*12)      ' enter
'''''
IF bilgi=8  then                                                                                 ' backspace
    high porte.0
        FOR W=0 TO 1
            adress=adress-1
                bilgi=$ff
                    I2CWrite SDA,SCL,$A0,adress,[bilgi]
                PAUSE 10
            NEXT
        low porte.0
     A=A-2   
ENDIF
'''''   
PIR1.5=0                        ' RCIF : USART Receive Interrupt Flag bit
  Resume
ENABLE
Return   
'****************************************************************
end




ELZEMEFE

Hocam SIFRE yazıyorum  yazıyı yazıyorum .. ledlerde  faaliyet yok. ayrıca  yazıyı yazıyorum kaydet diyorum saat sıcaklık görünüyo tamam ama benim yazı kaymıyo

yada neyi yanlış yapıyorum ...

meyer

 @Elzemefe Hocam,
SIFRE - yazacağımız yazı ve enter'a basıyoruz..

Powered by EzPortal