Satır Taramalı Kayan Yazı

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

meyer

  İyi günler Ete Hocam,
-Anlattıklarınız gayet iyi anladım..Elimden geldiği kadarıyla programı yeniden  toparlamaya çalışacağım..
-Bir tek şu kısmı anlamayamadım hocam..Yeri değişkenin içeriği neden 16 artarak gidiyor..8 olması gerekmiyor mu ?


YERAL:
    select case HARF
    case 0:YERI=0:return
    case 1:YERI=16:return
    case 2:YERI=32:return
    case 3:YERI=48:return
    case 4:YERI=64:return
    case 5:YERI=80:return
    case 6:YERI=96:return
    case 7:YERI=112:return
    case 8:YERI=128:return   
    case 9:YERI=144:return
...
    CASE 85:YERI=215:RETURN
END SELECT
RETURN



ete

Benim verdiğim değerler hep sanal. Data değerleri bile doğru değil rastgele yazdım onları. Sen onlara kafanı takma. Elbette 8'er artarak gidecek.
Ben yazdığımı 16x24 matrix den örnek aldım ondan dır 16'şar artış. Ama sendeki 8'er artarak gidecek.
Önemli olan mantığı anlamak anladığını sanıyorum.

Ete

meyer

  Anladım hocam..Nasıl yapmam gerektiğini kodlarla açıklamışsınız zaten..En kısa sürede programın  yeni halini bitirebilmeyi umuyorum..
  İlginiz için teşekkür ederim hocam..İyi günler dilerim...

meyer

  Saat,sıcaklık ve tarih bilgisini bu şekilde displaylere basabildim hocam..


'****************************************************************
'*  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    : 29.12.2011                                        *
'*  Version : 2.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
goto SAAT_GOSTER
'goto basla
'****************************************************************
SAAT_GOSTER:
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub temizle:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'****************************************************************
ISI_GOSTER:
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub temizle :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
TARIH_GOSTER:
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub temizle :GOTO SAAT_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
temizle:
temp=" "
    gosub YERAL
        for Z=0 to 95
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
return
'****************************************************************
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
'****************************************************************
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
'****************************************************************
'***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   
'****************************************************************


end



ete

Şimdi Yeral  ile DataAL kısmını harfleri ilave ederek genişlet ve kayan yazıyıda aynı şekilde alıp ekrana baz gitsin.
Bu hali ile bile epeyce kısalmışa benziyor program.

Ete

meyer

 Gün bilgisini de gösterebildim hocam..Yazı kaydırma ve ELEKTRONİK yazısını ekrana basmak kaldı geriye...


'****************************************************************
'*  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    : 29.12.2011                                        *
'*  Version : 2.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
goto SAAT_GOSTER
goto basla
'****************************************************************
yazi:
LookUp yazi_reg,["ELEKTRONiK "],harf_reg
GOSUB YERAL1
Return
'****************************************************************
SAAT_GOSTER:
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub temizle:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'****************************************************************
ISI_GOSTER:
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub temizle :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
TARIH_GOSTER:
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub temizle :GOTO GUN_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER:
c=c+1
    iF C=100 THEN C=0: gosub temizle:GOTO SAAT_GOSTER
GOSUB ZAMAN_OKU
'GOSUB yazi1
gosub dd
GOTO GUN_GOSTER
'****************************************************************
temizle:
temp=" "
    gosub YERAL
        for Z=0 to 95
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
return
'****************************************************************
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    "],harf_reg
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],harf_reg
if rtcday=3 then LookUp yazi_reg,["    SALI    "],harf_reg
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],harf_reg
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],harf_reg
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],harf_reg
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],harf_reg
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
'****************************************************************
YERAL1:
select case harf_reg
    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 "J" : yeri=72  : return
    case "K" : yeri=80  : return
    case "L" : yeri=88  : return
    case "M" : yeri=96  : return
    case "N" : yeri=104 : return
    case "O" : yeri=112 : return
    case "P" : yeri=120 : return
    case "R" : yeri=128 : return
    case "S" : yeri=136 : return
    case "T" : yeri=144 : return
    case "U" : yeri=152 : return
    case "V" : yeri=160 : return
    case "Y" : yeri=168 : return
    case "Z" : yeri=176 : return
    case " " : yeri=184 : 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,$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,$E6,$D6,$B6,$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,$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   
'****************************************************************


end



meyer

 Program tamam hocam..1-2 küçük bir şey kaldı..Ayar ile alakalı..Onlarıda halledebilirsem şimdilik bir sorunu kalmayacak...


'****************************************************************
'*  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    : 29.12.2011                                        *
'*  Version : 2.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
yazi_reg=0 : i=0
For W=0 To 11
    gosub yazi : 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
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 3
      Next     
        if portc.4=1 then goto SAAT_GOSTER1
M=M+1
If M<96                Then gosub sola_kay   : GOTO AA 
If M>96   and m<192    Then gosub saga_kay   : GOTO AA
If M>192  and m<201    Then gosub asagi_kay  : GOTO AA 
if m>201  and m<210    then gosub yukari_kay : GOTO AA   
If m>210  then m=0
GOSUB TEMIZLE
goto SAAT_GOSTER
goto basla
'****************************************************************
yazi:
LookUp yazi_reg,[" ELEKTRONiK "],harf_reg
GOSUB YERAL1
Return
'****************************************************************
sola_kay:
         if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 10000
return
'****************************************************************
saga_kay:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
For I=94 to 0 step -1
    sutun[i]= sutun[i-1]
   If i=0 Then sutun[0]=sutun[95]
Next i
pauseus 10000
return
'****************************************************************
asagi_kay:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
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 10000
Return
'****************************************************************
yukari_kay:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
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 10000
Return
'****************************************************************
'****************************************************************
GECIKME:
FOR VERI=0 TO 1200
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 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
'        IF PORTC.4=1 THEN GOSUB TEMIZLE : GOTO BASLA
goto SAAT_GOSTER1
'****************************************************************
SAAT_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub temizle:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'****************************************************************
ISI_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub temizle :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
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 temizle :GOTO GUN_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
    iF C=100 THEN C=0: gosub temizle:GOTO BASLA
GOSUB ZAMAN_OKU
gosub dd
GOTO GUN_GOSTER
'****************************************************************
temizle:
FOR W=0 TO 11
temp=" "
    gosub YERAL
        for Z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
NEXT
GOSUB GOSTER
return
'****************************************************************
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    "],harf_reg
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],harf_reg
if rtcday=3 then LookUp yazi_reg,["    SALI    "],harf_reg
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],harf_reg
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],harf_reg
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],harf_reg
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],harf_reg
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
'****************************************************************
YERAL1:
select case harf_reg
    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       
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,$E6,$D6,$B6,$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,$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   
'****************************************************************


end



meyer

 Son değişiklikleri de yaptım hocam..Programın komut işleme hızı olarak  4-5 kat hızlandığı  gözle görülebiliyor..
 
Yardımlarınız için tekrardan teşekkür ederim hocam..İyi akşamlar 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    : 29.12.2011                                        *
'*  Version : 2.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
yazi_reg=0 : i=0
For W=0 To 11
gosub yazi : 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
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 3
      Next     
        if portc.4=1 then goto SAAT_GOSTER1
M=M+1
If M<96                Then gosub sola_kay   : GOTO AA 
If M>96   and m<192    Then gosub saga_kay   : GOTO AA
If M>192  and m<201    Then gosub asagi_kay  : GOTO AA 
if m>201  and m<210    then gosub yukari_kay : GOTO AA   
If m>210  then m=0
GOSUB TEMIZLE
goto SAAT_GOSTER
goto basla
'****************************************************************
yazi:
LookUp yazi_reg,[" ELEKTRONiK "],harf_reg
GOSUB YERAL1
Return
'****************************************************************
sola_kay:
         if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 10000
return
'****************************************************************
saga_kay:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
For I=94 to 0 step -1
    sutun[i]= sutun[i-1]
   If i=0 Then sutun[0]=sutun[95]
Next i
pauseus 10000
return
'****************************************************************
asagi_kay:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
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 10000
Return
'****************************************************************
yukari_kay:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
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 10000
Return
'****************************************************************
'****************************************************************
GECIKME:
FOR VERI=0 TO 1200
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 TEMIZLE : GOTO BASLA
goto bb
'****************************************************************
SAAT_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0: gosub temizle:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'****************************************************************
ISI_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub temizle :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
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 temizle :GOTO GUN_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
    iF C=100 THEN C=0: gosub temizle:GOTO BASLA
GOSUB ZAMAN_OKU
gosub dd
GOTO GUN_GOSTER
'****************************************************************
temizle:
I=0
FOR W=0 TO 11
temp=" "
    gosub YERAL
        for Z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
NEXT
GOSUB GOSTER
return
'****************************************************************
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    "],harf_reg
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],harf_reg
if rtcday=3 then LookUp yazi_reg,["    SALI    "],harf_reg
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],harf_reg
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],harf_reg
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],harf_reg
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],harf_reg
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
'****************************************************************
YERAL1:
select case harf_reg
    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       
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,$E6,$D6,$B6,$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,$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   
'****************************************************************


end


ete

Henüz denemedim yarın denerim artık. Ama her şeyden önce program sadeleşti. Daha tutarlı oldu ve neyin nerede olduğuda belli artık.
Senide tebrik etmek lazım.  Programcılığa elin ve aklın çok yatkın. Kolay anlıyorsun buda işleri kolaylaştırıyor.
Bu açıklamalarımı herkes kolayca anlayıp uygulayamazdı.
Ne kadardır program yazıyorsun. ?

Ete

meyer

#54
 Öncelikle teşekkür ederim hocam..2010 yılından beri program yazıyorum ya da yazmaya çalışıyorum diyelim daha doğru olur çünkü..
Program yazmamdaki bu pratiklik tamamen sizin derslerinizin yalın ve anlaşılır olmasından kaynaklanıyor hocam.PBP'i okulda öğrendim ama sizin derslerinizle kendimi geliştirdim.Yani binanın temelini okulda attım ama katlarına sizin derslerinizle çıktım.Ben matrix sistemleri tamamen sizin derslerinizde öğrendim hocam ve bu da bence olağanüstü bir şey...Bu nedenle size bir teşekkürü borç bilirim...
Her şey için tekrardan çok teşekkür ederim hocam..İyi akşamlar dilerim..

meyer

#55
   İyi günler arkadaşlar,
Programa yeni bir özellik daha ekledim..Özelliği kısaca anlatmak gerekirse;
-Ekranda ilk başta ELEKTRONiK yazısı sola doğru kayma başlıyor.Daha sonra saat 3-4 sn ekran da duruyor ve artık saatte  3-4 sn'de ekranda durduktan sonra sola doğru kaymaya başlıyor..ta ki ekrandan kaybolana kadar.Aynı şekilde sıcaklık,tarih ve gün bilgisi de sırasıyla sola,sağa,aşağı ve yukarı doğru kayıyor bu yeni özellik ile..


'****************************************************************
'*  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    : 30.12.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
E         var byte
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
yazi_reg=0 : i=0
For W=0 To 11
gosub yazi : 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
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 3
      Next   
        if portc.4=1 then goto SAAT_GOSTER1
M=M+1
If M<96                Then gosub sola_kay   : GOTO AA 
If M>96   and m<192    Then gosub saga_kay   : GOTO AA
If M>192  and m<201    Then gosub asagi_kay  : GOTO AA 
if m>201  and m<210    then gosub yukari_kay : GOTO AA   
If m>210  then m=0
GOSUB TEMIZLE
goto SAAT_GOSTER
goto basla
'****************************************************************
yazi:
LookUp yazi_reg,[" ELEKTRONiK "],harf_reg
GOSUB YERAL1
Return
'****************************************************************
sola_kay:
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 10000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
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
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 10000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
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 10000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
Return
'****************************************************************
'****************************************************************
GECIKME:
FOR VERI=0 TO 1200
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 TEMIZLE :m=0: GOTO BASLA
goto bb
'****************************************************************
SAAT_GOSTER:
E=0
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0:gosub cc:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'********************************************************
ISI_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub cc :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
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 :GOTO GUN_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
    iF C=100 THEN C=0: gosub cc:GOTO BASLA
GOSUB ZAMAN_OKU
gosub dd
GOTO GUN_GOSTER
'****************************************************************
cc:
E=E+1
If E<88                Then gosub sola_kay   : GOTO goster1 
If E>88   and E<160    Then gosub saga_kay   : GOTO goster1
If E>160  and E<170    Then gosub asagi_kay  : GOTO goster1
if E>170  and E<180    then gosub yukari_kay : GOTO goster1   
If E>180  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
'****************************************************************
temizle:
I=0
FOR W=0 TO 11
temp=" "
    gosub YERAL
        for Z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
NEXT
GOSUB GOSTER
return
'****************************************************************
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    "],harf_reg
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],harf_reg
if rtcday=3 then LookUp yazi_reg,["    SALI    "],harf_reg
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],harf_reg
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],harf_reg
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],harf_reg
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],harf_reg
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
'****************************************************************
YERAL1:
select case harf_reg
    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       
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,$E6,$D6,$B6,$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,$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   
'****************************************************************


end



ete

#56
Yaptığımız ilavelerin sana yeni fikirler verdiği belli oluyor. Üstelik bunları yapmak eskiye oranla dahada kolaylaştı sanırım değilmi.

Programın yeni halini denedim. Eski hali ile dağlar kadar farklı oldu.  Bu farkı simulasyonda bile anlamak mümkün olabiliyor.
Yukarı aşağı kaydırmaları biraz çabuk geçmişsin orada bir kargaşa oluyor. Daha yavaş hareket etseler iyi olur gbime geliyor.

KOlay Gelsin

Ete

meyer

 Haklısınız hocam..Programın yeni haliyle düzenleme yapmak daha da kolaylaştı..Dediğiniz gibi neyin nerde olduğu belli en azından..
Programın şu anki haliye 1-2 küçük sorunu var hocam..
   İlki ayar menüsünden çıkarken program ikilemde kalıyor..Basla menüsü ile saat_goster1 arasında.Sanırım buton sıçrama yapıyor ya da ben öyle düşünüyorum..
   2.cisi de sizin dediğiniz gibi aşağı ve yukarı kaydırmaların biraz daha yavaş hareket etmesi gerekiyor..
  En kısa zamanda bu sorunları düzeltmeye çalışırım hocam..İyi akşamlar dilerim...

meyer

#58
 1.sorunu hallettim hocam.2.sorunda da daha yavaş hareket etmesini sağladım.Ama daha iyi de olabilir tabi..
Onuda en kısa zamanda düzeltmeye çalışırım...

'****************************************************************
'*  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    : 30.12.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
E         var byte
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
yazi_reg=0 : i=0
For W=0 To 11
gosub yazi : 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
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 3
      Next   
        if portc.4=1 then goto SAAT_GOSTER1
M=M+1
If M<96                Then gosub sola_kay   : GOTO AA 
If M>96   and m<192    Then gosub saga_kay   : GOTO AA
If M>192  and m<201    Then gosub asagi_kay  : GOTO AA 
if m>201  and m<210    then gosub yukari_kay : GOTO AA   
If m>210  then m=0
GOSUB TEMIZLE
goto SAAT_GOSTER
goto basla
'****************************************************************
yazi:
LookUp yazi_reg,[" ELEKTRONiK "],harf_reg
GOSUB YERAL1
Return
'****************************************************************
sola_kay:
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 10000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
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
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 15000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
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 15000
     if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
Return
'****************************************************************
'****************************************************************
GECIKME:
FOR VERI=0 TO 1200
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 BASLA
goto bb
'****************************************************************
SAAT_GOSTER:
E=0
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub zaman_oku
C=C+1
    iF C=100 THEN C=0:gosub cc:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'********************************************************
ISI_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub cc :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
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 :GOTO GUN_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
    iF C=100 THEN C=0: gosub cc:GOTO BASLA
GOSUB ZAMAN_OKU
gosub dd
GOTO GUN_GOSTER
'****************************************************************
cc:
E=E+1
If E<88                Then gosub sola_kay   : GOTO goster1 
If E>88   and E<160    Then gosub saga_kay   : GOTO goster1
If E>160  and E<170    Then gosub asagi_kay  : GOTO goster1
if E>170  and E<180    then gosub yukari_kay : GOTO goster1   
If E>180  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
'****************************************************************
temizle:
I=0
FOR W=0 TO 11
temp=" "
    gosub YERAL
        for Z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
NEXT
GOSUB GOSTER
return
'****************************************************************
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    "],harf_reg
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],harf_reg
if rtcday=3 then LookUp yazi_reg,["    SALI    "],harf_reg
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],harf_reg
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],harf_reg
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],harf_reg
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],harf_reg
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
'****************************************************************
YERAL1:
select case harf_reg
    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       
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,$E6,$D6,$B6,$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,$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   
'****************************************************************


end



meyer

#59
  İyi günler arkadaşlar,
-Aşağı ve yukarı kaydırmalardaki sorunu da sonunda düzeltebildim.
-Bu sorunu da hallettikten sonra yeni yılla beraber devreye yeni özellikler eklememiz gerekecek.
Aklımda devre ile ilgili 1-2 plan var..Sizlerin de yardımıyla bunları yapabilirsek eğer güzel bir kayan yazı ve matrix display örneği olacağına inanıyorum..
Eklemeyi düşündüğüm yeni özellikler ;
1-Eeprom ünitesi eklemek.
2-PC/2 klavye eklemek.
3-Satır sayısını arttırarak 16*96 veya daha fazla yaparak grafik matrix display yapabilmek ve ekrana resim basabilmek...
Şimdilik planlarım bunlar arkadaşlar..Dediğim gibi yapabilirsek eğer çok güzel bir matrix display örneği olacak..

Herkesin iyi bir yıl geçirmesini diliyorum arkadaşlar..Mutlu yıllar !!!



'****************************************************************
'*  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    : 30.12.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
define OSC 20
'****************************************************************
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
'****************************************************************
TRISB=0 : TRISD=0  : TRISC=31  : TRISE=0 : TRISA=0
PORTB=0 : PORTD=0  : PORTC=0   : PORTE=0 : PORTA=0
INTCON2.7=0
'74HC595*********************************************************
Symbol CLK1     =PORTB.0
Symbol DTA1     =PORTB.1
Symbol STROBE1  =PORTB.2
'DS18B20*********************************************************
SYMBOL COMM_PIN =PORTB.3
'DS1302**********************************************************
symbol  RTC_RST =PORTB.5         'RTC nin bağlandığı portlar
symbol  RTC_SCLK=PORTB.6
symbol  RTC_DTA =PORTB.7
'****************************************************************
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[96]    ' 1497 adet byte tipinde değişken tanımlanabilir.
RAKAM     VAR BYTE
ARA       VAR BYTE
I         var Byte
X         var Byte
W         var Byte
M         var BYTE
'''''''''''''''''''
yazi_reg  var byte
harf_reg  var byte
yeri      var byte
z         var byte
y         var byte 
A         VAR BYTE
B         VAR BYTE
C         VAR BYTE
D         VAR BYTE
E         var byte
u         var bit
'****************************************************************
gosub SENSORYAZ
GOSUB SENSOROKU
'gosub ZAMAN_OKU
Low RTC_RST              ' RTC yi resetle
Low RTC_SCLK
'****************************************************************
clear
pause 250
'****************************************************************
BASLA:
yazi_reg=0 : i=0
For W=0 To 11
gosub yazi : 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
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 3
      Next   
        if portc.4=1 then goto SAAT_GOSTER1
M=M+1
If M<96                Then gosub sola_kay   : GOTO AA 
If M>96   and m<192    Then gosub saga_kay   : GOTO AA
If M>192  and m<201    Then gosub asagi_kay  : GOTO AA 
if m>201  and m<210    then gosub yukari_kay : GOTO AA   
If m>210  then m=0
GOSUB TEMIZLE
goto SAAT_GOSTER
goto basla
'****************************************************************
yazi:
LookUp yazi_reg,[" ELEKTRONiK "],harf_reg
GOSUB YERAL1
Return
'****************************************************************
sola_kay:
For I=0 To 94
    sutun[i]= sutun[i+1]
   If i=95 Then sutun[95]=sutun[0]
Next i
pauseus 10000
    if portc.4=1 then GOSUB TEMIZLE :  goto SAAT_GOSTER1
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
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
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
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 BASLA
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:GOTO ISI_GOSTER
''''''''''''''''
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
goto SAAT_GOSTER
'********************************************************
ISI_GOSTER:
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
gosub SENSOROKU
C=C+1
    iF C=100 THEN C=0: gosub cc :GOTO TARIH_GOSTER
''''''''''''''''
temp=" "
    gosub YERAL
        for Z=0 to 23
            GOSUB DATA_AL
        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
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=ISI dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=223
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp="C"
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto ISI_GOSTER
'****************************************************************
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:GOTO GUN_GOSTER
''''''''''''''''
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=rtcDATE dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcdate 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=rtcmonth dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcmonth 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=rtcyear dig 1
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
temp=rtcyear dig 0
    gosub YERAL
        for z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI
     I=I+1
    yeri=yeri+1
NEXT
''''''''''''''''
GOSUB GOSTER
goto TARIH_GOSTER
'****************************************************************
GUN_GOSTER: 
        if portc.4=1 then GOSUB TEMIZLE :goto SAAT_GOSTER1
c=c+1
    iF C=100 THEN C=0: gosub cc:gosub gecikme1:GOTO BASLA
GOSUB ZAMAN_OKU
gosub dd
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
'****************************************************************
temizle:
I=0
FOR W=0 TO 11
temp=" "
    gosub YERAL
        for Z=0 to 7
            GOSUB DATA_AL
        SUTUN[I]=VERI       
     I=I+1
    yeri=yeri+1
NEXT
NEXT
GOSUB GOSTER
return
'****************************************************************
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    "],harf_reg
if rtcday=2 then LookUp yazi_reg,[" PAZARTESi  "],harf_reg
if rtcday=3 then LookUp yazi_reg,["    SALI    "],harf_reg
if rtcday=4 then LookUp yazi_reg,["  CARSAMBA  "],harf_reg
if rtcday=5 then LookUp yazi_reg,["  PERSEMBE  "],harf_reg
if rtcday=6 then LookUp yazi_reg,["    CUMA    "],harf_reg
if rtcday=7 then LookUp yazi_reg,[" CUMARTESi  "],harf_reg
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
'****************************************************************
YERAL1:
select case harf_reg
    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       
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,$E6,$D6,$B6,$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,$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   
'****************************************************************


end



Powered by EzPortal