bonsoir a tous peut étre que ma question parrait béte mais elle m'intrigue un peu lol, alors comme le titre l'indique est ce que le clavier dispose d'une mémoire si c'est oui c'est de quel type?
merci
bonsoir a tous peut étre que ma question parrait béte mais elle m'intrigue un peu lol, alors comme le titre l'indique est ce que le clavier dispose d'une mémoire si c'est oui c'est de quel type?
merci
non et donc de type null.
=> voir réponse de l'apprentis. s'il dit vrai, j'en apprend tous les jours
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom
Oui le clavier dispose d'une mémoire qui est au sein d'un microcontroleur. En fait, dès que t'apuis sur une touche, le microcontrolleur détecte laquelle cherche dans sa mémoire quel est le code corresspondant, et l'envoie via le cable à l'ordinnateur ou l'information pourra être exploitée et traitée. L'information qui sort du claviée est nomée "Donnée brut" et l'information sortant de l'UC est appelée "Donnée traitée".
Après je sais pas ce que tu veut faire, mais sache qu'il est difficile de reprogrammé cette mémoire (voir même impossible)
voilou :
Bonjour,
Si vous lisez ceci, c'est que vous êtes à la fin de mon message.
ha l'apprentis c'est pas trop claire soit plus explécite lol si tu le peux bien sur!
Ben justement je ne suis pas sur non plus à 100%. Mais, ca m'étonnerais que ca se passe autremment. Bon je réponderais demain par ce que la j'y vais.
Bonjour,
Si vous lisez ceci, c'est que vous êtes à la fin de mon message.
Salut,
C'est une mémoire intégrée (µcontrolleur). Tu ne peux pas la changer.
En fait cette mémoire ne sert uniquement qu'a contenir le programme de gestion du clavier.
Car pour schématiser tu as une matrice et chaque inter-section représente une touche de ton clavier.
A chaque appuie sur une touche le µcontrolleur recoit un signal électrique il interprete celui ci et renvoie alors un code (asci.....) de la touche en question.
Cdt
Le tag est bien utile, alors pensez y !
Bonjour,
T'as question est suite à une remarque ? Tu entends quoi par mémoire ? Si j'ai bien compris tu veux savoir si le clavier sauvgarde les codes des touches dans une mémoire, c'est ça ? ben la réponse est : non.
ben j'espère que ton clavier perdera pas sa mémoire, sinon tu vas voir n'importe quoi sur ton écran
bon, plus sérieusement, le clavier est un codeur ! c'est une sorte de "matrice" des fils qui génère un code dit ASCII au PC sur 7 bits (donc au max 128 caractères différents).
quand on appui sur un touche, et comme présenté sur le schéma dessus, un contact se ferme tant que la touche est enfoncée. y a un microprocesseur qui utilise un courant qui balaie chaque rangée en séquence, des milliers de fois par seconde, que le clavier soit utilisé ou non.
Et donc, à chaque appui sur une touche, un code différent sera présenté sur le port du clavier (comme dit : sur 7 bits) décrivant cette touche. L'ordinateur "lit" ce code est le traduit par la suite grâce à une liste de référence ASCII.
Et comme ce code ASCII est présenté sur 8 bits donc 256 caractères (je parle du standard), certains autres caractères spéciaux appelés caractères étendus ne sont donc pas accessibles par toutes les touches.
On accède à ces caractères par une combinaison de touches(ALT + numéro de code).
PS : la signification du code généré par ce clavier dépend aussi de police utilisé
Bonne journée.
Dernière modification par Sendusha ; 21/04/2011 à 12h03.
ben disons que c'etait pas forcement ça la question mais plutot le type de mémoire,ben puique parmi les différentes types de mémoire on retrouve:Envoyé par blue_strike T'as question est suite à une remarque ? Tu entends quoi par mémoire ? Si j'ai bien compris tu veux savoir si le clavier sauvgarde les codes des touches dans une mémoire, c'est ça ? ben la réponse est : non.
RAM,ROM,EPROM,EEPROM,mémoire flash...alors celle du clavier de quel type pourrait elle bien étre?.
Le claviver n'ayant a pirori qu'un micro-contrôleur, la mémoire est integré à celle ci et est surement composé d'une partie de ROM et de RAM après pour les technos exact ... ce type de micro-contrôleur n'as pas besoin de "mise a jour" logiciel donc surement une ROM non effacable / reinscriptible.
Pour la RAM interne on peut envisager qu'elle n'existe pas et que le micro-contrôleur se contente des registres pour fonctionner.
D'un autre coté j'ai jamais disséqué un micro-contrôleur de clavier ...
Excate. Un micro-contrôleur est un processeur avec tout un environnement autour (registres, bus, timer,...) le tous dans une seule puce.
Donc pour répondre à ta question :
je dirais plutôt : registres internes du micro-contrôleur.[...] RAM,ROM,EPROM,EEPROM,mémoire flash...alors celle du clavier de quel type pourrait elle bien étre?.
A+
La question m'intéresse j'aimerais bien savoir comment en peux accéder a cette mémoire puis le modifier comme ca le pc fera la combinaison de touche envoyer par exemple par Excel.
et ou le microprocesseur renvoi cette donné dans Windows pour être traiter?
Bonjour
Le clavier dispose d'un contrôleur, c'est un micro contrôleur qui contient le code ASCII du clavier et son Scancode (ICI).
Toutes les touches du clavier non pas un code ASCII, mais toutes ont un Scancode qui est la position de la touche sur le clavier.
L'appui sur une touche indique sa position, le contrôleur du clavier lui attribue ou non un code ASCII associé à sa position.
Les touches qui n'ont pas de code ASCII sont appelées touches de Fonction, comme la touche Enter, les Flèches, les touches Shift et Caps Look, ainsi de suite.
L'exploitation du clavier se fait grâce aux interruptions, l'interruption assembleur du clavier est l'INT 16h, celle utilisée par le DOS est la fonction 6 de l'INT 21h.
Voici par exemple en assembleur 8086 l'entrée d'un caractère du clavier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 ;------------------------- entrée des données du fichier ----------------------- entreF: mov ch,[id10] ;récupère la position du pointeur d'écriture entreC: mov ah,0 int 16h ;entrée d'un caractère au clavier mov [bx],al ;place le code ascii du caractère dans id1 cmp ah,3fh ;compare le scan code avec la touche [F5] jnz suite2 ;si vrai fin jmp fermeF suite2: cmp ah,01h ;compare le scan code avec la touche [ESC] jnz suite3 ;si vrai entrée d'un caractére jmp entreF suite3: cmp ah,1ch ;compare le scan code de la touche avec [enter] jnz suite4 ;si comparaison vraie crée le fichier jmp creeF suite4: cmp ah,0eh ;compare le scan code avec [back space] jnz suite5a ;si comparaison vraie efface le caractére jmp effC suite5a:cmp ah,0fh ;compare le scan code avec la touche TAB jnz suite5 ;si comparaison vraie entrée d'un caractère jmp entreF suite5: cmp ch,41 ;compare le nombre de caractères entré jnz suite6 ;si vrai attente de la touche [enter] jmp entreC suite6: mov [id5],bx ;sauve bx à l'adresse id5 add bx,+1 ;additionne bx avec +1 mov dl,al mov ah,02h ;affiche le caractère entré au clavier int 21h add ch,+1 ;additionne ch (nombre de caractères entré + 1) mov [id10],ch ;sauve la position du pointeur d'écriture mov ah,01h mov ch,6 mov cl,7 ;modifie le curseur = (_) int 10h jmp entreF ;entrée d'un nouveau caractère ;-------------------------------------------------------------------------------
Les données retournées par le micro-controleur du clavier ainsi que son contrôle sont accessibles depuis les ports 0x60/0x64.
Tu n'as pas accès à l'éventuelle mémoire du micro-contrôleur, mais à ce qu'il te met à disposition par les différents ports (données scan code/break code et état des leds par exemple).
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Un clavier contient des composants lui permettant de communiquer via une liaison USB, ou bluetooth, voire wifi vers un ordinateur.
Parmi ceux-ci, il y a forcément un processeur, de la mémoire, PROM et RAM, généralement intégrés dans un seul chip, donc oui, il y a de la mémoire mais si la question consiste à demander si le clavier conserve en mémoire les séquences de touches saisies, la réponse est (théoriquement) non, le code de la touche saisie n'ayant pas de raison d'être conservé une fois qu'il a été transmis à et acquitté par l'ordinateur (encore qu'un clavier serait un endroit idéal pour installer un keylogger...). Un clavier peut conserver en mémoire des informations transmises par le PC, comme l'allumage des voyants majuscules ou de pavé numérique par exemple.
Les réponses apportées jusqu'ici et que l'on trouve aussi dans beaucoup de sites web indiquent qu'un clavier transmet les codes ASCII des touches utilisées. Ce n'est pas vraiment le cas. Les claviers envoient uniquement les scan-codes correspondant aux touches saisies (c'est à dire en gros à la position de la touche sur le clavier) et c'est à l'ordinateur de convertir ce code en caractères (ou modificateur, fonction etc.) L'électronique est donc identique entre un clavier AZERTY et un clavier QWERTY. L'information de disposition du clavier n'est pas transmise à l'ordinateur, ou plus précisément, la très grande majorité des claviers envoient un bCountryCode de 00 (not supported), quelle que soit la disposition des touches (voir les specs USB). Il faut aussi noter que deux informations sont envoyées par le clavier, la première correspond à l'appui d'une touche et la deuxième correspond au relâchement de la touche. Ceci permet aux pilotes de gérer les combinaisons de touches, comme les majuscules, AltGr ou fameux Control-Alt-Del.
C'est donc au pilote du clavier de convertir les scans codes en codes correspondant aux touches saisies, le nombre de codes possibles dépassant d'ailleurs largement les 127 caractères définis dans la table ASCII.
ɹǝsn *sıɹɐlos*
Bonjour
C'est bien le micro contrôleur du clavier qui gère le code ASCII, le Scancode et la répétition des touches.
J'ai programmé les touches d'un clavier bien avant que Windows existe.
Effectivement on peut gérer l'interruption clavier à l'aide d'un TSR (pilote) qui peut changer l'utilisation du clavier.
Mais à l'origine il n'y avait pas de pilote pour un clavier.
Non, comme l'a dit Jiliagre, c'est le pilote clavier qui convertit le scan code en code ASCII. Il faut plutôt prendre ça comme un numéro de touche. Que tu sois en clavier QWERTY ou AZERTY, le scan code sera le même, mais pas le code ASCII notamment pour A et Q, W et Z,etc. De mémoire, le break code envoi le scan code de la touche relâchée +128.C'est bien le micro contrôleur du clavier qui gère le code ASCII
Pour la répétition des touches, c'est le contrôleur qui gère selon les infos que tu lui a donné. C'est paramétrable.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Désolé mais non !
J'ai programmé directement le clavier par l'intermédiaire de son interruption, il n'y a aucun pilote.
Il est évident que les renseignements sont gérés par l'interruption (Int16h) qui récupère les informations clavier et qu'à partir de là on peut changer ces informations.
D'ailleurs tous les systèmes d'exploitation détournent cette interruption pour mettre à la place un pilote.
L'int 16h fonctionne comme ceci :
- Dans le registre Ah le paramètre d'entrée 00h provoque la lecture du caractère, dans le registre Al sera reçu le Scancode du caractère.
- Dans le registre Ah le paramètre d'entrée 01h récupère l'état du clavier, c'est là qu'est déterminé l'appui ou le relâchement de la touche ainsi que sa répétition.
- Dans le registre Ah le paramètre d'entrée 02h récupère l'état des touches de fonction.
Les caractères sont lus dans le buffer du BIOS.
Il s'agit d'une zone mémoire de 16 octets situés à l'adresse 0040h:001eh
Je connais bien l'interruption 0x16, faisant partie du BIOS, qui était utilisée par DOS. Celle-ci te retourne bien un caractère ASCII. Mais elle ne lit pas directement le clavier, elle lit le contenu de l'adresse 0040:001E (sans rentrer dans le détail du buffer tournant de 16 octets) ou attend un nouveau élément (selon l'appel effectué al=0 al=1 l'une des 2 bloquant jusqu'à l'arrivée d'un caractère dans le buffer, l'autre vérifiant si il y en a un).
A ce stade, le pilote intégré au BIOS a stocké le code ASCII dans l'adresse 0040:1E après conversion du scan code retourné par le clavier (c'est géré par la routine int 0x9 câblée sur l'IRQ1).
Je sais de quoi je parle, j'ai du créer un handler clavier en mode protégé, car en mode protégé tu peux dire adieu à l'int 0x16 qui n'est plus utilisable. Dans celui-ci, j'ai une table d'interruption qui convertit les scan codes en codes ASCII, table que j'ai créée à l'époque de façon empirique (en regardant pour chaque touche quel était le scan code). J'ai même du reprogrammer les contrôleurs d’interruptions car en mode protégé les irqs de 1 à 32 sont réservés aux exceptions.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager