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
Konu king of swords tarafından (17. September 2008 Saat 07:17 PM ) değiştirilmiştir.
Sebep: 'ek bilgi'
|