Kayan Yazı ETE'nin Devresi 7x96 lık matrise uygunmudur

Başlatan electronblue, 02 Ocak 2011, 19:49:22

electronblue

ETE hocamın aşağıdaki kod ve şemaya ait devresini tasarladım. Yalnız ben direk 7x96 lık matriste yaptım ve üst satırda hiçbir belirti yok, aynı şekilde PIC ile satır bağlantısını tersten yapınca bu sefer de alt satırda hiçbir belirti olmadı. PIC 'te RB0-RB6 arasını satırlara bağlıyorum. Öğrenmek istediğim bu şema direk 7x96 ya uygun mudur ? Eğer uygun ise kurduğum şemayı tekrar kontrol edeceğim.

ISIS dosyası : http://www.4shared.com/file/Q7fmTRJ0/proteus.html



'****************************************************************
'*  Name    : KAYAN YAZI DEVRESI                                      *
'*  Author  : [set under view...options]                        *
'*  Notice  : Copyright (c) 2006 [set under view...options]     *
'*          : All Rights Reserved                               *
'*  Date    : 16.07.2006                                        *
'*  Version : 1.0                                               *
'*  Notes   : REKLAM PANOSU UYGULAMASI                                                  *
'*          :                                                   *
'****************************************************************
ADCON1=7
;___________________________PROGRAMDA KULLANILAN DEĞİŞKEN TANIMLAMALARI________________
                                                                                       ;
SUTUN        VAR BYTE[96]                                                               ;
VERI         VAR BYTE                                                                   ;
KARAKTER     VAR BYTE                                                                   ;
'SAYICI       VAR BYTE                                                                   ;
SIRA_NO      VAR BYTE                                                                   ;
SUTUN_SAYISI VAR BYTE                                                                   ;
SUTUN_SAYAC   VAR BYTE                                                                 ;
OFSET        VAR BYTE                                                                   ;
LINE         VAR BYTE                                                                   ;
J            var byte                                                                   ;
I            var byte
s1           var byte
s2           var byte
s3           var byte

                                                                   ;
DAT          VAR PORTA.0                                                                ;
CLK          VAR PORTA.1                                                                ;
RESET        VAR PORTA.2
A VAR BYTE                                                   ;
       '"*****************************************************************************************************************************"
DATA @0," ABCDEFGH               ",5
;______________________________________________________________________________________;

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

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

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

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

;_________________________SUTUN TARAMA ALT PROGRAMI_____________________________
TARA:  
  LOW CLK                 ;data ucu 1
  HIGH DAT
  high CLK              
  LOW DAT                ;data 0
  FOR I = 0 TO 95        ;sutun taraması için döngü
  low clk
   low reset
   high reset
   PORTB=SUTUN[I]
   PAUSEUS 1200
   HIGH CLK    
   NEXT I                 ;döngü başına git
   PORTB=0                ;PORTB yi sıfırla
   I=0                    ;i degişkenini sıfırla
RETURN         

;_______________________________________________________________________________

;_______________________________TMR0 INTERRUPT ALT PROGRAMI_____________________
'DISABLE                 ;bütün kesmeleri geçersiz yap
' TMR_INT:
'  SAYICI=SAYICI+1       ;sayıcı değişkenini bir artır
'  IF SAYICI <= 11 THEN  INT_CIK  ;sayıcı 30 mu? değilse ınt_cık etiketine git
'  SAYICI=0              ; evet sayıcıyı sıfırla
'  GOSUB VERI_GOSTER     ;veri göster alt programına git
'  INT_CIK:              ; sayıcı 30 a eşit değilse program buraya yönlenir
'  INTCON.2=0            ;
'  RESUME                ;timer interrupt alt programından çık
'ENABLE
'return
;_______________________________________________________________________________
    
VERI_GOSTER:;___________________________________________________________________
  GOSUB KARAKTER_AL                           ;TABLODAN KARAKTER AL                                                                         ;
  GOSUB SENTEZ                                ;SENTEZ ALT PROGRAMINA GIT                      ;
  IF ( SUTUN_SAYAC = SUTUN_SAYISI ) THEN      ;sutun sayac , sutun sayısı na eşitmi
      GOSUB KAYDIR                            ; evet , kaydır alt programına git                           ;
      SUTUN[0]=0                              ;sutun0 ı sıfırla                                                  ;                                                                              ;
      SUTUN_SAYAC=0                           ;sutun sayac değişkenini sıfırla                                                 ;
      LINE=0                                                                                     ;
      J=J+1                                                                                      ;
   ENDIF 
'  pause 200                                                                                      ;
 RETURN;______________________________________________________________________________________;      
  
KARAKTER_AL:;_______________J DEGİSKEN DEGERİNE GÖRE KARAKTER ALINIYOR________________________
    READ J,KARAKTER                                                        ;
 RETURN;______________________________________________________________________________________;  
 
SENTEZ:;_________________________________ALINAN KARAKTER BİLGİSİ KARŞILAŞTIRILIYOR____________
  IF KARAKTER=5 THEN SON_KARAKTER
  
  SELECT CASE KARAKTER
    CASE 65: SIRA_NO=4     ;A
    CASE 66: SIRA_NO=9     ;B
    CASE 67: SIRA_NO=14    ;C
    CASE 68: SIRA_NO=19    ;D
    CASE 69: SIRA_NO=24    ;E
    CASE 70: SIRA_NO=29    ;F
    CASE 71: SIRA_NO=34    ;G
    CASE 72: SIRA_NO=39    ;H
    CASE 73: SIRA_NO=42    ;I
    CASE 74: SIRA_NO=47    ;J
    CASE 75: SIRA_NO=52    ;K
    CASE 76: SIRA_NO=57    ;L
    CASE 77: SIRA_NO=62    ;M
    CASE 78: SIRA_NO=67    ;N
    CASE 79: SIRA_NO=72    ;O 
    CASE 80: SIRA_NO=77    ;P 
    CASE 81: SIRA_NO=82    ;Q 
    CASE 82: SIRA_NO=87    ;R 
    CASE 83: SIRA_NO=92    ;S  
    CASE 84: SIRA_NO=97    ;T  
    CASE 85: SIRA_NO=102   ;U  
    CASE 86: SIRA_NO=107   ;V 
    CASE 87: SIRA_NO=112   ;W 
    CASE 88: SIRA_NO=117   ;X 
    CASE 89: SIRA_NO=122   ;Y
    CASE 90: SIRA_NO=127   ;Z
    CASE 32: SIRA_NO=132 ;BOSLUK   
    CASE 48: SIRA_NO=137 ;0  
    CASE 49: SIRA_NO=140 ;1 
    CASE 50: SIRA_NO=145 ;2
    CASE 51: SIRA_NO=150 ;3
    CASE 52: SIRA_NO=155 ;4
    CASE 53: SIRA_NO=160 ;5
    CASE 54: SIRA_NO=165 ;6  
    CASE 55: SIRA_NO=170 ;7
    CASE 56: SIRA_NO=175 ;8  
    CASE 57: SIRA_NO=180 ;9
    CASE 46: SIRA_NO=185 ;.
  end select   
  IF ((KARAKTER=49) OR (KARAKTER=73)) THEN 
    SUTUN_SAYISI=3
   ELSE 
    SUTUN_SAYISI=5
  ENDIF  
  SUTUN_SAYAC=SUTUN_SAYAC+1      
  GOSUB ORT_Iselam
RETURN
 SON_KARAKTER:
     VERI=0 : SUTUN_SAYISI=0 :  LINE=0 : SUTUN_SAYAC=0 : KARAKTER=0 : SUTUN_SAYISI=0 : J=0
RETURN
     ;__________________________________SENTEZ ALT PROGRAM SONU_______________________  
  
 ORT_Iselam:
  OFSET= SIRA_NO-LINE
  GOSUB TABLO
  GOSUB KAYDIR
  LINE=LINE+1
  
RETURN

KAYDIR:
    s1=95 
    s2=94   
         for s3= 0 to 94 
          sutun[s1] = sutun[s2]
          s1=s1-1 : s2=s2-1
         next  
     sutun [s1]=veri 
 RETURN

 TABLO:
   LOOKUP OFSET,[_
   $3F,$48,$48,$48,$3F,_      ;A   0-4
   $36,$49,$49,$49,$7F,_      ;B   4-9
   $22,$41,$41,$41,$3E,_      ;C   9-14
   $3E,$41,$41,$41,$7F,_      ;D   14-19
   $41,$49,$49,$49,$7F,_      ;E   19-24
   $40,$48,$48,$48,$7F,_      ;F   24-29
   $2E,$49,$49,$41,$3E,_      ;G   29-34
   $7F,$08,$08,$08,$7F,_      ;H   34-39
   $41,$7F,$41,_              ;I   39-42
   $40,$7E,$41,$01,$02,_      ;J   42-47
   $41,$22,$14,$08,$7F,_      ;K   47-52
   $01,$01,$01,$01,$7F,_      ;L   52-57
   $7F,$20,$10,$20,$7F,_      ;M   57-62
   $7F,$04,$08,$10,$7F,_      ;N   62-67
   $3E,$41,$41,$41,$3E,_      ;O    67-72
   $30,$48,$48,$48,$7F,_      ;P   72-77
   $3D,$42,$45,$41,$3E,_      ;Q   77-82
   $31,$4A,$4C,$48,$7F,_      ;R   82-87
   $26,$49,$49,$49,$32,_      ;S   87-92
   $40,$40,$7F,$40,$40,_      ;T   92-97
   $7E,$01,$01,$01,$7E,_      ;U   97-102
   $7C,$02,$01,$02,$7C,_      ;V   102-107
   $7E,$01,$0E,$01,$7E,_      ;W   107-112
   $63,$14,$08,$14,$63,_      ;X   112-117
   $70,$08,$07,$08,$70,_      ;Y   117-122
   $61,$51,$49,$45,$43,_      ;Z   122-127
   $00,$00,$00,$00,$00,_      ;bosluk   127-132
   $3E,$51,$49,$45,$3E,_      ;0   132-137
   $01,$7F,$21,_              ;1   137-140
   $31,$49,$45,$43,$21,_      ;2   140-145    
   $46,$69,$51,$41,$42,_      ;3   145-150
   $04,$7F,$24,$14,$0C,_      ;4   150-155
   $4E,$51,$51,$51,$72,_      ;5   155-160
   $06,$49,$49,$29,$1E,_      ;6   160-165
   $60,$50,$48,$47,$40,_      ;7   165-170
   $36,$49,$49,$49,$36,_      ;8   170-175
   $3C,$4A,$49,$49,$30,_      ;9   175-180
   $00,$00,$00,$00,$01],VERI  
 RETURN
   
END    
       
   


electronblue

#1
Sorun çözülmüştür.