Üye Olmak İçin Tıklayın

Hoşgeldin, Kayıtsız Üye.

Teknik Paylaşım Platformu, teknik içerikli bilgi ve tecrübelerin paylaşımı için teknik elemanlar tarafından hiçbir maddi çıkar söz konusu olmadan kurulmuştur.
Sizde Teknik Paylaşım Platformundan daha faydalı bir şekilde yararlanmak istiyorsanız ÜYE OLUNUZ
Üye olmak için veya forum hakkında yardım almak için TIKLAYINIZ

Elektronik Devre Şemaları Amatör & Profesyonel devre şemalarını paylaşacağımız bölümdür

Elektroforum.net Teknik Haber

Konu Bilgileri
Konu Başlığı PIC BASIC ile Kayan Yazı Yapalım
Konudaki Cevap Sayısı
0
Şuan Bu Konuyu Görüntüleyenler
 
Görüntülenme Sayısı
931

Yeni Konu aç Cevapla
 
LinkBack Konu Araçları Arama Stil
Eski 10-07-11, 14:42   #1 (permalink)
Kullanıcı Profili
USTA ÜYE
 
starhacker - ait Kullanıcı Resmi (Avatar)
SponsorElektrohaber.net
Kullanıcı Bilgileri
Üyelik tarihi: Jun 2011
Üye No: 38668
Mesaj Adedi: 568
Konu Adedi: 522
Seviye 21 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Aktiflik: 0 / 522
Güç: 189 / 11746
Deneyim: 89%

Teşekkür Grafikleri
Teşekkür: 3
40 Mesajına 60 Teşekkür edildi
Puan Grafiği
Rep Puanı: 17
Rep Derecesi :
starhacker is on a distinguished road
Destek İçin

Bu sitenin reklam gelirleri tamamıyla sitenin host masraflarına gitmektedir,bu amaçla reklam vermek için Bannera TIKLAYINIZ ElemaN
Ek Bilgiler
starhacker - MSN üzeri Mesaj gönder
Standart PIC BASIC ile Kayan Yazı Yapalım



PIC BASIC ile Kayan Yazı Yapalım
Bu çalışmada yine öncelikle PIC BASIC ile programlama yapacağız. Tercihen PIC 16F628 kullanacağız. Yapacağımız devre, Bellek kapasitesinin izin verdiği noktaya kadar PIC 16F84 ile de çalışmaktadır. Yine 16F877 ile de devre çalışacaktır. Yalnız ben denemelerimi 16F628 ve 16F84 ile yaptım.
Bu konudaki çalışmamız sadece bu yazıdan ibaret olmayacak, bir kaç bölümden oluşacak. Bu çalışmada, 1 adet 5x7 led matrix üzerinde karakter oluşturacak ve oluşturduğumuz bu karakteri kaydıracağız. Sonraki çalışmalarımızda matrix sayısını çoğaltmak, karakter jeneratörü oluşturmak ve bunları kaydırmak gibi konular üzerinde duracağız. Bütün bu çalışmalar temel bilgiler verme amaçlı olarak öğrenmeye ilk adımı oluşturacak. Dolayısıyla gelişmiş devrelerden beklenen özellikler bu çalışmada aranmamalıdır.
Göstergeler:
Öncelikle kullanacağımız 5x7 led matrix üzerinde durmak gerekmektedir. Malzemeciden istediğim 5 adet ortak katod ve 5 adet ortak anot matrix displeyin hepsi ortak katod olarak karşıma çıkınca üzerinde dikkatle durmak gerektiği düşüncesi bende hasıl oldu.

Şekil 1: 5x7 ortak katod dipley (bu displey boyut olarak oldukça küçük: 1.3cmX1.8cm)
Şimdi bu kadot dipleyinresminde göründüğü şekliyle grafiğini çizelim.

Şekil 2: 5x7 matrixin grafiksel gösterimi. Üstten görünüm.
Resimde de görülen işaretli bacak grafikte yaptığım isimlendirmede C6 ucunu ifade diyor. Bu displeyde dik dizilmiş olan sırayı sütun olarak tanımladım C harfini verdim. Yatay dizlimiş led sırasını satır olarak tanımladım ve R harfini verdim. Sol üst köşeyi R1 ve C1 olarak tanımladım.
Devrenin Şeması:
Bu Resim Otomatik olarak ufaltılmıştır. Resmi Büyütmek için buraya tıklayınız. Resmin Orjinal Boyutu 590x337.
Şekil 3: Devrenin Şeması (08.07.2006 tarihinde güncellendi.)
Denemelerimizde kullanacağımız devreyi, şeması şekil 3'te görüldüğü gibi tek displeyli ve PIC 16F628 kullanarak yapıyoruz. Yukarıda bahsettiğimiz sütun uçlarını PORTA olarak ve satır uçlarını PORTB olarak bağlıyoruz.

Göstergenin Çalıştırılması:
Göstergede karakterler dizisini oluşturmak için gerekli mantık şudur: Elimizdeki displey ortak katod uçlu olduğundan sütuna bağlı olan ledlerin uçları katoddur. PIC'i programlarken bu uçlara 0 değerini verirsek ve satırlarda yanmasını istediğimiz ledler için de 1 değerini verirsek istediğimiz ledler yanmış olur.
İlk yapacağımız iş matrix displeydeki bütün ledleri yakmak olacak. Bunu için PIC BASIC ile ilk programımızı yapalım:
'===5X7 LED MATRIX TAMAMEN YANAR===TRISA=%00000000 'PORTA ÇIKIŞ YAPILDITRISB=%00000000 'PORTB ÇIKIŞ YAPILDIBASLA: PORTA=%00000000 'PORTA 0 (LOW) PORTB=%11111111 'PORTB 1 (HIGH) GoTo BASLA 'BASA DON EndProgramda görüldüğü gibi bütün ledleri yakmak için ledlerin ihtiyacı olan voltajı veriyoruz. Burada hangi satırı söndürmek istersek onu PORTA'da 0 yapıyoruz, hangi sütunu söndürmek istiyorsak onu PORTB'de 1 yapıyoruz.

Göstergede Karakterin Oluşturulması:
Göstergede istediğimiz karakteri şu şekilde rahatlıkla oluştururuz.
Önce 1. sütunu 0 (LOW) yaparız (PORTA'nın 1. biti). Diğer bitler 1 olarak kalır.
Sonra, satırlarda yanmasını istediğimiz ledler için PORTB'nin uçlarından gerekli olnları 1 (HIGH) yaparız.
İkinci sütuna geçeriz ve 0 yaparız
İkinci sütunda yanmasını istediğimiz ledleri 1 yaparız. Bu işlem Son sütuna kadar devam eder. Böylece karakteri oluşturmuş oluruz.

'===5X7 DISPLEYDE M KARAKTERINI OLUSTURMAK===TRISA=%00000000 '===PORTA CIKIS===TRISB=%00000000 '===PORTB CIKIS===P1 VAR BYTEP1=5 '===BEKLEME SURESI TITREMEYI ENGELLEMEK ICIN===BASLA: '===M karakterinin olusturulmasi=== PORTA=%11111110 'SUTUN 1 ICIN PORTB=%01111111 'BU DEGERLER Pause P1 'BEKLEME SURESI PORTA=%11111101 'SUTUN 2 ICIN PORTB=%00000010 'BU DEGERLER Pause P1 'BEKLEME SURESI PORTA=%11111011 'SUTUN 3 ICIN PORTB=%00000100 'BU DEGERLER Pause P1 'BEKLEME SURESI PORTA=%11110111 'SUTUN 4 ICIN PORTB=%00000010 'BU DEGERLER Pause P1 'BEKLEME SURESI PORTA=%11101111 'SUTUN 5 ICIN PORTB=%01111111 'BU DEGERLER Pause P1 'BEKLEME SURESI GoTo BASLA 'BASA DON VE TEKRAR ET EndProgramda görüldüğü gibi sütunu seçiyor ve satırdan istediğimiz ledleri yakıyoruz. Ledlerin ynma süresini tayin etmek için de bir bekleme zaman dilimi koyuyoruz.
Yapılan devrenin görünümü şöyle oluyor.

Şekil 4: Sabit M karakterinin görünümü.

Göstergede Oluşturulan Karakterin Kaydırılması:
Oluşturduğumuz karakteri kaydırmak için öncelikle değişkenler tanımlıyor ve karakterleri bu değişkenlere atıyoruz. Bu değişkenler sütunlardaki satır bilgilerini ifade ediyor. Göstermek istdiğimiz sütunda bu değişkenleri kullanıyoruz. Bu ilk adımı oluşturuyor.
Bunu programda gösterirsek:
'===M KARAKTERINI DEGISKENLERLE OLUSTURMAK===P1 VAR BYTEd1 VAR BYTEd2 VAR BYTEd3 VAR BYTEd4 VAR BYTEd5 VAR BYTETRISA=%00000000TRISB=%00000000P1=5'===M karakteri degiskenlerde tanimlandi===d1=%01111111 '*******d2=%00000010 ' *d3=%00000100 ' *d4=%00000010 ' *d5=%01111111 '*******BASLA:'===M karakterinin olusturulmasi=== PORTA=%11111110 'SUTUN 1 ICIN PORTB=d1 'BU DEGERLER Pause P1 'BEKLE PORTA=%11111101 'SUTUN 2 ICIN PORTB=d2 'BU DEGERLER Pause P1 'BEKLE PORTA=%11111011 'SUTUN 3 ICIN PORTB=d3 'BU DEGERLER Pause P1 'BEKLE PORTA=%11110111 'SUTUN 4 ICIN PORTB=d4 'BU DEGERLER Pause P1 'BEKLE PORTA=%11101111 'SUTUN 5 ICIN PORTB=d5 'BU DEGERLER Pause P1 'BEKLE GoTo BASLA EndBu programda kullandığımız değişkenleri kullanacağımız sütun sayısı kadar çoğaltmamız gerekmektedir. Ben MEHMET görünümü için 30 tane değişken kullandım. Sizinde istediğiniz karakterler için gerektiği kadar sütun için değişken tanımlamanız gerekir. Bu devrelerde yanmasını istediğim ledlere 1 değerini veriyorum sönmesini istediğim ledlere 0 değerini veriyorum. Ancak değişken kullanma sayısının da PIC'lerin hafıza kapasitesinden dolayı bir sınırı var. Bu sınır kullandığımız PIC'e göre değişi. PIC 16F84 te az iken 16F628 de fazladır. Değişken kullanma sınırını aştığınızda program derlenmez ve hata verir.

Şimdi çok karakterli kaydırma işlemini yapan programı görelim ve inceleyelim:
'===COKLU KARAKTER KAYDIRILIYOR===P1 VAR BYTEi VAR BYTEi1 VAR BYTEd0 VAR BYTEd1 VAR BYTEd2 VAR BYTEd3 VAR BYTEd4 VAR BYTEd5 VAR BYTEd6 VAR BYTEd7 VAR BYTEd8 VAR BYTEd9 VAR BYTEd10 VAR BYTEd11 VAR BYTEd12 VAR BYTEd13 VAR BYTEd14 VAR BYTEd15 VAR BYTEd16 VAR BYTEd17 VAR BYTEd18 VAR BYTEd19 VAR BYTEd20 VAR BYTEd21 VAR BYTEd22 VAR BYTEd23 VAR BYTEd24 VAR BYTEd25 VAR BYTEd26 VAR BYTEd27 VAR BYTEd28 VAR BYTEd29 VAR BYTETRISA=%00000000 '===BUTUN UCLAR===TRISB=%00000000 '===CIKIS YAPILDI===P1=5 '===TITREMEYI ENGELLEMEK LCLN===i=0 '=== BU DEGER SABIT KALSIN===i1=22 '===KAYMA HIZINI AYARLIYOR=== '===MEHMET karakterinin degiskenlere atanmasi===d0=%00000000d1=%01111111d2=%00000010d3= %00000100d4=%00000010d5=%01111111d6=%00000000d7=%0 1111111d8=%01001001d9=%01001001d10=%00000000d11=%0 1111111d12=%00001000d13=%00001000d14=%01111111d15= %00000000d16=%01111111d17=%00000010d18=%00000100d1 9=%00000010d20=%01111111d21=%00000000d22=%01111111 d23=%01001001d24=%01001001d25=%00000000d26=%000000 01d27=%01111111d28=%00000001d29=%00000000BASLA: i=i+1 'i YI BIR ARTTIR IF i=i1 Then kaydir PORTA=%11111110 'SUTUN 1 ICIN PORTB=d1 Pause P1 PORTA=%11111101 'SUTUN 2 ICIN PORTB=d2 Pause P1 PORTA=%11111011 'SUTUN 3 ICIN PORTB=d3 Pause P1 PORTA=%11110111 'SUTUN 4 ICIN PORTB=d4 Pause P1 PORTA=%11101111 'SUTUN 5 ICIN PORTB=d5 Pause P1 GoTo BASLA kaydir: i=0 '===KAYDIRMA BASLIYOR=== d0=d1 d1=d2 d2=d3 d3=d4 d4=d5 d5=d6 d6=d7 d7=d8 d8=d9 d9=d10 d10=d11 d11=d12 d12=d13 d13=d14 d14=d15 d15=d16 d16=d17 d17=d18 d18=d19 d19=d20 d20=d21 d21=d22 d22=d23 d23=d24 d24=d25 d25=d26 d26=d27 d27=d28 d28=d29 d29=d0 GoTo BASLA EndBu programa bektığımızda kaydırma işlemi dışında herşey yukarıda anlattığımız gibi olduğundan sadece kaydırmanın nasıl yapıldığını izah etmek istiyorum.

Bu programda kullanılan bazı değişkenlerin amacını öncelikle açıklamak gerekmektedir:
i değişkeni sayaç amacıyla kullanılmıştır.
i1 değişkeni kaç görüntü tekrarlandıktan saonra kaydırmanın yapılması gerektiğini belirtir. i1 değişkeni ile kayma hızını ayarlayabilirsiniz.
P1 değişkeni ise her sütunun ekranda ne kadar süre kalması gerektiğini yani bekleme aralığını belirtir. Bu değeri titreme sınırına yakın bırakmakta fayda var. Program büyüdükçe bu değerin ve i1 değişkeninin değerini gözden geçirmek gerekebilir.

i=i+1
IF i=i1 Then kaydir
Programda bulunan bu satırları şöyle hikaye edebiliriz. "Buraya kadar geldiysen kaydır'a git ve oradakileri gerçekleştir." i1 değişkeni için 22 atandığı için 22 kere karakteri gösterdikten sonra kaydırma işlemi yapılacaktır.
Şimdi ise kaydırma işleminin nasıl yapıldığını inceleyelim. Bu işlem çok basit. Öncelikle sayacı sıfırlıyoruz. Sonra değşkenleri birbiriyle yer değiştiriyoruz. Bu şekilde kaydırmayı ve yönünü tayin edebiliyoruz.



starhacker isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
..:: Sitemize Destek İçin Reklam Verebilirsiniz ::..
..:: Reklam Alanı ::..
PAYLAŞIMLARIN DEVAMI İÇİN SİTE İÇERİSİNDEKİ REKLAMLARA TIKLAYINIZ
..::: TEKNİK PAYLAŞIM PLATFORMUNDAKİ BU KONUYU BEĞENDİYSENİZ ARKADAŞINIZLA PAYLAŞABİLİRSİNİZ ::..
ElemaN Yollayabilirsin Dedi!
Sayfayı E-Mail olarak gönder
Yeni Konu aç Cevapla

Bookmarks


Konuyu Toplam 3 Üye okuyor. (0 Kayıtlı üye ve 3 Misafir)
 

Yetkileriniz
Yeni Mesaj yazma yetkiniz Aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz Aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz Aktif değildir dir.

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Kategori Başlıkları Cevaplar Mesajlara Cevaplar
PIC 16F628 ile 8X32 Kayan Yazı Grafik Panosu - 1 starhacker Elektronik Devre Şemaları 0 10-07-11 14:29
PIC BASIC ile Kayan Yazı Yapalım ElemaN Dijital Elektronik 2 30-09-10 00:25
PIC BASIC ile Kayan Yazı Yapalım ElemaN Elektronik Devre Şemaları 0 10-03-09 01:32
CD 4017 Entegresi ile Kayan Yazı Devresi ElemaN Elektronik Devre Şemaları 0 10-03-09 01:32
PIC 16F628 ile 8X32 Kayan Yazı ElemaN Dijital Elektronik 4 21-12-08 18:43


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 13:37 .


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0 RC2
© ELEKTROFORUM.net ™
Protected by Cracker By ElemaN
Bu web sitesini kullanmanız Kullanım Koşulları'nı onayladığınız anlamına gelmektedir.
Copyright © 2008 - 2018 - elektroforum.net
Açılan konular, yazılan mesajlar sahiplerinin sorumluluğu altındadır.
REALIST Artik Kalite Kazaniyor!
Eğitim ve Ögretim Genel


Flash Oyun Portalı

Teknik Haber Paylaşım Portalı

ELEKTROFORUM forum sitesi olduğundan üyelerimizin açmış olduğu konular onay almadan yayınlanmaktadır.Forumumuzdaki tüm dosyalar tanıtım amaçlı olarak paylaşılmakta olup forum bünyesinde kullanımı lisans gerektiren dosya barındırılmamaktadır.Tanıtım amaçlı dosyaları bilgisayarınızda 24 saatten fazla tutmanız T.C yasalarına göre suç sayılır.Hakkının ihlal edildiğini düşünen hak sahibi,şahıs veya şirketin bize bildirmesi durumunda,ihlal unsuru içerdiği tesbit edilen dosyalar yayından derhal kaldırılacaktır. 5846 sayılı kanunun 25. maddesinin ek 4. maddesine göre hakkı ihlal edilen kişi yada şirketler öncelikle ihlalin durdurulmasını istemek zorundadır.Sitemizi kullanan üyelerimiz bu kuralları kabul etmiş sayılır.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240