Şimdi Ara

pic16f877 a/d

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
511
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar pic16f877de a/d olayını bir türlü yapamadım. Bunun üzerine test için bir kod yazdım. Fakat oda çalışmıyor. Acaba kodda bir hatamı var? Bir şeyleri gözdenmi kaçıyorum? Yardımcı olursanız sevinirim.
     
    LIST P=16F877A
    INCLUDE "P16F877A.INC"
    __CONFIG _CP_OFF &_WDT_OFF &_PWRTE_ON &_HS_OSC &_BODEN_OFF &_LVP_OFF &_CPD_OFF

    TEMP EQU H'0020'
    SAYI1 EQU H'0021'
    SAYI2 EQU H'0022'
    SAYI3 EQU H'0023'
    GOTO BASLA
    STARTAD
    BSF STATUS,RP0
    MOVLW H'2D'
    MOVWF ADCON1 ;ra0 analog, ad sonuçları sağa hizalanmış(adfm=1)
    BCF STATUS,RP0
    MOVLW B'11000001' ;internal rc clock,ad açık,kanal an0
    MOVWF ADCON0
    BSF STATUS,RP0
    CLRF ADRESL
    RETURN
    BASLA
    CLRF TRISC
    MOVLW B'00000001' ;RA0 Giriş
    MOVWF TRISA
    BCF STATUS,RP0
    CLRF PORTC
    CLRF PORTA
    CALL STARTAD
    STD
    BSF STATUS,RP0
    MOVF ADRESL,W
    BCF STATUS,RP0
    MOVWF PORTC ;ADRESL içeriğini portc de göster
    MOVLW .20
    CALL BEKLE2 ;bekle
    BCF STATUS,RP0
    BSF ADCON0,2 ;a/d dönüşümü başlat
    DONUSUM
    BTFSC ADCON0,2 ;dönüşümün bitmesini bekle
    GOTO DONUSUM
    GOTO STD ;bir daha hesapla
    BEKLE2
    DON3
    DECFSZ SAYI1,F
    CALL BEKLE
    DECFSZ SAYI1,F
    GOTO DON3
    RETURN
    BEKLE
    MOVLW .100
    MOVWF SAYI2
    DON1
    MOVLW .255
    MOVWF SAYI3
    DON2
    DECFSZ SAYI3,F
    GOTO DON2
    DECFSZ SAYI2,F
    GOTO DON1
    RETURN
    END








  • ben ccs c de yaptım ama assembly i bilemiyorum
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.