Ennoncés Exercices Serie-LCD-Clavier ------------------------------------ Utilisation du clavier et de l'écran LCD ---------------------------------------- Le matériel utilisé pour l'exercice est un clavier et un écran LCD raccordés sur la nouvelle carte "AVR-Serie-LCD-clavier" dont le schémas et le PCB au format Kicad se trouvent dans le répertoire MI-BUS du site FTP de MICRO-INFO. Lors de l'utilisation de cette petite carte, la carte "AT-Mega 16" est raccordée sur le bus par son petit côté. et la petite carte est raccordée sur le grand côté, avec le connecteur Db9 vers le dessus. Nous avons alors le tableau de connexion suivant : Port A (Grand Côté) - Carte AVR-Serie-LCD-Clavier ------------------------------------------------- 1 - PD0 (RXD) - RX RS232 par MAX232 (Pin3 db9) 2 - PD1 (TXD) - TX RS232 par MAX232 (Pin2 db9) 3 - PD2 (INT0) - LCD D7 4 - PD3 (INT1) - LCD D6 5 - PD4 (OSC1B) - LCD D5 6 - PD5 (OSC1A) - LCD D4 7 - PD6 (ICP) - LCD E 8 - PD7 (OC2) - LCD RS 9 - PC0 (SCL) - Clavier 1 - Ligne 3 - A, 0, B, C 10 - PC1 (SDA) - Clavier 2 - Ligne 2 - 7, 8, 9, D 11 - PC2 (TCK) - Clavier 3 - Ligne 1 - 4, 5, 6, E 12 - PC3 (TMS) - Clavier 4 - Ligne 0 - 1, 2, 3, F 13 - PC4 (TDO) - Clavier 5 - Colonne 3 - F, E, D, C 14 - PC5 (TDI) - Clavier 6 - Colonne 2 - 3, 6, 9, B 15 - PC6 (TOSC1) - Clavier 7 - Colonne 1 - 2, 5, 8, 0 16 - PC7 (TISC2) - Clavier 8 - Colonne 0 - 1, 4, 7, A 17 - 5V - +5V 18 - RST - nc 19 - GND - Masse 20 - 12V - nc Port B (Petit Côté) - MI-BUS ----------------------------- 1 - PA7 (ADC7) - P00 2 - PA6 (ADC6) - P01 3 - PA5 (ADC5) - P02 4 - PA4 (ADC4) - P03 5 - PA3 (ADC3) - P04 6 - PA2 (ADC2) - P05 7 - PA1 (ADC1) - P06 8 - PA0 (ADC0) - P07 9 - PB7 (SX) - P08 10 - PB6 (MISO) - P09 11 - PB5 (MOSI) - P10 12 - PB4 (SS) - P11 13 - PB3 (AIN1/OC0) - P12 14 - PB2 (AIN0/INT2) - P13 15 - PB1 (T1) - P14 16 - PB0 (T0/XCK) - P15 17 - 5V - 5V 18 - Reset - RST 19 - Masse - GND 20 - 12V - NC Exercice n°1 : -------------- Utilisation de l'écran et du clavier Hexadécimal. - Effacement de l'écran LCD - Ensuite chaque touche appuyée sur le clavier est affichée sur le LCD - Lorsque la première ligne est pleine, passer à la deuxième ligne. - Lorsque la deuxième ligne est pleine, elle est recopiée sur la première ligne, puis éfffacée afin d'afficher les charactères suivants. - etc, etc.. Exercice n°2 : -------------- Utilisation du clavier, de l'écran et du port série. Et en plus, il faudra utiliser un cable série entre le PC et la carte. En plus du matériel, il faudra utiliser le programme hyperterminal sur le PC. Ne pas oublier de configurer le programme hyperterminal pour que les caractéristiques du port série correpondent aux définition de la communication série dans Bascom. Cet exercice ressemble au précédent, mais cette fois, l'affichage devra se faire sous la forme de l'affichage d'octets affichés en Hexadécimal. L'écran 2X16 devra donc afficher quelque chose comme ceci : +----------------+ | Hh Hh Hh Hh Hh | | Hh Hh | +----------------+ Chaque groupe de 2 chiffres Hexa sera séparé par un espace. Ensuite, l'octet ainsi généré (H*16+h) sera envoyé sur le port RS232 sous la forme d'un code ascii dont la valeur sera l'octet généré. Et l'octet envoyé devrait s'afficher dans la fenêtre hyperterminal du PC. Exercice n°3 : -------------- Etablissement d'une communication bidirectionnelle entre l'AT-Mega16 et le PC Sur le PC, nous utiliserons le programme hyperterminal, comme dans l'exercice précédent, mais içi, l'option "local echo" sera désactivée et c'est l'AT-Mega16 qui se chargera de cette tâche. Le principe est ici d'utiliser l'hyperterminal avec le clavier du PC. Chaque touche appuyée sur le PC, sera envoyée vers l'AT-Mega16. Celui-çi renvoie le charactère reçu sur le port série, puis affiche le charactère sur l'écran LCD (comme dans le premier exercice). Si tout vas bien, le charactère devrait s'afficher aussi dans la fenêtre hyperterminal du PC. Exercice n°4 : -------------- Utilisation de l'écran LCD et de la réception RS232 Ici, nous allons utiliser un protocole de communication. Les commandes sont envoyées par le PC, et interpretées par l'AT-Mega16. Définition du protocole : ------------------------- Toutes les lignes envoyées à l'Avr commencent par C ou par T et se terminent par un CR (Chr$13) Les lignes qui commencent par T doivent être suivies par un nombre égal ou inférieur à la longeur d'une ligne de l'afficheur (8, 16, 20 ou 40 suivant le modèle de votre afficheur). Ces lignes sont alors affichées à la ligne inférieure de l'afficheur et les lignes précedentes sont décalées vers le haut. Les lignes trop longues ne sont pas prises encompte. Dans ce cas Un message "trop long" est envoyé au PC. Les lignes qui commencent par C doivent etre suivies par un charactère et un CR. Le charactère peut-etre envoyé en majuscule ou en minuscule. Nous définirons trois commandes possibles : - E : pour éffacement de l'écran de l'afficheur - F : pour clignotement de la ligne - L : pour éffacement de la ligne du bas de l'afficheur La commande "F" est une commande "toggle". La première commande active le clignotement. A partir de ce moment toutes les lignes envoyées par RS232 seront clignotantes. Une nouvelle commande F arrète le clignotement. Toute autre entrée ne sera pas interprétée, et un message "Erreur" sera envoyé au PC par l'RS232. Exercice n°5 : -------------- Etablissement d'une communication bidirectionnelle entre l'AT-Mega16 et le PC. Sur le PC, nous utiliserons le programme hyperterminal comme dans l'exercice précédent, mais ici, l'option "local echo" sera désactivée. Le principe est d'utiliser le clavier du PC et le clavier matriciel 16 touches. Les touches 0 à 9 ainsi que Espace (# sur clavier) et Virgule (* sur clavier) appuyées seront ensuite décodées par l'AT-Mega16 et affichées sur le LCD. Les autres touches seront prises en compte et exécutées si seulement elles se trouvent dans le tableau suivant: Touche A = Envoi du contenu de l'EEprom vers TeraTerm Pro Touche B = Envoi du contenu de l'affichage du LCD vers TeraTerm Pro Touche C = Effacement des datas affichés sur le LCD Touche D = Ecriture des datas affichés sur le LCD vers l'EEprom de l'AVR Touche # = Espace Touche * = Virgule Si tout se passe bien, nous pouvons sauvegarder les données affichées dans TeraTerm Pro en fichier avec l'extension .CSV (Comma Separated Value) et en français (valeur séparée par une virgule ) et les exploiter dans un tableur. Attention: la durée de vie de l'EEprom est de 100.000 écritures. Remarque: l'effacement de l'EEprom peut être excétuté à votre demande dans le Studio4.