clavier et 89c51

H

Harshita

Guest
Bonjour les gars ...

J'ai quelques doutes à 89c51 application pour les petits ...

S'il vous plaît pouvez-vous
m'aider les gars ...

fine .. mon doute je veux envoyer des données à partir de clavier 4 * 3 (émetteur) à Hyperterminal (UART récepteur )....S'il vous plaît donner idée d'obtenir des données de l'émetteur au récepteur .....

Thank u ..With Regards,

Harshita

 
Salut tous,Votre clavier 4x3 sera interfacé à un 89C51 préférable à PORT0 (P0)
avec Pull Ups, vous pouvez lire une clé et d'envoyer un personnage à l'aide de l'UART HT de votre
contrôleur.

 
Salut ...

Am connecter le clavier à port2 ....est-il ok?
et LCD en Port0 & port1 ....

 
si vous utilisez le clavier, il vous faut quelques circuits à la compétence-clé de rebond.
Atmel AT89C51 a construit dans la clé de décoder la logique de rebond sur PORT0.si vous
n'utilisez pas la construction de rebond logique, alors vous devez le mettre en œuvre dans le logiciel.vous pouvez également utiliser des IC qui dose l'emploi.vous devrez convertir le clavier à code valuse réel en utilisant un peu de look-up table.ces données peuvent être ensuite envoyés à un PC via RS232 fonction.

jarret

 
@ jarret
C'est assez étrange de savoir sur le haut-debounce décoder la logique sur le port 0.Je suis familier avec 89C51 et il
est dérivé pendant des années, je
n'ai pas vu aucun de ces choses de nature, même les plus récents de signaux mixtes de précision 8051 que
j'utilise ces jours-ci,
n'a pas cette capacité.
Etes-vous sûr?J'ai lu la fiche technique de l'AT89C51, il
n'existe pas de mention à ce sujet.Deuxièmement, je me demande ce que debounce décodeur avait à faire à Port 0.Il
n'existe pas de registres pour les transformer ON / OFF et je ne suis pas venu à travers toute la littérature concernant il.

 
Bonjour les gars ..ce code pour mon côté ... Transmitterbut i
didnt get LCD à la fois dans la production et de communication série Keyapad ....

S'il vous plaît vérifier l'encodage ....météorologiques problème de codage ou de matériel ...

J'ai donné coonection selon ce que le codage ...

Si vous avez des doutes au sujet de cette ...s'il vous plaît vérifier perivous postes ....================================================
#
include <stdio.h>
#
include <reg52.h>

sfr col = 0x0A0 / / KEYPAD ROW & COLUMN port2

sbit R1 = P2 ^ 1;
sbit R2 = P2 ^ 6;
sbit R3 = P2 ^ 5;
sbit R4 = P2 ^ 3;
sbit C1 = P2 ^ 2;
sbit C2 ^ P2 = 0;
sbit C3 = P2 ^ 4;

sfr ldata = 0x90; / / lcd de données D0 à D7 = port 1 respetively
sbit rs = P0 ^ 1; / / Inscription Sélectionnez RS = Port2.0
sbit rw P0 = ^ 2 / / en lecture /
écriture R / W = Port2.1
sbit en P0 = ^ 0 / / Activer E = Port2.2void msdelay (unsigned int value);
void sertx (unsigned char x);
void lcdcmd (unsigned char valeur);
void lcddata (unsigned char valeur);

unsigned char clavier [4] [3] = ('1 ','2','3 ',
'4 ','5','6 ',
'7 ','8','9 ',
'*','0 ','#'};void main ()
(
unsigned char i;
unsigned char colloc, rowloc;
unsigned char CDATA [5] = (0x38, 0x0E, 0x01, 0x06, 0x86);
TMOD = 0x20;
TH1 = 0xfd;
SCON = 0x50;
TR1 = 1;

/ * Commande * LCD /

for (i = 0; i <5; i )
(
lcdcmd (CDATA );
msdelay (250);
)

/ * routine clavier * /

col = 0xff; / / faire tous les colonnes d'entrée
tout (1)
(
faire
(
R1 = 0; / / tous rangs sol
R2 = 0;
R3 = 0;
R4 = 0;
colloc = col;
colloc & = 0x15;
/ / masque de bits utilisés
)
while (colloc! = 0x15);
faire
(
faire
(
msdelay (20);
colloc = col;
colloc & = 0x15;
)
while (colloc == 0x15);
msdelay (20);
colloc = col;
colloc & = 0x15;
)
while (colloc == 0x15);
tout (1)
(
R1 = 0;
colloc = col;
colloc & = 0x15;
if (colloc! = 0x15)
(
rowloc = 1;
break;
)
R2 = 0;
colloc = col;
colloc & = 0x15;
if (colloc! = 0x15)
(
rowloc = 2;
break;
)
R3 = 0;
colloc = col;
colloc & = 0x15;
if (colloc! = 0x15)
(
rowloc = 3;
break;
)
R4 = 0;
colloc = col;
colloc & = 0x15;
rowloc = 4;
break;
)

/ * colonne de vérifier et d'envoyer à la suite du port série et de l'affichage LCD * /

if (C1 == 0)
(
sertx (clavier [rowloc] [1]);
lcddata (clavier [rowloc] [1]);
)
else if (C2 == 0)
(
sertx (clavier [rowloc] [2]);
lcddata (clavier [rowloc] [2]);
)
autre
(
sertx (clavier [rowloc] [3]);
lcddata (clavier [rowloc] [3]);
)
)
)void sertx (unsigned char x)
(
SBUF = x;
while (TI == 0);
TI = 0;
)

void msdelay (unsigned int value)
(
unsigned int x, y;
for (x = 0, x <1275; x )
for (y = 0; y <valeur y );
)

void lcdcmd (unsigned char valeur)
(
ldata = value;
rs = 0;
rw = 0;
fr = 1;
msdelay (1);
fr = 0;
return;
)
void lcddata (unsigned char valeur)
(
ldata = value;
rs = 1;
rw = 0;
fr = 1;
msdelay (1);
fr = 0;
return;
)

==================================================

En attente de votre réponse les gars ...

Donnez-moi l'idée ..Que dois-je faire ....

 
Hock a écrit:
Citation:

désolé copain, il est là dans Atmel 89C51RD2
 
Bonjour les gars,

Maintenant, suis en train d'utiliser AT89c52 micro ...
Je connecte mon écran LCD (16 * 2) et du clavier (4 * 3) à 0 PORT PORT ET 2 respectivement ....

Activer LCD pin ---------- Port0.2
LCD broche R / W ------------ Port0.1
LCD broche RS -------------- Port0.0
LCD D0-D7 -------------- Port1.0 - Port1.7

et de clavier ....me connecter tous les sept broches en PORT2.0-PORT2.6

Mon doute à cet égard est le matériel ...i doit se connecter ou non ....

Si oui moyens i
didnt get correctement la sortie ....

Que dois-je faire ...

S'il vous plaît, aidez-moi vite ...

Je vous remercie à l'avance,

With Regards,

Harshita

 
Pour ce qui est de 8051
de pins sont concernés, toute sélection est OK ..
Rappelez-vous, si vous utilisez des broches P0.0-P0.7 connectez 10kΩ pullups ..

Si vous ne voulez pas ajouter des résistances externes (pullups) passer à broches de P3 ..

Rgds,
IanP

 
Salut IanP,

Am 89c52 utilisant ....il est ok ...est i coonect dans ces pullup Port0 ....

Si vous
n'êtes pas capable d'attraper mon point ...i le circuit ...s'il vous plaît me proposer une solution ....

En ce qui concerne,
Harshita

 
certains du clavier ne montre pas de court-circuit sur les grands de presse, mais ils se comportent comme une résistance à certains ohm.
Si nous avons Pull Up, il fonctionne mieux.afin de mieux vous utilisez PORT0

 

Welcome to EDABoard.com

Sponsor

Back
Top