P

Devre Şeması Doğruluğu

Başlatan phil, 25 Nisan 2014, 09:43:31

phil

Arkadaşlar merhaba.

Çok mühim bir ödevim için sizden yardım istiyorum. Şimdiden teşekkür ederim.

Pic16f877 ve ds1621 ile termometre yapacağım, sıcaklık belli bir değerin üzerine çıktığında led yanacak, sonrada o ledin olduğu kısmı pervana vs bağlayacağım. Şimdilik çalıştığını görmek için takılı.

Simülasyonda pic'i programladım, kodu derledim ve pic'e attım. Simülasyonda çalıştı. Program tamam.

Ancak devre şemasından emin değilim.

Sizden ricam, dikkatli biçimde inceleyip bana doğru/yanlış kısımları söyler misiniz, baskı devre aşamasındayım.

Simülasyonda (proteus) bazı kısımlar gösterilmiyor ya, osilatör, artı-eksi vs. Bir kontrol etmenizi rica ediyorum. En gerçek ve baskı devreye geçilecek haliyle çizdim.

ete

LCD 2 nolu bacağına +5V vermen gerekiyor.
LCD 15 ve 16 nolu bacaklar arka ışık besleme uçlarıdır. her birine 330 ohm bağlarsan arka ışık yanmaz.
GND ucu direk GND ye bağlanmalı diğer ucuna yarım watt 47 ohm direnç bağlanmalıdır. Senin LCD 330 ohm ile arka ışığı yakabiliyorsa 47 yerine 330 ohm bağlayabilirsin ama hiç görmedim şimdiye kadar.

Başka bir sorun gözükmüyor.

ete

phil

Hocam çok çok teşekkür ederim.

Şimdi, lcd'nin 16 nolu ucunu direk topraklıyorum. 15'e de 47ohm bağlayıp 5v veriyorum dimi hocam?

Bir de, pic'in 11-12 32-31 nolu uçları arasındaki ilişkiyi tam anlamadım. +5 ve toprak bağladığım iki ucu, kondansatörle neden birbirine bağlıyorum hocam?

ete

İki ucu kondansatörle bir birine bağlamıyorsun. İki uç arasına kondansatör bağlayarak besleme voltajını filtre etmiş oluyorsun. bu seni parazitlerden koruyacağı gibi mosfet olan pic pin çıkışlarının doğru çalışmasını sağlayacaktır.

Ete

phil

Hocam çok teşekkür ederim.

phil

Alıntı yapılan: ete - 25 Nisan 2014, 11:10:27
İki ucu kondansatörle bir birine bağlamıyorsun. İki uç arasına kondansatör bağlayarak besleme voltajını filtre etmiş oluyorsun. bu seni parazitlerden koruyacağı gibi mosfet olan pic pin çıkışlarının doğru çalışmasını sağlayacaktır.

Ete
hocam devreyi borda kurdum ve çalışmadı maalesef.

sadece lcd'nin ışığı yanıyor. çok moralim bozuldu. aklına sebep gelen var mı?

ete

Devre bizim devremiz değil. Senin devren fiziksel bağlantı kuralları çerçevesinde baktık olması gerekenleri söyledik. Devrenin simulasyonda çalıştığınıda sen söylemiştin bizde ona dayanarak çalışacağını düşündük. Bu durumda çalışmadı demek yanlış olacak sen çalıştıramadın denek daha doğru olur. Otur ne yaptığına bir kez daha bak ve çalıştır.
Fikir yürütebilmek açısından ekranda en ufak bir hareket yokmudur?  Belkide kontrast ayarı yapmadın?  Lcd nin 3 nolu pinine 10K lık trimpotun orta ucu bağlı olmalı. Bu trimpot kontrast ayarı yapar. Trimpot ile oynayarak ekranda görüntü yakalamaya çalış. Bir kaç alternatifin var bunlar,
1- ekranda hiç bir şey yok. O halde lcd ye voltaj gelmiyordur
2- ekranda 2 satır dolu kareler var o halde kontrast ayarı yanlış
3- ekranda tek sıra dolu kareler var o halde işlemcin çalışmıyor yada lcd ye komut gönderemiyor
Bunların hangisi var. Başka ip uçlarıda varmıdır voltaj kontrollerini yaptınmı ?
Ete

phil

Alıntı yapılan: ete - 26 Nisan 2014, 19:00:35
Devre bizim devremiz değil. Senin devren fiziksel bağlantı kuralları çerçevesinde baktık olması gerekenleri söyledik. Devrenin simulasyonda çalıştığınıda sen söylemiştin bizde ona dayanarak çalışacağını düşündük. Bu durumda çalışmadı demek yanlış olacak sen çalıştıramadın denek daha doğru olur. Otur ne yaptığına bir kez daha bak ve çalıştır.
Fikir yürütebilmek açısından ekranda en ufak bir hareket yokmudur?  Belkide kontrast ayarı yapmadın?  Lcd nin 3 nolu pinine 10K lık trimpotun orta ucu bağlı olmalı. Bu trimpot kontrast ayarı yapar. Trimpot ile oynayarak ekranda görüntü yakalamaya çalış. Bir kaç alternatifin var bunlar,
1- ekranda hiç bir şey yok. O halde lcd ye voltaj gelmiyordur
2- ekranda 2 satır dolu kareler var o halde kontrast ayarı yanlış
3- ekranda tek sıra dolu kareler var o halde işlemcin çalışmıyor yada lcd ye komut gönderemiyor
Bunların hangisi var. Başka ip uçlarıda varmıdır voltaj kontrollerini yaptınmı ?
Ete
Tek satır dolu kareler çıktı 16 tane. Potla ayar yapmaya çalıştım. Lcd'nin sadece besleme uçlarına voltaj geldiğini gördüm. Mikroişlemci mi yapamıyor vazifesini acaba? Led de yanmıyor. Sensör ile ilgili bir çıkarımım olmadı.

Bunun haricinde ben sizi suçlamadım ki. Teşekkür ederim o kadar uğraşıyorsunuz siz de.

ete

#8
İşlemcin çalışmıyor.!!!. Aşağıdakileri kontrol et,
1. İşlemciye doğru programı yazdırabildinmi.?
2. İŞlemcinin besleme voltajı girişlerindeki voltaj doğrumudur? ters olmamalı!!!! ve tam 5V olmalıdır.
3. Kristal tam olarak bağlımıdır. Kristal doğrumudur? kristal kondansatörleri doğru bağlımıdır değerleri 22pf mıdır?
4. MCLR direnci (1 nolu pine bağlı olan) bağlımıdır. 1 nolu pinde +5V okunabiliyormudur?

Bütün bunlar doğru ise o işlemci bozuktur yada kristalin bozukturç Hangisi değiştirebilme imkanın varsa değiştir ve tekrar deneme yap.

Ete

phil

Alıntı yapılan: ete - 26 Nisan 2014, 19:48:36
İşlemcin çalışmıyor.!!!. Kristal bağlantıları ,besleme girişleri ,kristal ve MCLR direncine bak. Besleme voltajının tam 5V olduğundan emin ol. Umarım voltajıda ters vermemişsindir.

Ete
Tamamdır, dediklerinize dikkat edeceğim. Voltajı ters vermedim. Teşekkür ederim, çok sağ olun.

phil

#10
Alıntı yapılan: ete - 26 Nisan 2014, 19:48:36
İşlemcin çalışmıyor.!!!. Aşağıdakileri kontrol et,
1. İşlemciye doğru programı yazdırabildinmi.?
2. İŞlemcinin besleme voltajı girişlerindeki voltaj doğrumudur? ters olmamalı!!!! ve tam 5V olmalıdır.
3. Kristal tam olarak bağlımıdır. Kristal doğrumudur? kristal kondansatörleri doğru bağlımıdır değerleri 22pf mıdır?
4. MCLR direnci (1 nolu pine bağlı olan) bağlımıdır. 1 nolu pinde +5V okunabiliyormudur?

Bütün bunlar doğru ise o işlemci bozuktur yada kristalin bozukturç Hangisi değiştirebilme imkanın varsa değiştir ve tekrar deneme yap.

Ete
Hocam;

1: Programı attırdım yazıcıoğlunda hocam.
2: Doğru besleme yaptım.
3: Kristal bağlı, kondansatörler 22pf.
4: MCLR direnci 10k. 1'de 5v var.

5: Pic'in besleme uçları hariç (veya doğrudan 5v gelen uçları hariç) hiç bir uçta bir gerilim göremiyorum. Aynı şekilde sensörde de. Aynı şekilde lcdde de.

6: Simülasyonda pic 16f877, ben 16f877A almışım. Aralarında fark yok neredeyse. Bu acaba çalışmamasına yol açar mı?

7: Assembly dilinde kodum. Simülasyonda falan 16f877 ile yaptığımdan koda da LIST P=16f877
include P16F877.INC ile başlamışım. sizce sorun bu da olabilir mi?

Pic mi çalışmıyor acaba. Ama daha yeni ve programı dün attırdım.

phil

Programım da bu hocam:

Programım:

   LIST P=16f877
   include P16F877.INC
   
   #define SDA   PORTC,4
   #define SCL     PORTC,3
   #define   DATA   0x2C

CBLOCK   20h
   SAYAC1,SAYAC2,OLCUM1H,OLCUM1L,DEGER,SAYAC,TERM
ENDC
   
        ORG     0x0000
   GOTO   KURULUM

TABLO
   ADDWF   PCL,F
   DT 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19
   DT 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
   DT 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59
   DT 60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79
   DT 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99
   DT 00,01,02,03,04,05,06,07,08,09

KURULUM
   movlw   0x0f
        movwf   PORTD
        bsf     STATUS,RP0
        clrf    TRISC
        clrf    TRISD
   CLRF   TRISA
   CLRF   TRISB
   CLRF   TRISE

   movlw    b'10001111'
   movwf    ADCON1
        bcf     STATUS,RP0

   CALL   KUR000

   CALL   LCDKURULUM
   CALL   SCYAZ
   CALL   GECIKME

;*****************************
BASLA
   MOVLW   H'C0'
   CALL   KOMUTYAZ

   CALL   OKU000

   CALL   TERMOSTAT
   CALL   GOSTER
   CALL   C0YAZ



   CALL   GECIKME
   GOTO   BASLA

;*****************************

TERMOSTAT
   BTFSS   OLCUM1H,7
   GOTO   ARTI1
   BCF   PORTC,0       ;eksili bir değer olduğundan ledi söndür
   RETURN
ARTI1   

   MOVF   OLCUM1H,W
   MOVWF   TERM
   BTFSS   OLCUM1L,7     ;0,5 ONDALIK var mı?
   GOTO   TAMAM1
   MOVLW   H'01'         ;varsa değeri bir artiriyoruz
   ADDWF   TERM,F
TAMAM1   MOVF   TERM,W   
   SUBLW   D'21'         ;21 ile karsilastiriyoruz
   BTFSS   STATUS,C
   GOTO   UST
ALT
   BCF   PORTC,0      ;LEDi yak
   RETURN
UST
   BSF   PORTC,0      ;Ledi söndür
   RETURN



C0YAZ
   MOVLW   A' '
   CALL   VERIYAZ
   MOVLW   A'D'
   CALL   VERIYAZ
   MOVLW   A'e'
   CALL   VERIYAZ
   MOVLW   A'r'
   CALL   VERIYAZ
   MOVLW   A'e'
   CALL   VERIYAZ
   MOVLW   A'c'
   CALL   VERIYAZ
   MOVLW   A'e'
   CALL   VERIYAZ
   MOVLW   A':'
   CALL   VERIYAZ
   RETURN

SCYAZ
   MOVLW   H'80'
   CALL   KOMUTYAZ
   MOVLW   A'S'
   CALL   VERIYAZ
   MOVLW   A'I'
   CALL   VERIYAZ
   MOVLW   A'C'
   CALL   VERIYAZ
   MOVLW   A'A'
   CALL   VERIYAZ
   MOVLW   A'K'
   CALL   VERIYAZ
   MOVLW   A'L'
   CALL   VERIYAZ
   MOVLW   A'I'
   CALL   VERIYAZ
   MOVLW   A'K'
   CALL   VERIYAZ
   MOVLW   A':'
   CALL   VERIYAZ
   RETURN

GOSTER
   BTFSS   OLCUM1H,7
   GOTO   ARTI
EKSI   MOVLW   A'-'
   CALL   VERIYAZ
   COMF   OLCUM1H,W
   ADDLW   .1
   GOTO   TAMAM
ARTI   MOVLW   A'+'
   CALL   VERIYAZ


   MOVF   OLCUM1H,W
TAMAM   CALL   TABLO
   MOVWF   OLCUM1H
   SWAPF   OLCUM1H,W
   ANDLW   H'0F'
   ADDLW   H'30'
   CALL   VERIYAZ
   MOVF   OLCUM1H,W
   ANDLW   H'0F'
   ADDLW   H'30'
   CALL   VERIYAZ
   MOVLW   A'.'
   CALL   VERIYAZ
   BTFSS   OLCUM1L,7
   GOTO   SIFIR
BES   MOVLW   A'5'
   CALL   VERIYAZ
   RETURN
SIFIR   MOVLW   A'0'
   CALL   VERIYAZ
   RETURN

LCDKURULUM
   BSF   PORTE,0
   BSF   PORTE,1
   MOVLW   H'0F'
   CALL   KOMUTYAZ
   MOVLW   H'01'
   CALL   KOMUTYAZ
   MOVLW   H'0C'
   CALL   KOMUTYAZ
   MOVLW   H'38'
   CALL   KOMUTYAZ
   RETURN

KOMUTYAZ
   BCF   PORTE,1   
   MOVWF   PORTB
   BCF   PORTE,0
   CALL   TIMER1
   BSF   PORTE,0
   RETURN
VERIYAZ
   BSF   PORTE,1
   MOVWF   PORTB
   BCF   PORTE,0
   CALL   TIMER1
   BSF   PORTE,0
   RETURN

KUR000
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'00100010'
   CALL   GONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'10101100'
   CALL   GONDER
   MOVLW   B'10011001'
   CALL   GONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'11101110'
   CALL   GONDER
   CALL   PGONDER
   RETURN

OKU000
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'10101100'
   CALL   GONDER
   CALL   SGONDER
   MOVLW   B'10010001'
   CALL   GONDER
   CALL   OKU
   CALL   NGONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'10101010'
   CALL   GONDER
   CALL   SGONDER
   MOVLW   B'10010001'
   CALL   GONDER
   CALL   OKU
   MOVF   DEGER,W
   MOVWF   OLCUM1H
   CALL   AGONDER
   CALL   OKU
   MOVF   DEGER,W
   MOVWF   OLCUM1L
   CALL   NGONDER
   CALL   PGONDER
   CALL   SGONDER
   MOVLW   B'10010000'
   CALL   GONDER
   MOVLW   B'11101110'
   CALL   GONDER
   CALL   PGONDER
   RETURN   

AGONDER
     BSF     STATUS    , RP0
            BCF     STATUS    , RP1
            BCF     PORTC      , 04
            BCF     STATUS    , RP0
            BCF     PORTC      , 04
            BSF     PORTC      , 03
            BCF     PORTC      , 03
            BSF     STATUS    , RP0
            BSF     PORTC      , 04
            BCF     STATUS    , RP0
            RETURN

PGONDER     BSF     STATUS    , RP0
            BCF     STATUS    , RP1
            BCF     PORTC      , 04
            BCF     STATUS    , RP0
            BCF     PORTC      , 04
            BSF     PORTC      , 03
            BSF     STATUS    , RP0
            BSF     PORTC      , 04
            BCF     STATUS    , RP0
            BSF     PORTC      , 03
            BCF     STATUS    , RP0
            RETURN

SGONDER
   BCF     STATUS    , RP0
        BCF     STATUS    , RP1
        BSF     PORTC      , 03
        BSF     STATUS    , RP0
        BSF     PORTC      , 04
        BCF     PORTC      , 04
        BCF     STATUS    , RP0
        BCF     PORTC      , 04
        BCF     PORTC      , 03
        BCF     STATUS    , RP0
            RETURN

NGONDER
   BSF     STATUS    , RP0
   BCF     STATUS    , RP1
   BSF     PORTC      , 04
   BCF     STATUS    , RP0
        BSF     PORTC      , 03
        BCF     PORTC      , 03
        BCF     STATUS    , RP0
        RETURN

OKU
   BCF     STATUS    , RP0
        BCF     STATUS    , RP1
        CLRF    DEGER
        BCF     PORTC      , 03
        BSF     STATUS    , RP0
        BSF     PORTC      , 04
        BCF     STATUS    , RP0
        BSF     PORTC      , 03
   BCF   STATUS,0
   MOVLW   B'10000000'
   MOVWF   SAYAC
DEVAM
        BTFSS   PORTC      , 04
        GOTO    SIFIR0
        MOVF    SAYAC,W
        ADDWF   DEGER,F
SIFIR0   BCF     STATUS    , RP0
   BCF     STATUS    , RP1
        BCF     PORTC      , 03
   BTFSS   SAYAC,0
        BSF     PORTC      , 03
   RRF   SAYAC,F
   BTFSS   STATUS,0
   GOTO   DEVAM
        MOVF    DEGER      , W
   BCF     STATUS    , RP1
        BCF     STATUS    , RP0
        ;BCF     PORTC      , 03
   RETURN

GONDER
        MOVWF   DATA
        BCF     STATUS    , RP1
   BCF     STATUS    , RP0
   MOVLW   .8
   MOVWF   SAYAC
GTEKRAR
        BCF     PORTC      , 03
   BTFSC   DATA      , 7
        GOTO    YEDI11
   BSF     STATUS    , RP0
        BCF     PORTC      , 04
        BCF     STATUS    , RP0
        BCF     PORTC      , 04
        GOTO    $+3
YEDI11   BSF     STATUS    , RP0
        BSF     PORTC      , 04
   BCF     STATUS    , RP0
        BSF     PORTC      , 03
   RLF   DATA,F
   DECFSZ   SAYAC,F
   GOTO   GTEKRAR
        BCF     PORTC      , 03
        BSF     STATUS    , RP0
        BSF     PORTC      , 04
        BCF     STATUS    , RP0
        BSF     PORTC      , 03
        MOVLW   0x00
        BTFSC   PORTC      , 04
        MOVLW   0x01
        SUBLW   0x01
        MOVWF   DEGER
        BCF     PORTC      , 03
        MOVF    DEGER      , W
   BCF     STATUS    , RP1
        BCF     STATUS    , RP0
        RETURN


GECIKME
   MOVLW   H'2F'
   MOVWF   SAYAC1
GECIKME1
   MOVLW   H'FF'
   MOVWF   SAYAC2
GECIKME2
   DECFSZ   SAYAC2,F
   GOTO   GECIKME2
   DECFSZ   SAYAC1,F
   GOTO   GECIKME1
   RETURN

TIMER1
   MOVLW   H'3F'
   MOVWF   SAYAC1
DONGU1
   MOVLW   H'1F'
   MOVWF   SAYAC2
DONGU2
   DECFSZ   SAYAC2,F
   GOTO   DONGU2
   DECFSZ   SAYAC1,F
   GOTO   DONGU1
   RETURN

        END

------------------------------------------------

Simülasyon hali:

http://i59.tinypic.com/2llem4g.png

------------------------------------

buna göre çizdiğim devre şeması:

http://tinypic.com/view.php?pic=op2uy1&s=8#.U1y-rVfZb9k

(burada lcd-6'dan pic-8'e gidecek, onu yanlış çizmişim.) gerçi iki türlü de bir şey fark etmedi.


ete

877 ile 877A farklı işlemciler birinde komparatör var diğerinde yoktur. Doğru işlemci ile denemen gerek

Ete

phil

Alıntı yapılan: ete - 27 Nisan 2014, 14:03:23
877 ile 877A farklı işlemciler birinde komparatör var diğerinde yoktur. Doğru işlemci ile denemen gerek

Ete
Hocam iyi akşamlar.

Mikroişlemciyi değiştirdim. İki farklı pic'e program attım. Sorun var mı diye basit bi program atıp led de yaktım.
Bbacakları değmiyordur diye lcd'yi lehimledim.
İkinci defa borda kurdum.
Kristali değiştirdim.

Sonuç yine aynı hocam. Sadece lcd'nin ışığı yanıyor.

Neden olabileceği yönünde aklıma bir şey gelmiyor benim.

Acaba hocam programımda lcd tanımlamaları eksiktir de ondan olabilir mi? (Hangi portun hangi görevde olacağı ve pinlerinin nerede kullanılacağı)

Bir de hocam, ds1621'e takılan ayrı bir eleman yok değil mi? Yani 3 numaralı çıkış mesela boşta ya. Yani kendi başına sıcaklığı algılayan bir sensör ve entegre dimi hocam?

Teşekkürler.

Maxim

sizin bu program hangi dil ?

Powered by EzPortal