PIC16F876 ile Türkçe Karakter Destekli Yazı Panosu

Yazı panosu 96 Sütun 8×8 LED Dot Matrix kullanılmış sürücü entegreler ise 74HC595 kontrol entegresi pic 16f876 yazı hex dosyasından okunuyor kaynak .bas .asm isis simülasyon dosyaları vardır ayrıca kaynak kod üzerinde açıklamalarda bulunuyor farklı kayan yazı projelerine buradan ulaşabilirsiniz

Kaynak Pic basic Kod
'****************************************************************
'* 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[95] ;
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,"ETE PICMAN KAYAN YAZI PROGRAMI DENEME YAZISIDIR. TOPLAM KAREKTER ADEDI 127 ADET OLABILIR. MATRIKS SAYISI ARTIRILABILMEKTEDIR",5
DATA @0," TÜRKÇE HARFLER EKLENDİ İİŞŞĞĞÜÜÇÇÖÖ",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 1000
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 ;.
CASE 199:SIRA_NO=190 ;Ç
case 208:sira_no=195 ;Ğ
case 221:sira_no=198 ;İ
case 214:sira_no=203 ;Ö
case 220:sira_no=208 ;Ü
case 222:sira_no=213 ;Ş
end select
IF ((KARAKTER=49) OR (KARAKTER=73)) THEN
SUTUN_SAYISI=3
ELSE
SUTUN_SAYISI=5
ENDIF
if karakter=221 then
SUTUN_SAYISI=3
endif
SUTUN_SAYAC=SUTUN_SAYAC+1
GOSUB ORT_ISLM
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_ISLM:
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,_ ;.
$24,$42,$43,$42,$3c,_ ;Ç 185-190
$16,$65,$61,$61,$1e,_ ;Ğ 190-195
$21,$7f,$21,_ ;İ 195-198
$1e,$61,$21,$61,$1e,_ ;Ö 198-203
$1e,$41,$01,$41,$1e,_ ;Ü 203-208
$26,$49,$4b,$49,$32],VERI ;Ş 208-213
RETURN
END
Yazar: Ete
Yazarımızın 320volt.com Blog üzerinde şu an okuduğunuz yazı dahil 23 yazısı bulunmaktadır. Yazarımız hakkında bilgileri ve diğer yazılarını görmek için bakınız; Ete












Ete hocadan Allah razı olsun onun dersleri sayyesinde picbasici çok daha kolayca öğrendim halada çalışıyorum ona sonsuz teşekkürlerimi sunuyorum.
bu arada Bayramınız kutlu olsun.
Sayın Ete hocam, büyük adamsınız vesselam. Sayenizde pbp öğrendik. Kitapla falan olacak iş değildi. Teşekkürler.
Keşke bu sistemi satır tarama yapsaydınız..