G

Yaptığım Devre Çalışmıyor Yardım Lütfen

Başlatan gecekondu, 18 Ekim 2013, 14:41:40

gecekondu

Merhaba,

PIC 16f877a alıcıda olmak üzere 8 adet Röleyi ve yine bağlı ledleri seri iletişimle çalıştırmak istedim fakat simülasyonda çalışan devre gerçekte çalışmıyor.Eksik ya da yanlış yaptığım bir şey mi var acaba kodları aşağıda veriyorum yardımınızı rica ederim.

Verici:

Include "modedefs.bas"
GONDER var byte
GONDER=0
TRISA=%00000000
PORTA=0
TRISB=%11111111
PORTB=0

Basla:

if portb.0=0 then
GONDER=10                                   
gosub ilet
pause 30
endif



if portb.1=0 then
gonder=20
gosub ilet
pause 30
endif


if portb.2=0 then
gonder=30
pause 30
gosub ilet
ENDif

if portb.3=0 then
gonder=40
pause 30
gosub ilet
endif

if portb.4=0 then
gonder=50
pause 30
gosub ilet
endif

if portb.5=0 then
gonder=60
pause 30
gosub ilet
endif

if portb.6=0 then
gonder=70
pause 30
gosub ilet
endif                                 

if portb.7=0 then
gonder=80                 
pause 30
gosub ilet
endif


goto basla

ilet:
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]
SEROUT2 PORTA.2,396,["M","U","S","T","A","F","A",gonder]

RETURN
END

ALICI:

Include "modedefs.bas"
cmcon=7
adcon1=7
DEFINE LCD_DREG PORTC
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
TRISE=%00000010
PORTE=0
PORTB=0
TRISB=%00000000





AL VAR byte

lcdout $fe,1,"Sistem Acik"

basla:

serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]
serin2 porte.1,396,[WAIT ("M","U","S","T","A","F","A"),al]


if al=10 then
gosub yak
endif

if al=20 then
gosub yak1
endif

if AL=30 then                                                                                       
GOSUB yak2
endif

if AL=40 then
gosub yak3
endif

if AL=50 then
gosub yak4
endif

if AL=60 THEN
gosub yak5
endif
                                         
if AL=70 THEN
gosub yak6
endif

IF AL=80 THEN
GOSUB YAK7
ENDIF

if Portd.0=0 and portc.1=0 and portc.2=0 and portc.3=0 AND Portd.4=0 and portd.5=0 and portd.6=0 AND PORTD.7=0 then
lcdout $fe,1,"Cihazlar Kapali"
ENDIF
goto basla


YAK:
TOGGLE portd.0
high portb.0
if portd.0=1 then
lcdout $fe,1,"Derin don. acildi"
else
low portb.0
lcdout $fe,1,"Derin don. kapandi"
endif
return
end

yak1:
TOGGLE portc.1
high portb.1
if portc.1=1 then
lcdout $fe,1," Buzdolabi acildi "
else
low portb.1
lcdout $fe,1," Buzdolabi kapandi "
endif
return
end

yak2:
TOGGLE portc.2
high portb.2
if portc.2=1 then
lcdout $fe,1,"DAHILI PRIZ (1)     ACIK"
else
low portb.2
lcdout $fe,1,"DAHILI PRIZ (1)     KAPALI"
endif
return
end

yak3:
TOGGLE portc.3
high portb.3
if portc.3=1 then
lcdout $fe,1,"Turbo Fan Acildi"
else
low portb.3
lcdout $fe,1,"Turbo Fan Kapandi"
endif
return
end

yak4:
TOGGLE portd.4
high portb.4
if portd.4=1 then
lcdout $fe,1,"POSET KAPATICI      ACIK"
else
low portb.4
lcdout $fe,1,"POSET KAPATICI      KAPALI"
endif
return
end

yak5:
TOGGLE portd.5
high portb.5
if portd.5=1 then
lcdout $fe,1,"LED AYDINLATMA      ACIK"
else
low portb.5
lcdout $fe,1,"LED AYDINLATMA      KAPALI"
endif
return
end

yak6:
TOGGLE portd.6
high portb.6
if portd.6=1 then
lcdout $fe,1,"DAHILI PRIZ (2)     ACIK"
else
low portb.6
lcdout $fe,1,"DAHILI PRIZ (2)     KAPALI"
endif
return
end

yak7:
TOGGLE portd.7
high portB.7
if portd.7=1 then
lcdout $fe,1,"DAHILI PRIZ (3)     ACIK"
else
low portB.7
lcdout $fe,1,"DAHILI PRIZ (3)     KAPALI"
endif
return
end

gecekondu

Verici devre için pic16f84A kullanıyorum kodlar 16f84a'ya göre yazıldı.Sigorta ayarlarını direk pic programlayıcıdan yaptım.LCD ekranda sadece sistem açık yazısını görüyorum.Normalde IR kontrol gibi çalışcak fakat IR de sorun olduğunu düşünüp devreden çıkardım direk serin ve serout olarak kullandığım bacakarı birbirine kısa devre edip tuşlara basıyorum ama hiçbir değişme olmuyor.

rexo

Şema +Kart çizimini yok bunları da verki hata nerede bakılsın ,
kolaygelsin

gecekondu

İlginiz için teşekkürler hemen paylaşıyorum.

gecekondu

Açık şema biraz dağınık ama anlaşılır durumda bir de boşta kalan pinlere herhangi bir pull up işlemi uygulamamıştım.

gecekondu

arkadaşlar lütfen ilgilenin ya artık sinir oldum bu devre yüzünden hata nerde bir türlü bulamıyorum TRIS leri mi doğru ayarlamadım nedir bi türlü çözemedim.Yardımınızı bekliyorum.

BİDİL

cehaletimi mazur gör ama alıcı verici bağlantı noktaları nerede acaba ben göremedim bir türlü

gecekondu

Estafurullah ilginiz için teşekkür ederim.
Verici olarak 555 ile 38 Khz frekans üretiyorum ve normal IR led ile bilgiyi gönderiyorum.Alıcı da Sharp diye devrede belirttiğim eleman aslında ben alıcı vericiyi tamamen boşa çıkardım.Serout2 ve Serin2 olarak belirlediğim Pinleri birbirine kısa devre yaptığımda ve butonlara bastığımda butona bağlı ledin yanması gerekmiyor mu?Hani en azından bunu görsem diyorum.Yalnızca LCD ekranda "Sistem acik" ifadesini görüyorum iki ucu birleştirip butonlara bastığımda hiçbir değişiklik yok.Simülasyonda ise çalışıyor.

F®T

ben dosyaları göremedim ihtiyarlıktan heralde.dosyaları verde millet baksın.resimlerle kim neyi simüle edecek.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gecekondu

Tüm bilgiler ektedir.

Kesin alıcı adlı hex dosyası 16f877a bulunan alıcı devresine,deneme tuşlar adlı hex. dosyası ise 16f84 verici devresinde kullanılacaktır.

İlginiz için teşekkürler.

F®T

alıcı kodunda her alt programın altına end yazmışsın onları silip denermisin sad
ece ana programda goto basla satırının altına end yaz.vericidede aynı.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gecekondu

Devreyi simüle ettiğiniz zaman bu kodlarla çalışmadı mı?Hani benim simülasyonda mı bir sorun var diye böyle söyledim.Kod israfı olmuş sanırım.Dediğiniz gibi yeniden derledim fakat hala aynı herhangi bir değişiklik olmuyor.Verici devrenin serout2 olarak ayarladığım pin çıkışıyla alıcı devrenin serin2 olarak ayarladığım pinini kısa devre edip vericideki tuşlara basıyorum ama herhangi bir değişiklik olmuyor.TRIS ayarlarım mı yanlış acaba kontrol etmeniz mümkün mü?

F®T

#12
simülasyonda normal.tabi devrede biraz mantık hataları var onları normal çalışmasını sağladıktan sonra görüp düzeltirsin.birde alıcı ve vericide gonder ve al değişkenleri onları ikisini gönder yada al olarak değiştirip denermisin.her iki yazılımdada ya gönder olarak yada al olarak.ayrıca vericide 16f84 ayaklarında xtal yok normal devrende varmı?
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gecekondu

Tabi 16f84 için de XTAL kullandım.Şuan deneyemiyorum ama size tekrar bilgi vericem çalışıp çalışmadığı konusunda.Bir de boşta kalan pinler var acaba bu ne kadar etkiler devrenin çalışmasını sanırım pull-up ya da pull-down yapmam gerekiyor ama bu devrenin tamamen çalışmasını etkileyen bir durum mu yoksa çalışırken pic'in sapıtmasına mı yol açıyor yoksa hiçbir etkisi yok mu?Çok uzun süredir uğraşmadım evden böyle bi istek gelince uzun zaman sonra kolları sıvadım yani yeniyim yardımlarınızı esirgemezseniz çok sevinirim  :)

Yardımlarınız için teşekkür ederim.

BİDİL

Çalışmamasına neden olmaz ancak parazit alabilme ihtimaline karşı kullanılmayan pinler grounda çekilir ve tris yazmaçlarında 1 yapılır.

Powered by EzPortal