pıc to pıc seri iletişim

Başlatan asof544, 12 Nisan 2015, 18:03:47

asof544

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

ete

Farklı dünyalardayız gibi geliyor bana.
Burası pic microdenetleyicileri konu alan ve genel picBasic üzerine tartışma yaptığımız ama zaman zamanda Asm , C dili gibi diğer derleyiciler üzerinde de konuştuğumuz bir platform.
Gerek açıklamalarına ve gerekse yazdığın koda bakınca farklı bir platformdan bahsettiğini anlıyorum. En azından mikrodenetleyicin farklı olmalı zira bizim işlemcilerde P portu diye bir şey yok.
Asm komutlarında bildiğim kadarı ile ,
-jnb
-cjne
Gibi komutlar yok.
Tabiiki yazdığın mesaja şema eklemediğin , hangi işlemcilerden bahsettiğini açıklamadığın için mesajını anlayamadık. Ama farklı bir mikrodenetleyici olduğu kesin.

Ete

est32

#2
Yanlış bilmiyorsan bu kodlar ve port tanımları 8051 ASM kodları.
başlığı C/P yapmayı unutmuş;
http://www.proelo.com/genel-assembly-40/89c52-seri-haberlesme-1358/

Powered by EzPortal