microcontrôleur 8051 avec clavier

E

EIME

Guest
Salut à tous les membres;

En fait, je fais de mon projet, le microcontrôleur 8051 avec clavier (4 * 4) que le système de SMS à l'aide Assemply langue ......
Peut-on m'aider avec le code samilar ....Je confonds beaucoup spécialement lorsque la presse l'icône une fois il faut d'abord l'élément dispaly appuyant deux fois sur l'affichage du second élément et ainsi de suite .....

Puis-je avoir toute l'aide ???????????

Je vous remercie

Have a Nice Day

 
Voici un code que j'ai posté il ya quelque temps sur la façon de connecter un clavier à 4 x 4 avec microcontrôleur 8051:
http://www.edaboard.com/viewtopic.php?t=229328
Il peut avoir besoin de quelques modifications pour répondre à votre demande, mais c'est un bon point de départ ..

IANP<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Salut à tous,

Remercier un IANP beaucoup pour votre aide .....
Je veux vous demander si vous n'avez pas l'esprit ....

Le code devrait prendre l'entrée à partir du clavier et la sortie sera dispaly sur l'écran ....
J'ai un code qui prennent pour une simple pression sur l'affirmative, comment je peux le faire pour l'utilisation de table de correspondance avec ....... appuyant sur plusieursJe suis prête à confusion avec les compteurs et les retards

Pouvez-vous voir le code s'il vous plaît et essayer de me hep si vous n'avez pas l'esprit ...
Merci beaucoup ...
EIME
Le Code:
ORG 8100h, l'emplacement de commencer ....
SP MOV, # 5FH; Stack Pointer ....

MOV A, # 10011001B; charge l'= 99H comme port de sortie A (B )....
DPTR MOV, 0FF43H #; registre de contrôle pour le .... 8051
MOVX @ DPTR, A; Déplacer la valeur d'un pointeur de données ....NOUVEAU: MOV A, # 00001110B; Première rangée que nous allons vérifier sur ce qui chiffre le ....
MOV DPTR, # 0FF41H; Port B comme port de sortie ....
MOVX @ DPTR, A

MOV DPTR, # 0FF42H; Port C comme port d'entrée ....
A, @ DPTR MOVX, déplacer la valeur d'un pointeur de données ....
ANL A, # 07H; Anded la valeur qui, dans un de 07H pour obtenir les trois premiers bits ....

CJNE A, # 6, autres; comparaison de la valeur de A avec 6 si elle n'est pas égal .... Aller à d'autres
MOV A, # '1 '; Lorsque la valeur de la A égalité avec 6 Affichage Char '1' ....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 1 ....

AUTRES: CJNE A, n ° 5, L; on compare la valeur d'une à 5 si elle n'est pas égale Aller à L ....
MOV A, # 2 »; Lorsque la valeur de l'égalité avec un affichage en 5 Char '2 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 2 ....

L: CJNE A, n ° 3, N; comparaison de la valeur de A avec 3 si elle n'est pas égale Aller à N est plutôt pour la deuxième ligne ....
MOV A, # 3 "; Lorsque la valeur de la A égalité avec visualisation 3 Char '3 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 3 ....

N: MOV A, # 00001101B; Deuxième rangée que nous allons vérifier sur ce qui chiffre le ....
MOV DPTR, # 0FF41H; Port B comme port de sortie ....
MOVX @ DPTR, A

MOV DPTR, # 0FF42H; Port C comme port d'entrée ....
A, @ DPTR MOVX, déplacer la valeur d'un pointeur de données ....
ANL A, # 07H; Anded la valeur qui, dans un de 07H pour obtenir les trois premiers bits ....

CJNE A, # 6, Autres1; comparaison de la valeur dans A avec 6 si elle n'est pas égale Aller à Autres1 ....
MOV A, # 4 "; Lorsque la valeur de la A égalité avec 6 Affichage Char '4 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 4 ....

Autres1: CJNE A, n ° 5, L1, on compare la valeur d'une à 5 si elle n'est pas égale Aller à L1 ....
MOV A, # 5 "; Lorsque la valeur de l'égalité avec un affichage en 5 Char '5 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 5 ....

L1: CJNE A, # 3, N1; comparaison de la valeur de A avec 3 si elle n'est pas égale Aller à N1 est plutôt pour la troisième rangée ....
MOV A, # 6 "; Lorsque la valeur de la A égalité avec visualisation 3 Char '6 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 6 ....

N1: MOV A, # 00001011B; troisième rangée que nous allons vérifier sur ce qui chiffre le ....
MOV DPTR, # 0FF41H; Port B comme port de sortie ....
MOVX @ DPTR, A

MOV DPTR, # 0FF42H; Port C comme port d'entrée ....
A, @ DPTR MOVX, déplacer la valeur d'un pointeur de données ....
ANL A, # 07H; Anded la valeur qui, dans un de 07H pour obtenir les trois premiers bits ....

CJNE A, # 6, Autres2; comparaison de la valeur dans A avec 6 si elle n'est pas égale Aller à Autres2 ....
MOV A, # 7 "; Lorsque la valeur de la A égalité avec 6 Affichage Char '7 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 7 ....

Autres2: CJNE A, n ° 5, L2, on compare la valeur d'une à 5 si elle n'est pas égale à sauter L2 ....
MOV A, # 8 »; Lorsque la valeur de l'égalité avec un affichage en 5 Char '8 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 8 ....

L2: CJNE A, # 3, N2; comparaison de la valeur de A avec 3 si elle n'est pas égale Aller à N2 est plutôt pour la ligne etc ....
MOV A, # 9 »; Lorsque la valeur de la A égalité avec visualisation 3 Char '9 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 9 ....N2: MOV A, # 00000111B; Forth ligne que nous allons vérifier sur ce qui chiffre le ....
MOV DPTR, # 0FF41H; Port B comme port de sortie ....
MOVX @ DPTR, A

MOV DPTR, # 0FF42H; Port C comme port d'entrée ....
A, @ DPTR MOVX, déplacer la valeur d'un pointeur de données ....
ANL A, # 07H; Anded la valeur qui, dans un de 07H pour obtenir les trois premiers bits ....

CJNE A, # 6, Autres3; comparaison de la valeur dans A avec 6 si elle n'est pas égale Aller à Autres3 ....
MOV A, # 'X'; Lorsque la valeur de la A égalité avec 6 Affichage Char ».... X
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après l'affichage du caractère X ....

Autres 3: CJNE A, n ° 5, L3; comparaison de la valeur de A avec 5 si elle n'est pas égale à sauter .... L3
MOV A, # 0 "; Lorsque la valeur de l'égalité avec un affichage en 5 Char '0 '....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
JMP nouveau; Aller au programme principal après avoir affiché le caractère 0 ....

L3: CJNE A, # 3, N3; comparaison de la valeur de A avec 3 si elle n'est pas égale Aller à .... N3
MOV A ,#'#'; Lorsque la valeur de la A égalité avec visualisation 3 Char '#' ....
LCALL 0093H; emplacement pour l'affichage sur le moniteur du PC ....
APPEL DE RETARD; Appelez le bloc Delay ....
N3: JMP nouveau; Aller au programme principal après avoir affiché le caractère # ....

;################################################# #############################################
Bloc Delay ;############################################# # # ##################################
;################################################# #############################################

RETARD: MOV R5, # 4H; délai de 0,5 seconde ....
L31: MOV R6, # 0FFH
L21: MOV R7, # 0FFH
L11: DJNZ R7, L11
DJNZ R6, L21
DJNZ R5, L31
RETORG 9000h
LUP1: DB 'A', 'B', 'C'
LUP2: DB 'D', 'E', 'F'

END END le programme ....

 
Code:

MOV A, # 10011001B; charge le port A = 99H en sortie (B )....

DPTR MOV, 0FF43H #; registre de contrôle pour le .... 8051

MOVX @ DPTR, A; Déplacer la valeur d'un pointeur de données ....NOUVEAU: MOV A, # 00001110B; Première rangée que nous allons vérifier sur ce qui chiffre le ....

MOV DPTR, # 0FF41H; Port B comme port de sortie ....

MOVX @ DPTR, AMOV DPTR, # 0FF42H; Port C comme port d'entrée ....

DPTR MOVX A, @, déplacer la valeur d'un pointeur de données ....

ANL A, # 07H; Anded la valeur qui, dans un de 07H pour obtenir les trois premiers bits ....

 
Salut à tous;

Comment êtes-vous IANP??En espérant que vous êtes bien ....

Je suis formateur en utilisant le microcontrôleur FLT_32 est basé sur l'Intel .. MCS-8032/51 l'
Le projet doit soumettre, en utilisant ce formateur ....Je ne peux pas utiliser 40Pins 8051 ...

IANP ce que je dois faire maintenant???

Je vous remercie beaucoup IANP
Have a Nice Day

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
D'après ce que je vois, ce code lit l'entrée et la compare avec les entrées et les sorties de certains numéros 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X et # ..et l'opération peut être répétée toutes les 0,5 s, comme c'est le retard qui est inséré après un certain nombre est envoyé ..
Jusqu'à présent, avez-vous l'exécuter, ça fonctionne de cette façon, ou quel est le problème?

Il n'y a pas de référence dans le code pour les tableaux situés à 9000h, il regarde comme ils peuvent être omis ..

IANP<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutre" border="0" />
 
Salut à tous,

IANP vous avez raison sur ce que vous avez dit .....

Je veux savoir pour ajouter ce code de la voie de le faire fonctionner comme sms ...
Alors, quand j'appuie sur l'icône 2 une fois qu'il doit afficher 'A' et si je suis en appuyant sur l'icône deux fois la même il doit afficher «B» et ainsi de suite ....

MOV R1, # 00H; que la lutte contre
LIRE: DPTR MOV, # LUP1
MOVX A, DPTR @
0093H LCALL
APPEL DE RETARD
INC R1
INC DPTR
JMP LIRE
ORG 9000h
LUP1: DB 'A', 'B', 'C', '2 '

IANP Que pensez-vous comment je dois le faire

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Pleure ou très triste" border="0" />

??????

Merci IANP

 

Welcome to EDABoard.com

Sponsor

Back
Top