4x4 clavier LCD & probs!

N

nuarizzah

Guest
1.Je fais de programmation pour 4x4 clavier avec PIC16F877 (PIC compilateur C) mais le problème est le caractère que j'entre did'nt apparaître sur l'écran LCD.l'écran LCD a également obtenu quelques problèmes ... Parfois, c'est bien fonctionner comme prévu, mais quelques minutes après que les caractères étranges sont apparus ... ce que quelqu'un sait à propos de cette ??...

2.alors, je l'ai chganged programmé et utilisé le fichier avec une en-tête pour clavier (kbd.h).mais j'ai réalisé que cet en-tête du fichier est de 4x3 .. clavier mais je ne suis pas sûr à ce sujet?? ..Does anyone have any idea?? mais toujours rien happpened au clavier.!Aide s'il vous plaît!

thankz ..... beaucoup ...

 
Salut!
Si le code de parts u ur alors nous serons dans une meilleure position pour vous aider.
Par la façon dont le compilateur utilisez-vous, je byCCSC PICC deviner?
Observe.

 
Si vous avez des probs avec clavier, l'utilisation d'un encodeur clé avec elle.Voir le circuit ici, un seul est exigé 74922
http://booksbybibin.14.forumer.com/viewtopic.php?t=11

Si vous utilisez l'encodeur clés, no probs se produira liées à la clé anti-rebond

bibin john
www.bibinjohn.tk

 
LCD est atteste de la valeur des ordures parce qu'il a obtenu des données fausses et signaux de commande.Il peut arriver de plusieurs façons.S'il vous plaît vérifier l'foolowing:

1.Did u vérifier la connexion d'interface à écran LCD?Parfois, c'est mai-être dû à perdre à souder connexion ou de contact sont bien serrées aux données / broches de commande.

2.Est votre circuit faire toute autre opération? La valeur des ordures venant après une opération quelconque? Il peut arriver que votre LCD est déclenchée par le passage de certains autres circuits dans votre système.Dans ce cas, vous devez prendre les mesures nécessaires pour protéger votre écran LCD de toute ingérence extérieure.

3.Is réinitialiser votre micro-contrôleur obtenir à ce stade?4.Utilisez-vous les ports dans lesquels votre clavier LCD / est connecté pour une autre application?

5.Est-ce que les ports ayant des tractions internes?Parfois, clavier externe nécessitent une remontée.

 
Je ne pense qu'il pourrait être entrées réel à votre problème, sauf si vous partagez les schémas et du code ou plus de détails comme l'a mentionné "Prajit"

Mai être vous délivrent pas de commande à cristaux liquides clairs, et d'autres commandes

 
Voici le code et le circuit ... désolé pour la «terrible» dessin ...
S'il vous plaît vérifier pour moi.TQ ....!!!

/ / UTILISATION PORTB pour les LCD,
/ / UTILISATION PORTA (A0, A1, A2, A3) POUR CLAVIER EN
/ / UTILISATION PORTC (C0, C1, C2, C3) POUR CLAVIER OUT

# include <16f877a.h>
# use delay (clock = 20000000)
# fuses HS, NOPROTECT, NOWDT, NOLVP

# byte PORTA = 5
# byte PORTB = 6
# byte PORTC = 7

# define use_portb_lcd TRUE
# include <lcd.c>

int Indata;/ / module de détection de ligne
void getkey ()
(
Indata = 0;
if (input (PIN_C0) == 0)
(
Indata = 0;
)
else if (input (PIN_C1) == 0)
(
Indata = 1;
)
else if ((input PIN_C2) == 0)
(
Indata = 2;
)

else if (input (PIN_C3) == 0)
(
Indata = 3;
)
)

void main ()

(
int mysta;
byte i;
octet k;

setup_port_a (NO_ANALOGS);
set_tris_a (0x00);
set_tris_c (0x8F);

lcd_init ();

lcd_putc ( "\ fTRIAL1 ...!!! \ n");
delay_ms (1000);

faire
(
mysta = 0;

/ / 1ère colonne ENABLE
PORTA = 0xF7; / / 11110111
getkey ();

if (Indata == 0)
(
k = 1;
mysta = 1;
)

else if (Indata == 1)
(
k = 4;
mysta = 1;
)

else if (Indata == 2)
(
k = 7;
mysta = 1;
)

else if (Indata == 3)
(
k ='*';
mysta = 1;
)

if (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)

/ / 2ème colonne ENABLE
PORTA = 0xFB; / / 11111011
getkey ();

if (Indata == 0)
(
k = 2;
mysta = 1;
)

else if (Indata == 1)
(
k = 5;
mysta = 1;
)

else if (Indata == 2)
(
k = 8;
mysta = 1;
)

else if (Indata == 3)
(
k = 0;
mysta = 1;
)

if (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)

/ / 3ème colonne ENABLE
PORTA = 0xFD; / / 11111101
getkey ();

if (Indata == 0)
(
k = 3;
mysta = 1;
)

else if (Indata == 1)
(
k = 6;
mysta = 1;
)

else if (Indata == 2)
(
k = 9;
mysta = 1;
)

else if (Indata == 3)
(
k ='#';
mysta = 1;
)

if (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)

/ / 4ème colonne ENABLE
PORTA = 0xFE; / / 11111110
getkey ();

if (Indata == 0)
(
k = 'A';
mysta = 1;
)

else if (Indata == 1)
(
= 'k B';
mysta = 1;
)

else if (Indata == 2)
(
= 'k C';
mysta = 1;
)

else if (Indata == 3)
(
= 'D k';
mysta = 1;
)

if (mysta == 1)
(
lcd_putc (k '0 ');
delay_ms (500);
mysta = 0;
)) while (1);
)
<img src="http://images.elektroda.net/54_1174463826_thumb.jpg" border="0" alt="keypad 4x4 &lcd probs!!" title="clavier 4x4 & probs LCD!"/>
 

Welcome to EDABoard.com

Sponsor

Back
Top