Mikro 2 Deneyföyü2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Abant İzzet Baysal Üniversitesi Dr.

Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

Deney 2
Amaç:
Bu deneyin amacı, öğrencilere
i) PROTEUS ISIS programında “bus” kavramını,
ii) PIC mikrodenetleyici üzerindeki giriş/çıkış portlarının kullanımını,
iii) MikroC dilinde if else if ve switch case yöntemlerini öğretmektir.

1. Kısım

Yöntem:

1. 1. deneyde oluşturmuş olduğunuz, ISIS projesini açın.


2. Bu deneyde, PIC 16F877A mikrodenetleyicisinin 30 adet pini çıkış olarak kullanılacaktır.
3. Her bir çıkış pini için birer tane, Şekil 1'de görüldüğü gibi, direnç-led ikilisi kullanılacaktır.
4. Dirençler 1 kohm değerindedir.

Şekil 1. Direnç-Led ikilisi

5. ISIS penceresinin sağ tarafında bulunan ve Şekil 2'de kırmızı daire içinde gösterilen “Buses
Mode” düğmesine tıklayın.

Şekil 2- “Buses mode” düğmesi

6. Çizim ekranına gelin ve farenin sol tuşunu kullanarak Şekil 3'deki gibi bir yol (bus) çizin.
Çizimi bitirmek için farenin sol tuşuna ard arda iki defa basın.
Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

Şekil 3- Yol (bus)

7. Şekil 4'deki gibi direnç-led ikililerini ekleyin ve gösterilen bağlantıları yapın.


8. Şekil 4'de görüldüğü gibi bütün bağlantılar, yol üzerinden yapılmıştır.
9. Hangi hattın hangi hat (line) ile bağlı olduğunu belirlemek için hatlara isim verilmesi
gerekir.
10. Şekil 5'de görüldüğü gibi bir hattın üzerine gelin, farenin sağ tuşuna tıklayın ve “Place wire
label” seçeneğini seçin.
11. Çıkan ekranda, Şekil 6'da gösterildiği gibi “label” penceresine bir ad girin.
12. Şekil 7'de görüldüğü gibi, bağlantı yapılmak istenen diğer hatta da aynı yöntemle aynı ismi
verin. Böylece iki hat birbirine bağlanmış olur.
13. Kütüphaneden “LOGICSTATE” elemanı seçerek proje ekleyin ve Şekil 8'da görüldüğü gibi
devreye yerleştirin.
14. PIC MikroC Pro programında yeni bir proje oluşturun ve aşağıdaki kodu girin.

void kur ()
{
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
PORTE=0X00;
ADCON1=0B10000110;
Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

TRISA=0X00;
TRISB=0X00;
TRISC=0X00;
TRISD=0X00;
TRISE=0B00000111;
}

void sifirla ()
{
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
}

void main() {
kur();
while(1)
{
sifirla();
if ((PORTE & 0b00000111)==0b00000000)
{
PORTA=0xff;
}
else if ((PORTE & 0b00000111)==0b00000001)
{
PORTB=0xff;
}
else if ((PORTE & 0b00000111)==0b00000010)
{
PORTC=0xff;
}
else if ((PORTE & 0b00000111)==0b00000011)
{
PORTD=0xff;
}
}
}

14. Kodun çalışmasını inceleyin.


15. Kodu aşağıdaki şekilde değiştirin ve tekrar çalıştırın. Bu kod bir önceki kodla aynı işi
yapmaktadır.

void kur ()
{
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

PORTD=0X00;
PORTE=0X00;
ADCON1=0B10000110;
TRISA=0X00;
TRISB=0X00;
TRISC=0X00;
TRISD=0X00;
TRISE=0B00000111;
}

void sifirla ()
{
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
}

void main() {
kur();
while(1)
{
sifirla();
switch ((PORTE & 0b00000111))
{
case 0b00000000: PORTA=0xff;break;
case 0b00000001: PORTB=0xff;break;
case 0b00000010: PORTC=0xff;break;
case 0b00000011: PORTD=0xff;break;
}
}
}
Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

Şekil 4- Tüm devre

Şekil 5- “Place wire label” gösterimi


Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

Şekil 6- “Edit wire label” penceresi


Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

Şekil 7- Birbirine bağlı iki hat

Şekil 8- LOGICSTATE yerleşimi


Abant İzzet Baysal Üniversitesi Dr. Alper BAYRAK
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II

2. Kısım
1. Şekil 4'de görülen devrede, PORTE'ye bağlı girişlere bağlı olarak, çıkış portlarına bağlı olan
LED'lerin, aşağıdaki tabloda gösterildiği şekilde yanmalarını sağlayan bir program yazınız.

PORTE Girişleri PIN Numaraları


000 RA0:RA2
001 RA3:RA5
010 RB0:RB3
011 RB4:RB7
100 RC0:RC3
101 RC4:RC7
110 RD0:RD3
111 RD4:RD7

You might also like