Şimdi Ara

16f877 seri haberleşme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
10
Cevap
0
Favori
990
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • slm arkadaşlar.seri haberleşmede sorun yaşıyorum fakat bulamadım hatayı.kodları gönderiyorum bakarsanız çok sevinirim .
     

    ;transmıt



    ;30.07.2007

    ;*********************************************************************************
    ;
    LIST P=16F877
    INCLUDE "p16f877.inc"

    __CONFIG _PWRTE_OFF & _XT_OSC & _WDT_OFF & _LVP_OFF & _BODEN_OFF ;configuration switches
    ;*********************************************************************************

    ;CBLOCK 0x20

    ;ENDC

    ORG 0X00

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

    call DEFINES

    MAIN
    call TRANSMIT_DATA

    GOTO MAIN

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

    TRANSMIT_DATA

    BANKSEL TXSTA
    BCF TXSTA,TXEN
    NOP
    NOP
    nop
    BSF TXSTA,TXEN

    BANKSEL PIR1
    BTFSS PIR1,TXIF
    GOTO $-1
    ;BCF PIR1,TXIF

    MOVLW B'11000111'
    banksel TXREG
    MOVWF TXREG
    banksel PORTD
    MOVWF PORTD

    RETURN

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

    DEFINES
    BANKSEL TRISC
    MOVLW B'11000000'
    MOVWF TRISC
    CLRF TRISD
    ;CLRF TRISE

    BANKSEL PORTC
    MOVLW B'11000000'
    MOVWF PORTC
    CLRF PORTD
    ;CLRF PORTE

    BANKSEL SPBRG
    MOVLW D'129'
    MOVWF SPBRG

    BANKSEL TXSTA
    MOVLW B'00000100' ;asenkron seri haberleşme transmit reg
    movwf TXSTA

    BANKSEL RCSTA ;asenkron seri haberleşme receive reg
    MOVLW B'10010000'
    MOVWF RCSTA

    BANKSEL TXREG
    CLRF TXREG

    BANKSEL RCREG
    CLRF RCREG

    return

    end




     


    ;receive



    ;30.07.2007

    ;*********************************************************************************
    ;
    LIST P=16F877
    INCLUDE "p16f877.inc"

    __CONFIG _PWRTE_OFF & _XT_OSC & _WDT_OFF & _LVP_OFF & _BODEN_OFF; configuration switches
    ;*********************************************************************************

    ;CBLOCK 0x20

    ;ENDC

    ORG 0X00

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

    call DEFINES

    MAIN
    call RECEIVE_DATA

    GOTO MAIN

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

    RECEIVE_DATA

    BANKSEL RCSTA
    BCF RCSTA,CREN
    NOP
    NOP
    nop
    BSF RCSTA,CREN

    BANKSEL PIR1
    BTFSS PIR1,RCIF
    GOTO $-1
    BCF PIR1,RCIF

    banksel RCREG
    MOVF RCREG,W
    BANKSEL PORTD
    MOVWF PORTD

    RETURN

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

    DEFINES
    BANKSEL TRISC
    MOVLW B'11000000'
    MOVWF TRISC
    CLRF TRISD
    ;clrf TRISE

    BANKSEL PORTC
    MOVLW B'11000000'
    MOVWF PORTC
    CLRF PORTD
    ;CLRF PORTE

    BANKSEL SPBRG ;9600 baudrate için
    MOVLW D'129'
    MOVWF SPBRG

    BANKSEL TXSTA
    MOVLW B'00000100' ;asenkron seri haberleşme transmit reg
    movwf TXSTA

    BANKSEL RCSTA ;asenkron seri haberleşme receive reg
    MOVLW B'10010000'
    MOVWF RCSTA

    BANKSEL TXREG
    CLRF TXREG

    BANKSEL RCREG
    CLRF RCREG

    return

    end


    şimdiden teşekkür ederim
    herkese kolay gelsin



    < Bu mesaj bu kişi tarafından değiştirildi seba -- 31 Temmuz 2007; 11:30:41 >







  • arkadaşlar sanırım programlarda sorun yok.transmit picine buton ekleyip butona basılınca göndermesini istedim ozmn çok rahat çalışıyo sorun yok ama butonu bırakmayıda bekliceksiniz.yani aşağıdaki kodları ekleyince sorun yok
     

    button

    banksel PORTC
    BTFSC PORTC,0
    GOTO $-1

    btfsS PORTC,0
    GOTO $-1
    RETURN


    transmit programına
    call TRANSMIT_DATA'dan önce
  • Biri gönderilmeden diğerini göndermeye çalışıyorsun. Bu gönderdiğin verinin bütünlüğü açısından çok kötü bir durum olsa da, yine de donanımın bundan rahatsız olmaması gerekir. Ama son eklediğin kodlara göre böyle bir durum varmış. Bir şekilde bekletme yapmışsın ve çalışmış.

    btfss PIR1,TXIF
    goto $-1

    TRANSMIT_DATA'nın en sonuna bunu ekle.
  • zaten veriyi göndermeden önce 1 olmasını bekliyorum niye tekrar beklicez.
    yoksa btfsc mi yapcaz onu
  • kusura bakmayın arkadaşlar denemeden cvp yazdım. Liu Kang arkadaşımız küçük bir hata yapmış btfsc olacak.


    yeni konu açmak istemiyorum bir sorum daha olacak.
    A/D dönüştürücüde analog girişi pot kullanarak değiştirmek istiyorum.gerilim bölücüyü 0.5-1.0-1.5-...-4.0-4.5 gibi ayarlamak istedim fakat yapamadım.direncin ve potun değeri ne olabilir fikriniz varmı

     16f877 seri haberleşme
  • quote:

    Orjinalden alıntı: seba

    zaten veriyi göndermeden önce 1 olmasını bekliyorum niye tekrar beklicez.


    Mesajını bugün 31 Temmuz 2007 tarih ve 11:30:41 saatinde tekrar düzenleme sebebin nedir?
  • niye bu konuya takıldın anlamadım ama açıklayım.
    ben işyerinden bağlanıyorum ve saat 18de çıkıyorum
    30 temmuz saat 18'e doğru button kısmını ekleyip yeni msj attım.31 temmuzda geldiğimde msjı göremedim bilgilendirmek için attığım msjı düzelttim gönderdim.busefer hem düzelttiğim hemde attım msjı gördüm ve düzelttiğimi tekrar sildim.çok önemsenmeyecek küçük bir aksaklık,bence.
  • Voltaj bölücü devrende pot'un boşta kalan ucunu RA0 a bağlamalısın.

    10K ya gene 10K lık bir pot bağlarsan istediğin değerleri alıcağını düşünüyorum.

    Ayrıca piyasada satılan potlar genelde logaritmik olarak değer değiştirirler bu yüzden dirençleri genelde kullanıcağın oranda seçersen daha güzel ayarlanabilir.
  • teşekkür ederim erman374.çok büyük bir hata yapmışım .
    hemen düzeltiyorum
  • quote:

    Orjinalden alıntı: seba

    niye bu konuya takıldın anlamadım ama açıklayım.
    ben işyerinden bağlanıyorum ve saat 18de çıkıyorum
    30 temmuz saat 18'e doğru button kısmını ekleyip yeni msj attım.31 temmuzda geldiğimde msjı göremedim bilgilendirmek için attığım msjı düzelttim gönderdim.busefer hem düzelttiğim hemde attım msjı gördüm ve düzelttiğimi tekrar sildim.çok önemsenmeyecek küçük bir aksaklık,bence.


    Arkadaşı çok basit bir mesele yüzünden çok kötü suçladım. Zaten kodlarda varolması gereken bir parçayı bu eksik diyerek yukarda yazmıştım. Sonra arkadaş hayır bu var niye ikinci defa yazayım dedi. Ben kendimden çok emindim bunlar yoktu, mesajda bana cevap yazmadan hemen önce yapılmış değişikliği görünce çok sinirlendim ve PM'den rahatsız ettim ve sen ne yapmaya çalışıyorsun diye çıkıştım üstüne yetmedi psikolojik rahatsızlıkların var dedim. Sonra iftira mı atıyorum diye kıllanmaya başladım şansa Google'ın önbellek özelliğiyle aynı sayfanın değişikliğe uğramamış halini gördüm. Öyle bir durum yoktu. Kısaca, çok büyük haksızlık etmişim günahını almışım düpedüz iftira etmişim anca o kadar kötü olurdu. Burdan tekrar çok özür dilerim affola.



    < Bu mesaj bu kişi tarafından değiştirildi Liu Kang -- 1 Ağustos 2007; 15:46:50 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.