Yeni tasarım, test yayınıdır. Gördüğünüz hataları lütfen bildiriniz.

ISIS ile Detaylı PIC Simülasyonu Nasıl Yapılır?

ISIS ile PIC AnaliziMerhaba arkadaşlar,

Elektronikle uğraşan neredeyse herkes, yaptığı devrenin analizini yapmak ve pratikte nasıl çalışacağını görmek için simülasyon yazılımları kullanır. Kuşkusuz ki en çok kullanılan simülasyon yazılımı da Proteus-ISIS’tir.

Eğer sisteminizde MPLAB programı yüklü ise ( MPLAB ile ilgili yazımıza buradan ulaşabilirsiniz. ) ISIS ile bu yazılımı entegre edebiliyor ve PIC analizi yapabiliyorsunuz. Fakat MPLAB kullanmadan da ISIS’in kendi analiz özelliği ile kullandığınız PIC’i oldukça detaylı şekilde analiz edebiliyorsunuz. PIC yazılımını komut komut çalıştırabiliyor ve bu sırada PIC’ın yazmaç ( register ) durumlarını, EEPROM haritasını, RAM haritasını, program haritasını görebiliyorsunuz. Bu, özellikle devrenizin beklemediğiniz bir şekilde çalışmadığı durumlarda, hatanın PIC’e yüklediğiniz yazılımda olup, olmadığını anlamanızı kolaylaştırıyor.

Sizlere sadece ISIS yazılımını kullanarak simülasyon sırasında PIC’i nasıl izleyebileceğinizi anlatmaya calışacağım.


Öncelikle bir çalışma alanında simülasyonunu yapacağınız bir PIC’in olduğunu ve yazılımını yüklediğinizi farz ederek devam ediyorum. Bu kısımlar genelde bilindiği için anlatma gereği duymadım. Eğer simülasyona PIC ekleme ve PIC’e yazılım yükleme konusunda problem yaşıyorsanız bu yazıya yorum yazarak sorunuzu sorabilirsiniz.

Analiz yaparken simülasyonumuzu adım adım çalıştırmamız gerekiyor. Bunu ISIS’te sol alt köşedeki butonlar ile yapacağız. Bunun için “Step” tuşuna basacağız. Bahsettiğim “Step” tuşu kırmızı elips içine aldığım butondur.

ISIS Step Butonu

Simülasyonu bu tuş ile başlattığınızda çok az bir süre çalışıp, bekleyecektir. Kaçıncı saniyede olduğunuz butonların hemen sağındaki kısımdan öğrenebilirsiniz.

ISIS Saniye

Bu şekilde devremizin çalışmaya başladıktan sonra gözüken süre sonra alacağı durumu görebiliyor, analiz edebiliyoruz. PIC’in durumunu görmek için de gerekli pencereleri açmamız gerekmekte. Bunun için izleyeceğiniz yol şudur: ( İngilizce menü içindir. )

Debug -> PIC CPU

Gördüğünüz üzere 5 adet farklı seçeneğimiz var. Kısa kısa her birini açıklamaya çalışacağım. Simülasyonda PIC 16F877 kullanıyorum. Kullandığınız cihaza göre analiz pencereleri de değişiklik gösterebilir.

1-Registers

Bu pencere ile bazı özel “register”ların ( yazmaç ) durumunu görebilir, o anda işlenecek komutu PIC Assembly dili komutu şeklinde görebilirsiniz. Bu pencere şu şekilde olacaktır:

ISIS PIC Analiz registers

Gördüğünüz gibi yazılımın çalışmasını takip etmeniz için gereken özel “register”lar ( yazmaç ) ve “flag”lar ( bayrak ) bu pencerede gösteriliyor.

2-Data Memory

Bu pencere ile değişkenlerin tutulduğu alanı yani cihazın “RAM” bölgesini izleyebilirsiniz. Her adresin durumuna bakabilirsiniz. Her bir bölgenin üzerine gelerek değerini ve adresini görebilirsiniz. Bazı adımlarda bazı alanların arkalarının yeşil renkte olduğunu görebilirsiniz. Bu renk size değeri değişen bölgeleri vurgulamaktadır.

ISIS PIC Analiz data memory

Gelen pencerede bir satırda 8 adet bölgeyi görebiliyorsunuz. Pencereyi genişleterek bu sayıyı arttırmak ve tüm bölgeleri gözünüzün önüne almak mükün.

3-Eprom Memory

Tahmin edebileceğiniz gibi bu pencere ile cihazın EEPROM kısmına bakabiliyoruz. Bu alana yazılan veriler PIC kapandıktan sonra da silinmeyecektir. Cihaza neler kaydettiğinizi buradan görebilirsiniz. Yine pencereyi genişleterek tüm alana aynı anda bakabilirsiniz. Ben biraz genişlettim.

ISIS PIC Analiz eeprom

4-Program Memory

Bu pencere ile de PIC’e yüklediğimiz programı görebiliriz. PIC, burada gördüğümüz komutlara göre çalışmakta, her türlü işlemi buradaki verilere göre yapmaktadır, her ne kadar baktığımızda direkt olarak bizim için bir anlam içermese de. :)

Programlarınızın 99%’nda buradaki değerler değişmeyecektir. Bu yüzden bu pencerede hep sabit değerler görebilmeniz mümkün. İzlemeniz çok da önemli değildir. Çünkü veriler çoğunlukla sabit kalacaktır.

ISIS PIC Analiz program memory

5-Stack

Son penceremiz ise “stack” ( yığın ) penceresi. Kısaca “stack” ( yığın ) nedir dersek:

“Stack” ( yığın ), programınız bir yerlere dallandığında geri dönüş bilgisinin tutulduğu yerdir. Basitçe her komutun bir adresi var diyebiliriz. Programınız bir yere dallandığında ( Pic Basic dilinde CALL komutu gibi ) dallandığı yerin adresi burada tutulur. Dallandığınız yer, geldiği yere dönmek istediğinde ( Pic Basic dilinde RETURN komutu gibi ) buradaki bilgi okunur ve dallanma komutunda sonraki komut çalıştırlır. Kullandığım cihazda ve çoğu PIC’te 8 seviyeli “stack” ( yığın ) bölgesi vardır. Bu, iç içe en fazla 8 kere dallanma yapabileceğiniz anlamına gelir.

Stack bölgesi ile ilgili kısa bir bilgi vermeye çalıştım. Bu pencere ile buradaki değerleri görebilirsiniz. Örnek bir görüntü:

ISIS PIC Analiz stack

Bu arada, adım adım simülasyon sırasında PIC’e sol tıklayarak da bazı bilgileri ( besleme ve pinlerle ilgili bazı bilgiler ) görebiliyoruz.

ISIS PIC basit analiz

Son Sözler

Bu pencereleri açabilmek için simülasyonu adım adım çalıştırmanız gerekiyor. Eğer duraklatmadan direkt olarak çalıştırırsanız bu penceleri açabilmeniz mümkün değil.

Tavisye Notum

Kullandığımız PIC’leri en az 4 MHZ hızında çalıştırıyoruz. Adım adım simülasyon yaparsanız komutların atlaya atlaya çalıştığını göreceksiniz. Tüm komutları adım adım görebilmek için PIC saat hızını düşürebilirsiniz. Örneğin saat hızını 40 HZ olarak ayarlarsanız tüm komutları görebilirsiniz. Hatta bu hızda ilerledikçe komutların değişmediğini bile görebilirsiniz. Tabi bunun nedeni frekansı oldukça düşük tutmamız. Bunu önlemek için frekansı arttırabilirsiniz. Çok arttırdığınızda da yine komut atlamalar gerçekleşebilir. Bunu deneyerek ayarlayabilirsiniz. :) PIC frekansını değiştirdiğimiz pencere:

ISIS PIC saat frekans ayarı

Eğer programınızın sağlıklı çalışması için saat frekansı çok önemli ise, adım adım çalıştırdığınızda çalışması aksayabilir. Muhtemelen böyle bir durumla karşılaşmayacaksınız. Zaten bu işlemi adım adım simülasyonda komut kaçırmamak için yapıyoruz. PIC’in durumunu analiz edeceğimiz için bu işlemin hatalı veri almamıza neden olacağını sanmıyorum.

Anlatabildiğim kadarı ile ISIS ile nasıl PIC analizi yapabileceğinizi anlattım. Umarım size yararı olmuştur. Bulduğunuz eksiklikleri veya sorularınızı yorum yazarak iletebilirsiniz.

Yazıyı e-posta veya RSS ile alanların dikkatine:

Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.


Henüz Yorum Yapılmamış.
Yorum yapabilmeniz ya da soru sorabilmeniz için giriş yapmanız gerekmektedir.

Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.
E-posta adresinize aktivasyon iletisi gelmediyse lütfen buraya tıklayın.