Mikroişlemci Projeleri | mikroislemcim.com
"GOTO" ile ilgili 39 İçerik bulundu.
LM016L LCD Display e Saat ve Tarih Yazdırma Uygulaması
LM016L Lcd display e timer ile hesaplanan saat ve tarih yazdırma uygulaması
ADC ile LM035 sensör kullanılarak sıcaklık ölçme uygulaması
LM035 sıcaklık sensörü ve ADC yardımıyla ortam sıcaklığını LCD display e yazdırma ugulaması
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 Karaşimşek Uygulaması
P16F877A/P16F877 ile assembly dili ile yazılmış karaşimşek uygulaması
LM016L LCD Display ile Metin Kaydırma Uygulaması
P16F877/P16F877A mikroişlemci ile LM016L LCD displayin üst satırına isim alt satırına soyisim yazdırılarak sürekli olarak sağa sola kaydırma uygulaması
USART ile Terminalden Veri Alma
P16F877/P16F877A ile USART (Seri Haberleşme-İletişim) kullanılarak mikroişlemcinin RX portu üzerinden veri alınarak PortB ye bağlı olan LM016L 2x16 LCD displaye alınan bu veriler yazdırılmıştır.
P16F877A / PIC16F877A ile Çarpma İşlemi
P16F877A/P16f877/PIC16F877A 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 İle Timer Kullanarak Led Yakma
P16f877A ile timer kullanılarak PortC deki ledleri 500ms de bir , PortD deki ledleri 1000ms de bir binary olarak artıran assembly dili ile yazılmış uygulama
P16F877A ile Basit Şekilde Buton ile Led Yakma
P16F877A ile assembly dili ile sade bir şekilde yazılmış buton ile led yakma uygulaması
7-Segment Display e Dakika ve Saniye Yazdırma
P16F877A mikroişlemci ile assembly dilinde yazılmış 7 segment displaye timer kullanılarak dakika ve saniye yazdırma
P16F877A / PIC16F877A Mikroişlemci ile RB0 Kesmesi Örneği
P16F877A / PIC16F877A Mikroişlemci kullanılarak PortD deki 8 adet led binary olarak artarken PortB nin RB0 ucundan gelen kesme ile PortC deki ledi yakan assembly dili ile yazılmış uygulama. Kesmeden sonra ise program normal akışına devam etmektedir.
P16F877A / PIC16F877A Mikroişlemci ile LCD Displaye Tersten Metin Yazdırma
P16F877A / PIC16F877A Mikroişlemci ile assembly dilinde yazılmış LM016L LCD displaye tersten metin yazdırma uygulaması
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ı
P16F877A / PIC16F877A Mikroişlemci Kullanılarak USART ile Terminale Veri Gönderme
P16F877A / PIC16F877A mikroişlemci kullanılarak USART (Universal Synchronous/Asynchronous Receiver/Transmitter) ile PortC nin TX (RC6) pinine bağlı olan terminale veri göndermek için assembly dili ile yazılmış uygulama
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
P16F877A / PIC16F877A Mikroişlemci ile Timer0 Örneği
Timer0 kullanılarak prescaler oranı 1/4 olan ve clock frekansı 4 MHz olan P16F877A / PIC16F877A mikroişlemci ile assembly dili ile yazılmış PortB ye bağlı olan ledi belli aralıklarla yakıp söndüren uygulama örneği
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ı.
P16F877A / PIC16F877A Mikroişlemci İle 5x7 Dot Matrix Display e Karakter Yazdırma
Sütun pinlerinin Portb ye , satır pinlerinin PortC ye bağlı olduğu 5x7 Dot Matrix Display e ; sütun değerlerinin lookup tablosundan alınarak , satır değerlerinin RLF komutuyla kaydırılarak karakter yazdırılan PIC16F877A mikroişlemci ile assembly dili ile yazılmış örnek uygulama.
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.
PIC16F877A Mikroişlemci İle Tuş Takımı (Keypad) Kullanılarak Assembly dili LCD ye Karakter Yazdırma
4x4 lük tuş takımının A,B,C,D pinlerinin PortB nin sırasıyla 0-1-2-3 pinlerine bağlanarak ve tuş takımının 1,2,3,4 pinlerinin de PortB nin sırasıyla 4-5-6-7 pinlerine bağlanarak oluşturulmuş uygulamadır. Uygulamada Keypad ten alınan karakterlerin yazdırılması için 2x16 LCD display(LM016L) kullanılmıştır. Tuş takımının 1-2-3-4 nolu pinlerine herhangibir tuşa basılmadığında logjik 0 gitmesi için herbir pin 10K lık direnç ile gnd ye bağlanmıştır.
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
Toplama Mantığı Ve Bu Mantıkla Led Kaydırma (50Hz Osilator)
Led Yakmak için o ledin set olması gerekmektedir. Peki Led kaydırmak için RRF RLF komutları dışında toplama yöntemiyle de led kaydırma yapılacağını düşündünüz mü hiç ? Örneğin 0000 0001 değeri ile sıfırıncı led yanar, 0000 0010 değeri ile birinci led yanar, 0000 0100 değeri ile ikinci led yanar, yani sola led kaydırmak bir nevi sayıyı 2 ile çarpmak yani kendisi ile toplamaktır. Bu örneğim de hem basit düzeyde toplama işleminin nasıl yapıldığını hemde 8 led içinden istediğiniz lede kadar nasıl kaydırma yapabileceğinizi göreceksiniz. Hiçbir Gecikme Kullanmadığım için program Osilator Hızlarını iyice düşürüyoruz ben örneğimde 50Hz olarak ayarladım
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
2x7 Segment Displayde istediğimiz 2 Basamaklı Sayıyı Yazma
Yaptığım Kod örneği yine sizlerin düzenleme yapabileceği şekilde açıklamalar bırakarak programın alt yapısını oluşturdum. Ben bu örneğimde 7 segment displayde 23 sayısını yazdım ve nasıl yapıldığını sizlere anlatmaya çalıştım. Kod içerisinde 0-9 arası lookup table ı bıraktığım için sizler working değerlerini değiştirerek istediğiniz 2 basamaklı sayıyı 7 segment display de gösterebileceksiniz.
5x7 Dot Matris Uzerinde E harfi Yazmak
PortB üzerinden Satır Bilgisni , PortC üzerinden Sutun Bilgisini girdiğimiz 5x7 dot Matris ekranda E harfinin nasıl yazılacağını anlatmaya çalıştım
5X7 dot matris üzerinde Emoji Yapmak
pic üzerine 2 adet 5x7 dot matris bağlayarak Sütunları PortB üzerinden, Satırları PortC üzerinden Kontrol ederek kalp emojisi oluşturmaya ve her satırında ledlerin nasıl yanması gerektiğini anlatmaya çalıştım. Program çalıştığı süre boyunca kalp emojisini gösterecektir. Osilator Çalışma Hızı Olarak 4mhz tercih ederseniz daha pürüzsüz bir görüntü alacaksanız.
7 Segment Displaye Error Yazdırma
PortB üzerinden Yanacak Ledlerin Bilgisi PortC üzerinden Seçim Bitleri ayarlanan uygulamada 6 lı 7 Segment üzerinde Error Yazdırma örneği
Timer0 ile Kesme Oluşturup Led Yakmak
Tmr0 Kesmesini kullanarak 125 Mili saniye ... 16 Saniye Arasında kesme oluşturabileceğimiz kod örneği. kod içerisinde yaptığım açıklamaları ve yönlendirmeleri dikkate alarak option_reg üzerinden yapacağınız değişikliklerle 125 mili saniye 250 mili saniye ... 1 saniye 2 saniye... 16 saniye gibi farklı değerlerde kesmeler üretip bağlı led üzerinde değişiklikleri gözlemleye bileceksiniz.
2x7 Segment Displayde 0-99 Arasında Sayma
Veri girişi PortB ye Seçme Girişi PortA ya Bağlı uygulamada 0-99 arasında Saydırma işlemini yapıyoruz. aynı anda iki segment in nasıl kontrol edildiğini de açıklamaya çalıştım. gecikme kullanılarak yapılmıştır. 4Mhz osilator hızıyla çalışmanızı tavsiye ederim
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.
Timer1 Gecikmesini Kullanarak Farklı Değerlerde Kesmeler Oluşturmak
Tmr1 Gecikmesini kullanarak kesme içerisine girdiğimizde kullandığımız döngümüz ve Tmr1 in 16 bitlik scala sının verdiği imkanla Tmr0 dan çok daha esnek çalışabilme imkanını buluyoruz. çok küçük değerleri de (Nano Saniye Mikro Saniye) çok büyük değerleri de (Mili Saniye Saniye Dakika) hesaplama imkanımız oluyor. kod içerisinde yaptığım açıklamalar ve Tmr1 hesaplaması sayesinde istediğiniz değerleri hesaplaya bileceksiniz. 500 Nano Saniye ... 67 Saniye Arasındaki Değerleri hesaplamak için 8Mhz kristal ile çalışmanızı tavsiye ederim
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.
Adc ile Lm035 dan Sıcaklığı Ölçüp Belirlediğimiz Hedef sıcaklığa kadar Klima Motoru Çalıştırma
Daha Önce Yapılmış olan 2 ayrı uygulamadan yararlanarak geliştirdiğim uygulama Sitede Var olan (ADC ile LM035 sensör kullanılarak sıcaklık ölçme uygulaması ve LCD Displaye Tersten Metin Yazdırma) uygulamalarından yararlanarak geliştirdiğim bu uygulamada; Bizim elimizde var olan A portuna bağlı Analog olarak sıcaklık ölçen Lm35 sensörünün ölçtüğü sıcaklık değerini ADC ile lcd de gösterip belirlediğimiz hedef sıcaklık ile arasında fark varsa RD4 üzerindeki Ledi Yakacaktır (Led motorun çalıştığını gösteren sembolik bir olay) hedef sıcaklık ve ölçülen sıcaklık eşitlendiğinde Led Sönecektir (Motor duracaktır) yeniden bir fark oluşursa led tekrar yanacaktır
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ı
2017 - 2020 © Copyright | mikroislemcim.com