SHARE
TWEET

Untitled

a guest Jan 15th, 2020 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. // CA COMMENCE LA  
  3.  
  4. write       ; Ecriture du resultat de la conversion dans le tableau
  5.   MOVF conversion_result, 0
  6.   MOVWF POSTINC0
  7.   RETURN
  8.  
  9.  
  10. result_treatement         ; On recupere les 3 bits qui nous interesse : 5 à 7
  11.   RRCF conversion_result      ; On decale à droite 4 fois
  12.   RRCF conversion_result
  13.   RRCF conversion_result
  14.   RRCF conversion_result
  15.   MOVLW b'00000111'
  16.   ANDWF conversion_result, 1  ; On fait un "ET" arithmetique pour ne garder que les 3 LSB
  17.   RETURN
  18.  
  19. ADC_launcher            ; On lance le convertisseur analogique numerique
  20.   MOVLW b'11000001'
  21.   MOVWF ADCON0
  22. conversion_end          ; On surveille le LSB de ADCON0 pour attendre la fin de la conversion
  23.   BTFSC ADCON0, 0
  24.   GOTO conversion_end
  25.   MOVF ADRESH, 0        ;  Le resultat est recupere dans ADRESH
  26.   MOVWF conversion_result
  27.   CALL result_treatement    ; On traite le resultat pour obtenir 3 bits
  28.   CLRF FSR0L,0          ; On initialise l'adresse du tableau
  29.   MOVLW 0x01
  30.   MOVWF FSR0H, 0
  31.   CALL write            ; On ecrit le resultat dans le tableau
  32.  
  33.   RETURN
  34.  
  35.  
  36. ADC_init_high_pitch ; Initialisation du channel pour les aigues
  37.   CLRF ADPCH
  38.   RETURN
  39.  
  40. ADC_init_medium_high    ; Initialisation du channel pour les medium hauts
  41.   MOVLW b'00000001'
  42.   MOVWF ADPCH
  43.   RETURN
  44.  
  45. ADC_init_medium_bass    ; Initialisation du channel pour les medium bas
  46.   MOVLW b'00000010'
  47.   MOVWF ADPCH
  48.   RETURN
  49.  
  50. ADC_init_bass       ; Initialisation du channel pour les basses
  51.   MOVLW b'00000011'
  52.   MOVWF ADPCH
  53.   RETURN
  54.  
  55. lets_convert            ; On convertit les 4 signaux un par un
  56.   CALL ADC_init_high_pitch  ; d'abord les aigue
  57.   CALL ADC_launcher     ; et on lance la conversion
  58.   CALL ADC_init_medium_high ; idem pour medium haut
  59.   CALL ADC_launcher
  60.   CALL ADC_init_medium_bass ; puis medium bas
  61.   CALL ADC_launcher
  62.   CALL ADC_init_bass        ; et basse
  63.   CALL ADC_launcher
  64.  
  65. START2
  66.  
  67.  
  68.    
  69.     MOVLW b'00000000'
  70.     MOVWF TRISB             ; Les leds sont en sorties
  71.     MOVWF conversion_result ; On initialise le resultat de conversion a 0
  72.     CALL lets_convert       ; On lance les conversion pour recuperer les 4 signaux
  73.     CALL lets_shine     ; On allume les leds
  74.    
  75.    
  76. table ADDWF PCL     ; Donne un jauge permettant de savoir a quelle hauteur on allume les leds
  77.     RETLW 0x00
  78.     RETLW 0x01
  79.     RETLW 0x03
  80.     RETLW 0x07
  81.     RETLW 0x0F
  82.     RETLW 0x1F
  83.     RETLW 0x3F
  84.     RETLW 0x7F
  85.     RETLW 0xFF
  86.  
  87.  
  88.    
  89.    
  90.     GOTO $                          ; boucle infinie
  91.  
  92.     END
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top