· EEM332

EEM332 Mikroişlemciler: PIC16F84A Ödevi: Buton ve LED Denetimi

EEM332 – Mikroişlemciler · 01.05.2013 · 18.10.2026

Bu yazı, Başkent Üniversitesi EEM332 Mikroişlemciler ders arşivindeki ilgili notları ve uygulamaları bir araya getiriyor (2013–2015). 2013 PIC ödevi: TRIS yönlendirmesi, BTFSC/BTFSS ve buton durumuna göre LED çıkışları. Bir arkadaşın hazırladığı çalışmalar ve ders belgeleri birlikte aktarılmış; öğrenci adları, numaraları ve grup bilgileri çıkarılmıştır. Belgelerin PDF arşiv kopyaları ve varsa kaynak kodları yazının sonunda ZIP olarak indirilebilir.

EEM332_odev

EEM 332 ÖDEV

1) Aşağıda pic 16F84A ile oluşturulmuş bir devre şeması ve bu devredeki pic’in

kullanacağı asm kodu verilmiştir. Bu devreyi ve kodu inceleyerek kod satırlarında yazılanların ne anlama geldiğini ve bu kod doğrultusunda devrenin, devredeki elemanların devredeki durumunu da göz önünde bulundurarak (buton bağlantı şekli (high-to-low mı low to high mı) vs.) , ne iş yapacağını açıklayınız.

Devre Şeması -1

Asm Kodu -1

LIST P=16F84A
INCLUDE P16F84A.INC
BSF STATUS,RP0
CLRF TRISA
MOVLW B'00000001'
MOVWF TRISB
BCF STATUS,RP0
LOOP1
CLRF PORTA
LOOP2
BTFSS PORTB,0
GOTO LOOP1
MOVLW B'00001111'
MOVWF PORTA
GOTO LOOP2
END

2) Aşağıda pic 16F84A ile oluşturulmuş bir devre şeması ve bu devredeki pic’in

kullanacağı asm kodu verilmiştir. Bu devreyi ve kodu inceleyerek kod satırlarında yazılanların ne anlama geldiğini ve bu kod doğrultusunda devrenin, devredeki elemanların devredeki durumunu da göz önünde bulundurarak (buton bağlantı şekli (high-to-low mı low to high mı) vs.) , ne iş yapacağını açıklayınız.

Devre Şeması -2

Asm Kodu – 2

LIST P=16F84A
INCLUDE P16F84A.INC
BSF STATUS,RP0
CLRF TRISA
MOVLW B'00000100'
MOVWF TRISB
BCF STATUS,RP0
LOOP1
MOVLW B'00000101'
MOVWF PORTA
LOOP2
BTFSC PORTB,2
GOTO LOOP1
MOVLW B'00001010'
MOVWF PORTA
GOTO LOOP2
END

3) Aşağıda pic 16F84A ile oluşturulmuş bir devre şeması ve bu devredeki pic’in

kullanacağı asm kodu verilmiştir. Bu devreyi ve kodu inceleyerek kod satırlarında yazılanların ne anlama geldiğini ve bu kod doğrultusunda devrenin, devredeki elemanların devredeki durumunu da göz önünde bulundurarak (buton bağlantı şekli (high-to-low mı low to high mı) vs.) , ne iş yapacağını açıklayınız.

Devre Şeması – 3 ↓ (sonraki sayfada) ↓

Asm Kodu – 3

LIST P=16F84A
INCLUDE P16F84A.INC
BSF STATUS,RP0
CLRF TRISA
MOVLW B'00001111'
MOVWF TRISB
BCF STATUS,RP0
LOOP
CLRF PORTA

TEST1

BTFSC PORTB,0
GOTO LOOP1

TEST2

BTFSC PORTB,1
GOTO LOOP2

TEST3

BTFSC PORTB,2
GOTO LOOP3

TEST4

BTFSC PORTB,3
GOTO LOOP4
GOTO LOOP
LOOP1
MOVLW B'00000001'
MOVWF PORTA
GOTO TEST1
LOOP2
MOVLW B'00000010'
MOVWF PORTA
GOTO TEST2
LOOP3
MOVLW B'00000100'
MOVWF PORTA
GOTO TEST3
LOOP4
MOVLW B'00001000'
MOVWF PORTA
GOTO TEST4
END
EEM332_odev: sayfa 1, devre, tablo ve şekiller
EEM332_odev, sayfa 1.
EEM332_odev: sayfa 2, devre, tablo ve şekiller
EEM332_odev, sayfa 2.
EEM332_odev: sayfa 4, devre, tablo ve şekiller
EEM332_odev, sayfa 4.

EEM332_odev_aciklama

EEM332 DERSİ ÖDEVİ İLE İLGİLİ AÇIKLAMA

EEM332 dersi ödevleri ilgili bağlantıya yüklenmiştir. Okul numarasının son hanesi

0, 1, 2 veya 3 olanlar 1 numaralı 4, 5 veya 6 olanlar 2 numaralı 7, 8 veya 9 olanlar 3 numaralı

çalışmadan sorumludur. İlgili çalışmada verilen şema ve kaynak kod ile neyin gerçekleştirildiği kısaca açıklanacaktır. Çalışmalar bireysel olarak yapılacaktır. Aynı olan çalışmaların (çalışmayı verenler ve alanlar için) değerlendirme notu 0 olarak verilecektir. Ödevler 8 Mayıs 2013 Çarşamba günü ders saatinde çıktı olarak teslim edilecektir.

ödevlab

Program açıldığında, portB’nin ikinci bitine(RB2) bağlı buton “high” iken(basılı değil);

-PortA’nın sıfırıncı bitindeki(RA0-D1 lambası) ve portA’nın ikinci bitindeki(RA2-D3 lambası) led lambalar yandı.

Program açıldığında, portB’nin ikinci bitine(RB2) bağlı buton “low” iken(basılı);

-PortA’nın birinci bitindeki(RA1-D2 lambası) ve portA’nın üçüncü bitindeki(RA3-D4 lambası) led lambalar yandı.

Programın amacı, buton high değerinde iken tek değerdeki led lambalarını (Dl-D3), buton low değerinde iken çift değerdeki led lambalarını(D2-D4) yakar.

HİGH iken;

LOW iken;

ODEV

	LIST P=16F84A
INCLUDE "P16F84A.INC"
	ORG 0X00                 ;Programı '0x00' dan başlatır.
	BSF STATUS,RP0           ;STATUS'ün beşinci bitini 1 yaparak TRISA VE TRISB'nin olduğu BANK1'e geçtik.
	CLRF TRISA               ;TRISA'nın tüm bitlerini output yaptık.
	MOVLW B'00000100'        ;Working Registera değer aldık.
	MOVWF TRISB              ;Working R. daki değer ile TRISB'nin ikinci bitini(RB2) input yaptık.
	BCF STATUS,RP0           ;STATUS'ün beşinci bitini 0 yaparak BANK0'a geçtik.
LOOP1                        ;LOOP1 döngüsü butona basılı değil iken (high) çalışır.
	MOVLW B'00000101'        ;Working R. 'a B'00000101'(H'05') değerini aldık.
	MOVWF PORTA              ;Working R.'daki değeri PORTA'ya attık.RA0 ve RA2 bitlerini 1 değeri yaptık ve lambalar yandı.
LOOP2                        ;LOOP2 döngüsü butona basılı iken (low) çalışır.
	BTFSC PORTB,2            ;PORTB adresindeki sayının ikinci bitini kontrol eder. Eğer sıfır(low) ise, kendisinden sonra gelen komutun üzerinden atlar. Değilse (high) GOTO LOOP1 komutundan devam eder.
	GOTO LOOP1               ;LOOP1 döngüsüne gider.
	MOVLW B'00001010'        ;Working R. 'a B'00001010'(H'10') değerini aldık.
	MOVWF PORTA              ;Working R.'daki değeri PORTA'ya attık.RA1 ve RA3 bitlerini 1 değeri yaptık ve lambalar yandı.
	GOTO LOOP2               ;LOOP2 döngüsünden devam eder.PORTB 'nin ikinci bitindeki (RB2) butonunu kontrol ederek devam eder.
	END                      ;Sonlandırma komutu.

ÖDEV

	LIST P=16F84A
INCLUDE "P16F84A.INC"
	ORG 0X00
	BSF STATUS,RP0
	CLRF TRISA
	MOVLW B'00000100'
	MOVWF TRISB
	BCF STATUS,RP0
LOOP1
	MOVLW B'00000101'
	MOVWF PORTA
LOOP2
	BTFSC PORTB,2
	GOTO LOOP1
	MOVLW B'00001010'
	MOVWF PORTA
	GOTO LOOP2
	END

1

LIST p=16F84A 
  INCLUDE "P16F84A.INC" 
 
  __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC 
 
  j  EQU 0x0c 
  k  EQU 0x0d 
   
  ORG     0x00 
   
  BSF STATUS,5 
  MOVLW 0x00 
  MOVWF TRISB 
  BCF STATUS,5 
   
LEDonoff:
movlw b'00000001'  
  movwf PORTB 
  call delay 
   
  movlw b'00000000' 
  movwf PORTB 
  call delay 
  goto LEDonoff 
   
   
delay: 
  movlw d'200' 
  movwf j  
jloop: 
  movwf k  
kloop: 
  decfsz k,f 
  goto kloop 
  decfsz j,f 
  goto jloop 
return 
 
End

eem332-pic-odev.zip

ZIP arşivi · 549 KB · 01.05.2013

⬇ (549 KB)