Yukarı Aşağı Doldurma




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...

Yorum Gönder

0 Yorumlar