Mikroişlemciler dersinin uygulamasına hazırlanırken yazdığım uygulamaları bir arkadaş isteyince siteye atarsam gelecek sene dersi alacak arkadaşlarda faydalanır diye düşündüm.
Proteus ve Mplab programları için PIC16F877 Alet Çantası yazımı ve ilk hafta verilen ödevlere bakarak Labların nasıl gececeğine bakmak için Mikroişlemciler Dersi 1. Ödevler yazılarımıda bakabilirsiniz.
İndireceğiniz dosyada bulunan uygulamalara bakacak olursak ;
- Döngülü Led Sayıcı
- Döngülü Display Sayıcı
- Timer0 Led sayıcı
- Timer1 Display 0-9 Arası sayıcı
- Timer0 ve Timer1 kullanılarak eşit süre sonra gelen kesmeyle PORTD ye bağlı ledi yandırıp söndüren uygulama. (Sayac değerleri değiştirilerek oranlar değiştirilebilir.)
- RB0 kesmesi geldikçe Portdyi 1 artıran sayıcı
- Boş
- Timer 2 Led sayıcı
- ADC – RA2 den aldığı 10 bitlik değeri (PORTB(tamamı) ve PORTC(0,1))’bitlerinde gösteren döngülü uygulama
- ADC – RA2 den aldığı 10 bitlik değeri (PORTB(tamamı) ve PORTC(0,1))’bitlerinde gösteren kesmeli uygulama
- İlk satırda Adımızı, İkinci Satırda Soyadımızı yazacak LCD Uygulaması
- EEPROM Yazma-Okuma-Döngülü (0X50 Adresine 0×55 (01010101) değerini önce yazıyor. Sonrada EEPROM da 0×55 adresindeki değeri okuyup PORTD de gösteriyor)
- EEPROM Yazma-Okuma-Kesmeli (FF Adresine 00 yazar. Ardından adres değerini 1 azaltıp Yazacağı değeri 1 artırarak 00 Adresine kadar yazım yapar.
- Boş
- EEPROM – ADC de RA2 den aldığı 10 Bitlik değeri EEPROMA Yazacak. Sonrada Okuyacak. Yazma işleminde RC6 Yanarken, Okumada RC7 Yanacak. (Değerler PORTC’nin (0,1) ve PORTB’nin(tüm) ledlerinde gösterilecek.)
- RBChange Kesmesi ile RB6 ya basınca 2. Displayde 2, RB7 ye basınca 1. Displayde 3 Yazan Program (1. Display yanarken 2. Sönük, 2. Display yanarken 1. Sönük olacak)
- RBChange Kesmesi ile RB6 ya basınca 2. Ledde Artan, RB7 ye basınca 1. Ledde kaldığı yerden azalan 0-9 Arası sayıcı
- RB0 Kesmesi ile Portc de otomatik artan sayıcı. Tekrar RB0 kesmesi gelince Duruyor. Bir daha gelince devam ediyor.
- Boş
- RB0 Kesmesi geldikçe Displayde 1 Artan 0-9 Arası sayıcı.
- Timer0 ile Displayde 0-9 Arası sayıcı.
- RBO Kesmesi ile Displayde 0-9 Arası sayıcı başlıyor. Tekrar kesme gelince duruyor. Tekrar kesme gelirse kaldığı yerden devam ediyor.
- Display 0-9999 Arası sayıcı
- RBChange Kesmesini kullanarak RB7 ye basınca Displayde 0-9 Arası Sayıcı Başlıyor, Bir Daha Basınca Duruyor.Tekrar basınca Kaldığı yerden devam ediyor
- 0,5 Saniye aralıklarda yana kayan led uygulaması. (Özellikle ilk Ledde 0,5 saniye sonra yanacak) (Final Uygulaması)
- Displayde 23 Yazan uygulama (Final Uygulaması)
Ayrıca hangi uygulamanın hangi Registerları kullandığınıda not almıştım dosyada onuda bulabilirsiniz.
- TIMER0 (FF-00 Kesmesi)
OPTION_REG
INTCON - TIMER1 (FFFF-0000 Kesmesi)
T1CON
TMR1H
TMR1L
PIR1
PIE1
INTCON - TIMER2 (TMR2=PR2 Kesmesi)
T2CON
PR2
PIR1
PIE1
INTCON - RB0
OPTION_REG
ADCON1
INTCON - RBCHANGE
OPTION_REG
ADCON1
INTCON - ADC (Döngülü)
ADCON1
ADCON0
ADRESH
ADRESL - ADC (Kesmeli)
ADCON1
ADCON0
ADRESH
ADRESL
PIR1
PIE1
INTCON - EEPROM (Döngülü)
EEADR ; Adres buraya yazılır.
EEDATA ; Değer buraya yazılır.
EECON1 ; Gerekli ayarlamalar yapılır.
EECON2 ; Yazmada önce 0×55 sonrada 0xAA değeri buna yazıldıktan sonra Yaz komutu EECON1 ye verilir. - EEPROM (Kesmeli)
EEADR ; Adres buraya yazılır.
EEDATA ; Değer buraya yazılır.
EECON1 ; Gerekli ayarlamalar yapılır.
EECON2 ; Yazmada önce 0×55 sonrada 0xAA değeri buna yazıldıktan sonra Yaz komutu EECON1 ye verilir.
PIR2
PIE2
INTCON
0 Yorumlar.