PIC Programlamaya Giri?
Daha önceden geli?tirdi?miz uygulamalaryn, çaly?abilmesi için, bir bilgisayara ve üzerindeki paralel yada seri porta ihtiyaç duyuyorduk. PIC programlamayy ö?rendikten sonra bu uygulamalary, bilgisayardan ba?ymsyz bir hale getirebilece?iz. Bu chip'ler, RISC (Reduced Instruction Set Computer) mimarisi ady verilen bir yöntem kullanylarak üretildiklerinden, bu PIC leri programlamak için gereken komutlar oldukça basit ve sayy olarak azdyr.tabela
Uygulamalarymyzy, PIC 16F84 serisi ile gerçekle?tirece?iz. Bu chip PIC16C84 olarakta bilinir. Ykisininde birbirinden hiçbir farky yoktur. Bu chip'i tercih etmemizin en büyük nedeni, FLASH teknolojisi ile üretilmi? olmasydyr. Flash memory 'e yüklenen bir program, chip'e uygulanan enerji kesilse bile silinmeyecektir. Flash bellekler, bu özellikleri ile EEPROM bellekler olarakta bilinirler. PIC lerde memory çe?itleri üç tiptir,
EPROM (Erasable PROgrammable Memory): Bu bellek tipine, elektrik sinyali ile kayyt yapylyr. Silip yeniden ba?ka bir program yazabilmek için mor ötesi y?yk altynda bir süre tutmak gerekir. Bu i?lem EPROM silici denen cihazlarla yapylyr.jaluzi
EEPROG (Electrically Erasable PROgrammable Memory): Microchip firmasy bu bellek tipini FLASH bellek olarakta adlandyryr. EPROM dan farky, silme i?leminin hyzly ve elektrik sinyali ile yapylmasydyr. Bizim kullanaca?ymyz PIC 16F84 bu kategoriye girmektedir.
ROM (Read Only Memory): Maliyeti dü?üktür fakat, sadece bir kez, fabrikasyon syrasynda yazylabilirler. Kötü yany, üretimden sonra chip programy içinde bir hata tespit edilirse, üretilen bütün chiplerin atylmak zorunda olmasydyr.kutu harf
PIC 16F84 üzerindeki flash memory sayesinde, chip üzerine bir program yazdyktan sonra, herhangi bir silici cihaza gereksinim duymadan ve beklemeden, kolayca programy silmek yada yeniden programlamak mümkündür.
PIC 'ler, PIC Assembly ile programlanyr. Toplam 35 komuttan olu?ur. Herhangi bir text editörü ile kodlary yazmak mümkündür. Bu kodlary derleyecek birde programa ihtiyacymyz olacaktyr. Biz, Microchip firmasynyn üretti?i, www.microchip.com adresinden de ücretsiz olarak indirebilece?iniz MPASM derleyicisini kullanaca?yz. Tercih yinede size kalmy?. Ba?ka derleyicilerde bulmak mümkün.totem tabela
MPASM ile, makina diline çevrilmi? olan bu program kodlaryny, PIC 'e yazmak için, bir PIC programlayycy devresine ihtiyacymyz var. Bu karty, kendimiz yapabilece?imiz gibi, hazyr olarakta almamyz mümkün. E?er hazyr bir PIC programlama kiti almak istiyorsanyz, ProtoPIC ady verilen ve www.tekno-market.com adresinde de satylan, Infogate firmasynyn üretti?i bu karty da almanyz mümkün. E?er satyn almak istemiyorsanyz, kendiniz de yapabilirsiniz. Bunun için, syk olarak kullanylan Sam J. Engstrom ' un geli?tirdi?i, seri port üzerinden PIC 16F84 programlayycy devresinin ?emasyny veriyorum.
Bir PIC 'i programladyktan sonra, yapylacak bir devre üzerinde deneme yapmak gerekecektir. Sonuçlara göre belki chip 'i yeniden programlama gerekecektir. Bu nedenle, çaly?malarymyzda hep kullandy?ymyz breadboard lardan buradada kullanyyoruz. PIC çyky? portundaki sinyaller genellikle, bu uçlara ba?lanan ledler ile izlenir. Syrf bu i? için üretilmi? PIC deneme kartlaryda vardyr. Konumuz ilerledikçe bizde kendimize bir deneme karty yapaca?yz.
PIC16F84, çok az enerji harcar. Flash belle?e sahip olmasy nedeni ile, clock giri?ine uygulanan sinyal kesildi?inde registerleri içerisindeki veri bozulmadan durur. Sinyal tekrar verildi?inde, program kaldy?y yerden devam eder. RA0-RA3 pinleri ile RB0-RB7 pinleri giri? çyky? portlarydyr. Ayny daha önceki paralel port uygulamalarymyz gibi çaly?yr. Bu portlar ile dy? ortama gönderilecek sinyaller, dü?ük olacaktyr. Bu nedenle, sinyalleri güçlendirmek için daha önce kullandy?ymyz, röle ve transistör gibi ek elemanlara ihtiyacymyz olacaktyr. Yinede bu enerji, ayny paralel porttaki gibi LED yakmak için yeterlidir.
Portlaryn maksimum sink akymy 25mA, source akymy ise 20mA dyr. Kö?eye ve elektroni?e yeni giri?en arkada?laryn hevesini kyrmamak için kullandy?ym terimleri azda olsa açyklamaya çaly?aca?ym. Kendimdende biliyorum çünkü, ilk bu i?lere heves etti?imde nezaman elime bir elektronik kitaby alyp okumaya ba?lasaydym, mutlaka anlamady?ym bir sürü ?ey olurdu. Sonradan kastyryp dururdum nedir ne de?ildir diye.
Vss (5) -Vdd (14) uçlary (Besleme):
Herneyse, Sink akymy gerilim kayna?yndan çyky? portuna do?ru akan akyma, Source akymy ise ise GND (toprak) ucuna do?ru akan akyma denir. PIC16F84 ün çekti?i akym, besleme gerilimine, portlardaki yüke ve clock giri?ine uygulanan saat sinyalinin frekansyna göre de?i?ir. Besleme gerilimi +5 Volt olarak, 5 numaraly Vdd ucundan, toprak ba?lantysyny ise 14 numaraly Vss ucundan girilir. PIC 'e ilk kez enerji verildi?inde, meydana gelebilecek gerilim dalgalanmalary nedeniyle olu?abilecek aryzalary önlemek amacy ile, Vdd ile Vss arasyna 0.1µf lik bir dekuplaj kondansatörü ba?lamakta fayda vardyr.
OSC1/CLK IN (16) ve OSC2/CLK OUT (15) (Clock Giri? ve Çyky?lary):
Daha önce seri portu anlatty?ymyz sayyda, saat (clock) sinyalinde bahsetmi?tik. Clock sinyali, pe?i syra gönderilen lojik "1" ve "0" darbelerinden olu?ur. Bu darbelerin araly?y, clock sinyalinin frekansyny belirler. Bu sinyali üretmek için osilatör devreleri kullanylyr. Bu devrelerin en klasi?i RC devreleridir. Bir RC devresi adyndanda anla?ylaca?y gibi, bir direnç ve kondansatörden olu?ur. Bu tip osilatörler, zamanlamanyn çok önemli olmady?y durumlarda kullanylyr. Sinyal üretme manty?y çok basittir. +5 Volt de?eri, kondansatör doluma ula?ana kadar topra?a akmak isteyecektir. Kondansatör doldu?u anda gerilim OSC1 giri?ine akar. Kondansatör tekrar bo?alyr ve i?lem ba?a döner. Böylece kondansatörün dolup bo?almasyna dayanan pe?isyra bir darbe sinyali üretilmi? olur.
OSC1 ucuna uygulanan bu frekansyn dörtte biri OSC2 ucundan çykar. Bu sinyalle de di?er bir eleman sürülebilir. Clock sinyalli RC osilatör devrelerinin dy?ynda kristal kontrollü osilatörler yada seramik resonatörler kullanylabilir. Ylk ba?larda çok hassas zamanlama gerektiren devreler yapmayaca?ymyz için RC tipi osilatör bizim i?imizi görecektir.
Giri?/Çyky? Portlary (RA0-RA3 ve RB0-RB7):
PIC16F84 te 13 adet giri?/çyky? portu vardyr. Bunlardan 8 tanesi B portu (RB0-RB7) di?er 5 tanesi de A portudur (RA0-RA4). Bu portlar giri? veya çyky? için programlanabilir. Programlama kysmyny bir dahaki sayyda inceleyebilece?iz. Bu portlardan geçebilecek sink yada source akymlary bir LED i sürmek için yeterli enerjiyi verecektir. Çyky? akymynyn az geldi?i durumlarda yükseltici devreler kullanylabilir. B portunun 8 ucu sanki 50K ohm luk dirençlerle Pull-up yapylmy? gibi etki gösterir. Bu port uçlaryndan bir tanesi çyky? olarak ayarlandy?ynda o uçtaki pull-up direnci iptal edilir. Bu kysymlary uygulama syrasynda daha rahat kavramak mümkün olacaktyr.
Reset Devresi ve ucu (4):
PIC16F84 e gerilim uygulandy?ynda, programyn ba?langyç adresinden itibaren çaly?masyny sa?layan bir reset devresi vardyr. Terslenmi? olan MCLR (4) ucu ile, programyn kullanycy tarafyndan kesilip ba?tan ba?latylmasy sa?lanabilir. Bunun için MCLR ucuna +5V 'luk gerilim uygulamak gerekir. Bu i?lem bir buton ile yapylabilir.
PIC Assembly
Assembler, text editöründe yazdy?ymyz komutlary, PIC 'in anlayabilece?i hexadesimal kodlara çeviren bir programdyr. Bilgisayarynyzdaki i?lemicininde, programlanmasy yine bu dile dayanyr. Kysacasy Assembler bilgisayar dillerinin en kökte olanydyr. Assembly kodlaryny kavramak ve kullanmak oldukça zordur. Do?rudan adresler ile çaly?mak gerekir. Komut yerine ço?u zaman sadece rakam ve harf yazarsynyz. Kary?yk olsa bile anla?ylmaz de?ildir. Bir dahaki sayyda gerçekle?tirece?imiz ilk PIC programynda, bir çok komudun kullanymyny anlamanyz mümkün olacaktyr.
