Code sources

mohamedamri Messages postés 1 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 16 mai 2008 - 16 mai 2008 à 12:16
edfed Messages postés 69 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 22 mars 2010 - 16 mai 2008 à 14:46
je cherche le code source de programme sur Tasm qui permet d'afficher le code ascii d'une touche taper par le clavier sur un afficheur 7 segment via le port parallèle. merci

2 réponses

edfed Messages postés 69 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 22 mars 2010 1
16 mai 2008 à 14:40
hum...
je pense que tu as deja visiblement repondu tout seul a ta question.

une simple table de translation suffit.
un afficheur 7 segments est en fait composé de 8 leds.

a,b,c,d,e,f,g,h et dp

un caractere hexa quand a lui a 16 solutions.
a chaque solution correspond une combinaison particuliere des segments.

donc, il suffit de faire ceci:

table:
.0 db combinaison abcdefghdp du 0
.1 db combinasion abcdefghdp du 1
etc etc...

and al,0fh   :le nombre hexa est dans les 4 bits de poid faible
movzx si,[al]  ; al contient le nombre hexa
mov al,[si+table] ; et hop, on recupere

mov dx,portparrallele
out dx,al    ; ecrire dqn le port parallele

voilà, le reste etant de trouver les bonnes valeurs par toi meme.

:)

me:
nop
ret
0
edfed Messages postés 69 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 22 mars 2010 1
16 mai 2008 à 14:46
encore une precision...
vu que le dp n'a pas de sens dns ce cas, on peut utiliser le bit 7 pour dire quel est l'afficheur a ecrire, vu qu'un code ascii est sur 8 bits et qu'un digit ne permet que d'afficher 4 bits.

donc, lire le clavier:

in al,60h

.......

dire d'aficher le digit 0:

....
out dx,al

dire d'afficher le digit 1:

or al,80h
out dx,al

il faut donc faire une logique autours de l'afficheur 7 segments pour pouvoir driver les deux en meme temps .
une combinaison de portes logiques et deux registres 8 bits devraient faire l'affaire.

allez, au boulot.

me:
nop
ret
0
Rejoignez-nous