FMUSER Wirless Transmet vídeo i àudio més fàcil!

[protegit per correu electrònic] WhatsApp + 8615915959450
Llenguatge

    ATMEGA8 BH1415F programa de control

    Nom :: RF transmissor BH1415F
     
         
    Hora: 06, 07, 06
         
    Funcions: control de gamma BH1415F FM transmissor de freqüència (88 ~ 108Hz) MCU: ATMEGA8
         
    Escriu: LCJ
    ************************************************** ************ /
    / * ___________________________________________________
      
    CE ___ |

    | __________
               
    ________________
      
    CK _____ | | __ | | __ | | __ | | __ | | _ ---- _ | | __ | | __ |

    | __________
             
    __________
      
    DA____ | D0 | __ | D1 | __ | D2 | __ | D3 | __ | D4 | __
           
    ______
    ----- _ | PD | __ | T1 | __ | T2 | __________
    * /
    / **********************************
       
    Programa de transmissors de FM Digital
    *********************************** /
    / / Header arxiu
    # Incloure // Opcions del model SCM
    # Incloure / / definicions de bits
    # Incloure / / Memòria EEPROM
    / Freqüència / Crystal
    # Definir Fosc 6000000 / / vidre 6MHZ
    # Definir bauds 9600 / velocitat / transmissió

    # Definiu open_radio (PINB i 0B00000100) / / boot
    # Definiu function_open (PORTB | = (1 << 4)) / / control d'arrencada
    # Defineix function_close (PORTB & = ~ (1 << 4)) / / shutdown de control
    # Definiu open_save (PINB i 0B00000100) / / estació d'emmagatzematge oberta
    # Defineix save_ensure (PINB i 0B00000100) / / determina l'estació d'emmagatzematge
    # Definir ajustar_estació (PINB i 0B00000100) // la regulació ha mantingut una bona ràdio
    # Definiu F_ADD (PINB i 0B00001000) / / freqüència plus
    # Definiu F_REDUCE (PINB i 0B00010000) / / freqüència reduïda
    / / Unsigned char F_DATA_H, F_DATA_L ;/ / freqüència d'alta i baixa poc
    ;/ / Boot open_radio_flag bandera unsigned char

    / / Char F_flag_H ;/ / freqüència d'emmagatzematge sense signe d'alta
    / / Dipòsit ;/ / baixa F_flag_L unsigned char freqüència

    unsigned char LCD_display_H ;/ / LCD d'alta
    unsigned char LCD_display_L ;/ / LCD sota

    unsigned char function_flag ;/ / save bandera de Taiwan

    unsigned char save_dais_flag ;/ / dipòsit logo determinat

    # Defineix save1_H (PORTC | = (1 << 4)) / / indicació d'estat per defensar Taiwan
    # Definiu save2_H (PORTC | = (1 << 5)) / / Paul station que indica l'èxit
    # Defineix save1_L (PORTC & = ~ (1 << 4))
    # Defineix save2_L (PORTC & = ~ (1 << 5))

    # Definir LED_H (PORTD | = (1 << 7))

    # Definiu CE_H (PORTB | = (1 << 0)) / / 15 CE
    # Defineix CE_L (PORTB & = ~ (1 << 0))
    # Definiu CK_H (PORTB | = (1 << 1)) / / 16 RELLOTGE
    # Defineix CK_L (PORTB & = ~ (1 << 1))
    # Definiu DA_H (PORTB | = (1 << 5)) / / 17 DADES
    # Definiu DA_L (PORTB & = ~ (1 << 5))
    / / # Defineix LCD_display_OUT PORTB
    / / # Defineix LCD_display_control PORTC
    / / Unsigned char LCD_display_data [8] [4];
    caràcter no signat display_character [10] = {0x3f, 0X06, 0X5B, 0X4F,

    0X66, 0X6D, 0X7D, 0X07, 0X7F, 0X6F}; / / matriu 1, 2, 3, 4, 5, 6, 7, 8, 9
    unsigned char EEPROM_READ_DATA ;/ / llegir les dades guardades
    sense signar EEPROM_READ_NUMBER ;/ / llegir l'adreça guardada caràcters
    / ************************************************* ******* /
    display_one ;/ / display bits de unsigned char
    unsigned char display_ten ;/ / display 10
    unsigned char display_hundred ;/ / display cent
    unsigned char display_thousand ;/ / mostra de mil
    / ************************************************* *******
                      
    Mostra memòria intermèdia de dades
    ************************************************** ****** /
    temp_display_one unsigned char;
    temp_display_ten unsigned char;
    unsigned char temp_display_hundred;
    temp_display_thousand unsigned char;
    / ************************************************* ******
                   
    Per al control de memòria intermèdia de dades BH1415
    ************************************************** * /
    temp_BH1415_one unsigned char;
    temp_BH1415_ten unsigned char;
    unsigned char temp_BH1415_hundred;
    temp_BH1415_thousand unsigned char;
    / ************************************************* * /
    bits de control unsigned char BH1415_one ;/ / BH1415
    unsigned char BH1415_ten ;/ / BH1415 control de deu
    unsigned char de control BH1415_hundred ;/ / BH1415 cent
    / ************************************************* * /
    nombre de control ;/ / sortida adjust_PS8889_OUT unsigned char
    adjust_PS8889_control [9] ;/ matriu de caràcters sense signe de control /
    / / Unsigned ;/ adjust_station_number caràcters / comprovar el nombre de bits de la matriu
    sense signe ;/ adjust_save_address caràcters / Desar direcció
    sense signe ;/ adjust_save_function caràcters / funció d'estalvi d'
    / ************************************************* ******* /
    unsigned char temp_BH1415_L ;/ / controlar el BH1415 sota 8
    unsigned char temp_BH1415_H ;/ / control de BH1415 8

    / **************************************** /
    delay_ms buit (void);
    delay_xs void (unsigned char x);
    void adjust_station_OUT (void);
    void station_save_IN (void);
    void EEPROM_rite (unsigned int uAddr, unsigned char udata);
    void EEPROM_read (unsigned int uAddr);
    void F_ADD_function (void);
    void F_REDUCE_function (void);
    void control_BH1415_and_display (void);
    void LCD_display (unsigned char Display_Data, unsigned char

    function_number);
    void control_BH1415 (void);
    void BH1415_OUT (unsigned char control_F_DATA, unsigned char

    control_number);
    / ************************************************* ****** /


    Subrutina / / retard
    delay_xs void (unsigned char x)
    {
       
    unsigned char a;
       
    per a (a = 0; a
       
    {
         
    delay_ms ();
      
    }
    }

    delay_ms buit (void)
    {
      
    unsigned char aa, bb;
      
    per a (aa = 0; aa <50; aa + +)
      
    {
         
    per a (bb = 0; bb <100; bb + +);
      
    }
    }

    / *********************************
            
    A continuació es presenta una funció de lectura de l'escriptori
    ********************************** /
    void adjust_station_OUT (void)
    {/ / Guardar una bona regulació de la ràdio
       
    EEPROM_read (EEPROM_READ_NUMBER);
       
    temp_display_one = EEPROM_READ_DATA;
       
    EEPROM_READ_NUMBER + +;
     
       
    EEPROM_read (EEPROM_READ_NUMBER);
       
    temp_display_ten = EEPROM_READ_DATA;
       
    EEPROM_READ_NUMBER + +;
     
       
    EEPROM_read (EEPROM_READ_NUMBER);
       
    temp_display_hundred = EEPROM_READ_DATA;
       
    EEPROM_READ_NUMBER + +;
     
       
    EEPROM_read (EEPROM_READ_NUMBER);
       
    temp_display_thousand = EEPROM_READ_DATA;
       
    EEPROM_READ_NUMBER + +;
      
    }

    void station_save_IN (void)
    {/ / Botiga funció de ràdio
      
    EEPROMwrite (adjust_save_address, temp_display_one);
      
    adjust_save_address + +;
     
      
    EEPROMwrite (adjust_save_address, temp_display_ten);
      
    adjust_save_address + +;
     
      
    EEPROMwrite (adjust_save_address, temp_display_hundred);
      
    adjust_save_address + +;
     
      
    EEPROMwrite (adjust_save_address, temp_display_thousand);
      
    adjust_save_address + +;
    }
    / *********************************
         
    Funció de lectura de la EEPROM
    ********************************** /
    void EEPROM_read (unsigned int uAddr)
    {/ / Funció Read EEPROM
      
    mentre que (EECR & (1 << EEWE));
      
    EEAR = uAddr;
      
    CEER | = (1 << EERE);
      
    EEPROM_READ_DATA = EEDR;
    }

    / ************************************
            
    Aquí està la freqüència d'afegir poc a poc la funció
    ************************************* /
    void F_ADD_function (void)
    {/ / Freqüència augmenta gradualment la funció, / / ​​freqüència de disminució de la funció d'inicialització F_DATA_H = 0X03, F_DATA_L = 0X66
        
    if (temp_display_thousand> = 0x01)
       
    {
         
    if (temp_display_ten> = 0x08)
      
    {/ / Límit el 108.0MHZ freqüència màxima
         
    temp_display_one = 0x00;
      
    temp_display_ten = 0x08;
      
    temp_display_hundred = 0x00;
      
    temp_display_thousand = 0x01;
      
    }
      
    else
      
    Anar AFEGIR;
      
    }
      
    else
      
    {
    ADD: temp_display_one + +;
     
    if (temp_display_one> = 0x0a)
     
    {
         
    temp_display_one = 0x00;
         
    temp_display_ten + +;
         
    if (temp_display_ten> = 0x0a)
            
    {
              
    temp_display_ten = 0x00;
           
    temp_display_hundred + +;
           
    if (temp_display_hundred> = 0x0a)
           
    {
               
    temp_display_hundred = 0x00;
         
    temp_display_thousand + +;
         
    if (temp_display_thousand> = 0x01)
              
    {
          
    if (temp_display_ten> = 0x08)
          
    {
             
    temp_display_one = 0x00;
             
    temp_display_ten = 0x08;
             
    temp_display_hundred = 0x00;
          
    temp_display_thousand = 0x01;
             
    }
               
    }
         
            
    }
      
           
    }
          
    }
      
     
    }

       
    control_BH1415_and_display () ;/ / sortida de control de llançament BH1415
     
    }
    / ****************************************
       
    Aquesta és la funció de la disminució de la freqüència
    **************************************** /
    void F_REDUCE_function (void)
    {/ / Freqüència augmenta gradualment la funció, / / ​​freqüència de disminució de la funció d'inicialització F_DATA_H = 0X03, F_DATA_L = 0X66
       
    if (temp_display_thousand <= 0x00)
       
    {/ / Límit de freqüència mínima 87.0MHZ
         
    if (temp_display_hundred <= 0x08)
      
    {
        
    if (temp_display_ten <= 0x07)
        
    {
          
    if (temp_display_one <= 0x00)
          
    {
              
    temp_display_one = 0x00;
           
    temp_display_ten = 0x07;
           
    temp_display_hundred = 0x08;
           
    }
          
    else
       
    Anar REDUIR;
         
    }
      
    else
      
    Anar REDUIR;
      
    }
      
    else
      
    Anar REDUIR;
      
    }
      
    else
      
    {
    REDUEIX: if (temp_display_one <= 0x00)
     
    {/ / La disminució d'inici
         
    temp_display_one = 0x0a;
         
    if (temp_display_ten <= 0x00)
            
    {
              
    temp_display_ten = 0x0a;
           
    if (temp_display_hundred <= 0x00)
           
    {
              
    temp_display_hundred = 0x0a;
        
    temp_display_thousand = 0x00;
           
    }
       
    temp_display_hundred -;
         
    }
      
    temp_display_ten -;
          
    }
        
    temp_display_one -;
      
     
    }
     
    control_BH1415_and_display ();
    }
    void control_BH1415_and_display (void)
    {/ / Control BH1415 i la sortida de la pantalla
        
    unsigned char temp_one, temp_ten, temp_hundred, temp_one_L;
     
    temp_BH1415_data1 int sense signar,

    temp_BH1415_data2, temp_BH1415_data3;
     
    / ************************************************ /
     
    / / Converteix el control BH1415 informàtica.
     
    temp_BH1415_data1 = temp_display_thousand * 1000

    + Temp_display_hundred * + temp_display_ten 100 10 * + temp_display_one;
     
    temp_BH1415_data2 = temp_BH1415_data1;
     
    temp_BH1415_data3 = temp_BH1415_data2 >> 8;
     
    temp_ten = temp_BH1415_data3;
     
    temp_BH1415_L = temp_BH1415_data1;
     
    temp_BH1415_one = temp_BH1415_L & 0x0f;
     
    temp_BH1415_ten = temp_BH1415_L >> 4 & 0x0f;
     
    temp_BH1415_hundred = temp_ten & 0x0f;
     
    temp_BH1415_H = temp_ten | 0x48
     
     
    / * Temp_ten = temp_BH1415_ten << 4;
     
    temp_ten = temp_ten & 0xf0;
     
    temp_BH1415_L = temp_ten + temp_BH1415_one;
     
    temp_BH1415_H = temp_BH1415_hundred | 0x48 * /
     
    / / Temp_BH1415_L = temp_ten + temp_BH1415_one
     
     
    / **************************************** /
     
    / / Sortida 16 bits serial de control BH1415 dades
     
    CE_L;
     
    CK_L,
     
    DA_L;
     
    NOP ();
     
    NOP ();
     
    NOP ();
     
    CE_H;
        
    BH1415_OUT (temp_BH1415_L, 0x08);
     
    CK_L,
     
    BH1415_OUT (temp_BH1415_H, 0x08);
     
    CE_L;
     
    CK_L,
     
    DA_L;
    }


    / *******************************************
        
    Aquesta és la funció de sortida
    ******************************************* /
    void LCD_display (unsigned char Display_Data, unsigned char

    function_number)
    {/ Sortida / LCD
       
    delay_ms ();
       
    PORTC = function_number;
       
    PORTD = display_character [Display_Data];
    }


    / ********************************************
       
    Aquí és el control BH1415 ~ ~ ~ 8 bits funció de transmissió de dades en sèrie
    ********************************************* /

    void BH1415_OUT (unsigned char control_F_DATA, unsigned char

    control_number)
    {/ / Control BH1415
        
    unsigned char i;
        
    per a (i = 0; i <8; i + +)
        
    {
          
    if (control_F_DATA i 0x01 == 0x01)
            
    DA_H;
          
    else
           
    DA_L;
        
    NOP ();
        
    NOP ();
           
    CK_H;
           
    delay_ms ();
           
    NOP ();
           
    NOP ();
           
    CK_L,
           
    NOP ();
           
    NOP ();
          
    control_F_DATA >> = 1;
       
    delay_ms ();
       
    }
    }


    / ***************************************
        
    A continuació es manté la funció turística
    **************************************** /
    check_save_dais buit (void)
    {/ / Guardar Funció de taula
        
    display_one = 0x01;
     
    display_ten = 0x00;
        
    display_hundred = 0x00;
     
    display_thousand = 0x00;
     
    adjust_save_address = 0x00 ;/ / direcció de la taula de memòria inicialitzada
        
    while (save_dais_flag <= 5)
     
    {
         
    if (open_radio == 0)
         
    {/ / Guardar l'estació determina
           
    delay_xs (20);
        
    if (open_radio == 0)
        
    {
           
    station_save_IN () ;/ / EEPRAM guardar Taiwan i la funció
        
    save_dais_flag = 6;
        
    delay_xs (20);
          
    }
          
    }
        
    else if (F_ADD == 0X00)
        
    {/ / Guardar l'estació més
           
    delay_xs (20);
           
    if (F_ADD == 0X00)
        
    {
           
    display_one + +;
           
    adjust_save_address = 4 + / / Guardar direcció més 4
           
    if (display_one> = 9)
        
    {/ / Límit de memòria de l'estació número 9
           
    adjust_save_address = 36;
        
    display_one = 9;
        
    }
             
    }
           
    }
          
    else if (F_REDUCE == 0)
          
    {/ / Desar escriptori Menys
             
    delay_xs (20);
             
    if (F_REDUCE == 0)
             
    {
          
    display_one -;
          
    adjust_save_address - =

    4 ;/ / temp_adjust_save_address-4 direcció ;/ / memory almenys quatre
             
    if (display_one <= 0x01)
          
    {
             
    adjust_save_address = 0x00;
          
    display_one = 0x01;
          
    }
              
    }
        
            
    }
       
    / *********************************
        
    Sortida mostra la ubicació de l'estació de dipòsit
        
    ********************************* /
          
    LCD_display (display_one, 0xFE);
          
    LCD_display (display_ten, 0xFD);
          
    LED_H;
          
    LCD_display (display_hundred, 0xFB);
          
    LCD_display (display_thousand, 0xF7);
             
    }
             
    save_dais_flag = Taula / memòria ;/ 0x00 per determinar el distintiu desapareix
       
    function_flag = 0x00 ;/ / save bandera de Taiwan s'esborra
      
    }
    void main (void)
    {
       
    / / Port d'inicialització
       
    unsigned char i, AAW, i, x, TEMP;
       
    DDRB = 0X00;
       
    PORTB = 0XFF;
       
    DDRC = 0XFF;
       
    PORTC = 0X0F;
       
    DDRD = 0XFF;
       
    PORTD = 0XFF;
        
    x = 0x00;
        
    i = 0x9d;
       
    PORTC = i;
       
    CE_L;
       
    CK_L,
       
    DA_L;
       
       
    / / Start freqüència 87.0MHZ
       
    temp_display_one = 0x00;
       
    temp_display_ten = 0x07;
       
    temp_display_hundred = 0x08;
       
    temp_display_thousand = 0x00;
      
    / * Control del buffer de dades BH1415 * /
       
    temp_BH1415_one = 0x06;
       
    temp_BH1415_ten = 0x06;
       
    temp_BH1415_hundred = 0x03;
       
    temp_BH1415_thousand = 0x00;

       
    / Inicialització / Variable
       
    / / F_DATA_H = 0x00;
      
    / / F_DATA_L = 0x00 / / freqüència d'alta i baixa poc
       
      
    / / F_flag_H = 0x00 ;/ emmagatzematge / alta freqüència
      
    / / F_flag_L = 0x00 ;/ / store baixa freqüència
      
      
    / / LCD_display_H = 0x00 ;/ / LCD d'alta
      
    / / LCD_display_L = 0x00 ;/ / LCD sota
      
       
    EEPROM_READ_DATA = 0x00 ;/ / llegir les dades guardades
       
    EEPROM_READ_NUMBER = 0x00 ;/ llegir la direcció / guardat
      
       
    Adjust_PS8889_OUT = 0x00 nombre de control / / ;/ / sortida
      
      
    / / Adjust_station_number = 0x00 ;/ / comprovar el nombre de bits de la matriu
      
       
    adjust_save_address = 0x00 direcció ;/ / memòria s'esborra
       
    adjust_save_function = 0x00 ;/ / funció d'estalvi d'
      
    / ************************************************* ******* /
       
    temp_BH1415_L = 0x00 ;/ / controlar el BH1415 sota 8
       
    temp_BH1415_H = 0x00 ;/ / control de BH1415 8
     
       
    open_radio_flag = 0x00 ;/ / boot marcada aclarit
      
       
    function_flag = 0x00 ;/ / save bandera de Taiwan
      
       
    save_dais_flag = Taula / memòria ;/ 0 per determinar el distintiu desapareix
      
       
    while (1)
      
    {
         
    if (open_radio == 0)
         
    {/ / Boot consulta Clau
           
    delay_xs (10);
        
    if (open_radio == 0)
        
    {
          
    open_radio_flag = 1;
         
    }
     
    while (open_radio_flag == 1)
       
    {/ / Consulta clau, l'estació de transferència
         
    if (open_radio == 0)
         
    {
         
    delay_xs (10);
         
    if (open_radio == 0)
      
    {
         
    do
         
    {/ / Premeu per desar Taiwan i la funció
             
    delay_xs (10);
             
    function_flag + +;
          
    if (flag_funció> = 50)
         
    {
             
    save1_L;
             
    delay_xs (250);
             
    save1_H;
          
    }
           
           
    }
          
    while (ràdio_oberta <= 0);
             
    if (flag_funció> = 50)
             
    {
             
    check_save_dais (); / / salt per mantenir les funcions de Taiwan
            
    function_flag = 0x00 ;/ / save bandera de Taiwan s'esborra
         
    }
        
    else
         
    {
        
    if (EEPROM_READ_NUMBER> = 36)
         
    {/ / Llegir sintonitzar l'estació d'un límit per al nombre de cicles de sortida: 0 a les unitats 9
             
    EEPROM_READ_NUMBER = 0;
        
    }
             
    adjust_station_OUT () ;/ / llegir la sortida de l'estació de transferència
         
    function_flag = 0x00 ;/ / save bandera de Taiwan s'esborra
        
    }
       
    }
          
    }
         
    else if (F_ADD == 0)
         
    {/ / Freqüència més
           
    delay_xs (10);
           
    if (F_ADD == 0X00)
           
    Augments F_ADD_function () ;/ / freqüència
          
    }
         
    else if (F_REDUCE == 0)
         
    {/ / Freqüència de reducció
           
    delay_xs (10);
           
    if (F_REDUCE == 0X00)
           
    Reducció F_REDUCE_function () ;/ / freqüència
          
    }
     
    / / Sortida de pantalla
     
    LCD_display (temp_display_one, 0xFE);
     
    LCD_display (temp_display_ten, 0xFD);
     
    LED_H;
     
    LCD_display (temp_display_hundred, 0xFB);
     
    LCD_display (temp_display_thousand, 0xF7);

    Una llista de totes pregunta

    sobrenom

    Email

    preguntes

    El nostre altre producte:






      Introduïu el correu electrònic per obtenir una sorpresa

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> afrikaans
      sq.fmuser.org -> Albanès
      ar.fmuser.org -> Àrab
      hy.fmuser.org -> Armeni
      az.fmuser.org -> Azerbaidjanès
      eu.fmuser.org -> basc
      be.fmuser.org -> bielorús
      bg.fmuser.org -> Bulgària
      ca.fmuser.org -> català
      zh-CN.fmuser.org -> Xinès (simplificat)
      zh-TW.fmuser.org -> Xinès (tradicional)
      hr.fmuser.org -> croata
      cs.fmuser.org -> txec
      da.fmuser.org -> Danès
      nl.fmuser.org -> Holandès
      et.fmuser.org -> estonià
      tl.fmuser.org -> filipí
      fi.fmuser.org -> finès
      fr.fmuser.org -> Francès
      gl.fmuser.org -> gallec
      ka.fmuser.org -> georgià
      de.fmuser.org -> alemany
      el.fmuser.org -> Grec
      ht.fmuser.org -> crioll haitià
      iw.fmuser.org -> Hebreu
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> Hungarian
      is.fmuser.org -> islandès
      id.fmuser.org -> indonesi
      ga.fmuser.org -> irlandès
      it.fmuser.org -> Italià
      ja.fmuser.org -> japonès
      ko.fmuser.org -> coreà
      lv.fmuser.org -> Letó
      lt.fmuser.org -> Lituània
      mk.fmuser.org -> macedoni
      ms.fmuser.org -> Malai
      mt.fmuser.org -> maltès
      no.fmuser.org -> Noruega
      fa.fmuser.org -> persa
      pl.fmuser.org -> Polonès
      pt.fmuser.org -> Portuguès
      ro.fmuser.org -> Romanès
      ru.fmuser.org -> rus
      sr.fmuser.org -> serbi
      sk.fmuser.org -> Eslovac
      sl.fmuser.org -> Eslovènia
      es.fmuser.org -> Castellà
      sw.fmuser.org -> Suahili
      sv.fmuser.org -> Suec
      th.fmuser.org -> Tai
      tr.fmuser.org -> turc
      uk.fmuser.org -> ucraïnès
      ur.fmuser.org -> urdú
      vi.fmuser.org -> Vietnamita
      cy.fmuser.org -> gal·lès
      yi.fmuser.org -> Yiddish

       
      1 字段 2 字段 3 字段 4 字段 5 字段 6 字段 7 字段 8 字段 9 字段 10 字段
  •  

    FMUSER Wirless Transmet vídeo i àudio més fàcil!

  • Contacte

    Adreça:
    No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Xina 510620

    Adreça electrònica:
    [protegit per correu electrònic]

    Tel/WhatsApps:
    + 8615915959450

  • Categories

  • Newsletter

    PRENOM O NOM COMPLET

    Correu electrònic

  • solució paypal MoneyGram Unió OccidentalBanc de la Xina
    Adreça electrònica:[protegit per correu electrònic]   WhatsApp: +8615915959450 Skype: sky198710021 xerrar amb mi
    Els drets d'autor 2006 2020-accionada pel www.fmuser.org

    Contacta'ns