PortD ye Bağlı Ledleri Binary Olarak Artıran - Azaltan Uygulama

PortB deki 4 tane butondan herhangi birine basınca PortD de bağlı olan ledleri binary olarak artıran, PortC deki 4 tane butondan herhangi birine basınca PortD deki ledleri binary olarak azaltan uygulama

P16F877A ile Çarpma İşlemi

P16F877A/P16f877 entegresi ile assembly dilinde yazılmış çarpma işlemi; PortB deki 4 adet buton ile PortC deki 4 adet butondan lojik 1 olanlar alınıp çarpılarak ledler üzerinde binary olarak yazdıran uygulama

P16F877A ile Basit Şekilde Buton ile Led Yakma

P16F877A ile assembly dili ile sade bir şekilde yazılmış buton ile led yakma uygulaması

P16F877A / PIC16F877A Mikroişlemci ile Toplama İşlemi

P16F877A mikroişlemci kullanılarak PortB deki butonlardan basılı olanlardan gelen lojik 1 ler ile PortC deki butonlardan gelen lojik 1 ler binary olarak toplanıp sonuc PortD deki ledlerde yine binary olarak gösterilmektedir.

P16F877A / PIC16F877A ile Butona Basınca Ledi Sağa Sola Kaydırma Uygulaması

PortB nin 0. ve 1. Portuna bağlı iki tane butondan sağdakine basınca PortC nin içeriğini sağa kaydıran , soldaki butona basınca sola kaydıran P16F877A / P16F877A mikroişlemci kullanılarak assembly dili ile yazılmış uygulama

P16F877A / PIC16F877A ile Buton Basılı Kaldığı Sürece Sürekli Olarak Kayan Led Örneği

PortB ye bağlı iki butondan birisine basınca PortC deki ledi aşağı doğru buton lojik 0 olana kadar sürekli olarak kaydıran, diğer butona basınca PortC deki ledi yukarı doğru sürekli olarak kaydıran P16F877A / PIC16F877A mikroişlemci ile assembly dilinde yazılmış örnek uygulama.

P16F877A / PIC16F877A Mikroişlemci ile 3 ve 3 ün Katlarında Ledi 1 Kez Yakıp Söndürme

PortB nin 0. pinine bağlı olan butona 3 ve 3 ün katları sayısınca bastıkça PortC de bağlı olan ledi 1 kez yakıp-söndüren P16F877A / PIC16F877A mikroişlemci ile assembly dilinde yazılmış uygulama örneği

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.

Timer kullanmadan iç içe döngü ile 1 saniyelik gecikme

Timer modülünü kullanmadan iç içe 3 adet döngü ile 8mhz kristal de yaklaşık 1 saniyelik gecikmeler ile portb ye bağlı butonların yanması. PortA,4 e bağlı butona basıldığında portb,0 portb,1 deki ledlerin sırayla yanması PortA,4 e bağlı butona basılmadığında portb,2 portb,3 deki ledlerin sırayla yanması

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.

Ra4 e Bağlı Buton Tetikleme Durumuna Bağlı (Sağa/Sola) Led Kaydırma

RRF ve RLF komutlarını basit düzeyde işlediğim bu örnekte Ra4 e bağladığım buton üzerinden gelen tetikleme ile Sağa yada Sola Led kaydırma mantığını anlatmaya çalıştım. Programı gözle görülebilir bir şekilde izlenmesi için 1mhz osilatörde çalıştırmanızı tavsiye ederim. Assembly kodlarının yanlarına bıraktığım açıklamalarda sizler için faydalı olacaktır

Her Buton Tetiklenmesinde PortB nin içeriğinin 1 Artması

Ra4 e bağlı buton tetiklemesiyle PortB nin içeriğinin 1 artması ve bu değerin Ledlerle gösterilmesi. Program tamamen buton tetiklemesi ile çalışıyor (pul-down) konumunda PortB yi 1 arttırıyor, basılı konumda beklediği sürece boş döngüde tekrar ediyor ne zaman pul-up konumuna gelirse en baştan döngüye girerek tekrar tetikleme bekliyor. Gecikme Kullanmadığım için Osilator hızınızı 1-4-8 Mhz değerlerinden birini seçerek uygulamayı inceleyebilirsiniz.

7 Segment Sayac (LookupTable Kullanarak) 0-9 arası sayma

Program içeriğinde sizin düzenlemenize bağlı olarak 2 farklı şekilde çalışmaktadır. 1.Çalışma şekli her buton tetiklemesinde 1-1 değerin artması bu kısımda gecikmeye ihtiyaç duyulmaz. 2.Çalışma şekli buton tetiklenmesinde gecikmeye giderek 1-1 değerin artması bu kısımda gecikmeye ihtiyaç duyar. Assembly kod içerisinde yaptığım açıklamalar ile 3 satırı yorum satırından çıkarıp normal kod satırına getirerek iki farklı durumu inceleyebilirsiniz. Not: Katot Display Kullandım osilator hızı olarak gecikme ile çalışacaksınız 1Mhz yada 4mhz tercih ediniz

Buton Tetiklemesiyle Çalışan Timer1 Uygulaması

Ra1 ve Ra4 e bağlı 2 buton üzerinden yapılan tetiklemeler ile D portuna bağlı olan ledleri sırasıyla yakıp söndüren uygulama Ra1 e 5 kere basıldığında D0-D1 portuna Bağlı ledleri 3 er saniye Aralıkla yakıp Söndüren Ra4 e 10 kere basıldığında D2-D3 portuna Bağlı ledleri 1 er saniye Aralıkla yakıp Söndüren uygulama. Timer 1 üzerinden 4 Mhz osilator ile ayarlamalar yapılmıştır Hangi Butonun kaç kere tetikleme yapacağını verdiğim açıklamalar ile ihtiyacınıza göre düzenleyebilir yine aynı şekilde verdiğim açıklamalar ile zaman aralığını da istediğiniz gibi düzenleyebilirsiniz.