Pic Basic Pro kodları:
'****************************************************
'64 sütunlu, sütun taramalı dot matrix led
'16F877 entegre ve sütun kaydırma için 74HC238 entegresi kullanılmıştır
'ALTTAN ve ÜSTTEN DOLDURMALI GİRİŞ
'****************************************************
TRISC=%00000000
TRISB=%00000000
PORTC=%00000000
HIZ VAR BYTE 'yazının kayma hızı
KR_ENI VAR BYTE 'karakterin sütun sayayacı
TOP_EN VAR BYTE'alınan karakterlerin toplam genişliği
KAYMA VAR BYTE 'kaydırma adedi
EN VAR BYTE 'karakterin sütun sayısı
TMR VAR WORD 'bir satırın gösterim süresi
SBT VAR BYTE 'sabit tutma süresi
YAZI_SEC VAR BYTE 'Yazıların sıralanması
ZE VAR BYTE 'for-next değişkeni
ZE1 VAR BYTE 'for-next değişkeni
TE VAR BYTE 'for-next değişkeni (hız ayarı sayacı)
IN VAR BYTE 'for-next değişkeni
KR_AL VAR BYTE 'sıradaki karakteri alma
KR_SIRASI VAR BYTE 'kodlanmış karakter sıralaması
ALINAN_KR VAR BYTE 'alınan karakter
KR VAR BYTE[8] 'karakter sütunları
USTEL VAR BYTE 'asagı yukarı kaydırmada kullanılan değişken
SUTUN VAR BYTE[64] 'sütun adresi
YDK_SUTUN VAR BYTE[64] 'yedek sütun adresi
HIZ=0 'kayma hızını buradan ayarlayınız
SBT=50 'sabit bekleme süresini buradan ayarlayınız
TMR=1000
YAZI_SEC=0
IN=0
KR_ENI=0
PORTB=255
'*** ANA PROGRAM ***
SIRALA:
TOP_EN=0
BRANCH YAZI_SEC,[YAZI_1,YAZI_2,YAZI_3,YAZI_4]
YAZI_1: 'Yukarı doldurma animasyonu
GOSUB SUTUN_SIFIRLA
FOR KR_AL=0 TO 4 'girilen karakter sayısı-1
LOOKUP KR_AL,["Okuma"],ALINAN_KR
GOSUB KARAKTER
FOR KR_ENI=0 TO EN
IF TOP_EN<64 THEN
GOSUB YDK_KAYIT
TOP_EN=TOP_EN+1
ELSE
GOSUB YKR_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
ENDIF
NEXT KR_ENI
NEXT KR_AL
GOSUB BOSLUK
FOR KAYMA=1 TO (64-TOP_EN)/2 'yazıyı ortalatma
GOSUB YDK_KAYIT
NEXT KAYMA
GOSUB YKR_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
YAZI_2: 'Yukarı doldurma animasyonu
GOSUB SUTUN_SIFIRLA
FOR KR_AL=0 TO 3 'girilen karakter sayısı-1
LOOKUP KR_AL,["Ruhu"],ALINAN_KR
GOSUB KARAKTER
FOR KR_ENI=0 TO EN
IF TOP_EN<64 THEN
GOSUB YDK_KAYIT
TOP_EN=TOP_EN+1
ELSE
GOSUB YKR_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
ENDIF
NEXT KR_ENI
NEXT KR_AL
GOSUB BOSLUK
FOR KAYMA=1 TO (64-TOP_EN)/2 'yazıyı ortalatma
GOSUB YDK_KAYIT
NEXT KAYMA
GOSUB YKR_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
YAZI_3: 'Aşağı doldurma animasyonu
GOSUB SUTUN_SIFIRLA
FOR KR_AL=0 TO 7 'girilen karakter sayısı-1
LOOKUP KR_AL,["Yuceltir"],ALINAN_KR
GOSUB KARAKTER
FOR KR_ENI=0 TO EN
IF TOP_EN<64 THEN
GOSUB YDK_KAYIT
TOP_EN=TOP_EN+1
ELSE
GOSUB ASG_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
ENDIF
NEXT KR_ENI
NEXT KR_AL
GOSUB BOSLUK
FOR KAYMA=1 TO (64-TOP_EN)/2 'yazıyı ortalatma
GOSUB YDK_KAYIT
NEXT KAYMA
GOSUB ASG_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
YAZI_4: 'Aşağı doldurma animasyonu
GOSUB SUTUN_SIFIRLA
FOR KR_AL=0 TO 9 'girilen karakter sayısı-1
LOOKUP KR_AL,["(Voltaire)"],ALINAN_KR
GOSUB KARAKTER
FOR KR_ENI=0 TO EN
IF TOP_EN<64 THEN
GOSUB YDK_KAYIT
TOP_EN=TOP_EN+1
ELSE
GOSUB ASG_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
ENDIF
NEXT KR_ENI
NEXT KR_AL
GOSUB BOSLUK
FOR KAYMA=1 TO (64-TOP_EN)/2 'yazıyı ortalatma
GOSUB YDK_KAYIT
NEXT KAYMA
GOSUB ASG_EKLE
GOSUB SABIT
GOTO YAZI_SEC_SAYAC
'*** ALT PROGRAMLAR ***
KARAKTER:
'lookdown komutuyla alınan karaktere sıra numarası verilir
'branch komutuyla sıradaki karaktere göre karakter kodlarına gönderir
LOOKDOWN ALINAN_KR,["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",_
"abcdefghijklmnopqrstuvwxyz!'#$%&()?- .:,<>@"],KR_SIRASI
BRANCHL KR_SIRASI,[SIFIR,BIR,IKI,UC,DORT,BES,ALTI,YEDI,SEKIZ,DOKUZ,_
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_
_a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_U,_v,_w,_x,_y,_z,_
UNLEM,kesme,diyez,dolar,yuzde,ve,parantezac,parantezkapa,soru,_
TIRE,bosluk,nokta,ikinokta,virgul,kucuktur,buyuktur,guzele]
YDK_KAYIT:
FOR IN=0 TO 62
YDK_SUTUN[IN]=YDK_SUTUN[IN+1]
NEXT IN
YDK_SUTUN[63]=KR[1]
FOR IN=1 TO 5
KR[IN]=KR[IN+1]
NEXT IN
RETURN
SABIT:
FOR ZE=0 TO SBT
GOSUB TARAMA
NEXT ZE
RETURN
YKR_EKLE: 'yukarı doldur
USTEL=64
FOR ZE=0 TO 7
FOR ZE1=0 TO 63
SUTUN[ZE1]=SUTUN[ZE1]|(YDK_SUTUN[ZE1]&USTEL)
NEXT ZE1
USTEL=USTEL/2
GOSUB TARAMA
NEXT ZE
RETURN
ASG_EKLE: 'aşağı doldur
USTEL=1
FOR ZE=0 TO 7
FOR ZE1=0 TO 63
SUTUN[ZE1]=SUTUN[ZE1]|(YDK_SUTUN[ZE1]&USTEL)
NEXT ZE1
USTEL=USTEL*2
GOSUB TARAMA
NEXT ZE
RETURN
TARAMA:
FOR TE=0 TO HIZ 'Tarama tekrar sayısı (kayma hızı ayarı)
FOR IN=0 TO 63
PORTC=IN
PORTB=~SUTUN[IN]
PAUSEUS TMR
portb=255
NEXT IN
NEXT TE
RETURN
YAZI_SEC_SAYAC:
YAZI_SEC=YAZI_SEC+1
IF YAZI_SEC=4 THEN YAZI_SEC=0
GOTO SIRALA
SUTUN_SIFIRLA:
FOR IN=0 TO 63
SUTUN[IN]=0
YDK_SUTUN[IN]=0
NEXT IN
portb=255
PAUSE 20
RETURN
'*** KARAKTER KODLARI ***
A:
EN=5
KR[1]=126
KR[2]=9
KR[3]=9
KR[4]=9
KR[5]=126
KR[6]=0
RETURN
B:
EN=5
KR[1]=127
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=54
KR[6]=0
RETURN
C:
EN=5
KR[1]=62
KR[2]=65
KR[3]=65
KR[4]=65
KR[5]=34
KR[6]=0
RETURN
D:
EN=5
KR[1]=127
KR[2]=65
KR[3]=65
KR[4]=65
KR[5]=62
KR[6]=0
RETURN
E:
EN=5
KR[1]=127
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=65
KR[6]=0
RETURN
F:
EN=5
KR[1]=127
KR[2]=9
KR[3]=9
KR[4]=9
KR[5]=1
KR[6]=0
RETURN
G:
EN=5
KR[1]=62
KR[2]=65
KR[3]=73
KR[4]=73
KR[5]=58
KR[6]=0
RETURN
H:
EN=5
KR[1]=127
KR[2]=8
KR[3]=8
KR[4]=8
KR[5]=127
KR[6]=0
RETURN
I:
EN=3
KR[1]=65
KR[2]=127
KR[3]=65
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
J:
EN=5
KR[1]=32
KR[2]=64
KR[3]=65
KR[4]=63
KR[5]=1
KR[6]=0
RETURN
K:
EN=5
KR[1]=127
KR[2]=8
KR[3]=20
KR[4]=34
KR[5]=65
KR[6]=0
RETURN
L:
EN=5
KR[1]=127
KR[2]=64
KR[3]=64
KR[4]=64
KR[5]=64
KR[6]=0
RETURN
M:
EN=5
KR[1]=127
KR[2]=2
KR[3]=4
KR[4]=2
KR[5]=127
KR[6]=0
RETURN
N:
EN=5
KR[1]=127
KR[2]=4
KR[3]=8
KR[4]=16
KR[5]=127
KR[6]=0
RETURN
O:
EN=5
KR[1]=62
KR[2]=65
KR[3]=65
KR[4]=65
KR[5]=62
KR[6]=0
RETURN
P:
EN=5
KR[1]=127
KR[2]=9
KR[3]=9
KR[4]=9
KR[5]=6
KR[6]=0
RETURN
Q:
EN=5
KR[1]=62
KR[2]=65
KR[3]=65
KR[4]=97
KR[5]=126
KR[6]=0
RETURN
R:
EN=5
KR[1]=127
KR[2]=9
KR[3]=25
KR[4]=41
KR[5]=70
KR[6]=0
RETURN
S:
EN=5
KR[1]=38
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=50
KR[6]=0
RETURN
T:
EN=5
KR[1]=1
KR[2]=1
KR[3]=127
KR[4]=1
KR[5]=1
KR[6]=0
RETURN
U:
EN=5
KR[1]=63
KR[2]=64
KR[3]=64
KR[4]=32
KR[5]=127
KR[6]=0
RETURN
V:
EN=5
KR[1]=31
KR[2]=32
KR[3]=64
KR[4]=32
KR[5]=31
KR[6]=0
RETURN
W:
EN=5
KR[1]=63
KR[2]=64
KR[3]=56
KR[4]=64
KR[5]=63
KR[6]=0
RETURN
X:
EN=5
KR[1]=99
KR[2]=20
KR[3]=8
KR[4]=20
KR[5]=99
KR[6]=0
RETURN
Y:
EN=5
KR[1]=3
KR[2]=4
KR[3]=120
KR[4]=4
KR[5]=3
KR[6]=0
RETURN
Z:
EN=5
KR[1]=97
KR[2]=81
KR[3]=73
KR[4]=69
KR[5]=67
KR[6]=0
RETURN
_A: 'a
EN=5
KR[1]=32
KR[2]=84
KR[3]=84
KR[4]=84
KR[5]=120
KR[6]=0
RETURN
_B: 'b
EN=5
KR[1]=127
KR[2]=68
KR[3]=68
KR[4]=68
KR[5]=56
KR[6]=0
RETURN
_C: 'c
EN=5
KR[1]=56
KR[2]=68
KR[3]=68
KR[4]=68
KR[5]=40
KR[6]=0
RETURN
_D: 'd
EN=5
KR[1]=56
KR[2]=68
KR[3]=68
KR[4]=68
KR[5]=127
KR[6]=0
RETURN
_E: 'e
EN=5
KR[1]=56
KR[2]=84
KR[3]=84
KR[4]=84
KR[5]=24
KR[6]=0
RETURN
_F: 'f
EN=4
KR[1]=4
KR[2]=126
KR[3]=5
KR[4]=5
KR[5]=0
KR[6]=0
RETURN
_G: 'g
EN=5
KR[1]=8
KR[2]=84
KR[3]=84
KR[4]=84
KR[5]=56
KR[6]=0
RETURN
_H: 'h
EN=5
KR[1]=127
KR[2]=8
KR[3]=4
KR[4]=4
KR[5]=120
KR[6]=0
RETURN
_I: 'i
EN=3
KR[1]=68
KR[2]=125
KR[3]=64
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
_J: 'j
EN=3
KR[1]=32
KR[2]=68
KR[3]=61
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
_K: 'k
EN=4
KR[1]=127
KR[2]=16
KR[3]=40
KR[4]=68
KR[5]=0
KR[6]=0
RETURN
_L: 'l
EN=2
KR[1]=63
KR[2]=64
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
_M: 'm
EN=5
KR[1]=124
KR[2]=4
KR[3]=120
KR[4]=4
KR[5]=120
KR[6]=0
RETURN
_N: 'n
EN=5
KR[1]=124
KR[2]=8
KR[3]=4
KR[4]=4
KR[5]=120
KR[6]=0
RETURN
_O:
EN=5 'o
KR[1]=56
KR[2]=68
KR[3]=68
KR[4]=68
KR[5]=56
KR[6]=0
RETURN
_P: 'p
EN=5
KR[1]=124
KR[2]=20
KR[3]=20
KR[4]=20
KR[5]=8
KR[6]=0
RETURN
_Q: 'q
EN=5
KR[1]=8
KR[2]=20
KR[3]=20
KR[4]=20
KR[5]=124
KR[6]=0
RETURN
_R: 'r
EN=5
KR[1]=124
KR[2]=8
KR[3]=4
KR[4]=4
KR[5]=8
KR[6]=0
RETURN
_S: 's
EN=5
KR[1]=72
KR[2]=84
KR[3]=84
KR[4]=84
KR[5]=36
KR[6]=0
RETURN
_T: 't
EN=3
KR[1]=4
KR[2]=63
KR[3]=68
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
_U: 'u
EN=5
KR[1]=60
KR[2]=64
KR[3]=64
KR[4]=32
KR[5]=124
KR[6]=0
RETURN
_V: 'v
EN=5
KR[1]=28
KR[2]=32
KR[3]=64
KR[4]=32
KR[5]=28
KR[6]=0
RETURN
_W: 'w
EN=5
KR[1]=60
KR[2]=64
KR[3]=48
KR[4]=64
KR[5]=60
KR[6]=0
RETURN
_X: 'x
EN=5
KR[1]=68
KR[2]=40
KR[3]=16
KR[4]=40
KR[5]=68
KR[6]=0
RETURN
_Y: 'y
EN=5
KR[1]=12
KR[2]=80
KR[3]=80
KR[4]=80
KR[5]=60
KR[6]=0
RETURN
_Z: 'z
EN=5
KR[1]=68
KR[2]=100
KR[3]=84
KR[4]=76
KR[5]=68
KR[6]=0
RETURN
UNLEM:
EN=1
KR[1]=95
KR[2]=0
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
CIFTTIRNAK: ' "
EN=4
KR[1]=7
KR[2]=0
KR[3]=0
KR[4]=7
KR[5]=0
KR[6]=0
RETURN
KESME: ' '
EN=2
KR[1]=5
KR[2]=3
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
DIYEZ: '#
EN=5
KR[1]=20
KR[2]=127
KR[3]=20
KR[4]=127
KR[5]=20
KR[6]=0
RETURN
DOLAR : '$
EN=5
KR[1]=36
KR[2]=42
KR[3]=127
KR[4]=42
KR[5]=18
KR[6]=0
RETURN
YUZDE: ' %
EN=5
KR[1]=35
KR[2]=19
KR[3]=8
KR[4]=100
KR[5]=98
KR[6]=0
RETURN
VE: ' &
EN=5
KR[1]=54
KR[2]=73
KR[3]=85
KR[4]=34
KR[5]=80
KR[6]=0
RETURN
PARANTEZAC: ' (
EN=2
KR[1]=62
KR[2]=65
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
PARANTEZKAPA: ' )
EN=2
KR[1]=65
KR[2]=62
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
VIRGUL: ',
EN=2
KR[1]=80
KR[2]=48
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
TIRE: ' -
EN=4
KR[1]=8
KR[2]=8
KR[3]=8
KR[4]=8
KR[5]=0
KR[6]=0
RETURN
NOKTA: ' .
EN=2
KR[1]=96
KR[2]=96
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
IKINOKTA: ' :
EN=2
KR[1]=54
KR[2]=54
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
SORU: ' ?
EN=5
KR[1]=2
KR[2]=1
KR[3]=89
KR[4]=5
KR[5]=2
KR[6]=0
RETURN
BOSLUK:
EN=4
KR[1]=0
KR[2]=0
KR[3]=0
KR[4]=0
KR[5]=0
KR[6]=0
RETURN
KUCUKTUR: '<
EN=4
KR[1]=8
KR[2]=20
KR[3]=34
KR[4]=65
KR[5]=0
KR[6]=0
RETURN
BUYUKTUR: ' >
EN=4
KR[1]=65
KR[2]=34
KR[3]=20
KR[4]=8
KR[5]=0
KR[6]=0
RETURN
GUZELE: ' @
EN=5
KR[1]=62
KR[2]=65
KR[3]=93
KR[4]=85
KR[5]=94
KR[6]=0
RETURN
SIFIR: ' 0
EN=5
KR[1]=62
KR[2]=81
KR[3]=73
KR[4]=69
KR[5]=62
KR[6]=0
RETURN
BIR: ' 1
EN=4
KR[1]=66
KR[2]=66
KR[3]=127
KR[4]=64
KR[5]=0
KR[6]=0
RETURN
IKI: ' 2
EN=5
KR[1]=98
KR[2]=81
KR[3]=73
KR[4]=73
KR[5]=70
KR[6]=0
RETURN
UC: ' 3
EN=5
KR[1]=34
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=54
KR[6]=0
RETURN
DORT: '4
EN=5
KR[1]=24
KR[2]=20
KR[3]=18
KR[4]=127
KR[5]=16
KR[6]=0
RETURN
BES: ' 5
EN=5
KR[1]=47
KR[2]=69
KR[3]=69
KR[4]=69
KR[5]=57
KR[6]=0
RETURN
ALTI: ' 6
EN=5
KR[1]=62
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=50
KR[6]=0
RETURN
YEDI: ' 7
EN=5
KR[1]=113
KR[2]=9
KR[3]=5
KR[4]=3
KR[5]=1
KR[6]=0
RETURN
SEKIZ: ' 8
EN=5
KR[1]=54
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=54
KR[6]=0
RETURN
DOKUZ: ' 9
EN=5
KR[1]=38
KR[2]=73
KR[3]=73
KR[4]=73
KR[5]=62
KR[6]=0
RETURN
Dosyaları indirmek için tıklayınız...
0 Yorumlar