89c52 seri haberleşme
merhaba arkadaşlar
1.mikroişlemci: MIK1 2.mikroişlemci:MIK2 3.mikroişlemci:MIK3 MIK1 ve MIK2 yi birbirine seri port üzerine bağladım. MIK2'nin p1 portunu MIK3 ün p1 portuna bağladım ve MIK2'nin p3.6 portunu MIK3'ün kesmesine bağladım. MIK2 MIK1 den aldığı veriyi p1 portuna göndermesi gerektiğinde p3.6 portu MIK3 te kesme oluşturuyor. Mesela MIK'ün p2.2 portu 30 saniye süreyle yanaack veri geldi MIK2den.. mesela buna #13h diyelim. p1 portuna 13h sayısı geldiğinde p2.2 portunu set ediyorum 30 sn lik delay programını çağırıp sonra clr ediyorum. SORUN: Anlamadığım bir şekilde proteus ta simulasyon yaparken bu lamba 30 sn yanıyor ama bir kaç ms sonra tekrar yanıyor. Bunu engellemek için ne yapmak lazım? Acaba sorun MIK3 te mi yoksa MIK2 demi? Şimdiden teşekkürler.. MIK-2- org 0000h ljmp main org 0030h main: clr p0.0 clr p0.1 clr p0.2 clr p0.3 clr p0.4 clr p0.5 clr p0.6 clr p0.7 clr p1.0 clr p1.1 clr p1.2 clr p1.3 clr p1.4 clr p1.5 clr p1.6 clr p1.7 clr p2.0 clr p2.1 clr p2.2 clr p2.3 clr p2.4 clr p2.5 clr p2.6 clr p2.7 clr p3.6 mov scon #52h mov tmod #20h mov th1 #-13 mov tl1 #-13 setb tr1 al: jnb RI al clr RI mov a sbuf cjne a #123 devam2 setb p2.0 clr p2.0 ljmp sicaklik_al ljmp al devam2: cjne a #124 devam3 setb p2.1 clr p2.1 . . . devam16: setb p3.6 nop nop nop nop clr p3.6 mov p1a nop nop nop nop mov p1 #00h MIK-3- org 0000h ljmp main org 0003h ljmp kesme1 org 0030h main: mov IE #85h ;kesme yetkilendirme clr p2.0 clr p2.1 clr p2.2 clr p2.3 clr p2.4 clr p2.5 clr p2.6 clr p2.7 beklee: sjmp beklee kesme1: mov a p1 cjne a #01 aa1 setb p0.0 aa1: cjne a #02 aa2 setb p0.0 aa2: cjne a #03 aa3 setb p0.1 aa3: cjne a #04 aa4 setb p0.1 aa4: cjne a#05 aa5 setb p0.2 call delay ;________30 sn lik delay programı clr p0.2 aa5: cjne a#06 aa6 setb p0.3 call delay clr p0.3 aa6: cjne a #07 aa7 setb p0.4 call delay clr p0.4 aa7: cjne a #08 aa8 setb p0.5 call delay clr p0.5 aa8: cjne a #09 aa9 setb p0.6 call delay clr p0.6 aa9: cjne a #10 aa10 setb p0.7 call delay clr p0.7 aa10: cjne a #11 aa11 setb p2.0 call delay clr p2.0 aa11: cjne a #12 aa12 setb p2.1 call delay clr p2.1 aa12: cjne a #13 aa13 setb p2.2 call delay aa13: cjne a #14 aa14 clr p0.0 aa14: cjne a #16 aa15 clr p0.1 aa15: cjne a #26 aa16 clr p2.2 aa16: retI delay: mov r7 #01 delay2: mov r6 #20 delay3: mov tmod #01h mov th0 #high(-50000) mov tl0 #low(-50000) setb tr0 jnb tf0 $ clr tr0 clr tf0 djnz r6 delay3 djnz r7 delay2 ret |
Bütün Zaman Ayarları WEZ +3.5 olarak düzenlenmiştir. şu Anki Saat: 02:46 AM . |