You are on page 1of 4

Ad Soyad: Uygulama-4

No :

1) Bir elektronik sistem için gerekli olan kare dalga sinyali mikroişlemci vasıtasıyla
sağlanmaktadır. Üretilen kare dalga P2.0’dan dışarıya verilecektir. Mikroişlemci Port-1’e ait
LSB 4 biti ile kare dalganın periyodu belirlenmektedir. Port-1 LSB 4 bitteki bilgi iki katı kare
dalganın saniye cinsinden periyodunu vermektedir. Buna göre gerekli programı yazınız.
(Xtal:12MHz)
NOT: Keil programında Options for Target a tıkladıktan XTAL sekmesine 12MHz olarak kristal
hızı değiştirilmelidir. Ayrıca Options sayfasındaki Debug sekmesinde Limit Speed işaretli
olmalıdır.

//Port-1 LSB 4 biti kadar saniyede bir biti tersleyen program

ms_BEKLEME equ -50000

ana:
mov tmod,#01h //mod1 16bit
mov p1,#0F1h
mov a,p1
anl a,#0fh
mov r2,a
//mov r2,#01d

acall sn

cpl p2.0
sjmp ana

sn: mov r1,#20


ms: mov th0,#high(ms_BEKLEME)
mov tl0,#low(ms_BEKLEME)
setb tr0
jnb tf0,$
clr tf0
clr tr0
djnz r1,ms
djnz r2,sn
ret
end
Ad Soyad: Uygulama-4
No :

2) Bir metro turnikesinden geçen insanların sayısı 8051 aracılığıyla tespit edilmektedir. Metro
turnikesi P3.4 pinine bağlıdır. Gün boyu turnikeden geçen toplam kişi sayısı R0 registerinde
tutulmaktadır. Turnikeden geçen toplam kişi sayısı 5 olduğunda toplam kişi sayısı R0’a
ekleyerek tekrar turnikeden geçen kişileri saymaya başlayan programı yazınız.

basla: //turnike sayan program

COUNT equ 5

ana:
mov tmod,#06h //mod1 8bit
mov th0,#-COUNT //Tasma oldugunda TL0'a aktarilacak degeri tutar
mov tl0,#-COUNT
mov r0,#0

git:
setb tr0
jnb tf0,$
clr tf0
clr tr0
mov a,r0
add a,#COUNT
mov r0,a
cpl p2.0
sjmp git

end
Ad Soyad: Uygulama-4
No :

3) p2.0 üzerinden dolgu oranı (duty cycle) %50 olan ve frekansı 5 kHz olan bir kare dalga üreten
assembly kodunu yazınız. (autoreload timer kullanınız.) Proteus üzerinden yazdığınız kodu test
ediniz.

//5kHz'lik sinyal ureteci

BEKLE equ 100

ana:
mov tmod,#02h //mod2 8bit autoreload timer
mov th0,#-BEKLE
mov tl0,#-BEKLE

devam:
setb tr0
jnb tf0,$
clr tf0
clr tr0
cpl p2.0
sjmp devam
end

4) Bir arabanın hızı hesaplanmak istenilmektedir. Arabanın tekerleğinden her turda 1 pulse
gelmektedir. Pulse p3.4’e bağlıdır. Tekerleği yarı çapı 31.83cm’dir. (1 turda 2*pi*31.83≈2m)
aracın hızını m/s olarak hesaplayıp P1’e yansıtınız (ölçümleri her 4s’de bir yapınız.)

basla:

mov tmod,#00100101b ;T1-8bit autoreload, Counter0 16Bit


mov th1,#-200
mov tl1,#-200

setb tr1
setb tr0

tekrar:
mov th0,#0
mov tl0,#0

acall Dort_saniye

mov a,tl0 ;aracin hizi 128 m/sn 'yi geçemez kabul edildi
;veya 460 km/sa
mov b,#2
div ab
mov p1,a

sjmp tekrar
Ad Soyad: Uygulama-4
No :

Dort_saniye:
mov r3,#100
dongu2:
mov r2,#200
dongu1:
jnb tf1,$
clr tf1
djnz r2,dongu1
djnz r3,dongu2
ret

end

You might also like