Satır Taramalı Kayan Yazı

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

meyer

#105
 İyi akşamlar arkadaşlar,

@Elzemefe Hocam,sorununu çözebildin mi ?Çözemediysen bakalım  tekrardan..

-Arkadaşlar devredeki kaydet butonunu da kaldırabilirsiniz..Yazımızı yazıktan sonra enter'a bastığımızda zaten harici eeproma kayıt yapma işi gerçekleşiyor.Bu nedenle devrede kaydet butonu boşa çıkmış oluyor..
İlgilenen arkadaşlar için devreyi ekte ekledim..
İyi günler dilerim...

ELZEMEFE

Hocam yani yazıyı yazıyorum programı pause moduna eprom  un  içine bakıyorum bazı  karakterler  nokta  şeklinde görünüyo.. yok hocam  saat sıcaıklık tarih tamam ama benimyazdığım yazı kaymıyo

meyer

#107
 Hocam şimdi yaptıklarımı sırası ile yaparsan eğer ekranda yazının kayması gerekiyor..
-SIFRE yazısını giriyoruz.
-Büyük harflerle yazımızı yazıyoruz.
-Enter basıyoruz..Enter'a bastıktan sonra yeşil ledin yanması lazım..
Bu anlatıklarım yaptığınız halde yine olmuyorsa eğer aşağıdaki kod satırlarını iptal edip tekrar deneyin..

'**********Harici_eeprom_temizleme*******************************
'FOR G=0 TO 1000
' BILGI=$FF
'  I2CWrite SDA,SCL,$A0,adress,[bilgi] ' Her adrese datayı yaz
'  adress=adress+1
' PAUSE 10
'NEXT
'****************************************************************

Ben bu satırları ara sıra harici eepromu silmek için kullanıyorum.Bu  kodlar aktif iken yazı yazmaya kalkarsak işlemcide  usart ile kesme oluşup harfleri yalan yanlış kaydetmeye çalışıyor.Oda bir şeye benzemiyor tabi..Bu nedenle ya yukarıdaki komut satırının işleyip bitmesini bekleyeceksiniz ki çok gereksiz bir durum...Ya da kod kısmını sileceksiniz veya  iptal edeceksiniz..
Aynı sorunu yaşayan arkadaşlar için dosyaları tekrardan yüklüyorum..

ELZEMEFE

devreyi 3 matrix için kuracam zaten
şimdilik elimde tpıc595 var ...
PC yazılımı için başlıyorum yavaş yavaş...

mitec

merhaba meyer bende uzun süredir bu kayan yazı işle ilgilenmeyi düşünüyordum.fakat birtürlü kendimi toplayıp bu işe girişememiştim.senden aldığım cesaretle bende başlamaya karar verdim.öncelikle senin programını uzun uzun analiz ettim.ETE hocamın ders notlarını tekrar tekrar okudum.sanırım mantığı kavradım.daha sonra programında oldukça köklü değişikler yaptım.artık gerçek ortamda çalışmaya hazırdım.(ısı,saat,tarih gösterimi ve virtual terminali kaldırdım)çünkü sadece basit şekilde yazı kaydırmak istiyorum.8*64--512 ledten oluşan panumu hazırladım.çünkü gördüğüm kadarıyla şu ana kadar hep simülasyonda çalışılmıştı.birde gerçek ortamda görmek istedim.18f452 ile çizimi yaptım devreyi bastım.programı yükledim ve devreyi çalıştırdım.sanırım sutunları ters bağlamışım harfler ters çıkıyordu bende harf tablosunu yeniden oluşturdum8*8 fontta yeni harfleri hazırladım bu arada senin programda sadece yazı yazılabiliyor lookup tablonda rakamlar yok virtual terminalden rakam girilemiyor.sanırım lookup tablosuna daha fazla veri yüklenemediği için.

data_al1:
    LookUp yeri,[$FF,$81,$F6,$F6,$F6,$F6,$81,$FF,_     ;  A
                 $FF,$80,$B6,$B6,$B6,$B6,$C9,$FF,_     ;  B
                 $FF,$C1,$BE,$BE,$BE,$BE,$DD,$FF,_     ;  C
                 $FF,$80,$BE,$BE,$BE,$BE,$C1,$FF,_     ;  D
                 $FF,$80,$B6,$B6,$B6,$B6,$BE,$FF,_     ;  E
                 $FF,$80,$F6,$F6,$F6,$F6,$FE,$FF,_     ;  F
                 $FF,$80,$BE,$B6,$B6,$B6,$86,$FF,_     ;  G
                 $FF,$80,$F7,$F7,$F7,$F7,$80,$FF,_     ;  H
                 $FF,$BE,$BE,$80,$80,$BE,$BE,$FF,_     ;  I
                 $FF,$BF,$BB,$82,$82,$BB,$BF,$FF,_     ;  i
                 $FF,$CE,$BE,$80,$80,$FE,$FF,$FF,_     ;  J
                 $FF,$80,$F7,$EB,$DD,$BE,$FF,$FF,_     ;  K
                 $FF,$80,$BF,$BF,$BF,$BF,$BF,$FF,_     ;  L
                 $FF,$80,$FB,$F7,$F7,$FB,$80,$FF,_     ;  M
                 $FF,$80,$FB,$F7,$EF,$DF,$80,$FF,_     ;  N
                 $FF,$C1,$BE,$BE,$BE,$BE,$C1,$FF,_     ;  O
                 $FF,$80,$F6,$F6,$F6,$F6,$F9,$FF,_     ;  P
                 $FF,$80,$F6,$F6,$E6,$D6,$B9,$FF,_     ;  R
                 $FF,$D9,$B6,$B6,$B6,$B6,$CD,$FF,_     ;  S
                 $FF,$FE,$FE,$80,$80,$FE,$FE,$FF,_     ;  T
                 $FF,$C0,$BF,$BF,$BF,$BF,$C0,$FF,_     ;  U
                 $FF,$E0,$DF,$BF,$BF,$DF,$E0,$FF,_     ;  V
                 $FF,$FC,$FB,$87,$87,$FB,$FC,$FF,_     ;  Y                     
                 $FF,$9E,$AE,$B6,$BA,$BC,$BE,$FF,_     ;  Z
                 $FF,$FF,$FF,$9F,$9F,$FF,$FF,$FF,_     ;  .
                 $FF,$80,$DF,$EF,$EF,$DF,$80,$FF,_     ;  W
                 $FF,$C1,$BE,$BE,$AE,$9E,$81,$FF,_     ;  Q
                 $FF,$9F,$CF,$E7,$F3,$F9,$FC,$FF,_     ;  /
                 $FF,$FF,$FF,$99,$99,$FF,$FF,$FF,_     ;  :
                 $FF,$E7,$E7,$E7,$E7,$E7,$E7,$FF,_     ;  _
                 $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF],veri ;  BOŞLUK
Return

bende tablo mantığını aşağıdaki gibi değiştirdim.böylece artık rakamlarda girilebilir hale geldi.

YERBILGISI:
select case bilgi
    case "A" : LookUp yeri,[$00,$3f,$7f,$88,$88,$88,$7f,$3f],VERI 'A
    case "B" : LookUp yeri,[$00,$ff,$ff,$89,$89,$89,$89,$76],VERI 'B
    case "C" : LookUp yeri,[$00,$3c,$7e,$81,$81,$81,$81,$42],VERI 'C
    case 10  : LookUp yeri,[$00,$38,$7C,$C6,$82,$87,$82,$82],VERI 'C
    case "D" : LookUp yeri,[$00,$FF,$FF,$81,$81,$81,$42,$3C],VERI 'D
    case "E" : LookUp yeri,[$00,$FF,$FF,$99,$99,$99,$99,$81],VERI 'E
    case "F" : LookUp yeri,[$00,$FF,$FF,$98,$98,$98,$98,$80],VERI 'F
    case "G" : LookUp yeri,[$00,$7E,$FF,$81,$89,$89,$8F,$06],VERI 'G
    case "H" : LookUp yeri,[$00,$FF,$FF,$18,$18,$18,$FF,$FF],VERI 'H
    case "I" : LookUp yeri,[$00,$00,$81,$ff,$ff,$81,$00,$00],VERI 'I
    case 11  : LookUp yeri,[$00,$00,$21,$bf,$bf,$21,$00,$00],VERI 'İ
    case "J" : LookUp yeri,[$00,$02,$02,$01,$01,$ff,$fe,$00],VERI 'J
    case "K" : LookUp yeri,[$00,$ff,$ff,$18,$3c,$66,$c3,$81],VERI 'K
    case "L" : LookUp yeri,[$00,$FF,$FF,$03,$03,$03,$03,$03],VERI 'L
    case "M" : LookUp yeri,[$00,$FF,$7F,$20,$18,$20,$7F,$FF],VERI 'M
    case "N" : LookUp yeri,[$00,$FF,$60,$30,$18,$0C,$06,$FF],VERI 'N
    case "O" : LookUp yeri,[$00,$7E,$FF,$81,$81,$81,$FF,$7E],VERI 'P
    case 12  : LookUp yeri,[$00,$1E,$3F,$A1,$21,$A1,$3F,$1E],VERI 'P
    case "P" : LookUp yeri,[$00,$FF,$FF,$88,$88,$88,$F8,$70],VERI 'R
    case "R" : LookUp yeri,[$00,$FF,$FF,$88,$8C,$9E,$F3,$61],VERI 'R
    case "S" : LookUp yeri,[$00,$71,$F9,$99,$99,$99,$9F,$8E],VERI 'S
    case 13  : LookUp yeri,[$00,$62,$F2,$92,$97,$92,$9E,$8C],VERI 'Ş
    case "T" : LookUp yeri,[$00,$C0,$C0,$FF,$FF,$C0,$C0,$00],VERI 'T
    case "U" : LookUp yeri,[$00,$FE,$FF,$03,$03,$03,$FF,$FE],VERI 'U
    case 14  : LookUp yeri,[$00,$7E,$7F,$83,$03,$83,$7F,$7E],VERI 'Ü
    case "V" : LookUp yeri,[$00,$F8,$FE,$07,$03,$07,$FE,$F8],VERI 'V
    case "W" : LookUp yeri,[$00,$FE,$03,$06,$1C,$06,$03,$FE],VERI 'W
    case "Y" : LookUp yeri,[$00,$C0,$60,$30,$1F,$30,$60,$C0],VERI 'Y
    case "Z" : LookUp yeri,[$00,$87,$8D,$99,$B1,$E1,$C1,$81],VERI 'Z
    CASE "." : LookUp yeri,[$00,$00,$00,$03,$03,$00,$00,$00],VERI '.
    case "Q" : LookUp yeri,[$00,$7C,$82,$82,$82,$8F,$83,$7D],VERI 'Q
    case "/" : LookUp yeri,[$00,$03,$06,$0C,$18,$30,$60,$C0],VERI '/ 
    case ":" : LookUp yeri,[$00,$00,$00,$66,$66,$00,$00,$00],VERI ':
    case "-" : LookUp yeri,[$00,$18,$18,$18,$18,$18,$18,$00],VERI '-
    case "_" : LookUp yeri,[$00,$03,$03,$03,$03,$03,$03,$00],VERI '-
    case " " : LookUp yeri,[$00,$00,$00,$00,$00,$00,$00,$00],VERI '
    case "@" : LookUp yeri,[$00,$7E,$81,$99,$A5,$BD,$85,$79],VERI 
    case "0" : LookUp yeri,[$00,$7E,$87,$8D,$99,$B1,$E1,$7E],VERI '0
    case "1" : LookUp yeri,[$00,$31,$61,$FF,$FF,$01,$01,$00],VERI '1
    case "2" : LookUp yeri,[$00,$47,$8F,$99,$99,$99,$F1,$E1],VERI '2
    case "3" : LookUp yeri,[$00,$42,$81,$99,$99,$99,$FF,$7E],VERI '3
    case "4" : LookUp yeri,[$00,$1E,$3E,$62,$C2,$FF,$FF,$02],VERI '4
    case "5" : LookUp yeri,[$00,$F1,$F9,$99,$99,$99,$9F,$8E],VERI '5
    case "6" : LookUp yeri,[$00,$7E,$FF,$89,$89,$89,$8F,$86],VERI '6
    case "7" : LookUp yeri,[$00,$80,$80,$8F,$9F,$F0,$F8,$FF],VERI '7
    case "8" : LookUp yeri,[$00,$6E,$FF,$91,$91,$91,$FF,$6E],VERI '8
    case "9" : LookUp yeri,[$00,$70,$F9,$99,$99,$99,$FF,$7E],VERI '9     
end select
    return

devre gayet güzel çalışyordu fakat satır taramadaki bir sorun dikkatimi çekti.sen taramada portd ye sırasıyla 1-2-4-8-16-32-64-128 bilgilerini veriyorsun
     
X=1
      For I=0 To 7
SHiftOut DTA1,CLK1,1,[SUTUN[I+88],SUTUN[I+80],SUTUN[I+72],_
SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
  SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],SUTUN[I]]
        PORTD=X
        High STROBE1 : pauseus 200 : Low STROBE1
        X=X*2
        pause L
      Next

fakat burada şöyle bir problem oluyor portd en son 128 de kalıyor bu yüzden son satır diğerleine göre çok daha parlak yanıyor.ben taramayı tersten yaptığım için sırayla 128-64-32-16-8-4-2-1 veriyorum ve sonundada portd ye 0 verdim bu problemide çözmüş oldum

YAZ:
        X=128
        For I=0 To 7     
        SHiftOut DTA1,CLK1,1,[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
        pauseus 1600
        Next
        PORTD=0
        RETURN

böylelikle bu sorunuda halletmiş oldum.bu bilgileri proje üzerinde çalışacak arkadaşlara kolaylık olsun diye veriyorum.programın son hali aşağıda.çalışmasını merak eden arkadaşlar içinde akşam videosunu çekip koyacağım
şu an yazının kayma hızını ayarlamaya çalışıyorum.fakat 2 gündür herhangi bir gelişme sağlayamadım.o konuyuda çözdükten sonra güzel bir pc arayüz yazma işine başlacağım.


asm
    __CONFIG _CONFIG1H, _HS_OSC_1H ; HS osc
   __CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_27_2L & _PWRT_ON_2L ; Enable Brown out voltage detect
endasm
DEFINE OSC 20


'****************************************************************
    ADCON1   =7


    TRISA=255 : TRISB=0 : TRISD=0 : TRISE=0  : TRISC=%10110111   
    PORTA=0   : PORTB=0 : PORTD=0 : PORTE=0  : PORTC=0           

        Symbol CLK1     =PORTB.0
        Symbol DTA1     =PORTB.1
        Symbol STROBE1  =PORTB.2                 

    adress   VAR     WORD                   ' Adres
    VERI        VAR BYTE
    SUTUN     var Byte[728]   
    YEDEK     VAR BYTE[728]
    ARA       VAR BYTE
    I         var WORD
    X         var Byte
    W         var Byte
    M         var WORD
    yazi_reg  var byte
    yeri      var byte
    z         var byte
    y         var byte 
    A         VAR WORD 
    B         VAR BYTE
    C         VAR BYTE 
    D         VAR BYTE
    E         var byte
    bilgi     var byte
    L         VAR BYTE
    H         VAR BYTE
    K         VAR BIT
    u         var bit
    V         VAR BIT
    HIZ       VAR BYTE
    YAP       VAR BYTE
    SA        VAR BYTE
    N         VAR BYTE
        clear
        pause 250

        v=1:A=91:HIZ=1
        GOSUB TEMIZLE : I=0
        YAP=2
        WRITE 0,YAP
        WRITE 1,("M"):WRITE 2,("E"):WRITE 3,("R"):WRITE 4,("H"):WRITE 5,("A"):WRITE 6,("B"):WRITE 7,("A"):WRITE 8,(" ")
        WRITE 9,("B"):WRITE 10,("U"):WRITE 11,(" "):WRITE 12,("B"):WRITE 13,(12):WRITE 14,("R"):WRITE 15,(" "):WRITE 16,("K")
        WRITE 17,("A"):WRITE 18,("Y"):WRITE 19,("A"):WRITE 20,("N"):WRITE 21,(" "):WRITE 22,("Y"):WRITE 23,("A"):WRITE 24,("Z")
        WRITE 25,("I"):WRITE 26,("D"):WRITE 27,("I"):WRITE 28,("R"):WRITE 29,(".")
        READ 0, YAP
BASLA
        GOTO KONTROL
        GOTO BASLA
TEMIZLE:
        FOR I=0 TO 95
        SUTUN[I]=$00
        NEXT
        GOSUB GOSTER
        RETURN
KONTROL:
        IF YAP=0 THEN GOTO KARISIK
        IF YAP=2 THEN GOTO SAGSOL
        GOTO KONTROL 
HAZIRLA:
        adress=1
        FOR X=0 TO (A-1)
        READ ADRESS, BILGI
        ADRESS=ADRESS+1
        gosub YERAL1
        for Z=0 TO 7
        gosub YERAL1
        SUTUN[I]=VERI   
        I=I+1
        yeri=yeri+1
        NEXT
        YERI=0 
        next
        FOR I=0 TO ((A*8)-1)
        YEDEK[I]=SUTUN[I]
        NEXT 
        K=K+1
        adress=1
        RETURN             
SOLSOL1:                       
        GOSUB YAZ
        M=M+1
        'IF PORTC.0=1 THEN GOSUB TEMIZLE : I=0 : a=0 : M=0 :  GOTO BASLA
        IF M<(A*8) THEN GOSUB  SOLA_KAY:GOTO SOLSOL1 
        if M=(A*8) then M=0
        K=0
        RETURN
SAGSOL:
        GOSUB HAZIRLA
SAGSOLDEVAM:
         GOSUB SOLSOL1
        GOTO KONTROL
YAZ:
        X=128
        For I=0 To 7     
        SHiftOut DTA1,CLK1,1,[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
        pauseus 1600
        Next
        PORTD=0
        RETURN 
KARISIK:
        RETURN
ASAGI:
        RETURN
YUKARI:
        RETURN       
sola_kay:
        For I=0 To (A*8)-2
        sutun[i]= sutun[i+1]
        If i=((A*8)-1) Then sutun[(A*8)-1]=sutun[0]
        Next i
        'pauseus 10
        'IF PORTC.0=1 THEN I=0 : GOSUB TEMIZLE : GOTO BASLA
        return
saga_kay:
        For I=94 to 0 step -1
        sutun[i]= sutun[i-1]
        If i=0 Then sutun[0]=sutun[95]
        Next i
        'pauseus 1000
        'IF PORTC.0=1 THEN I=0 : a=0 : GOSUB TEMIZLE : GOTO BASLA
        return
asagi_kay:
        for I=0 to 95
        ARA=SUTUN[I]
        z=ARA.7
        FOR X=7 to 1 STEP -1
        ARA.0[x]=ARA.0[X-1]
        NEXT
        ara.0=Z
        sutun[I]=ARA
        next
        'pauseUS 1000
        'IF PORTC.0=1 THEN I=0 : a=0 : GOSUB TEMIZLE : GOTO BASLA
        Return     
yukari_kay:
        FOR I=0 to 95
        ARA=SUTUN[I]
        z=ARA.0
        FOR X=0 to 6
        ARA.0[X]=ARA.0[X+1]
        NEXT
        ARA.7=Z
        SUTUN[I]=ARA
        NEXT
        pauseUS 1000
        'IF PORTC.0=1 THEN I=0 : a=0 : M=0 :  GOSUB TEMIZLE : GOTO BASLA
        Return
YERAL1:
select case bilgi
    case "A" : LookUp yeri,[$00,$3f,$7f,$88,$88,$88,$7f,$3f],VERI 'A
    case "B" : LookUp yeri,[$00,$ff,$ff,$89,$89,$89,$89,$76],VERI 'B
    case "C" : LookUp yeri,[$00,$3c,$7e,$81,$81,$81,$81,$42],VERI 'C
    case 10  : LookUp yeri,[$00,$38,$7C,$C6,$82,$87,$82,$82],VERI 'C
    case "D" : LookUp yeri,[$00,$FF,$FF,$81,$81,$81,$42,$3C],VERI 'D
    case "E" : LookUp yeri,[$00,$FF,$FF,$99,$99,$99,$99,$81],VERI 'E
    case "F" : LookUp yeri,[$00,$FF,$FF,$98,$98,$98,$98,$80],VERI 'F
    case "G" : LookUp yeri,[$00,$7E,$FF,$81,$89,$89,$8F,$06],VERI 'G
    case "H" : LookUp yeri,[$00,$FF,$FF,$18,$18,$18,$FF,$FF],VERI 'H
    case "I" : LookUp yeri,[$00,$00,$81,$ff,$ff,$81,$00,$00],VERI 'I
    case 11  : LookUp yeri,[$00,$00,$21,$bf,$bf,$21,$00,$00],VERI 'İ
    case "J" : LookUp yeri,[$00,$02,$02,$01,$01,$ff,$fe,$00],VERI 'J
    case "K" : LookUp yeri,[$00,$ff,$ff,$18,$3c,$66,$c3,$81],VERI 'K
    case "L" : LookUp yeri,[$00,$FF,$FF,$03,$03,$03,$03,$03],VERI 'L
    case "M" : LookUp yeri,[$00,$FF,$7F,$20,$18,$20,$7F,$FF],VERI 'M
    case "N" : LookUp yeri,[$00,$FF,$60,$30,$18,$0C,$06,$FF],VERI 'N
    case "O" : LookUp yeri,[$00,$7E,$FF,$81,$81,$81,$FF,$7E],VERI 'P
    case 12  : LookUp yeri,[$00,$1E,$3F,$A1,$21,$A1,$3F,$1E],VERI 'P
    case "P" : LookUp yeri,[$00,$FF,$FF,$88,$88,$88,$F8,$70],VERI 'R
    case "R" : LookUp yeri,[$00,$FF,$FF,$88,$8C,$9E,$F3,$61],VERI 'R
    case "S" : LookUp yeri,[$00,$71,$F9,$99,$99,$99,$9F,$8E],VERI 'S
    case 13  : LookUp yeri,[$00,$62,$F2,$92,$97,$92,$9E,$8C],VERI 'Ş
    case "T" : LookUp yeri,[$00,$C0,$C0,$FF,$FF,$C0,$C0,$00],VERI 'T
    case "U" : LookUp yeri,[$00,$FE,$FF,$03,$03,$03,$FF,$FE],VERI 'U
    case 14  : LookUp yeri,[$00,$7E,$7F,$83,$03,$83,$7F,$7E],VERI 'Ü
    case "V" : LookUp yeri,[$00,$F8,$FE,$07,$03,$07,$FE,$F8],VERI 'V
    case "W" : LookUp yeri,[$00,$FE,$03,$06,$1C,$06,$03,$FE],VERI 'W
    case "Y" : LookUp yeri,[$00,$C0,$60,$30,$1F,$30,$60,$C0],VERI 'Y
    case "Z" : LookUp yeri,[$00,$87,$8D,$99,$B1,$E1,$C1,$81],VERI 'Z
    CASE "." : LookUp yeri,[$00,$00,$00,$03,$03,$00,$00,$00],VERI '.
    case "Q" : LookUp yeri,[$00,$7C,$82,$82,$82,$8F,$83,$7D],VERI 'Q
    case "/" : LookUp yeri,[$00,$03,$06,$0C,$18,$30,$60,$C0],VERI '/ 
    case ":" : LookUp yeri,[$00,$00,$00,$66,$66,$00,$00,$00],VERI ':
    case "-" : LookUp yeri,[$00,$18,$18,$18,$18,$18,$18,$00],VERI '-
    case "_" : LookUp yeri,[$00,$03,$03,$03,$03,$03,$03,$00],VERI '-
    case " " : LookUp yeri,[$00,$00,$00,$00,$00,$00,$00,$00],VERI 'BOSLUK
    case "@" : LookUp yeri,[$00,$7E,$81,$99,$A5,$BD,$85,$79],VERI 'BOSLUK 
    case "0" : LookUp yeri,[$00,$7E,$87,$8D,$99,$B1,$E1,$7E],VERI '0
    case "1" : LookUp yeri,[$00,$31,$61,$FF,$FF,$01,$01,$00],VERI '1
    case "2" : LookUp yeri,[$00,$47,$8F,$99,$99,$99,$F1,$E1],VERI '2
    case "3" : LookUp yeri,[$00,$42,$81,$99,$99,$99,$FF,$7E],VERI '3
    case "4" : LookUp yeri,[$00,$1E,$3E,$62,$C2,$FF,$FF,$02],VERI '4
    case "5" : LookUp yeri,[$00,$F1,$F9,$99,$99,$99,$9F,$8E],VERI '5
    case "6" : LookUp yeri,[$00,$7E,$FF,$89,$89,$89,$8F,$86],VERI '6
    case "7" : LookUp yeri,[$00,$80,$80,$8F,$9F,$F0,$F8,$FF],VERI '7
    case "8" : LookUp yeri,[$00,$6E,$FF,$91,$91,$91,$FF,$6E],VERI '8
    case "9" : LookUp yeri,[$00,$70,$F9,$99,$99,$99,$FF,$7E],VERI '9     
end select
    return

        GOTO BASLA
end




ELZEMEFE

#110
hocam bende takip ediyorum yazılımı evet ....
bende şu an başlasam yazarım ama  meyer hocam gerçekten oldukça güzel bir çalışma yaptı kendisine bu konuda minnettarım..

bende pc arayüzü  hız,animasyon, saat ,sıcaklık,tarih  fonksiyonu  olabilne bişey düşündüm ama siz nasıl bişey düşünüyorsunuz..
 

meyer

 @Elzemefe hocam,bana göre bu konuda minnettar olunması gereken birisi var ise eğer oda ETE hocamızdır.Kendisinin yardımları olmasaydı belki de hala kısır döngü içerisinde olayı anlamaya çalışıyor olacaktım..Bir de konuyu benim yürüttüğüme bakmayın..Programın mimarı Ete hocamızdır...Bu nedenle bu konuyla ilgili bütün minnetlerimiz Ete hocamıza..

@private korsan hocam,öncelikle tebrik ederim güzel bir iş çıkartmışsın..Devrenin videosunu da merakla bekliyor olacağım..
 

ELZEMEFE

Ete hocama zaten bu konuda hep  minnettarız...... ve minnettar kalacağız..

ELZEMEFE

borda kurmaya başladım az kaldı bitmesine ... arkadaşlar...

xoom

SIFRE KAYAN YAZI yazıyorum bişey kaymıyor  arkadaşlar..displayler boş çıkıyor ?

meyer

 @Xoom Hocam,
SIFRE -  Yazacağımız yazı ( Büyük harflerle ) - Enter
Bunları yaptığınız halde olmuyorsa konu ile ilgili daha önceki mesajlara bakınız...

xoom

Evet Hata bendeymiş özür dilerim. yanlış hex'i yüklüyormuşum.. tşk ederim.

mitec

konuya son mesajımı gönderdiğimden beri nerdeyse 1,5 ay geçmiş video ekleyeceğimi söylemiştim ama hala eklemedim çünkü tatmin edici bir sonuç alamadım
sıkıntılarıma gelince aslında herşey gayet güzel çalışıyor programa bi kaç animasyonda ekledim çokta hoş oldu fakat yazı kaydırmada bir problem oluyor sanki yazı dalgalanıyor gibi yapıyor sorunu anlamak için isiste kaydırma rutinini çok çok yavaşlattım her matrixden diğerine geçerken yeni matrixin ilk sütunu önceki matrixin son sutunundan hemen sonra yanıyor nerdeyse aynı anda diyebilirim
tam olarak anlatamadım galiba adım adım anlatmaya çalışayayım  ilk matrixe H harfini bastık taramayı çok çok yavaşlattık. ilk önce en sağda H harfinin en sağ çubuğu çıktı ardından H harfinin ortası sırayla çıktı en son olarakta  H harfinin en sol çubuğu çıktı yani harf matrixe sorunsuz biçimde basıldı ilk kaydırmamızı yapıyoruz en sağda hiç bir şey yok daha sonra H harfinin en sağdaki çubuğu çıktı sırayla harfin ortası matrixde çıktı şimdi H harfinin en soldaki çubuğu ilk matriximizin en sağında çıkıyor işte tam bu anda H harfinin en soldaki çubuğu yeni matrixin ilk sutununda da çıkıyor dalgalanmanın sebebi bu
günlerdir bu sorunla boğuşuyorum ne taptıysam halledemedim
bundan sonra yardımlarınızı bekliyorum
yazıyı yazdırma ve kaydırma rutinleri aşğıdaki gibi

HAZIRLA:
        I=72:YERI=0
        I2CREAD PORTB.4,PORTB.3,cont,YAZADRESS,[BILGI]
        YAZADRESS=YAZADRESS+1
        IF YAZADRESS>BITISADRESS THEN YAZADRESS=20:BITIS=1
        For Z=0 TO 7
        GoSub YERAL1
        SUTUN[I]=VERI   
        I=I+1
        yeri=yeri+1
        Next
        YERI=0 
        RETURN           
YAZ:
        X=128
        For I=7 To 0 STEP-1                     
        ShiftOut DTA1,CLK1,1,[SUTUN[I+64],SUTUN[I+56],SUTUN[I+48],SUTUN[I+40],_
        SUTUN[I+32],SUTUN[I+24],SUTUN[I+16],SUTUN[I+8],CERCEVE[I]]
        PORTD=X           
        High STROBE1  : PauseUs 50 :Low STROBE1       
        X=X/2
        PAUSEUS 1000     
        Next
        'PORTD=0
        Return
SOLSOL1:                               
        M=M+1
        IF M<9 Then GoSub  SOLA_KAY:GOSUB yaz:GOTO SOLSOL1 
        IF M=9 Then M=0       
        Return
sola_kay:
        For I=0 to 80         
        sutun[I]=sutun[I+1]       
        Next I
        Return

meyer

 @private_korsan hocam,öncelikle geç cevap yazdığım için kusura bakmayın...
Devrenizdeki sorunla alakalı olarak aşağıdaki gibi bir çözüm önerebilirim..Matrixlerdeki  her kaydırma sırasında bir gecikme ekleyerek dediğiniz sorunu aşabileceğinizi umuyorum..
İyi günler dilerim...


sola_kay:
        For I=0 to 80         
        sutun[I]=sutun[I+1]       
        Next I
        Pauseus 1000
        Return

ete

Meyer,

Anladığım kadarı  ile sorun şu,
- Bir önceki karekter hala yerinde duruyor gözüküyor ve bir bit kaydırılmış karekter bir öncekinin üzerine biniyor.
Bu sorunu gecikme ile aşmak mümkün değil bence. Gecikme üstelik başka sorunlar getirebilir.
Şunu deneyebiliriz.
Bir yandan bit bazında kaydırma yapılırken tüm matriks'i hızlı bir şekilde sıfırlama (boşaltma) yapabilirsek üzerine koyduğumuz kaydırılmış bitler sanki sıfırdan yeni matrikse karekter oturtuyormuş imajını verir ve böylece titreme ortadan kalkar.
Bütün yapılacak iş,
- Bütün matrikslere karekterleri yerleştir ve gereken gecikmeyi ver.
- Matrikslere ait diz değişkenlerinde bit bazında kaydırma yap.
- Matrikslere en hızlı şekilde boş karekter yerleştir (boşalt)
- Kaydırılmış karekterleri yeniden matrikslere yerleştir.

denemeye değer.
Ete

Powered by EzPortal