breadbroad yardımı

Başlatan styx75, 31 Mart 2014, 14:28:48

styx75

selam arkadaşlar ..
aşağıda ayrıntılarını verdiğim seri alıcı verici devresi isis similasyonda sorunsuz çalışmakda,fakat devreyi breadbroad kurudugum zaman asla çalıştıramadım
piclerin ikisinide 16f628a kullandıgım zaman sorunsuz çalışıyor breadbroad'da.. nezamanki verici 16f877a alıcı 16f628a kullanırsam olmuyor,cidden çok ugraşdım ama olmadı..
ayrıca münferit olarak aynı devre üzerinde farklı programlar kurup led yak/sön gibi gene problem olmuyor ama seri iletişimi yaptıramadım..sanrım 16f877a nın breadbrod üzerine kurarken birşeyi atlıyor yada unutuyorum..besleme pc güç kaynagından
lütfen yardımlarınızı bekliyorum..
verici kod
@ DEVICE PIC16F877A                                                      
@ DEVICE PIC16F877A, WDT_OFF       
@ DEVICE PIC16F877A, PWRT_ON             
@ DEVICE PIC16F877A, PROTECT_OFF
@ DEVICE PIC16F877A, XT_OSC
DEFINE OSC 4                     

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 25  ' 2400 Baud @ 4MHz, 0,17%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically     
ADCON1=7
CMCON=7   
TRISA=%00000000
TRISB=%00000001
TRISC=%00000000
TRISD=%00000000
TRISE=%000

'INCLUDE "modedefs.bas"
OPTION_REG.7 = 1   ;PORTB Pull-UP lar aktif

VERI VAR BYTE 
PAUSE 500

PORTB=0
PORTA=0

Pause 500
ANADONGU:
  VERI=0
   IF PORTB.0=0 THEN
   VERI=100
   GOSUB YOLLA
   WHILE PORTB.0=0
   WEND
   ENDIF
   PAUSE 10
   GOTO ANADONGU
YOLLA:
    Hserout ["D","A","T","A",VERI]   
    Hserout ["D","A","T","A",VERI]
    Hserout ["D","A","T","A",VERI]   
    Hserout ["D","A","T","A",VERI]     
    RETURN   
    END         

alıcı kod
 
@ DEVICE PIC16F628A                                                      
@ DEVICE PIC16F628A, WDT_OFF       
@ DEVICE PIC16F628A, PWRT_ON             
@ DEVICE PIC16F628A, PROTECT_OFF         
@ DEVICE PIC16F628A, MCLR_OFF             
@ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
DEFINE OSC 4

CMCON = 7    ;PORTA Dijital
'INCLUDE "modedefs.bas"
OPTION_REG.7 = 1   ;PORTB Pull-UP lar aktif
TRISB = %00000001     ' BUTON PORTB0, DATA PORTB5
TRISA = %00000000
AL VAR BYTE
PORTB=0     
  PORTA=0 
PAUSE 500
ANADONGU:
  AL=0
  GOSUB ALI
  IF AL=100 THEN
  TOGGLE PORTA.0                         
  ENDIF                   
  PAUSE 200 
  GOTO ANADONGU       
ALI:
  SerIn2 PORTB.0,396,[WAIT ("DATA"),AL]             
  RETURN     
  END


ete

Bağlantılarda bir hata gözükmüyor. Programda da bir kusur göremedim. Bu durumda breadboard +5V besleme pinleri, GND besleme pinlerini kontrol etmek gerekir.
Gerekirse he riki programın başına bir led flash ettirme döngüsü koyularak işlemcilerin çalışıp çalışmadıkları kontrol edilir. Çalışmayan var ise sebebi araştırılıp çözüm bulunmalıdır.

Ete

styx75

TAM OLARAK NASIL YAPMAM LAZIM..KUSURA BAKMAYIN BİRAZ ACEMİYİM  :)

styx75

AYNI DEVREYİ ŞİMDİ TEKRARDAN VERİCİ OLARAK 16F628A UYARLAYAK KURDUM ÇALIŞIYORRRR..
AMA 16F877A DA OLMUYOR BUNDERİ BÖYLE  :'( 

ete

Bu durumda 16F628 in doğru çalışıyor kabul edebiliriz.
16F877A programında ilk PAUSE 500 komut satırını bul ve onu PAUSE 200 olarak değiştir. Altınaki satırları BASLA satırına kadar sil (BASLA satırı kalsın) . SOnra Pause 200 den sonra aşağıdakileri ilave et bakalım.
ALtına da şunları ilave et.

portd.1=1
pause 100
portd=0
pause 100
portd.1=1
pause 100
portd=0

PORTB=0
PORTA=0

Pause 200


16F877A nın 20 nolu pinine 220 veya 330 Ohm direnç tak. direncin ucuna bir tane led tak (uzun bacak buraya gelecek) ledin kısa bacağınıda GND ye bağla.
Ver elektriği ve led 2 defa yanıp sönmesi gerekiyor. Yapıyor ise sorun yok işlemcin çalışıyor demektir.
Ama yapmıyorsa işlemcin çalışmıyor demek oluyor. Bu durumda;
Besleme bacakları doğrumu önce buna bak. Sonra bacaklara doğru (5V) voltaj  geliyormu ona bak.
1 Nolu pininde +5V (direnç üzerinden ) varmı ona bak.
Kristal bacakları doğrumu ona bak. Kirstal bacakları ile GND arasında 22pf kondansatör bağlımı ona bak. Devrede bunlar gözüküyor ama değerler belli değil. Her şey doğru ise kristali bir başkası ile değiştir yeniden çalıştır. Yine yok ise işlemciyi değiştir.

Ete

styx75

yanıtlarınız çok teşekkür ederim.
çalıştırdım..ama serın2 ve serout2 komutları ile..hser leri denemedim..

Powered by EzPortal