Proteusta Çalışıyor Ama Devrede Neden Çalışmıyor Yardım Eder Misiniz?

Başlatan abstruse, 09 Aralık 2012, 15:31:23

abstruse

Burada daha öce paylaştığım devreyi simülasyon aşamasından sonra gerçekleştirmek istedim lakin boarda kurdum ve sonuç hüsran çalışmadı :(..

Paylaşmak istdiklerim.
1-Devrede '16F877A' kullandım orijinalinde '16F877' var.
2-Pickit 2 Kullandım daha önceden kullamöışlığım var ve düzgün çalışıyor.
3-MCLR pini doğru şekilde bağlandı ve ölçüldü data sheet ve simülasyona uygun şekilde olduğu görüldü.
4-xtal osc doğru şekilde bağlandı
5-2 farklı lcd denendi
6-Daha önce 10 larca kez başka devrelerde kurdum
7-bunların hepsini defalarca denedim :(

devre programının açık hali
' PicBasicPro   FREKANSMETRE  SINYAL JENERATÖRÜ 
' LCD 4-bit mode
'  16F877
' LCD bağlantı şekli:
'       LCD     PIC
'       DB4     PortD.4
'       DB5     PortD.5
'       DB6     PortD.6
'       DB7     PortD.7
'       RS      PortD.2
'       E       PortD.3
'       RW      Ground
'       Vdd     5 volts
'       Vss     Ground
'       Vo      20K potansiyometre (ground)
'       DB0-3   boşta

DEFINE  LCD_DREG  PORTD
DEFINE  LCD_DBIT  4
DEFINE  LCD_RSREG  PORTD
DEFINE  LCD_RSBIT  2
DEFINE  LCD_EREG  PORTD
DEFINE  LCD_EBIT  3
DEFINE  LCD_BITS  4
DEFINE  LCD_LINES 2


  

fout  var word 
foutL var fout.byte0
foutH var fout.byte1
       


         ADCON1=2     
loop:  Pause 200
         Lcdout $FE,1,"Merhaba"
           Pause 1000
           
            Lcdout $FE,1,"Yazan:"
             Lcdout $FE,$C0,"isim"
             Pause 1000
frek:            Lcdout $FE,1,"Frekans"
                  Lcdout $FE,$C0,"Metre "
                 pause 1000
              

                 ' **** FREKANSMETRE***************

MeasFrek:       Lcdout $FE,1,"Skala ?"
                    Pause 100
                 if PortE.0 then skale1    ' 0-65 kHz
                 if PortE.1 then skale4    ' 65MHz-550 Mhz 
                   goto MeasFrek   

skale1:             Lcdout $FE,1,"0-65 kHz"
                     Pause 160
                    if PortE.0 then skale2
                    if PortE.1 then skale4
                    if PortE.2 then  Olcum1   ' Ölcüme basla
                      goto skale1

skale2:            Lcdout $FE,1,"65-650  "
                    Lcdout $FE,$C0
                    Lcdout "kHz"
                        Pause 160
                    if PortE.0 then skale3
                    if PortE.1 then skale1
                    if PortE.2 then  Olcum2   ' Ölcüme basla
                         goto skale2 

skale3:             Lcdout $FE,1,"0.65 - 6"
                    Lcdout $FE,$C0
                    Lcdout "5  MHz"
                        
                        Pause 160
                    if PortE.0 then skale4
                    if PortE.1 then skale2
                    if PortE.2 then  Olcum3   ' Ölcüme basla
                        goto skale3
skale4:             Lcdout $FE,1,"65 MHz-5"
                    Lcdout $FE,$C0
                    Lcdout "50 MHz"
                        
                        Pause 160
                    if PortE.0 then skale1
                    if PortE.1 then skale3
                    if PortE.2 then  Olcum4   ' Ölcüme basla
                        goto skale4



Olcum1:            Lcdout $FE,1,"Bolge 1"
                   Pause 500
                   goto fre1

Olcum2:            Lcdout $FE,1,"Bolge 2"
                   Pause 500
                   goto fre2
                   

Olcum3:            Lcdout $FE,1,"Bolge 3"
                   Pause 500
                   goto fre3                 

Olcum4:            Lcdout $FE,1,"Bolge 4"
                   Pause 500
                   goto fre4 




fre1:
'  ------------------ 1 s gecikme ---------------- ASSEMBLER MODA GEÇİŞ
asm   
       bcf  STATUS,RP0
       bcf  STATUS,RP1
       clrf TMR1L
       clrf TMR1H
       movlw  D'7'
       movwf  T1CON
endasm
       pause  1000
asm    movlw  D'6'
       movwf  T1CON
       movf TMR1L,0
       movwf _foutL
       movf TMR1H,0
       movwf _foutH
endasm
'----------------------------------------------ASSEMBLER MODDAN ÇIKIŞ
       Lcdout $FE,1
       Lcdout #fout," Hz"
       Pause 300
       if PortE.2=1 then MeasFrek 
      goto fre1


fre2:
'  ------------------ 1 s gecikme ---------------- 
asm   
       bcf  STATUS,RP0
       bcf  STATUS,RP1
       clrf TMR1L
       clrf TMR1H
       movlw  D'7'
       movwf  T1CON
       
endasm
       pauseus 35
       pause  1000
asm    movlw  D'6'
       movwf  T1CON
       movf TMR1L,0
       movwf _foutL
       movf TMR1H,0
       movwf _foutH
endasm
        Lcdout $FE,1
        Lcdout #fout,"0"
        Lcdout $FE,$C0," Hz"
         Pause 300
       if PortE.2=1 then MeasFrek 
      goto fre2



fre3:
'  ------------------ 10 ms gecikme ---------------- 
asm   
       
       bcf  STATUS,RP0
       bcf  STATUS,RP1
       clrf TMR1L
       clrf TMR1H
       movlw  D'7'
       movwf  T1CON
endasm
       pauseus 9993    ; 10 ms gecikme
asm    movlw  D'6'
       movwf  T1CON
       movf TMR1L,0
       movwf _foutL
       movf TMR1H,0
       movwf _foutH
endasm
        Lcdout $FE,1
        Lcdout #fout
         Lcdout $FE,$C0," kHz" 
        Pause 300
       if PortE.2=1 then MeasFrek 
      goto fre3


fre4:
'  ------------------ 1 ms gecikme ---------------- 
asm   
       
       bcf  STATUS,RP0
       bcf  STATUS,RP1
       clrf TMR1L
       clrf TMR1H
       movlw  D'7'
       movwf  T1CON
      
endasm
           ; 1 ms gecikme
asm    movlw  D'6'
       movwf  T1CON
       movf TMR1L,0
       movwf _foutL
       movf TMR1H,0
       movwf _foutH
endasm
        Lcdout $FE,1
        Lcdout #fout,"0"
         Lcdout $FE,$C0," kHz" 
        Pause 300
       if PortE.2=1 then MeasFrek 
      goto fre4
    
      END



isis + hex
http://www.dosya.tc/server24/1aECmH/FREK.rar.html

ve bu daha önceki konu ilgisiz ama bakmak isterseniz
https://www.picproje.org/index.php/topic,43733.0.html

Teşekkür ediyorum ilgilenenlere

Sdttn


Maxim


abstruse

Alıntı yapılan: Maxim - 09 Aralık 2012, 15:52:34
877A seçin + config ayarları nerede ?

ben pbp yazmıyorum bu konuda yardım alabilir miyim sizlerden config ayarları prog içinde malesef yok ona ne gibi çözüm getirebilirim ? ?

abstruse

Alıntı yapılan: Sdttn - 09 Aralık 2012, 15:50:21
877A'ya göre derle.
bu secenegi galiba yapmıştım tkrarlıyorum şimdi başka bir konu gelirse aklınıza yazın lütfen

Sdttn

editörde sol üstte target processor var onu değiştir 877a yap öyle derle.

JOKERAS

Selam,
LCD'yi sürdüğünüz fonksiyonlarda LCD komutları için gecikmeler vardır minimum bekleme süresi max bekleme süresi gibi,proteus bu min max gecikmeleri dikkate almaya bilir bu sebeple olması gereken kritik zamanlamaları pas geçer bu sizi yanıltabilir.
Siz bence LCD komutlarında olması gereken zaman gecikmelerinin değerleri yükselterek test edin,bence sorun bu.

abstruse

galiba programdan kaynaklı olsa gerek o ihtimali genel olarak yüksek görüyorlar :s bekliyoruz bakalım umarm çözülür

abstruse

Alıntı yapılan: Sdttn - 09 Aralık 2012, 17:22:48
editörde sol üstte target processor var onu değiştir 877a yap öyle derle.
onu yaptım hocam değişmedi durum :(

Maxim

osc kaç mhz?
4 mü 10mhz mi ?

mesaj birleştirme:: 09 Aralık 2012, 20:27:18

kodun en üstüne bunu yazıp tekrar derleyin bakalım



4mhz ise kristal

@ DEVICE PIC16f877A
@ DEVICE PIC16f877A, WDT_OFF
@ DEVICE PIC16f877A, BOD_ON
@ DEVICE PIC16f877A, PWRT_ON
@ DEVICE PIC16f877A, PROTECT_OFF
@ DEVICE PIC16f877A, XT_OSC

DEFINE OSC 4
CMCON=7
ADCON1=7



yok 10mhz ise

@ DEVICE PIC16f877A
@ DEVICE PIC16f877A, WDT_OFF
@ DEVICE PIC16f877A, BOD_ON
@ DEVICE PIC16f877A, PWRT_ON
@ DEVICE PIC16f877A, PROTECT_OFF
@ DEVICE PIC16f877A, HS_OSC

DEFINE OSC 10
CMCON=7
ADCON1=7

abstruse

Alıntı yapılan: Maxim - 09 Aralık 2012, 20:23:04
osc kaç mhz?
4 mü 10mhz mi ?

mesaj birleştirme:: 09 Aralık 2012, 20:27:18

kodun en üstüne bunu yazıp tekrar derleyin bakalım



4mhz ise kristal

@ DEVICE PIC16f877A
@ DEVICE PIC16f877A, WDT_OFF
@ DEVICE PIC16f877A, BOD_ON
@ DEVICE PIC16f877A, PWRT_ON
@ DEVICE PIC16f877A, PROTECT_OFF
@ DEVICE PIC16f877A, XT_OSC

DEFINE OSC 4
CMCON=7
ADCON1=7



yok 10mhz ise

@ DEVICE PIC16f877A
@ DEVICE PIC16f877A, WDT_OFF
@ DEVICE PIC16f877A, BOD_ON
@ DEVICE PIC16f877A, PWRT_ON
@ DEVICE PIC16f877A, PROTECT_OFF
@ DEVICE PIC16f877A, HS_OSC

DEFINE OSC 10
CMCON=7
ADCON1=7
bunu da bende denedim @ete de yardım etti bi program yolladı sağolsun yani benim programı düzenledi yolladı ama malesef sonuç alamadım  :'(
ümidim de kırıldı iyice ya.

erhanzeynel

led yan-sön gibi bir uygulama yükleyin, donanımsal sorun olup olmadığına bakın.
pic grev yapıyorsa, kristal gövdesini gnd ye çekin, sevecektir.  ;)

serhat1990

Devrenizin donanımını kontrol edin . MCLR pini ne durumda pull_up yaptınızmı , osilatör bağlantısı doğru durumdamı . Sigorta ayarlarında brownout reset durumu . Bu gibi temel ayarları kontrol edin ... Board üstündeki devrenin resmini ekleyebilirseniz ( net gözükecek bir durumda ) kontrol edebiliriz...

İyi Çalışmalar.

abstruse

Alıntı yapılan: erhanzeynel - 10 Aralık 2012, 03:22:28
led yan-sön gibi bir uygulama yükleyin, donanımsal sorun olup olmadığına bakın.
pic grev yapıyorsa, kristal gövdesini gnd ye çekin, sevecektir.  ;)

Alıntı YapDevrenizin donanımını kontrol edin . MCLR pini ne durumda pull_up yaptınızmı , osilatör bağlantısı doğru durumdamı . Sigorta ayarlarında brownout reset durumu . Bu gibi temel ayarları kontrol edin ... Board üstündeki devrenin resmini ekleyebilirseniz ( net gözükecek bir durumda ) kontrol edebiliriz...

İyi Çalışmalar.

gördüm ki forumda herkes kendi işi gibi ilgileniyor çok teşekkür ederim arkadaşlar problem yardımarınız la çözüldü  sayın @ETE  programı düzenledi sağolsun eksik config leri tamamladı  dün tekrar donanımı da baştan kurdum  ve oldu şimdi frekans ölçümü için laboratuvara gitmeyi bekliyorum bende signal genratörü yok şimdi de tamamlanınca paylaşacağım
  bu konudan aldığım ders 16f877a ile 16f877 aynı olsa idi adamlar adını da aynı koyardı ;)

   Mesajima cevap veren tüm arkadaşlara ve picproje.org a teşekkürle umarım benimde bir gün size faydam dokunur iyi forumlar ;)