Salvo
Kayıtlı Üye
PIC PROGRAMLAMA
Pic kod yazımından önce;
Kodları yazarken komut seti sayfasındaki 35 komut kullanılıyor, topu topu 35 komut. Fakat şu şöyleyse böyle yap bu böyleyse şuraya git, şurada dur, buradan devam et, benim canım sıkıldı şu kadar say, eeeee bu yetmedi gönlüm hoş olmadı bu kadar tekrarla gibi işlemleri, bizim diğer bildiğimiz yüksek seviyeli diller olan C, Vbasic Delphi deki gibi 3 – 5 satırla yapamıyoruz. (Bunun için picbasic pro gerekli, orda canınız istediğiniz kadar sıkılabilir)
Öncelikle tüm programlama dillerinde olduğu gibi algoritma önemli. Öncelikle yapacağımız devre hangi mantıkla ne zaman neyi yapacak ne zaman hangi kararları alacak bunu bilmeliyiz. Ne çıkacak ne girecek bunları belirlemeliyiz.
Bu işlemlerden en can alıcı noktalar da Interrupt (kesme) dediğimiz işlemler. Programa başlamadan önce bunu bilmeliyiz, bize interrupt lazım mı değil mi?
Bundan sonrada en basit olan işlem geliyor. Hangi portu hangi uçları çıkış hangi uçları çıkış olarak kullanacağız. Kaç çıkışımız kaç girişimiz olacak. Bunlara göre bize gerekli olan çıkış giriş sayısı ve devrenin diğer özelliklerine ve amacına göre hangi Pic’i kullanacağız bu ortaya çıkar.
PIC16F84 için, 5 PortA ve 8 PortB olmak üzere bildiğimiz gibi 13 pinimiz var. Eğer bu sayı yetmiyorsa F84’ü ya port çoğaltma işlemi uygulayarak kullanacaksınız ya da en güzeli 16F877 kullanacaksınız.
Hangi pic olursa olsun sonuçta kullanacağımız komut sayısı 35.
Burada uzun uzun başka sayfalarda ve internet sitelerinde olan şeyleri anlatmayacağım.
Şimdi kararı 16F84 de verdik diye düşünelim ve ona göre devam edelim.
Direct çalışan bir uygulama üzerinden açıklayacağım.
(şu an için hiç bahsetmeyeceğim konular. Konfigürasyon bitleri, include dosyası, kesme ve değişken tanımları)
Kullanılacak devreyi genel bağlantı şemasına göre yapınız. O devreyi yaptıysanız zaten geride kalan uçlar reset ucu ve portlar olacaktır. Şimdi 1 adet ledi sadece yakacağız ve ardından söndüreceğiz. Yaktıktan sonra niye söndüreceğiz?, çünkü ben bu yakma işini başardığımda, başardığımın farkına varamamıştım.
Bir tane led yanıyor ama niye yanıyor, ya entegre mi yandı, yanlış mı bağladık, kısa devre mi var? Bunun yanında birde devrede ufak tefek hatalar varsa soruların ardı arkası kesilmiyor. Acaba devre mi bozuk, bir daha kontrol, bir daha bir daha
derken değerli zaman çürüyüp gidiyor.
Pic kod yazımından önce;
Kodları yazarken komut seti sayfasındaki 35 komut kullanılıyor, topu topu 35 komut. Fakat şu şöyleyse böyle yap bu böyleyse şuraya git, şurada dur, buradan devam et, benim canım sıkıldı şu kadar say, eeeee bu yetmedi gönlüm hoş olmadı bu kadar tekrarla gibi işlemleri, bizim diğer bildiğimiz yüksek seviyeli diller olan C, Vbasic Delphi deki gibi 3 – 5 satırla yapamıyoruz. (Bunun için picbasic pro gerekli, orda canınız istediğiniz kadar sıkılabilir)
Öncelikle tüm programlama dillerinde olduğu gibi algoritma önemli. Öncelikle yapacağımız devre hangi mantıkla ne zaman neyi yapacak ne zaman hangi kararları alacak bunu bilmeliyiz. Ne çıkacak ne girecek bunları belirlemeliyiz.
Bu işlemlerden en can alıcı noktalar da Interrupt (kesme) dediğimiz işlemler. Programa başlamadan önce bunu bilmeliyiz, bize interrupt lazım mı değil mi?
Bundan sonrada en basit olan işlem geliyor. Hangi portu hangi uçları çıkış hangi uçları çıkış olarak kullanacağız. Kaç çıkışımız kaç girişimiz olacak. Bunlara göre bize gerekli olan çıkış giriş sayısı ve devrenin diğer özelliklerine ve amacına göre hangi Pic’i kullanacağız bu ortaya çıkar.
PIC16F84 için, 5 PortA ve 8 PortB olmak üzere bildiğimiz gibi 13 pinimiz var. Eğer bu sayı yetmiyorsa F84’ü ya port çoğaltma işlemi uygulayarak kullanacaksınız ya da en güzeli 16F877 kullanacaksınız.
Hangi pic olursa olsun sonuçta kullanacağımız komut sayısı 35.
Burada uzun uzun başka sayfalarda ve internet sitelerinde olan şeyleri anlatmayacağım.
Şimdi kararı 16F84 de verdik diye düşünelim ve ona göre devam edelim.
Direct çalışan bir uygulama üzerinden açıklayacağım.
(şu an için hiç bahsetmeyeceğim konular. Konfigürasyon bitleri, include dosyası, kesme ve değişken tanımları)
Kullanılacak devreyi genel bağlantı şemasına göre yapınız. O devreyi yaptıysanız zaten geride kalan uçlar reset ucu ve portlar olacaktır. Şimdi 1 adet ledi sadece yakacağız ve ardından söndüreceğiz. Yaktıktan sonra niye söndüreceğiz?, çünkü ben bu yakma işini başardığımda, başardığımın farkına varamamıştım.
Bir tane led yanıyor ama niye yanıyor, ya entegre mi yandı, yanlış mı bağladık, kısa devre mi var? Bunun yanında birde devrede ufak tefek hatalar varsa soruların ardı arkası kesilmiyor. Acaba devre mi bozuk, bir daha kontrol, bir daha bir daha
derken değerli zaman çürüyüp gidiyor.