Programme en mikroc

gaddour -  
 Rouis Tarik -
Bonjour,
je suis entrain de réaliser un programme qui permet d'allumer des leds au porta atravers une clavier 12 touches.
mon clavier est relie au portb de pic 16f84, alors j'ai eu de problemme concernant le balayage de clavier sachant que j'utilise le mikroc comme langauge de programmation . alors j'ai demande si quelcun peut m'aider de realiser se programme
merci d'avence.
Configuration: Windows XP
Firefox 3.0.14

6 réponses

  1. loupius
     
    Serais-tu en train de réinventer la roue ?
    Ce n'est pas interdit, mais tu dois savoir qu'il existe, avec mikroC des fonctions 'Keypad', à savoir Keypad_Init(), Keypad_Read() et Keypad_Released().
    Bonne continuation.
    0
  2. balti2020 Messages postés 2 Statut Membre
     
    oui je sais mm j'ai utilisé ses fonction mais le balayage ne marche pas .
    voici le code taper en mikroc

    unsigned short i;
    unsigned short touche;
    unsigned short code_taper[4]= {0,0,0,0};
    unsigned short code_bon[4]= {1,1,1,1};

    void main ()
    {
    porta =0x00;
    trisa=0;
    trisb=0x0f;
    portb= 1 ;
    while (portb.f0)
    {
    porta.f0= 1;

    }

    i=0;
    keypad_init(&portb);
    while (i<=3)
    {
    touche = keypad_released ();
    }
    while (!touche)
    code_taper [i] = touche;
    i++;

    if ((code_taper [0] = code_bon[0] )&& (code_taper[1] = code_bon[1])
    && (code_taper[2] = code_bon[2]) && (code_taper[3] = code_bon[3]) )
    {
    porta =0;
    trisa =0xf0;

    }
    0
    1. loupius
       
      while (i<=3)
      {
      touche = keypad_released ();
      }

      Cette boucle est infinie quelquesoit la valeur prise par touche !
      Il faut au moins corriger cette anomalie.
      0
  3. balti2020 Messages postés 2 Statut Membre
     
    tu peut voirce source:

    unsigned short i;
    unsigned short touche;
    unsigned short code_taper[1]= {0};
    unsigned short code_bon[1]= {1};

    void main ()
    {
    porta =0;
    trisa=0;
    trisb=0xff ;
    portb= 1;
    i=0;

    keypad_init(&portb);

    do
    {
    touche = keypad_released ();
    }
    while (!touche) ;

    }
    0
  4. tchoubaka Messages postés 71 Statut Membre 11
     
    j'aimerais que tu définisse ce que les 12 touches doivent faire par exemple: la touche 1 allume combien de LED essai d'etre plus claire.
    merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. killersss Messages postés 1 Statut Membre
     
    Bonjour à tous,
    J'ai un problème avec la commande keypad_Init(&PORTB); sous mon MickroC.
    Il m'envoie le message d'erreur suivant: " Too many actual parameter" . S'il vous plait que faire pour résoudre ce problème?

    Merci d'avance.
    0
  7. Rouis Tarik
     
    ///*********************************
    char keypadport at PORTC ;
    void main()
    { int kp;
    TRISB=0;
    PORTB=0;
    keypad_init();

    while(1){
    do
    kp=keypad_key_click();
    while(!kp);
    PORTB=kp;
    }
    }
    0