3. derste neler yaptık.

3. derste yaptığımız mplab ve isis çalışmalarının son halini indirmek için >>Tıklayın.

İlk olarak aşağıdaki kodları yazdık. Bu kodlar üzerinde, ilkel metot kullanarak buton ile 8 bitlik değişkenin değerini arttırdık. Daha sonra değişkenin içeriğini portb değişkenine eşitleyerek, portb fiziksel bacaklarına bağladığımız ledler üzerinde sonucu gördük. if kontrolü içindeki while(1); satırının önemini tartıştık.

#include "htc.h"

// PORTB : 8 LED
 // RD0 : BUTON 0

__CONFIG(0X3F3A);

main(){

TRISB=0b00000000; // TUM PORTB PINLERI CIKIS OLDU
 TRISD=0b11111111; // TUM PORTD PINLERI GIRIS OLDU

int a=0;

while(1){

if(RD0==1){
 a++;
 while(RD0==1);
 } // BUTON 0 A BASILIRSA DEGERI ARTTIR

PORTB=a; // DEGERIN ICERIGI PORTB DE GORUNUR

}// end while
 }// end main

Bu kod üzerine bir buton kontrolü daha ekledik. ikinci buton kontrolü için eklediğimiz satırlarda a değişkenini azaltmasını istedik. İki buton kontrolünün de kendi başına iki aşamadan oluşan birer senaryo olduğunu belirttik ve yazdığımız bu iki senaryodan birisi yürütülürken diğer senaryonun yürütülemeyeceğinden bahsettik.

#include "htc.h"

// PORTB : 8 LED
// RD0 : BUTON 0
// RD1 : BUTON 1

__CONFIG(0X3F3A);

main(){

TRISB=0b00000000; // TUM PORTB PINLERI CIKIS OLDU
TRISD=0b11111111; // TUM PORTD PINLERI GIRIS OLDU

int a=0;
 while(1){

if(RD0==1){
 a++;
 while(RD0==1);
 } // BUTON 0 A BASILIRSA DEGERI ARTTIR

 if(RD1==1){
 a--;
 while(RD1==1);
 } // BUTON 1 E BASILIRSA DEGERI AZALT

 PORTB=a; // DEGERIN ICERIGI PORTB DE GORUNUR

}// end while
}// end main
<pre>

Birden fazla, birbirinden bağımsız senaryoların, aynı anda yürütülmesine ilişkin olarak aşağıda ki buton kontrol yöntemini kullandık. Bu programın adına paralel butonlar adını vermiştim. Uygulamada bir butona basılı tutarken diğer butonun aksamadan çalışmaya devam ettiğini gördük, devamında ise basılı tuttuğumuz butonu bıraktığımızda senaryonun kaldığı yerden devam ettiğini teyit ettik.

</pre>
#include "htc.h"

// PORTB : 8 LED
// RD0 : BUTON 0
// RD1 : BUTON 1

__CONFIG(0X3F3A);

main(){

TRISB=0b00000000; // TUM PORTB PINLERI CIKIS OLDU
TRISD=0b11111111; // TUM PORTD PINLERI GIRIS OLDU

int a=0,mlt=0,mlt1=0;

while(1){
//______________________________
 switch(mlt){

case 0:
 if(RD0==1){ mlt=1; } break; // BUTON 0 A BASMA KONTROLU
 case 1:
 if(RD0==0){ mlt=0; a++;} break; // BUTON 0 BIRAKMA KONTROLU VE KARAR
 }//end mlt
//______________________________
 switch(mlt1){

case 0:
 if(RD1==1){ mlt1=1; } break; // BUTON 1 E BASMA KONTROLU
 case 1:
 if(RD1==0){ mlt1=0; a--;} break;// BUTON 1 BIRAKMA KONTROLU VE KARAR
 }//end mlt1
//______________________________
PORTB=a;
 }// end while
}// end main
<pre>

Bir Cevap Yazın

Or

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir