Pic 16f690

Peltsi

#include

__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _IESO_OFF & _FCMEN_OFF)


RESULTHI      equ      20
RESULTLO      equ      22


BANKSEL ADCON1 ;
MOVLW B’01110000’ ;ADC Frc clock
MOVWF ADCON1 ;
BANKSEL TRISA ;
BSF TRISA,0 ;Set RA0 to input
BANKSEL ANSEL ;
BSF ANSEL,0 ;Set RA0 to analog
BANKSEL ADCON0 ;
MOVLW B’10000001’ ;Right justify,
MOVWF ADCON0 ; Vdd Vref, AN0, On
CALL SampleTime ;Acquisiton delay
BSF ADCON0,GO ;Start conversion
BTFSC ADCON0,GO ;Is conversion done?
GOTO $-1 ;No, test again
BANKSEL ADRESH ;
MOVF ADRESH,W ;Read upper 2 bits
MOVWF RESULTHI ;store in GPR space
BANKSEL ADRESL ;
MOVF ADRESL,W ;Read lower 8 bits
MOVWF RESULTLO ;Store in GPR space

3

1116

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Peltsi

      Pyytäisin neuvoja joilla saisin analogia tulon toimimaan projektissani. Käsittääkseni alla olevan koodin jälkeen pinnissä RA0 vaikuttava jännite on jossain muodossa rekistereissä RESULTLO ja RESULTHI?

      Miten koodi etenee tästä, jos halutaan esim. yksinkertainen tieto, onko jännite yli vai alle 2.5 volttia?

      Mikäli jollakin on heittää esimerkki koodi, jossa analogiatulon mukaan valitaan seuraava aliohjelma, "olisi se enemmän kuin sata jänistä"






      #include

      __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _IESO_OFF & _FCMEN_OFF)


      RESULTHI equ 20
      RESULTLO equ 22


      BANKSEL ADCON1 ;
      MOVLW B’01110000’ ;ADC Frc clock
      MOVWF ADCON1 ;
      BANKSEL TRISA ;
      BSF TRISA,0 ;Set RA0 to input
      BANKSEL ANSEL ;
      BSF ANSEL,0 ;Set RA0 to analog
      BANKSEL ADCON0 ;
      MOVLW B’10000001’ ;Right justify,
      MOVWF ADCON0 ; Vdd Vref, AN0, On
      CALL SampleTime ;Acquisiton delay
      BSF ADCON0,GO ;Start conversion
      BTFSC ADCON0,GO ;Is conversion done?
      GOTO $-1 ;No, test again
      BANKSEL ADRESH ;
      MOVF ADRESH,W ;Read upper 2 bits
      MOVWF RESULTHI ;store in GPR space
      BANKSEL ADRESL ;
      MOVF ADRESL,W ;Read lower 8 bits
      MOVWF RESULTLO ;Store in GPR space

      • Libra73

        Moi. Tuossa esimerkki. Tuo on demo levylle, mutta idea selvinnee.

        ; PICkit 2 Lesson 4 - "A2D"
        ;
        ; This shows how to read the A2D converter and display the
        ; High order parts on the 4 bit LED display.
        ; The pot on the Low Pin Count Demo board varies the voltage
        ; coming in on in A0.
        ;
        ; The A2D is referenced to the same Vdd as the device, which
        ; is provided by the USB cable and nominally is 5V. The A2D
        ; returns the ratio of the voltage on Pin RA0 to 5V. The A2D
        ; has a resolution of 10 bits, with 1023 representing 5V and
        ; 0 representing 0V.

        #include
           __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOD_OFF & _IESO_OFF & _FCMEN_OFF)

           cblock 0x20
        Delay1      ; Assign an address to label Delay1
        Delay2
        Display      ; define a variable to hold the diplay
           endc
              
           org 0
        Start
           bsf   STATUS,RP0   ; select Register Page 1
           movlw   0xFF
           movwf   TRISA      ; Make PortA all input
           clrf   TRISC      ; Make PortC all output
           movlw   0x10      ; A2D Clock Fosc/8
           movwf   ADCON1
           bcf   STATUS,RP0   ; back to Register Page 0

           bcf   STATUS,RP0   ; address Register Page 2
           bsf   STATUS,RP1   
           movlw   0xFF      ; we want all Port A pins Analoga
           movwf   ANSEL
           bcf   STATUS,RP0   ; address Register Page 0
           bcf   STATUS,RP1
           
           movlw   0x01
           movwf   ADCON0      ; configure A2D for Channel 0 (RA0), Left justified, and turn on the A2D module
        MainLoop
           nop         ; wait 5uS for A2D amp to settle and capacitor to charge.
           nop         ; wait 1uS
           nop         ; wait 1uS
           nop         ; wait 1uS
           nop         ; wait 1uS
           bsf   ADCON0,GO   ; start conversion
           btfss   ADCON0,GO   ; this bit will change to zero when the conversion is complete
           goto   $-1

           swapf   ADRESH,w   ; Copy the display to the LEDs
           movwf   PORTC
           goto   MainLoop
           end
           


      • mbomdwedp
        Libra73 kirjoitti:

        Moi. Tuossa esimerkki. Tuo on demo levylle, mutta idea selvinnee.

        ; PICkit 2 Lesson 4 - "A2D"
        ;
        ; This shows how to read the A2D converter and display the
        ; High order parts on the 4 bit LED display.
        ; The pot on the Low Pin Count Demo board varies the voltage
        ; coming in on in A0.
        ;
        ; The A2D is referenced to the same Vdd as the device, which
        ; is provided by the USB cable and nominally is 5V. The A2D
        ; returns the ratio of the voltage on Pin RA0 to 5V. The A2D
        ; has a resolution of 10 bits, with 1023 representing 5V and
        ; 0 representing 0V.

        #include
           __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOD_OFF & _IESO_OFF & _FCMEN_OFF)

           cblock 0x20
        Delay1      ; Assign an address to label Delay1
        Delay2
        Display      ; define a variable to hold the diplay
           endc
              
           org 0
        Start
           bsf   STATUS,RP0   ; select Register Page 1
           movlw   0xFF
           movwf   TRISA      ; Make PortA all input
           clrf   TRISC      ; Make PortC all output
           movlw   0x10      ; A2D Clock Fosc/8
           movwf   ADCON1
           bcf   STATUS,RP0   ; back to Register Page 0

           bcf   STATUS,RP0   ; address Register Page 2
           bsf   STATUS,RP1   
           movlw   0xFF      ; we want all Port A pins Analoga
           movwf   ANSEL
           bcf   STATUS,RP0   ; address Register Page 0
           bcf   STATUS,RP1
           
           movlw   0x01
           movwf   ADCON0      ; configure A2D for Channel 0 (RA0), Left justified, and turn on the A2D module
        MainLoop
           nop         ; wait 5uS for A2D amp to settle and capacitor to charge.
           nop         ; wait 1uS
           nop         ; wait 1uS
           nop         ; wait 1uS
           nop         ; wait 1uS
           bsf   ADCON0,GO   ; start conversion
           btfss   ADCON0,GO   ; this bit will change to zero when the conversion is complete
           goto   $-1

           swapf   ADRESH,w   ; Copy the display to the LEDs
           movwf   PORTC
           goto   MainLoop
           end
           

        CaSeZn mcxoflwkwggw, [url=http://odcgbfustbbd.com/]odcgbfustbbd[/url], [link=http://elyqgoaidliz.com/]elyqgoaidliz[/link], http://zpqnmlzakwtw.com/


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Onko kaivattusi ulkonäkö

      tarpeeksi miellyttävä? 🥕
      Ikävä
      81
      1426
    2. Toivotko koskaan mies...

      Että nähtäis ja aloitettais alusta, puhtaalta pöydältä tutustuminen. Olit oikeassa ei me kunnolla tunnettu. Olin hölmö.
      Ikävä
      112
      1345
    3. Tämän päivän puukotusuutinen

      Epäillyn tuntomerkit? Nisti vai matu? Laittaisin betsit jälkimmäiselle.
      Seinäjoki
      18
      1130
    4. Svty paska työpaikka

      Elekää kukaan hakeku sinne töihin.
      Suomussalmi
      21
      1026
    5. Satuolennoista tarinointi ei kuulu peruskoulun tehtäviin

      Opetustunteja on muutenkin käytössä vain rajallinen määrä. Eli nämä satuhommat koulun ulkopuolelle vapaaehtoisiin harras
      Maailman menoa
      13
      929
    6. Kyllä näin 45 vuotiaana miehenä pitää sanoo, että 40-50v naiset näyttää vanhoilta

      Niin väsynyttä, silmäryppyä, harmaata hiusta jne jne
      Ikävä
      114
      888
    7. Olisin valmis salaisiin tapaamisiin

      Juuri sinun kanssasi mies. Olet saanut minun pääni pyörälle ja ajatukseni pyörimään ympärilläsi. Hittoon velvollisuudet
      Intohimo
      46
      878
    8. Onko viisikko aktivoitunut

      Taas ruumis !! Viisikko ryskää kukaan ei pärjää
      Seinäjoki
      18
      816
    9. Olisit voinut olla...

      ....ihan tavallinen ihminen, terve mieleltään ja kropaltaan, hyvä seuraihminen ja luotettava kumppani. Mutta ei, olit n
      Ikävä
      65
      777
    10. Olet ihana mies

      Mun söpöliini 🙊😘
      Ikävä
      40
      677
    Aihe