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
pic16f876-ile-turkce-karakter-destekli-yazi-panosu
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/09/29 Etiketler: kayan yazı, led uygulamaları, matrix, microchip pic projeleri, pic basic, PIC16F876 örnekleri, yazı panosu
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..