Yine Hex dosyasını bulduğum bir proje ile Pic16F628A mikrodenetleyicisi ile LCD ekran kullanımını anlatmaya çalıştım. Pic programlanmanın Arduino’dan daha zor olduğunu daha önce söylemiştim zaten. Burada amaç bu mikrodenetleyicilere ilgi duyan arkadaşlara kaynak yaratabilmek. Bu projenin kodu ve aynı zamanda proteus üzerindeki çizimi ve simülasyonu da var. İlgilenen arkadaşlar için linkini de aşağıda vereceğim. Buradan hareketle bir sonraki projede aynı ekranı kullanıp bir saat yapabilmek. ayrıca K150 programlayıcının kullanımını da pekiştirmek istiyorum. Bu projeyi araştırırken kullanılan kristal osilatör ile de problem yaşadım. İlginçtir ki yine bu işlemcinin kullanıldığı bir kristal osilatör frekans sayıcı devresi buldum. Onu da yapıp burada yayınlamaya çalışacağım.
Bu mikrodenetleyiciye genel bir bakışla 18 bacaklı bu denetleyicinin 4 MHz osilatöre sahip olduğu, 128 byte eeproma sahip olduğu, 2 karşılaştırıcı, iki tane 8-bit zamanlayıcısı, 3kB program hafızası olduğu, 2-5 volt arası çalıştığını söyleyebiliriz. İki port olarak toplam 16 adet giriş/çıkış olarak kullanılabilen bacakları var (aslında 15, çünkü RA5 sadece giriş olarak kullanılabiliyor). Ayrıca bir bacağın birden fazla işlem için kullanılması, az bacağa rağmen çok işlev sağlıyor. Örneğin sadece giriş olarak kullanılan RA5 aynı zamanda Reset pini. Aşağıda üretici ola microchip firmasının kendi data sheet’inden veriler verilmiştir.
PIC16F628A Bacak Tanımlamaları:
Fonksiyon : Açıklama:
RA0 Giriş/Çıkış
AN0 Analog karşılaştırıcı giriş
RA1 Giriş/Çıkış
AN1 Analog karşılaştırıcı girişi
RA2 Giriş/Çıkış
AN2 Analog karşılaştırıcı girişi
VREF VREF çıkışı
RA3 Giriş/Çıkış
AN3 Analog karşılaştırıcı girişi
CMP1 Karşılaştırıcı 1 çıkışı
RA4 Giriş/Çıkış
T0CKI Saat 0 girişi
CMP2 Karşılaştırıcı 2 çıkışı
RA5 Giriş
MCLR Reset girişi
VPP programlama voltaj girişi
RA6 Giriş/Çıkış
OSC2 Kristal osilatör çıkışı
CLKOUT Saat çıkışı
RA7 Giriş/Çıkış
OSC1 Kristal osilatör girişi
CLKIN Saat girişi
RB0 Giriş/Çıkış
INT ST Harici kesme girişi
RB1 Giriş/Çıkış
RX USART alıcı
DT Senkron veri giriş/çıkış
RB2 Giriş/Çıkış
TX USART verici
CK Senkron saat giriş/çıkış
RB3 Giriş/Çıkış
CCP1 Yakala/karşılaştır/PWM giriş/çıkış
RB4 Giriş/Çıkış
PGM Düşük voltaj programlama
RB5 Giriş/Çıkış
RB6 Giriş/Çıkış
T1OSO Zamanlayıcı1 osilatör çıkışı
T1CKI Zamanlayıcı1 saat girişi
PGC Programlama saat girişi
RB7 Giriş/Çıkış
T1OSI Zamanlayıcı1 osilatör girişi
PGD ICSP veri giriş/çıkışı
VSS GND- negatif besleme
VDD Vcc- pozitif besleme
(Not: B portu girişler programlama ile pull up direnci eklenebilen girişlerdir)
Yukarıdaki bilgilerin tamamı orijinal üretici sayfasındandır. İsteyen bu özellikleri ve daha fazlasını bu data sheet’de bulabilir.
Önce kodu çipe yüklemeliyiz! Hemen K150 programlayıcıyı bilgisayarın usb girişine bağlayıp aygıt yöneticisinden portu kontrol ediyoruz.
COM4 üzerinde USB’den seri’ye dönüştürücü göründü. Peki daha önceki gibi yine uygunsuz alet falan gibi bir şeyler deseydi? Geçen sefer bahsettim ama yine tekrarlıyorum.Yapılacak şey: bu alet üzerinde sağ tıklayıp aşağıdaki adımları takip edelim. Önce “Sürücüyü güncelleştir”
Alttaki “Sürücü yazılımı için bilgisayarımı tara” seçiliyor.
Altta bulunan “Bilgisayarımdaki kullanılabilir sürücülerin listesinden…” seçeneği;
Çıkan iki sürücüden de üstte bulunan eski tarihli olanı seçip yükle diyoruz.
Artık aygıt yöneticisinde “USB-Seri Dönüştürücü” görülebiliyor. Bunu test etmek için, program dosyası olan TS8900-K150 klasöründen “CheckChipVersiyon…exe”dosyası tıklanıyor.
Uygun portu seçip “check” ettiğimizde aleti görmeliyiz.
Sonra aynı klasörden “DIYpack25ep” klasörünü açıp, “microbrn.exe” tıklanıp program açılıp “File” menüsünden portu (burada COM4) kontrol ediyoruz. Sağ alttan çipi ’16F628A’ olarak ayarladıktan sonra yine “File” menüsünden “Load” diyerek hex dosyasını yüklüyoruz.
En son işlem “Program” tuşuna basmak. Ve kodumuz 16F628A üzerine yüklendi. Artık devremiz kurulup çalıştırılabilir.
Devremizin şeması da oldukça sade. Sadece 15-16. bacaklar arasına 20MHz bir kristal ile birlikte, her iki bacağı da 15-30pF arası bir kondansatör ile gnd hattına bağlıyoruz. Potansiyometre ekran kontrastı için.Diğer bağlantılar 628A ile LCD ekran arasında ve aşağıdaki gibi:
Hex dosyası:
:10000000502F00308A000408840A820700344834E4
:1000100065346C346C346F34203457346F3472343C
:080020006C3464342134003417
:100EA0008301522FAB27572701306327562F01307C
:100EB00070270D30F400FB30F300F30B5D2FF40BC3
:100EC0005D2F622F0800F3007308840001200038B2
:100ED000031908007308840001208227F30A642F95
:100EE000F2000F3083120313861086057208F03962
:100EF000860494270F30831203138605720EF0398F
:100F00008604942FF2000F30831203138614860593
:100F10007208F039860494270F3083120313860574
:100F2000720EF0398604942F04300614F1003D301F
:100F3000F000F00B992FF10B992F9E2F04308312A4
:100F400003130610F1003D30F000F00BA52FF10B5C
:100F5000A52FAA2F08000230F9278316F927F500DC
:100F60000430F400BA30F300F30BB42FF40BB42FB9
:100F7000F50BB42F64000F30F32794272730F400CB
:100F8000F530F300F30BC22FF40BC22F0F30F32711
:100F90009427D630F300CC2FCD2FF30BCB2F64004A
:100FA0000F30F32794270D30F400FB30F300F30BE0
:100FB000D72FF40BD72FDC2F0F30831203138605A6
:100FC000861694270D30F400FB30F300F30BE62F68
:100FD000F40BE62FEB2F283070270C3070270130F0
:100FE00070270630702F8312031386053030860475
:100FF00008000610861006128612061386130800D3
:02400E0062FF4F
:00000001FF
Daha önce söylediğim gibi yukardakileri bir wordpad dosyasına yapıştırıp, uzantısını hex olarak değiştirdiğinizde kullanılmaya hazır.
Aşağıdaki linkte bu projenin orijinal haline, kodlarına, hex dosyasına ve proteus simülasyonuna ulaşabilirsiniz. Bu çalışmayı yayınladıkları için kendilerine teşekkür ediyoruz.
Hoşça kalın….
Kaynaklar:
https://www.microchip.com/wwwproducts/en/PIC16F628A
http://saeedsolutions.blogspot.com/2014/02/pic16f628a-lcd-interfacing-code-in-4bit.html