Öncelikle herkese merhaba, ilk konumun bu olmasını istemezdim fakat üniversite sebebiyle fazla aktiflik sağlayamıyorum. Özet geçeceğim klasik başına buyruk üniversite hocalarının
azizliğine uğruyoruz dönem başında C++ ile başlayıp dönem sonunda Assembly ile devam ettirme kararı aldı C++ ile bir sorunum yok fakat Assembly de başarılı olduğum söylenemez bu sebeple yardıma ihtiyacım var vakit ayırıp okuduğunuz için minnettarım. Aşağıya hocanın paylaştığı hazır kodu yazıyorum bunun üzerinde oynama yapılacakmış, hocanın isteği şu şekilde;
"8051 ile trafik lambası uygulaması yapılacaktır. Bir kırmızı LED port0.3, bir sarı LED port0.5, bir yeşil
LED port0.7’ye bağlanacaktır. Sistemde önce kırmızı LED 10 saniye yanacak, sonra sarı LED 10 saniye
yanacak, süre bitiminde kırmızı ve sarı ışık sönerken yeşil ışık 10 saniye yanacaktır. Yeşil ışık sönünce,
port P2.2’ye bağlanan mavi LED 3 saniye yanıp sönecektir. Mavi LED söndükten sonra trafik ışıkları aynı
sistemde yanmaya devam edecektir."
NOT: Proteus üzerinde simülasyonu gerçekleştirilecek. Ücretli yaparım diyenler için
Whatsapp İletişim İçin Tıkla org 0000h
ljmp start
org 0200h
start:clr p0.0; set red led
setb p0.1;off yellow
setb p0.2;off green
lcall delayfor10;generate a delay of 10 sec
clr p0.1;yellow led on indicating red will turn off in sometime
lcall delayfor5;delay for yellow led
setb p0.0;off the red led
setb p0.1;off yellow led
clr p0.2;turn on green led
lcall delayfor10;delay for 10sec
clr p0.1;turn on yellow led for indicating the green will turn on
lcall delayfor5;delay for 5 sec
sjmp start;again repeat the same process
org 1500h
delayfor10:mov tmod,#01h;initilize the timer
mov r0,#152;N1
back: mov tl0,#00h;
mov th0,#00h;
setb tr0;
check:jnb tf0,check;66ms 66ms*152=10 sec
clr tf0;
clr tr0;
djnz r0,back
ret;
org 1700h
delayfor5:mov tmod,#01h;initilize the timer
mov r0,#76;
back1: mov tl0,#00h;
mov th0,#00h;
setb tr0;
check1:jnb tf0,check1
clr tf0;
clr tr0;
djnz r0,back1;we are able to generate the required delay
ret;
end