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.

6 réponses

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
balti2020 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
balti2020 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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
tchoubaka Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
killersss Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
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
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