P16F877A / PIC16F877A Mikroişlemci İle 7 Segment Display Kullanılarak Asembly Dili İle Yazılmış Sayıcı

P16F877A / PIC16F877A Mikroişlemci kullanılarak Assembly dili ile yazılmış 7 Segment Displaye 1 den 9 a kadar sayıların yazdırılması

PIC16F877A Mikroişlemci İle 7 Segment 4 Digitli Display Kullanılarak 0 ile 9999 Arası Sayıcı (Assembly)

P16F877A / PIC16F877A mikroişlemci kullanılarak Assembly dili ile yazılmış PortD ye bağlı olan 7 segment display , seçme uçlarının ise PortA dan kontrol edildiği 0 ile 9999 arası sayıları timer0 kullanılarak 7 segment 4 digitli displaye yazdırma uygulaması.

PIC16F877A Mikroişlemci İle Buton Kullanılarak Assembly Dili İle Yazılmış 0-9 Arası Binary Sayıcı

PortA ya bağlı iki tane butondan RA0 pinindeki butona basınca PortB nin içeriğini birer birer 9 a kadar artıran (9 olunca tekrar 0 dan başlayarak artan), RA1 pinindeki butona basınca PortB nin içeriğini 0 olana kadar birer birer azaltan (0 olduğunda tekrar 9 dan itibaren azaltmaya devam eden) ,PIC16F877A mikroişlemci kullanılarak assebmly dili ile yazılmış butona bastıkça 0-9 arası binary olarak sayan 4 bitlik sayıcı uygulaması örneğidir.

Ledlerin Binary Düzende Sayması

PortA,0 a bağlı butona basılmadığında PortB ye bağlı ledlerin ileri yönde sayması başlangıç değerimiz 0 olduğu için 0 dan başlayıp ileri yöne binary düzende sayar (00000000 00000001 00000010 .... 11111111) PortA,0 a bağlı butona basıldığında PortB ye bağlı ledlerin geriye doğru sayması. program başlangıcında butona basılı olmadığı için ileri yöne sayar butona basıldığında son değeri 1-1 azalır. programımız da timer modülü kullanılmadan iç içe döngü ile gecikme sağlanmıştır. 1mhz osilator hızında çalıştırmanız tavsiye edilir yada 3.bir döngü ile gecikme süresini arttırıp istediğiniz osilator hızını verebilirsiniz. iç içe 3 döngünün nasıl yazılacağıyla ilgili fikriniz yoksa bir önceki çalışmama bakabilirsiniz.

7 Segment te 1 Saniye ve 0,4 Saniye Aralıklarla Sayan Sayaç

2x7 segment üzerinde 4mhz osilator hızında kullandığım tek Tmr0 kesmesi ve ortak gecikme hesabıyla 1 saniye ve 0.4 saniye aralıklarla sayan Tmr0 örneği. Tmr0 hesaplaması ve konfigürasyon ayarlarını da kod içerisinde detaylı olarak açıklamaya çalıştım.

Timer Ve Buton ile sayıcı (LM016 lcd kullanarak)

Timer1 kullanılarak lcd nin üst satırında, buton kullanarak ise lcdnin altında ki satırda sayan sayıcı